Hi Charles

+1 for you suggestion,
CXF osgi transport is as same as other transport to CXF.
We need to make it work out of box.
I will add the dependency of HTTP feature into camel-cxf feature.

Willem

Charles Moulliard wrote:
The camel-cxf feature defined in the last feature file snapshot
contains the list of dependencies (= bundles) required by camel to run
CXF

  <feature name="camel-cxf" version="2.1-SNAPSHOT">
    <bundle>mvn:commons-pool/commons-pool/1.4</bundle>
    <bundle>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle>
    <bundle>mvn:org.springframework/spring-jms/2.5.6.SEC01</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/2.2.3_3</bundle>
    
<bundle>mvn:org.apache.geronimo.specs/geronimo-servlet_2.5_spec/1.1.2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/6.1.14_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-codec/1.3_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/1.1_2</bundle>
    <bundle>mvn:org.codehaus.jettison/jettison/1.1</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/1.7.0_3</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/5.2_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/2.7.1_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/2.9.1_3</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlbeans/2.4.0_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlsec/1.4.3_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/1.2_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.woodstox/3.2.8_1</bundle>
    <bundle>mvn:org.apache.ws.commons.schema/XmlSchema/1.4.5</bundle>
    <bundle>mvn:commons-lang/commons-lang/2.4</bundle>
    <bundle>mvn:commons-collections/commons-collections/3.2.1</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.oro/2.0.8_3</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.velocity/1.6.2_3</bundle>
    <bundle>mvn:org.apache.ws.commons.axiom/axiom-impl/1.2.8</bundle>
    <bundle>mvn:org.apache.ws.commons.axiom/axiom-api/1.2.8</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax.mail/1.4.1_2</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.neethi/2.0.4_1</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.abdera/0.4.0-incubating_3</bundle>
    <bundle>mvn:org.apache.geronimo.specs/geronimo-jaxws_2.1_spec/1.0</bundle>
    
<bundle>mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1</bundle>
    
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/1.4-SNAPSHOT</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/1.6.2_2</bundle>
    
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.0/1.3.0</bundle>
    
<bundle>mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/1.1.2</bundle>
    <bundle>mvn:org.apache.cxf/cxf-bundle/2.2.4</bundle>
    
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-io/1.3.2_3</bundle>
    <feature version="2.1-SNAPSHOT">camel-spring</feature>
    <bundle>mvn:org.apache.camel/camel-cxf/2.1-SNAPSHOT</bundle>
  </feature>

Nevertheless, an important dependency has been lost as since CXF 2.2.4
release, the CXF Transport OSGI classes have been moved from
servicemix project to CXF. These classes which includes OSGI Servlet
require web bundles. Here is the list of those required bundles.

    <feature name="HTTP">
        <config name="org.ops4j.pax.web">
          org.osgi.service.http.port=8080
        </config>
        
<bundle>mvn:org.apache.geronimo.specs/geronimo-servlet_2.5_spec/1.1.2</bundle>
        
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jetty-bundle/6.1.14_1</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-api/0.7.1</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-spi/0.7.1</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-runtime/0.7.1</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-jetty/0.7.1</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-extender-war/0.7.1</bundle>
        <bundle>mvn:org.ops4j.pax.web/pax-web-extender-whiteboard/0.7.1</bundle>
    </feature>

As they are already defined in Apache Felix Karaf feature file, I
propose to add only a reference to the HTTP feature of Karaf

  <feature name="camel-cxf" version="2.1-SNAPSHOT">
    <feature>HTTP</feature>
     .......
  </feature>

Remark : I have created a patch for Apache Felix Karaf feature file to
include two important bundles which are used to deploy WAR and
register an OSGI servlet (see this ticket for more info :
https://issues.apache.org/jira/browse/FELIX-1881)

Regards,

Charles Moulliard
Senior Enterprise Architect
Apache Camel Committer

*****************************
blog : http://cmoulliard.blogspot.com
twitter : http://twitter.com/cmoulliard
Linkedlin : http://www.linkedin.com/in/charlesmoulliard

Apache Camel Group :
http://www.linkedin.com/groups?home=&gid=2447439&trk=anet_ug_hm


Reply via email to