[ 
https://issues.apache.org/jira/browse/PHOENIX-4750?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16576397#comment-16576397
 ] 

Alex Araujo commented on PHOENIX-4750:
--------------------------------------

{code:java}
+    class ServerCustomizersFactoryImpl implements ServerCustomizersFactory {
+        private static final List<ServerCustomizer<Server>> EMPTY_LIST = 
Collections.emptyList();
+        @Override
+        public List<ServerCustomizer<Server>> 
createServerCustomizers(Configuration conf) {
+            return EMPTY_LIST;
+        }
+    }{code}
{quote}We should have a singleton instance for this instead of having callers 
instantiate their own
{quote}
Downstream users implement their own ServerCustomizersFactory and register the 
factory a using ServiceLoader descriptor on the classpath. I used 
InstanceResolver directly in tests as I saw it done that way in existing tests.
{code:java}
+    public void startLocalHBaseCluster() throws Exception {
+        Class caller = getCaller();
...
+        // Start HBase
+        Path rootdir = 
util.getDataTestDirOnTestFS(caller.getSimpleName()){code}
{quote}How about you have the caller give you a unique name instead? e.g. 
{{public void startLocalHBaseCluster(String uniqueName)}}. This would make it 
easy for JUnit tests to give you their class name based on the {{TestName}} 
JUnit {{Rule}}.
{quote}
I thought about doing that for the other PQS ITs. Added an 
QueryServerTestUtil#startLocalHBaseCluster(String uniqueName) for those tests 
in v4. I opted to keep the new IT a bit simpler by not requiring a JUnit Rule.

Ran ITs locally and they all passed. All good now [~elserj]?

> Resolve server customizers and provide them to Avatica
> ------------------------------------------------------
>
>                 Key: PHOENIX-4750
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4750
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Alex Araujo
>            Assignee: Alex Araujo
>            Priority: Major
>              Labels: queryserver
>             Fix For: 4.15.0, 5.1.0
>
>         Attachments: PHOENIX-4750.patch, PHOENIX-4750.v2.patch, 
> PHOENIX-4750.v3.patch, PHOENIX-4750.v4.patch
>
>
> CALCITE-2284 allows finer grained customization of the underlying Avatica 
> HttpServer.
> Resolve server customizers on the PQS classpath and provide them to the 
> HttpServer builder.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to