CxfEndpoint can work without Spring. Camel-cxf component
provider/customer etc operates on CxfEndpoint (not CxfSpringEndpoint)
as it does not assume the use of Spring. CxfSpringEndpoint extends
CxfEndpoint and overrides some methods to use Spring. And, pretty
much every endpoint in Camel extends DefaultEndpoint.
CxfEndpointBean and CxfSpringEndpointBean are created by
CxfEndpointBeanDefinitionParser to hold bean properties that are
parsed from Spring configuration. That's why they are "beans" as
opposed to "endpoints". The bean properties are merged to
CxfEndpoint's properties in CxfComponent.createEndpoint(). The
camel-cxf component provider/customer etc does NOT operate on
CxfEndpointBean as you can tell CxfEndpointBean does not implement
Camel Endpoint.
The reason for the static class CxfSpringEndpointBean in
CxfEndpointBeanDefinitionParser is bit odd. There is a comment in the
code to explain it. Basically, the intention was that the
CxfEndpointBean class did not want to implement
ApplicationContextAware.
// To make the CxfEndpointBean clear without touching any Spring
relates class
// , we implements the ApplicationContextAware here
Hope this help.
- William
On Tue, Jun 30, 2009 at 12:40 PM, ssoltysik<[email protected]> wrote:
>
> I am wondering why in camel CxfSpringEndpoint extends CxfEndpoint which
> extends DefaultEndpoint while there is also CxfSpringEndpointBean which
> extends CxfEndpointBean which extends AbstractWSDLBasedEndpointFactory. They
> seem related classes but they dont share a base class. Why was it done this
> way?
> --
> View this message in context:
> http://www.nabble.com/CXFSpringEndpoint-and-CXFSpringEndpointBean-in-camel-cxf-component-tp24275329p24275329.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>