LibraryToggle FramesPrintFeedback

Dependencies

cxf-bundle no longer supported

In the Apache CXF versions prior to 2.6, it was possible to include all of the Apache CXF modules in your application by adding a dependency on the cxf-bundle artifact to your Maven pom.xml file—for example:

<project>
    ...
    <dependencies>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-bundle</artifactId>
            <version>...</version>
        </dependency>
        ...
    </dependencies>
</project>

From Apache CXF 2.6 onwards, however, the cxf-bundle artifact is no longer available. Instead of adding a single dependency on the cxf-bundle artifact, it is now necessary to add dependencies for each of the individual Apache CXF modules that your application depends on. For example, the basic set of Maven dependencies you would need for a simple JAX-WS Java application is as follows:

<project>
    ...
    <dependencies>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>2.6.0.fuse-71-047</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>2.6.0.fuse-71-047</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http-jetty</artifactId>
            <version>2.6.0.fuse-71-047</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>3.0.6.RELEASE</version>
        </dependency> 
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

org.apache.cxf.tools.* classes moved

The org.apache.cxf.tools.* classes that were in the cxf-api JAR have been moved into the cxf-tools-common JAR or the cxf-tools-validator JAR.

org.apache.cxf.ws.policy classes moved

The org.apache.cxf.ws.policy classes that were in the cxf-api JAR have been moved into the cxf-rt-ws-policy JAR.

cxf-common-utilities classes moved

The cxf-common-utilities JAR is no longer available. All the classes from that JAR have been moved into the cxf-api JAR.

cxf-rt-core and cxf-rt-ws-addr classes moved

Various classes in the cxf-rt-core JAR and the cxf-rt-ws-addr JAR have been moved into the cxf-api JAR in order to resolve split-package issues. Formerly, dependencies on cxf-rt-core would have transitively pulled in the cxf-api JAR anyway, so there should be little impact.

Spring now optional

Spring is now an optional component of the http-jetty transports module and other modules. If you have any applications that rely on pulling in Spring transitively through Apache CXF (that is, no explicit dependency on Spring is declared), you will now have to modify the Maven POM files to add an explicit dependency on Spring.

JAX-RS provider moved

Most of the optional JAX-RS providers have been moved out of the cxf-rt-frontend-jaxrs module and into the cxf-rt-rs-extension-providers module, with the various dependencies marked as either optional or provided. Applications that use optional providers now need to add the required dependencies explicitly to their POM files. Also, the package names of those providers have changed in order to resolve split-package issues.

For example:

  • org.apache.cxf.jaxrs.provider.JSONProvider has moved to org.apache.cxf.jaxrs.provider.json.JSONProvider.

  • org.apache.cxf.jaxrs.provider.aegis is the new package for Aegis providers.

  • org.apache.cxf.jaxrs.provider.xmlbeans is the new package for XMLBeans providers.

  • org.apache.cxf.jaxrs.provider.atom is the new package for Atom providers.

EhCache now a dependency of cxf-rt-ws-security

EhCache is now a compile-time dependency of the cxf-rt-ws-security module in order to support caching and replay detection. It can be safely excluded downstream, at the expense of weakening the caching support.

CORS package renamed and moved

The CORS package has changed to org.apache.cxf.rs.security.cors and moved to the new cxf-rt-rs-security-cors module.

JAX-RS search extension moved

JAX-RS search extension code has been moved to the new cxf-rt-rs-extension-search module.

Comments powered by Disqus