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

Reply via email to