In doing code cleanup in camel-cxf, I come across a question. In the
constructor of CxfConsumer, it tries to assign value to the variable
bus. The bus will be used later on to setBus on
Bus bus = null;
this.endpoint = endpoint;
boolean isWebServiceProvider = false;
if (endpoint.getApplicationContext() != null) {
SpringBusFactory bf = new
SpringBusFactory(endpoint.getApplicationContext());
bus = bf.createBus();
if (CxfEndpointUtils.getSetDefaultBus(endpoint)) {
BusFactory.setDefaultBus(bus);
}
} else {
// now we just use the default bus here
bus = BusFactory.getDefaultBus();
}
ServerFactoryBean svrBean = null;
...
svrBean.setBus(bus);
Questions:
1) Is the setDefaultBus option only applied to non-Spring CxfEndpoint?
2) If I add a feature to lookup a bus from the registry/application
context for non-Spring CxfEndpoint, I would set svrBean to the my bus
(from the registry) and not getting the default bus. In this case,
setDefaultBus option would make sense to non-Spring CxfEndpoint as
well, right? And, it means setting my bus as default.
3) For Spring CxfEndpoint, does bf.createBus() return the same bus as
CxfEndpointBean.getBus()? I guess it may or may not. You could
define a bus just for your endpoint, right. So, would it better to
take the one from the endpoint bean?
Thanks,
William