THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
3.0 Migration Guide
Right now, 3.0 is in early planning stages. This page is mostly collecting lists of things we are planning on changing. It is by no means an exhaustive list and it may completely change depending on what gets done and such.
- Combine the PhaseInterceptor and Interceptor interfaces and the PhaseInterceptorChain and InterceptorChain into a single set. CXF only can really use the "Phase" versions and the others cause confusion and extra, unneeded interfaces.
- Likely move some of the other Abstract classes and such from kernel. For example, we now have a transports-common module. Move the AbstractDestination and stuff there.
- Go through all the @Deprecated things and remove them. Likewise, remove unused method params (I know there are a couple on the Destination API) and such.
- POSSIBLY update various API's to pass in the Bus (or other objects) if needed instead of holding it as an instance variable. That would allow singleton instances for things like the transports and such. For example, it would be good to register a "FooCXFTransport" as an OSGi service that we could lookup later. Right now, we couldn't do that unless you only used a global bus, which isn't exactly what the purpose of the Bus is.
...
JAX-RS
- JAX-RS 2.0 has been completely implemented.
- JAX-RS WADL auto-generation code has been moved to a new cxf-rt-rs-service-description module.
- JAX-RS 2.0 Client API and CXF specific WebClient and Proxy client code is now available in a new cxf-rt-rs-client module. Important: the namespace for jaxrs:client elements has changed from "http://cxf.apache.org/jaxrs" to "http://cxf.apache.org/jaxrs-client"
- Bean Validation 1.1 is supported for all CXF frontends
JAX-WS/Soap
- Add new code generator frontend to add CXF specific constructors and methods.
...
- (pass "-fe cxf" to wsdl2java)
- Make AbstractFeature subclass WebServiceFeature and update the JAX-WS frontend to look for them.
- "jaxb-validation-event-handler"s now apply for both Reading and Writing. (previously only applied to Reading). There are separate jaxb-(reader|writer)-validation-event-handler properties if you need it set for only one direction.
CXF Module/Jar Changes
- Combined api/core into just a cxf-core. All "wsdl" related stuff has been moved to a new cxf-wsdl bundle to remove the wsdl4j requirement for JAX-RS applications.
- Dropped support for Karaf 2.2.x. Karaf 2.3.x is now required.
- The direct dependency on a javax.mail implementation has been removed and the CXF maven poms will not pull one in transitively anymore. For MOST users, this is not a problem. However, if your application uses MTOM or Soap w/Attachments or similar that requires some of the DataContentHandlers that are part of the mail implementations, you may need to re-add this to your classpath.
- DynamicClientFactory was moved from the JAXB databinding to the Simple frontend. However, users are strongly encouraged to use the JaxWsDynamicClientFactory subclass.
Removed/Changed API's
- CXFBusImpl has been removed. The only subclass was the ExtensionMangerBus (SpringBus and Blueprint/osgi stuff subclassed that) so the functionality was pushed up into ExtensionMangerBus. Some of the "common" methods were put directly on the Bus interface to make using the Bus cleaner (no casts to the impl).
...
- The 2 unused params on Destination.getBackChannel were removed. They were unused and normally passed in as null.
- Dropped support for Karaf 2.2.x. Karaf 2.3.x is now required.
- Make AbstractFeature subclass WebServiceFeature and update the JAX-WS frontend to look for them.
- Remove QueryHandlers -> these were originally used for the ?wsdl processing (and is still used for ?js). However, that stuff is better done directly on the interceptor chains as interceptors to allow user supplied interceptors to also handle them. I'd like to just remove these. (obviously update the ?js stuff) Would simplify the CXFServlet a bit.
...
- Many of our interfaces/classes that held onto constants were either removed or moved. In particular XmlSchemaConstants was removed (use the Constants from the XmlSchema library directly), WSDLConstants was moved from api to rt-wsdl, SOAPConstants was removed (most are available in WSDLConstants). Goal is to reduce some memory usage and help startup time and reduce a lot of duplication.
- The direct dependency on a javax.mail implementation has been removed and the CXF maven poms will not pull one in transitively anymore. For MOST users, this is not a problem. However, if your application uses MTOM or Soap w/Attachments or similar that requires some of the DataContentHandlers that are part of the mail implementations, you may need to re-add this to your classpath.
- DynamicClientFactory was moved from the JAXB databinding to the Simple frontend. However, users are strongly encouraged to use the JaxWsDynamicClientFactory subclass.
- AlternativeSelector and the PolicyEngine and other PolicyRelated classes have been updated to pass the current Message in (when appropriate) to allow using message contextual information to select the alternative. HOWEVER, keep in mind that the selected alternative is likely cached and thus if contextual information changes, the alternatively may not be recalculated.
...
- ServletController will not override the endpoint addresses by default as it has side-effects when a given endpoint is accessed via multiple paths. Set CXFServlet "disable-address-updates" parameter to 'false' if required.
- JAX-RS 2.0 has been completely implemented.
- JAX-RS WADL auto-generation code has been moved to a new cxf-rt-rs-service-description module.
- JAX-RS 2.0 Client API and CXF specific WebClient and Proxy client code is now available in a new cxf-rt-rs-client module. Important: the namespace for jaxrs:client elements has changed from "http://cxf.apache.org/jaxrs" to "http://cxf.apache.org/jaxrs-client"
- Bean Validation 1.1 is supported for all CXF frontends
- "jaxb-validation-event-handler"s now apply for both Reading and Writing. (previously only applied to Reading). There are separate jaxb-(reader|writer)-validation-event-handler properties if you need it set for only one direction.