I really don't think so. The CXF component have unique and important features that simply cannot be replaced by other components in camel-cxf.

Camel transport is a CXF transport that can be plugged into CXF stack. It is a building block for other components (e.g. cxfbean) and other use case, but it does not replace CXF component all at

Cxfbean uses Camel transport to host JAXWS/JAXRS POJO and that's it. The message received cannot be routed to another Camel component and cannot be used to invoke an external REST/SOAP service.

Cxfrs is the REST's counterpart of cxf. It is quite verbose. By your logic, we should remove it as well.

As you can see, cxf fills a huge hole in terms of features.

CXF component features:
- consumer (server) to listen for SOAP requests and turn requests into either POJO, XML parts, or RAW HTTP message. The message is then routed to other Camel component. - producer (client) to invoke an external SOAP with given message (again, it can be POJO, XML parts, or RAW HTTP).

CXF component follows the standard Camel pattern (Consumer/Producer etc) nicely. The setting up CXF endpoint is pain in the butt but that is because of how CXF endpoint is setup. That (cxf endpoint setup) is really the verbose parts of the configuration which do not have default values.

Can the verbose issue be addressed? Anything that is verbose should be removed? "The original CXF way" is a CXF user experience. You said CXF experience is a good thing in Camel Transport' but not in CXF?


On 06/15/2011 09:31 AM, Christian Schneider wrote:
Hi all,

currently we have several ways of using / offering a CXF service with camel:

- Camel transport for CXF
- cxf: component
- cxfbean: component
- cxfrs: component

The camel transport is useful as it is a very thin layer compared to the other variants. Additionally it allows to reuse experience from cxf on how to setup an endpoint.
The cxfbean: component is quite convenient so it makes sense to have it.
The cxfrs: component also seems to be quit econvenient for users.

The cxf: component is very verbose and seems to be used almost exactly as the original cxf way to describe a service. So I propose to remove this component. As a migration path I propose users use either the camel transport for cxf or the cxfbean component.

What do you think?

Christian

Reply via email to