Support CXF Dispatch mode at CXF Endpoints
------------------------------------------
Key: CAMEL-3778
URL: https://issues.apache.org/jira/browse/CAMEL-3778
Project: Camel
Issue Type: New Feature
Components: camel-cxf
Affects Versions: 2.6.0
Reporter: Aki Yoshida
Fix For: 2.7.0
Hi,
Sometime ago I asked in this mailing list whether it is possible to use the
dispatch mode of CXF in the Camel's CXF endpoint. The answer was no. But I
wanted to have the CXF dispatch mode so that I can run SOAP
intermediary/gateway scenarios with CXF features enabled and send arbitrary
SOAP messages from a single endpoint.
Now I have implemented this feature and I would like to hear what you think.
In short, I modified CxfSpringEndpoint and CxfEndpoint so that Camel uses the
CXF dispatch mode when no service class nor WSDL is specified in the endpoint
configuration. For example, you can configure the endpoint as:
{code:xml}
<cxf:cxfEndpoint id="serviceEndpoint"
address="http://localhost:9000/SoapContext/GreeterPort"
endpointName="s:GreeterPort"
serviceName="s:GreeterService"
bus="#bus">
<cxf:properties>
<entry key="dataFormat" value="PAYLOAD"/>
</cxf:properties>
</cxf:cxfEndpoint>
{code}
In this case, the endpoint is set up for the dispatch mode. The dispatch mode
supports two operations Invoke and InvokeOneWay and the default operation is
Invoke. You can change the operation by simply setting the camel header
operationName.
I added two unit tests classes to show how the dispatch mode works for both
PAYLOAD and MESSAGE data format.
I am attached all the file to this ticket. I would appreciate if you can
comment on this feature.
Thanks.
Regards, Aki
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira