[ https://issues.apache.org/jira/browse/DRILL-4841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15553351#comment-15553351 ]
ASF GitHub Bot commented on DRILL-4841: --------------------------------------- Github user paul-rogers commented on a diff in the pull request: https://github.com/apache/drill/pull/565#discussion_r82266904 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/client/DrillClient.java --- @@ -688,4 +802,142 @@ public DrillBuf getBuffer() { return null; } } + + /** + * Return a new {@link DrillClient.Builder Drill client builder}. + * @return a new builder + */ + public static Builder newBuilder() { + return new Builder(); + } + + /** + * Helper class to construct a {@link DrillClient Drill client}. + */ + public static class Builder { + + private DrillConfig config; + private BufferAllocator allocator; + private ClusterCoordinator clusterCoordinator; + private EventLoopGroup eventLoopGroup; + private ExecutorService executor; + + // defaults + private boolean supportComplexTypes = true; + private boolean isDirectConnection = false; + + /** + * Sets the {@link DrillConfig configuration} for this client. + * + * @param drillConfig drill configuration + * @return this builder + */ + public Builder setConfig(DrillConfig drillConfig) { + this.config = drillConfig; + return this; + } + + /** + * Sets the {@link DrillConfig configuration} for this client based on the given file. + * + * @param fileName configuration file name + * @return this builder + */ + public Builder setConfigFromFile(final String fileName) { + this.config = DrillConfig.create(fileName); + return this; + } + + /** + * Sets the {@link BufferAllocator buffer allocator} to be used by this client. + * If this is not set, an allocator will be created based on the configuration. --- End diff -- But, what if I don't provide a config? Or, create my own? What do I have to set in that config to make it work? More to the point, WHEN do I have to provide my own root? When I do multiple clients in a single app? If so, can we provide a short example showing how this works? Even easier, can the builder itself create a static allocator that it shares across connections? > Use user server event loop group for web clients > ------------------------------------------------ > > Key: DRILL-4841 > URL: https://issues.apache.org/jira/browse/DRILL-4841 > Project: Apache Drill > Issue Type: Improvement > Components: Client - HTTP > Reporter: Sudheesh Katkam > Assignee: Sorabh Hamirwasia > Priority: Minor > > Currently we spawn an event loop group for handling requests from clients. > This group should also be used to handles responses (from server) for web > clients. -- This message was sent by Atlassian JIRA (v6.3.4#6332)