Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-6838

camel-cxf feature should not be tied to cxf-http-jetty feature

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • Major
    • fuse-7.0
    • fuse-7.0
    • Camel, CXF, Karaf
    • None

    Description

      With Karaf 4, we can construct feature much better.

      Currently, camel-cxf feature explicitly depends on cxf-http-jetty feature and this makes using the component with Undertow problematic.

      Here's how it's done in CXF 3.2:

          <feature name="cxf-http-provider" version="${project.version}">
              <feature dependency="true" version="${project.version}">cxf-http-jetty</feature>
              <requirement>
                  cxf.http.provider
              </requirement>
          </feature>
          <feature name="cxf-http-jetty" version="${project.version}">
              <feature version="${project.version}">cxf-http</feature>
              <feature version="[7,10)">jetty</feature>
              <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-jetty/${project.version}</bundle>
              <capability>
                  cxf.http.provider;name=jetty
              </capability>
      </feature>
      

      and you have additional:

          <feature name="cxf-http-undertow" version="${project.version}">
              <feature version="${project.version}">cxf-http</feature>
              <feature>pax-http-undertow</feature>
              <bundle start-level="40">mvn:org.apache.cxf/cxf-rt-transports-http-undertow/${project.version}</bundle>
              <capability>
                  cxf.http.provider;name=undertow
              </capability>
      </feature>
      

      So camel-cxf feature should look like this:

        <feature name='camel-cxf' version='${project.version}' resolver='(obr)' start-level='50'>
          <feature version='${project.version}'>camel-blueprint</feature>
          <feature version='${project.version}'>camel-spring</feature>
          <feature version='${cxf-version-range}'>cxf-core</feature>
          <feature version='${cxf-version-range}'>cxf-jaxrs</feature>
          <feature version='${cxf-version-range}'>cxf-jaxws</feature>
          <feature version='${cxf-version-range}'>cxf-http-provider</feature>
          <feature version='${cxf-version-range}'>cxf-databinding-jaxb</feature>
          <feature version='${cxf-version-range}'>cxf-bindings-soap</feature>
          <bundle>mvn:org.apache.camel/camel-http-common/${project.version}</bundle>
          <bundle>mvn:org.apache.camel/camel-cxf-transport/${project.version}</bundle>
          <bundle>mvn:org.apache.camel/camel-cxf/${project.version}</bundle>
      </feature>
      

      so cxf-http-jetty dependency → cxf-http-provider dependency.

      The problem is that CXF 3.1.x doesn't have that... So we have to ensure CXF features provide this in our branches.

      Attachments

        Activity

          People

            yfang@redhat.com Freeman(Yue) Fang
            ggrzybek Grzegorz Grzybek
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: