
Apache CXF 2.3.5 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.5 fixes over 58 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-3456] - WSA implementation does not throw wsa:InvalidCardinality exception when there is a greater than expected number of the specified header
    * [CXF-3458] - AddressingFeature required Client should throw exception when the wsa header is missing in the inbound message 
    * [CXF-3459] - Subcode not managed by cxf client
    * [CXF-3470] - WildcardTypeImpl cannot be cast to java.lang.Class - Class Cast exception thrown after upgrading from 2.2.3 to 2.4.0
    * [CXF-3472] - Cannot override HTTPConduit's handleResponse() method
    * [CXF-3478] - Endpoint address not resolved correctly when message exchange destination is not instance of AbstractHTTPDestination
    * [CXF-3480] - URIMappingInterceptor and ArrayIndexOutOfBounds Error
    * [CXF-3486] - CXF throws java.lang.UnsupportedOperationException when a OneWay webservice is invoked via HTTP
    * [CXF-3489] - JSON sequences created from explicit collections of unqualified beans can not be read
    * [CXF-3490] - WADL Generator does not show repeating request parameters
    * [CXF-3491] - can't refer to java.lang.Exception in gererated client/server main code
    * [CXF-3499] - URIMappingInterceptor and ArrayIndexOutOfBoundsException
    * [CXF-3501] - DynamicClient fails to send an array of String
    * [CXF-3502] - IllegalArgumentException: wrong number of arguments with Dispatch/Provider service
    * [CXF-3503] - CXF should set the TCCL to the one of the service being invoked prior any invocation
    * [CXF-3504] - for big attachment, a temporary file is left on disk and keep opend, if the application just close the DataSource's inputStream and doesn't consume it; 
    * [CXF-3505] - CXF attachment doesn't compatible with SUN's  ACTIVATION library
    * [CXF-3507] - Constructor injection is not working for JAX-RS Applications
    * [CXF-3509] - Unhelpful / misleading JAX-RS log message
    * [CXF-3510] - wrong destination determination by OSGi based CXF entry point (regarding its fallback logic)
    * [CXF-3518] - WebClient doesn't handle responses containing a quoted-string in a header correctly
    * [CXF-3525] - JAXB provider can not read explicit collections of beans which have no @XmlRootElement
    * [CXF-3526] - Aegis cannot handle nested map inheritance
    * [CXF-3527] - NullPointer exception when interface contains generics
    * [CXF-3528] - TransformFeature can not be applied to outtbound explicit collections
    * [CXF-3530] - Performing an OPTIONS on a JAX-RS subresource causes CXF to generate a 405 status instead of a 200 status
    * [CXF-3531] - CXF doesn't always generate 415 when POSTing to a resource with an invalid media type
    * [CXF-3532] - jms set username/password missmatch
    * [CXF-3539] - NPE when sending packet to STS using default namespaces instead of namespace prefixes
    * [CXF-3540] - JAXRS PrimitiveTextProvider ignores media type charset parameters on the input
    * [CXF-3541] - wsdl2java - XmlBeans Binding does not handle collections/array properly
    * [CXF-3544] - The nested policy reference can not be resolved
    * [CXF-3545] - LocalDestination with DirectDispatch does not work with interceptors that decorate the OutputStream
    * [CXF-3548] - EndPointImpl's hasCode value should not change when its mutable properties are changed
    * [CXF-3555] - Wrong log message logged by AbstractStaticFailoverStrategy
    * [CXF-3558] - JaxWsProxyFactoryBean.create is not thread-safe
    * [CXF-3560] - wsa wrongly assumes that code using WSA must be employing a request-reply exchange.
    * [CXF-3573] - CXF/JAX-RS can not handle encoded urls that contain a jsessionid
    * [CXF-3578] - JAX-RS JAXB providers are missing  XmlJavaTypeAdapter annotation in readFrom unless it is available in resource method annotations 



** Improvement
    * [CXF-2193] - Allow for WRAPPED style code generation for "wrapper elements" with xsd:extension of a wrapper-compatible type
    * [CXF-3182] - wsdl:documentation should become javadoc in generated code
    * [CXF-3460] - Update WebClient with methods allowing for replacing path and query values
    * [CXF-3464] - AutomaticWorkQueueImpl  uses a DelayQueue to accept the tasks which is delayed
    * [CXF-3468] - Update WADLGenerator with properties allowing to set an application title, ignore forward path slashes and override the default ns prefix  
    * [CXF-3483] - JSONProvider: Don't force attributes to have @ if users doesn't want them too
    * [CXF-3497] - Set the ClassLoader Extension when the bus is loaded from Spring
    * [CXF-3500] - Make more packages optional in the CXF JAX-RS OSGI bundle to reduce runtime dependencies
    * [CXF-3547] - Enable http proxy support in the cxf-codegen-plugin for retrieval of WSDL files through the java.net.URL class
    * [CXF-3551] - Log warning message when cxf find the @WebServices which is loaded by the other classloader
    * [CXF-3567] - Do not use timer for JMSContinuation timeout task
    * [CXF-3572] - Add a check of the message content list to avoid the OoM error from the HolderOutInterceptor
    * [CXF-3579] - ParameterBeans can not be created using XmlJavaTypeAdapters
    * [CXF-3580] - Allow the dynamic client to unwrap operations using element references.

** New Feature
    * [CXF-2465] - WSDL2Java should create Javadoc from wsdl:documentation tags

** Task
    * [CXF-3552] - Upgrade to Jetty 7.4.2.
    * [CXF-3559] - Merge patch of CXF-3510 into ServletControl

** Test
    * [CXF-3556] - javascript AnyTest failed intermittently 
    * [CXF-3563] - WS-RM RetransmissionQueueTest is not simulating a transmission error correctly for testing


