h2. servicemix-cxf-bc

h3. Overview
A JBI compliant HTTP/SOAP or JMS/SOAP binding component named servicemix-cxf-bc which use apache cxf internally.

The main features are:
* JBI compliant Binding Component
* Usable in a lightweight mode in servicemix.xml configuration files
* SOAP 1.1 and 1.2 support
* MIME attachments
* Support for all MEPs as consumers or providers
* SSL support
* WS-Security support
* WS-Policy support
* WS-RM support
* WS-Addressing support

h4. Namespace and xbean.xml
The namespace URI for the servicemix-bean JBI component is {{http://servicemix.apache.org/cxfbc/1.0}}.  This is an example of an {{xbean.xml}} file with a namespace definition with prefix {{bean}}.
{pygmentize:lang=xml}
<beans xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0">

  <!-- add cxfbc:consumer or cxfbc:provider definitions here -->

</beans>
{pygmentize}

h4. Endpoint types
The servicemix-cxf-bc component defines two endpoints:
- {{cxfbc:consumer}} :: a server-side cxf endpoint that will consume plain HTTP+SOAP requests and send them into the NMR to a given JBI endpoint
- {{cxfbc:provider}} :: a client-side jbi endpoint which can receive requests from the NMR and send them to a given url where the service is provided

h3. {{cxfbc:consumer}}

h4. Endpoint properties
{include:jbi/components/_servicemix-cxf-bc-consumer.conf}

h3. {{cxfbc:provider}}

h4. Endpoint properties
{include:jbi/components/_servicemix-cxf-bc-provider.conf}

h3. Examples
h4. Configuring the CXF JMS Transport
The ServiceMix CXF binding component also allows using the CXF JMS Transport to send and receive messages.  You can use the *{{<cxf:features/>}}* element to add and configure the {{org.apache.cxf.transport.jms.JMSConfigFeature}} on the endpoint, as in the example below.

{pygmentize:lang=xml}
<cxfbc:provider wsdl="org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
              service="greeter:HelloWorldService"
              endpoint="HelloWorldPortProxy"
              interfaceName="greeter:Greeter"
              busCfg="jms_conduit_config.xml">

  <!-- add interceptors here -->

  <cxfbc:features>
     <bean class="org.apache.cxf.transport.jms.JMSConfigFeature">
        <property name="jmsConfig">
            <bean class="org.apache.cxf.transport.jms.JMSConfiguration">
                <property name="concurrentConsumers">
                    <value>5</value>
                </property>
                <property name="connectionFactory">
                    <ref bean="myConnectionFactory" /> 
                </property>
                <property name="targetDestination">
                    <value>test.jmstransport.text.provider</value>
                </property>
                <property name="useJms11">
                    <value>false</value>
                </property>
            </bean>
         </property>
     </bean>
  </cxfbc:features>

</cxfbc:provider>

<amq:connectionFactory id="myConnectionFactory" brokerURL="vm://localhost"/>
{pygmentize}

The {{jms_conduit_config.xml}} file specified in the {{busCfg}} parameter, is optional and can be used to specify additional JMS transport parameters:
{pygmentize:lang=xml}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:jms="http://cxf.apache.org/transports/jms"
       xsi:schemaLocation="
       http://cxf.apache.org/transports/jms http://cxf.apache.org/schemas/configuration/jms.xsd
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <jms:conduit name="{http://apache.org/hello_world_soap_http}HelloWorldPort.jms-conduit" abstract="true"> 
        <jms:clientConfig clientReceiveTimeout="200000"/>
    </jms:conduit>

</beans>
{pygmentize}

h4. Configuring the CXF HTTP Transport
In order to configure the underlying HTTP transport used by a CXF BC endpoint, you can specify an additional {{busCfg}} file as in the example below. 
{pygmentize:lang=xml}
<cxfbc:provider wsdl="org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
              service="greeter:HelloWorldService"
              endpoint="HelloWorldPortProxy"
              interfaceName="greeter:Greeter"
              busCfg="http_conduit_config.xml">

  <!-- add interceptors and additional CXF features here -->

</cxfbc:provider>
{pygmentize}

The {{http_conduit_config.xml}} file can then specify the additional CXF configuration.  Have a look at [this page|http://cxf.apache.org/docs/client-http-transport-including-ssl-support.html] for an overview of all the options supported by CXF.
{pygmentize:lang=xml}
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
       xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration
                           http://cxf.apache.org/schemas/configuration/http-conf.xsd
                           http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd">

  <http-conf:conduit name="{http://apache.org/hello_world_soap_http}HelloWorldPort.http-conduit">
    <http-conf:client Connection="Keep-Alive"
                      MaxRetransmits="1"
                      AllowChunking="false" />
  </http-conf:conduit>
</beans>
{pygmentize}
