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

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: fuse-7.0
    • Fix Version/s: fuse-7.0
    • Component/s: Camel, CXF, Karaf
    • Labels:
      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.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                ffang Freeman(Yue) Fang
                Reporter:
                grgrzybek Grzegorz Grzybek
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: