The public API to retrieve endpoints is the following CamelContext method
  Endpoint getEndpoint(String uri)

If you build an endpoint using a different API, you can make them managed
using the CamelContext method
  void addEndpoint(String uri, Endpoint endpoint)

Guillaume

Le ven. 19 oct. 2018 à 12:48, Peter Palaga <[email protected]> a écrit :

> On 19/10/18 12:14, Claus Ibsen wrote:
> > Hi
> >
> > This is expected and also by design.
> >
> > Creating endpoints manually via constructors is not the same as using
> > Camel end users are defining endpoints in the DSL or elsewhere.
>
> So the end users should actually not invoke the endpoint constructors
> themselves? Is it documented somewhere? -- P
>
>
> > On Fri, Oct 19, 2018 at 12:08 PM Peter Palaga <[email protected]>
> wrote:
> >>
> >> Hi *,
> >>
> >> We happen to have a bug in WildFly Camel (WFC), that is caused by a race
> >> between camel-cxf and jboss-ws subsystem both wanting to set
> >> BusFactory.defaultBus and the default thread local bus.
> >>
> >> To fix it, I want to leave jboss-ws to rule the BusFactory and rather
> >> set the CxfRsEndpoint.bus explicitly from our WFC subsystem, so that the
> >> BusFactory defaults broken by jboss-ws are not used. To do that, I was
> >> hoping to use either EndpointStrategy.registerEndpoint(String, Endpoint)
> >> or LifecycleStrategy.onEndpointAdd(Endpoint).
> >>
> >> It turned out that none of the two callbacks is called for endpoints
> >> created by a direct invocation of the CxfRsEndpoint constructor, which I
> >> happened to be using in one of my tests:
> >>
> >> CxfRsComponent cxfConsumerComponent = new CxfRsComponent(camelContext);
> >> CxfRsEndpoint cxfConsumerEndpoint = new
> >> CxfRsEndpoint(CXF_ENDPOINT_BASE_URI, cxfConsumerComponent);
> >>
> >> If I change the above to
> >>
> >> CxfRsEndpoint cxfConsumerEndpoint = camelContext.getEndpoint("cxfrs:" +
> >> CXF_ENDPOINT_BASE_URI, CxfRsEndpoint.class);
> >>
> >> both callback are invoked properly.
> >>
> >> I found no other way how I could set CxfRsEndpoint.bus between the
> >> CxfRsEndpoint creation and the call to CxfRsConsumer.createServer()
> >> where CxfRsEndpoint.bus should be used.
> >>
> >> Is it a known issue that EndpointStrategy.registerEndpoint() and
> >> LifecycleStrategy.onEndpointAdd() are not called for endpoints created
> >> by direct invocation of the endpoint constructor?
> >>
> >> I tend to think that it is a design flaw. Once the API offers the
> >> callbacks it should also guarantee that endpoints cannot avoid those
> >> callbacks.
> >>
> >> If this is really a defect of some sort, I can file a Jira.
> >>
> >> Please utter your opinions.
> >>
> >> Thanks,
> >>
> >> -- Peter
> >>
> >>
> >
> >
>
>

-- 
------------------------
Guillaume Nodet

Reply via email to