Refactor Druid HTTP client to support extending a base Druid client #622
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This allows for extensibility of Druid Connector client (through inheritance). Implementing a TLS-supported (or whatever signing mechanism you have) client is now much easier as users can apply the necessary overrides of the
RestTemplate
afterBase
ctor returns.Changes
BaseDruidHttpClientConfig
which is an abstract class that specifies the Bean(s) to implement for anyMetcatDruidClient
.DruidConnectorFactory
to take in any class which extends theBaseDruidHttpClientConfig
class.Notes:
*Plugin.java
file, and pass the customMetacatDruidClient
client implementation class type into theDruidConnectorFactory
ctor.BaseDruidHttpClientConfig
with default impls is regrettable, but I was getting duplicate Bean name warnings when instantiating multiple instances of the interface.