You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by Aki Yoshida <el...@gmail.com> on 2014/06/17 10:23:37 UTC

Re: [CONF] Apache Camel > CXF

Hi Gregor,
This change is adding the operationName and operationNamespace properties
to be included in the camel-cxf's configuration documentation.
If these properties are mentioned (and in that way, their use as
recommended), we need to be clear on its semantic when there is a conflict,
namely the operation name passed in the runtime context contradicts the
operation name set in the configuration.

Besides this potential inconsistency issue with setting these properties,
it is not clear to me why these properties are needed when there are
already defaultOperationName and defaultOperationNamespace properties that
can work consistently with the operationName set in the runtime context.

Could you or someone comment on this?
Thanks.
regards, aki




2014-06-17 4:16 GMT+02:00 Gregor Zurowski (Confluence) <
confluence@apache.org>:

>          Gregor Zurowski
> <https://cwiki.apache.org/confluence/display/~gzurowski> edited the page:
>     *CXF* <https://cwiki.apache.org/confluence/display/CAMEL/CXF>
>
> *Comment:* Add operationName and operationNamespace options
>
> ...
>
> Name
>
> Required
>
> Description
>
> wsdlURL
>
> No
>
> The location of the WSDL. It is obtained from endpoint address by default.
>
> *Example*: file://local/wsdl/hello.wsdl or wsdl/hello.wsdl
>
> serviceClass
>
> Yes
>
> The name of the SEI (Service Endpoint Interface) class. This class can
> have, but does not require, JSR181 annotations.
> This option is only required by POJO mode. If the wsdlURL option is
> provided, serviceClass is not required for PAYLOAD and MESSAGE mode. When
> wsdlURL option is used without serviceClass, the serviceName and portName
> (endpointName for Spring configuration) options *MUST* be provided. It is
> possible to use # notation to reference a serviceClass object instance
> from the registry. E.g. serviceClass=#beanName. The serviceClass for a
> CXF producer (that is, the to endpoint) should be a Java interface.
> *Since 2.8,* it is possible to omit both wsdlURL and serviceClass options
> for PAYLOAD and MESSAGE mode. When they are omitted, arbitrary XML elements
> can be put in CxfPayload's body in PAYLOAD mode to facilitate CXF Dispatch
> Mode.
>
> Please be advised that the *referenced object cannot be a Proxy* (Spring
> AOP Proxy is OK) as it relies on Object.getClass().getName() method for
> non Spring AOP Proxy.
>
> *Example*: org.apache.camel.Hello
>
> serviceName
>
> No
>
> The service name this service is implementing, it maps to the
> wsdl:service@name.
>
> *Required* for camel-cxf consumer since camel-2.2.0 or if more than one
> serviceName is present in WSDL.
>
> *Example*: {http:­//org.apache.camel}ServiceName
>
> endpointName
>
> No
>
> The port name this service is implementing, it maps to the wsdl:port@name.
>
>
> *Required* for camel-cxf consumer since camel-2.2.0 or if more than one
> portName is present under serviceName.
>
> *Example*: {http:­//org.apache.camel}PortName
>
> dataFormat
>
> No
>
> The data type messages supported by the CXF endpoint.
>
> *Default*: POJO
> *Example*: POJO, PAYLOAD, MESSAGE
>
> relayHeaders
>
> No
>
> Please see the *Description of* *relayHeaders* *option* section for this
> option. Should a CXF endpoint relay headers along the route. Currently only
> available when dataFormat=POJO
>
> *Default*: true
> *Example*: true, false
>
> wrapped
>
> No
>
> Which kind of operation that CXF endpoint producer will invoke
>
> *Default*: false
> *Example*: true, false
>
> wrappedStyle
>
> No
>
> *New in 2.5.0* The WSDL style that describes how parameters are
> represented in the SOAP body. If the value is false, CXF will chose the
> document-literal unwrapped style, If the value is true, CXF will chose the
> document-literal wrapped style
>
> *Default*: Null
> *Example*: true, false
>
> setDefaultBus
>
> No
>
> Will set the default bus when CXF endpoint create a bus by itself
>
> *Default*: false
> *Example*: true, false
>
> bus
>
> No
>
> A default bus created by CXF Bus Factory. Use # notation to reference a
> bus object from the registry. The referenced object must be an instance of
> org.apache.cxf.Bus.
>
> *Example*: bus=#busName
>
> cxfBinding
>
> No
>
> Use # notation to reference a CXF binding object from the registry. The
> referenced object must be an instance of
> org.apache.camel.component.cxf.CxfBinding (use an instance of
> org.apache.camel.component.cxf.DefaultCxfBinding).
>
> *Example*: cxfBinding=#bindingName
>
> headerFilterStrategy
>
> No
>
> Use # notation to reference a header filter strategy object from the
> registry. The referenced object must be an instance of
> org.apache.camel.spi.HeaderFilterStrategy (use an instance of
> org.apache.camel.component.cxf.CxfHeaderFilterStrategy).
>
> *Example*: headerFilterStrategy=#strategyName
>
> loggingFeatureEnabled
>
> No
>
> New in 2.3. This option enables CXF Logging Feature which writes inbound
> and outbound SOAP messages to log.
>
> *Default*: false
> *Example*: loggingFeatureEnabled=true
>
> operationName
>
>  No
>
> New in 2.4: Specifies which operation will be invoked on the service
> endpoint.
>
> operationNamespace
>
>  No New in 2.4: Namespace that will be used for invoking the service
> endpoint.
>
> defaultOperationName
>
> No
>
> New in 2.4, this option will set the default operationName that will be
> used by the CxfProducer which invokes the remote service.
>
> *Default*: null
> *Example*: defaultOperationName=greetMe
>
> defaultOperationNamespace
>
> No
>
> New in 2.4. This option will set the default operationNamespace that will
> be used by the CxfProducer which invokes the remote service.
>
> *Default*: null
> *Example*: defaultOperationNamespace=
> http://apache.org/hello_world_soap_http
>
> synchronous
>
> No
>
> New in 2.5. This option will let cxf endpoint decide to use sync or async
> API to do the underlying work. The default value is false which means
> camel-cxf endpoint will try to use async API by default.
>
> *Default*: false
> *Example*: synchronous=true
>
> publishedEndpointUrl
>
> No
>
> New in 2.5. This option can override the endpointUrl that published from
> the WSDL which can be accessed with service address url plus ?wsdl.
>
> *Default*: null
> *Example*: publshedEndpointUrl=http://example.com/service
>
> properties.XXX
>
> No
>
> *Camel 2.8:* Allows to set custom properties to CXF in the endpoint uri.
> For example setting properties.mtom-enabled=true to enable MTOM.
>
> allowStreaming
>
> No
>
> New in 2.8.2. This option controls whether the CXF component, when running
> in PAYLOAD mode (see below), will DOM parse the incoming messages into DOM
> Elements or keep the payload as a javax.xml.transform.Source object that
> would allow streaming in some cases.
>
> skipFaultLogging
>
> No
>
> New in 2.11. This option controls whether the PhaseInterceptorChain skips
> logging the Fault that it catches.
>
> username
>
> No
>
> New in *Camel 2.12.3* This option is used to set the basic authentication
> information of username for the CXF client.
>
> password
>
> No
>
> New in *Camel 2.12.3* This option is used to set the basic authentication
> information of password for the CXF client.
>
> continuationTimeout
>
> No
>
> New in *Camel 2.14.0 *This option is used to set the CXF continuation
> timeout which could be used in CxfConsumer by default when the CXF server
> is using Jetty or Servlet transport. (Before *Camel 2.14.0*, CxfConsumer
> just set the continuation timeout to be 0, which means the continuation
> suspend operation never timeout.)
>
> * Default*: 30000
>  *Example*: continuation=80000
>
> ...
>     View Online <https://cwiki.apache.org/confluence/display/CAMEL/CXF> ·
> Like
> <https://cwiki.apache.org/confluence/plugins/likes/like.action?contentId=52098>
> · View Changes
> <https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=52098&revisedVersion=135&originalVersion=134>
> · Add Comment
> <https://cwiki.apache.org/confluence/display/CAMEL/CXF?showComments=true&showCommentArea=true#addcomment>  Stop
> watching page
> <https://cwiki.apache.org/confluence/users/removepagenotification.action?pageId=52098>
> · Manage Notifications
> <https://cwiki.apache.org/confluence/users/editmyemailsettings.action>
> This message was sent by Atlassian Confluence
> <http://www.atlassian.com/software/confluence> 5.0.3, Team Collaboration
> Software
> <http://www.atlassian.com/software/confluence/overview/team-collaboration-software?utm_source=email-footer>
>

Re: [CONF] Apache Camel > CXF

Posted by Gregor Zurowski <gr...@zurowski.org>.
Hi Aki:

I originally added the description of these options because of [1] and
[2], but I just looked into the code and found that these options were
eventually renamed:

"CAMEL-2780 Changed the operationName to defaultOperationName and
operationNamespace to defaultOperationNamespace

git-svn-id: https://svn.apache.org/repos/asf/camel/trunk@950858
13f79535-47bb-0310-9956-ffa450edef68"

Thanks for pointing this out, I will revert the changes in Confluence.

Thanks,
Gregor

[1] http://camel.465427.n5.nabble.com/How-Do-We-Specify-Operation-To-Choose-In-Camel-CXf-td474620.html
[2] https://issues.apache.org/jira/browse/CAMEL-2780


On Tue, Jun 17, 2014 at 4:23 AM, Aki Yoshida <el...@gmail.com> wrote:
> Hi Gregor,
> This change is adding the operationName and operationNamespace properties
> to be included in the camel-cxf's configuration documentation.
> If these properties are mentioned (and in that way, their use as
> recommended), we need to be clear on its semantic when there is a conflict,
> namely the operation name passed in the runtime context contradicts the
> operation name set in the configuration.
>
> Besides this potential inconsistency issue with setting these properties,
> it is not clear to me why these properties are needed when there are
> already defaultOperationName and defaultOperationNamespace properties that
> can work consistently with the operationName set in the runtime context.
>
> Could you or someone comment on this?
> Thanks.
> regards, aki
>
>
>
>
> 2014-06-17 4:16 GMT+02:00 Gregor Zurowski (Confluence) <
> confluence@apache.org>:
>
>>          Gregor Zurowski
>> <https://cwiki.apache.org/confluence/display/~gzurowski> edited the page:
>>     *CXF* <https://cwiki.apache.org/confluence/display/CAMEL/CXF>
>>
>> *Comment:* Add operationName and operationNamespace options
>>
>> ...
>>
>> Name
>>
>> Required
>>
>> Description
>>
>> wsdlURL
>>
>> No
>>
>> The location of the WSDL. It is obtained from endpoint address by default.
>>
>> *Example*: file://local/wsdl/hello.wsdl or wsdl/hello.wsdl
>>
>> serviceClass
>>
>> Yes
>>
>> The name of the SEI (Service Endpoint Interface) class. This class can
>> have, but does not require, JSR181 annotations.
>> This option is only required by POJO mode. If the wsdlURL option is
>> provided, serviceClass is not required for PAYLOAD and MESSAGE mode. When
>> wsdlURL option is used without serviceClass, the serviceName and portName
>> (endpointName for Spring configuration) options *MUST* be provided. It is
>> possible to use # notation to reference a serviceClass object instance
>> from the registry. E.g. serviceClass=#beanName. The serviceClass for a
>> CXF producer (that is, the to endpoint) should be a Java interface.
>> *Since 2.8,* it is possible to omit both wsdlURL and serviceClass options
>> for PAYLOAD and MESSAGE mode. When they are omitted, arbitrary XML elements
>> can be put in CxfPayload's body in PAYLOAD mode to facilitate CXF Dispatch
>> Mode.
>>
>> Please be advised that the *referenced object cannot be a Proxy* (Spring
>> AOP Proxy is OK) as it relies on Object.getClass().getName() method for
>> non Spring AOP Proxy.
>>
>> *Example*: org.apache.camel.Hello
>>
>> serviceName
>>
>> No
>>
>> The service name this service is implementing, it maps to the
>> wsdl:service@name.
>>
>> *Required* for camel-cxf consumer since camel-2.2.0 or if more than one
>> serviceName is present in WSDL.
>>
>> *Example*: {http:­//org.apache.camel}ServiceName
>>
>> endpointName
>>
>> No
>>
>> The port name this service is implementing, it maps to the wsdl:port@name.
>>
>>
>> *Required* for camel-cxf consumer since camel-2.2.0 or if more than one
>> portName is present under serviceName.
>>
>> *Example*: {http:­//org.apache.camel}PortName
>>
>> dataFormat
>>
>> No
>>
>> The data type messages supported by the CXF endpoint.
>>
>> *Default*: POJO
>> *Example*: POJO, PAYLOAD, MESSAGE
>>
>> relayHeaders
>>
>> No
>>
>> Please see the *Description of* *relayHeaders* *option* section for this
>> option. Should a CXF endpoint relay headers along the route. Currently only
>> available when dataFormat=POJO
>>
>> *Default*: true
>> *Example*: true, false
>>
>> wrapped
>>
>> No
>>
>> Which kind of operation that CXF endpoint producer will invoke
>>
>> *Default*: false
>> *Example*: true, false
>>
>> wrappedStyle
>>
>> No
>>
>> *New in 2.5.0* The WSDL style that describes how parameters are
>> represented in the SOAP body. If the value is false, CXF will chose the
>> document-literal unwrapped style, If the value is true, CXF will chose the
>> document-literal wrapped style
>>
>> *Default*: Null
>> *Example*: true, false
>>
>> setDefaultBus
>>
>> No
>>
>> Will set the default bus when CXF endpoint create a bus by itself
>>
>> *Default*: false
>> *Example*: true, false
>>
>> bus
>>
>> No
>>
>> A default bus created by CXF Bus Factory. Use # notation to reference a
>> bus object from the registry. The referenced object must be an instance of
>> org.apache.cxf.Bus.
>>
>> *Example*: bus=#busName
>>
>> cxfBinding
>>
>> No
>>
>> Use # notation to reference a CXF binding object from the registry. The
>> referenced object must be an instance of
>> org.apache.camel.component.cxf.CxfBinding (use an instance of
>> org.apache.camel.component.cxf.DefaultCxfBinding).
>>
>> *Example*: cxfBinding=#bindingName
>>
>> headerFilterStrategy
>>
>> No
>>
>> Use # notation to reference a header filter strategy object from the
>> registry. The referenced object must be an instance of
>> org.apache.camel.spi.HeaderFilterStrategy (use an instance of
>> org.apache.camel.component.cxf.CxfHeaderFilterStrategy).
>>
>> *Example*: headerFilterStrategy=#strategyName
>>
>> loggingFeatureEnabled
>>
>> No
>>
>> New in 2.3. This option enables CXF Logging Feature which writes inbound
>> and outbound SOAP messages to log.
>>
>> *Default*: false
>> *Example*: loggingFeatureEnabled=true
>>
>> operationName
>>
>>  No
>>
>> New in 2.4: Specifies which operation will be invoked on the service
>> endpoint.
>>
>> operationNamespace
>>
>>  No New in 2.4: Namespace that will be used for invoking the service
>> endpoint.
>>
>> defaultOperationName
>>
>> No
>>
>> New in 2.4, this option will set the default operationName that will be
>> used by the CxfProducer which invokes the remote service.
>>
>> *Default*: null
>> *Example*: defaultOperationName=greetMe
>>
>> defaultOperationNamespace
>>
>> No
>>
>> New in 2.4. This option will set the default operationNamespace that will
>> be used by the CxfProducer which invokes the remote service.
>>
>> *Default*: null
>> *Example*: defaultOperationNamespace=
>> http://apache.org/hello_world_soap_http
>>
>> synchronous
>>
>> No
>>
>> New in 2.5. This option will let cxf endpoint decide to use sync or async
>> API to do the underlying work. The default value is false which means
>> camel-cxf endpoint will try to use async API by default.
>>
>> *Default*: false
>> *Example*: synchronous=true
>>
>> publishedEndpointUrl
>>
>> No
>>
>> New in 2.5. This option can override the endpointUrl that published from
>> the WSDL which can be accessed with service address url plus ?wsdl.
>>
>> *Default*: null
>> *Example*: publshedEndpointUrl=http://example.com/service
>>
>> properties.XXX
>>
>> No
>>
>> *Camel 2.8:* Allows to set custom properties to CXF in the endpoint uri.
>> For example setting properties.mtom-enabled=true to enable MTOM.
>>
>> allowStreaming
>>
>> No
>>
>> New in 2.8.2. This option controls whether the CXF component, when running
>> in PAYLOAD mode (see below), will DOM parse the incoming messages into DOM
>> Elements or keep the payload as a javax.xml.transform.Source object that
>> would allow streaming in some cases.
>>
>> skipFaultLogging
>>
>> No
>>
>> New in 2.11. This option controls whether the PhaseInterceptorChain skips
>> logging the Fault that it catches.
>>
>> username
>>
>> No
>>
>> New in *Camel 2.12.3* This option is used to set the basic authentication
>> information of username for the CXF client.
>>
>> password
>>
>> No
>>
>> New in *Camel 2.12.3* This option is used to set the basic authentication
>> information of password for the CXF client.
>>
>> continuationTimeout
>>
>> No
>>
>> New in *Camel 2.14.0 *This option is used to set the CXF continuation
>> timeout which could be used in CxfConsumer by default when the CXF server
>> is using Jetty or Servlet transport. (Before *Camel 2.14.0*, CxfConsumer
>> just set the continuation timeout to be 0, which means the continuation
>> suspend operation never timeout.)
>>
>> * Default*: 30000
>>  *Example*: continuation=80000
>>
>> ...
>>     View Online <https://cwiki.apache.org/confluence/display/CAMEL/CXF> ·
>> Like
>> <https://cwiki.apache.org/confluence/plugins/likes/like.action?contentId=52098>
>> · View Changes
>> <https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=52098&revisedVersion=135&originalVersion=134>
>> · Add Comment
>> <https://cwiki.apache.org/confluence/display/CAMEL/CXF?showComments=true&showCommentArea=true#addcomment>  Stop
>> watching page
>> <https://cwiki.apache.org/confluence/users/removepagenotification.action?pageId=52098>
>> · Manage Notifications
>> <https://cwiki.apache.org/confluence/users/editmyemailsettings.action>
>> This message was sent by Atlassian Confluence
>> <http://www.atlassian.com/software/confluence> 5.0.3, Team Collaboration
>> Software
>> <http://www.atlassian.com/software/confluence/overview/team-collaboration-software?utm_source=email-footer>
>>