
Apache CXF 2.3.4 Release Notes

1. Overview

The 2.3.x versions of Apache CXF are significant new versions of CXF 
that provides several new features and enhancements.  

New features include: 
 * JAX-WS 2.2 Support
 * JAX-RS 1.1 Support
 * New annotations for Java first use cases to reduce the need for 
   external configuration and provide more control over the runtime and
   generated WSDL:
     * @WSDLDocumentation annotation to add documentation nodes to generated
       wsdl
     * @SchemaValidation annotation to turn on schema validation
     * @DataBinding to set the databinding used (if other than JAXB)
     * @GZIP to turn on GZIP compression
     * @FastInfoset to turn on FastInfoset support
     * @Logging to turn on and control various Logging functionality
     * @EndpointProperty to configure endpoint properties
     * @Policy to associate WS-Policy documents with the service
 * SOAP/JMS spec implementation.  While CXF has supported SOAP over JMS 
   since 2.0, there wasn't a standard specification to describe how it 
   should be done so different vendors did things differently and 
   interoperability was impossible.  The new SOAP/JMS specification support
   implements the new SOAP/JMS spec to achieve a higher degree of 
   interoperability.  The older SOAP/JMS configuration is still supported.
   WS-Addressing also now fully works with the JMS transport when used in
   conjunction with the SOAP/JMS spec implementation.
 * SDO databinding
 * Schema Validation support for Aegis Databinding if Woodstox 4 is used 
   for the Stax parser


2.3.4 fixes over 59 JIRA issues reported by users and the community.



2. Installation Prerequisites 

Before installing Apache CXF, make sure the following products,
with the specified versions, are installed on your system:

    * Java 5 Development Kit
    * Apache ant 1.6

2.1 Java 5 Development Kit

You must install the J2SE Development Kit (JDK) 5.0, which can be downloaded
from:

    http://java.sun.com/j2se/1.5.0/download.jsp

After installing the JDK, set or modify the following environment variables:

    * JAVA_HOME -- set this environment variable
      to point at the root directory of the JDK 5.0 installation.

    * PATH -- make sure that your PATH includes: 
      %JAVA_HOME%\bin  (Windows) 
      $JAVA_HOME/bin   (UNIX)

2.2 Apache Ant 1.6.5 (or newer, 1.7.0 should work as well)

To run samples included in the binary distribution of Apache CXF,
you must install the Apache Ant 1.6.5 build utility, which can be downloaded
from:

    http://ant.apache.org/bindownload.cgi

After installing Apache Ant, add the <AntInstallDir>/bin directory to your PATH.

For more details, see the Installation Guide.

3.  Integrating CXF Into You Application

If you use Maven to build your application, you need merely add
appropriate dependencies. See the pom.xml files in the samples.

If you don't use Maven, you'll need to add one or more jars to your
classpath. The file lib/WHICH_JARS should help you decide which 
jars you need.

4. Building the Samples

Building the samples included in the binary distribution is easy. Change to
the samples directory and follow the build instructions in the README.txt file 
included with each sample.

5. Reporting Problems

If you have any problems or want to send feedback of any kind, please e-mail the
CXF dev list, dev@cxf.apache.org.  You can also file issues in JIRA at:

http://issues.apache.org/jira/browse/CXF


6. Migration notes:

See the migration guide at:
http://cxf.apache.org/docs/23-migration-guide.html
for caveats when upgrading from CXF 2.2.x to 2.3.x.


7. Specific issues, features, and improvements fixed in this version


