Details
-
Bug
-
Resolution: Done
-
Major
-
None
-
-
All
-
Small
Description
HttpClient subclasses are treated by Component Manager as Service, mean there is a single instance for container.
This is not compliant with base() method of this interface which is transform by HttpClientFactoryImpl in "base" field on Handler class.
As a consequence, if you have a pipeline with twice same connector on input and output; that doesn't share same base (for an upgrade version for example); the single instance of service will have either value of input, either of output; and, in both case, lead to an error.
While connectors need to define a "base", like in marketo, and this "base" is not known at compile time (not constant); the base method should be replace by a @Base parameter annotation (don't know if name Base is clear enough or if we may change it to EndPoint or whatever).
First step, we can deprecate base() method of HttpClient interface and add @Base (or @EndPoint) annotation; and modify TCK to let it work with both.
Second Step, on version 2.x, make a breaking change, and remove base() method.