** Bug
    * [CXF-2916] - unmarshalling the JSON of a subclass fails when a field value is null
    * [CXF-3117] - Inapppropriate use of naked RuntimeException
    * [CXF-3171] - http.proxyHost and http.proxyPort of System properties win when no proxy is required
    * [CXF-3204] - DynamicClientFactory.setupClasspath method cannot handle spaces in path
    * [CXF-3265] - Compilation error for schemas with types named as standard java classes
    * [CXF-3316] - \apache-cxf-2.3.2\samples\ws_security\interopfest\wstrust13\pom.xml contains wrong CXF version
    * [CXF-3317] - Sample for wstrust13 contains unavailable url 
    * [CXF-3331] - Schema validation breaks with multiple Instances of Java first JAX-WS service
    * [CXF-3342] - NullPointerException in Soap12FaultOutInterceptor when an exception is thrown from a SOAP 1.2 endpoint
    * [CXF-3360] - repeated replace() function calls damage the performance
    * [CXF-3361] - Configuring Log4jLogger requires SecurityPermission setContextClassLoader
    * [CXF-3362] - CXF Servlet doesn't support servlet async feature rightly
    * [CXF-3364] - No wsdl elements generated for Exception.class
    * [CXF-3367] - SOAPAction value not extracted in the inbound processing if the header name does not match exactly "SOAPAction"
    * [CXF-3369] - jetty SecurityHandler should be on top of org.apache.cxf.transport.http_jetty.JettyHTTPHandler
    * [CXF-3374] - CXF Service Builder fails if the binding is imported from different file and has different target namespace than one imported into.
    * [CXF-3376] - Exception while sending array of byte (byte[]) 
    * [CXF-3379] - @Context fails to inject Application instance
    * [CXF-3381] - CXF-2841 resurfaced in 2.3.x
    * [CXF-3383] - byte[] mtom attachments unmarshal error
    * [CXF-3395] - cxf transfer hashmap can't be chinese word
    * [CXF-3396] - InstrumentationManager not registering correctly in the standalone mode (i.e. when not using the framework's server)
    * [CXF-3397] - ServiceConstructionException: Could not resolve a binding for http://schemas.xmlsoap.org/wsdl/soap/
    * [CXF-3398] - JMX Naming issue - cannot register the mutil endpoints with same service bean
    * [CXF-3400] - Spring request-scoped beans can not have context and parameter properties injected 
    * [CXF-3401] - soap.env.ns.map cannot be set on enpoint
    * [CXF-3403] - ServletController getBaseURL can not handle encoded URIs in some cases
    * [CXF-3404] - Encoded semicolons are not correctly handled by the JAX-RS runtime
    * [CXF-3406] - Handler scoped properties not restored into the context after application fault
    * [CXF-3407] - Failure initializing ClassHelper
    * [CXF-3408] - Custom headers may get lost if CXF interceptors do not use MultivaluedMap
    * [CXF-3410] - org.apache.cxf.ws.policy.PolicyAnnotationListener throws NPE on endpoints with wsdlURL only (i.e. no serviceClass)
    * [CXF-3411] - JMSTransport: swallowed exception by provider send exchange
    * [CXF-3412] - ManagedEndpoint.getTransportId return endpoint address
    * [CXF-3413] - IndexOutOfBoundsException in DocLiteralInInterceptor
    * [CXF-3422] - 'Cannot find target method' when certain hex-encoded characters are used in @PathParam in GET requests
    * [CXF-3426] - CXF JMSContinuation leaks threads
    * [CXF-3427] - JMSContinuation should be thread safe
    * [CXF-3428] - Context closed twice with Spring setup
    * [CXF-3429] - ServerImpl should shutdown Destination before setMessageObserver=null
    * [CXF-3430] - XmlJavaTypeAdapter is not used correctly with explicit collections
    * [CXF-3444] - WSS4JInIntereptor does not always set the 'best' Principal as SecurityContext Principal
    * [CXF-3446] - InjectorUtils class goes to deep when it handles an enum value
    * [CXF-3447] - Error creating bean with name 'cxf': Requested bean is currently in creation: Is there an unresolvable circular reference? 
    * [CXF-3452] - WS-Security Encrypted headers fail with JAX-WS Binding
    * [CXF-3453] - WS-Security signed headers fail when schema validation enabled


** Improvement
    * [CXF-2716] - Collection Support for JSONProvider
    * [CXF-3224] - WS-Trust: remove current wst:KeyType and wst:KeySize defaults
    * [CXF-3363] - Use MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL) instead of MessageFactory.newInstance()
    * [CXF-3373] - Allow for providing classloader for bus extensions resolution
    * [CXF-3378] - Upgrade Jetty to 7.3.1 (from 7.2.2)
    * [CXF-3391] - Provide a better support for extra JAXB classes and add more tests
    * [CXF-3392] - Update FormEncodingProvider to support org.apache.cxf.jaxrs.ext.form.Form
    * [CXF-3436] - Javadoc fixes for o.a.c.jaxws.JaxWsServerFactoryBean
    * [CXF-3442] - Fault should not swallow the cause exception message
    * [CXF-3443] - Check XmlJavaTypeAdapters for all types of JAX-RS parameters 
    * [CXF-3455] - Migrate to current version of Neethi (2.0.5 or 3.0.0)

** New Feature
    * [CXF-3005] - Add support for jsonp in CXF JAX-RS
    * [CXF-3385] - Add a new option in WSD2Java to skip the generate the type classes from schema
    * [CXF-3424] - LoadDistributorFeature for CXF

** Task
    * [CXF-3368] - Clean up the soap over jms wsdl extension schema
    * [CXF-3417] - Support the injection of contexts into injected Applications



