
Apache CXF 2.3.3 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.2 fixes over 75 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

Release Notes - CXF - Version 2.3.2



** Bug
    * [CXF-2626] - xmlbean databinding nullpointer
    * [CXF-2687] - CLONE -WSDL Schema Imports - include schema location doesnt have full path
    * [CXF-2697] - REST and web methods taking arguments called without argument leads to IllegalArgumentException: wrong number of arguments exception
    * [CXF-2770] - There is no way to specify autoRewriteSoapAddress from a spring context file.
    * [CXF-2810] - Wrong namespaces in WSDL - 2.2.6 OK, 2.2.7 and 2.2.8 BROKEN
    * [CXF-3037] - Policy references embedded in policy are not processed
    * [CXF-3047] - org.apache.cxf.interceptor.Fault: Unmarshalling Error: UndeclaredPrefix: Cannot resolve 's:string' as a QName: the prefix 's' is not declared.
    * [CXF-3062] - WS-A support does not enforce Message ID MAP for Req/Resp MEP
    * [CXF-3092] - WSDLDocumentation annotation not working on SEI implementation
    * [CXF-3093] - WSDLDocumentation annotation, Placement.BINDING not working
    * [CXF-3131] - CXF XCJ DV Plugin removes XmlElement Annotation from Fields
    * [CXF-3134] - Build fails when a space is included in the directory URL.
    * [CXF-3135] - WadlGenerator does not respect Consumes annotation for form requests
    * [CXF-3138] - Implement better error checking in AbstractXSDToJavaMojo for missing extension fields
    * [CXF-3150] - WebApplicationException and Response do not implement a useful toString()/getMessage() method
    * [CXF-3168] - Usage of whitespace in @Path regular expressions raises service deployment errors
    * [CXF-3178] - build failed on Mac OSX caused by Failed to resolve artifact. om.sun:tools:jar:1.5.0
    * [CXF-3180] - Jaxrs/Jaxb unmarshaller code regularly causing performance problems & thread lock-up
    * [CXF-3181] - MAPCodec cancel the entire interceptor chain and throws exception when the server inboud  message with RelatesTo header
    * [CXF-3183] - http-osgi transport not registered on proper id
    * [CXF-3184] - SOAPBindingUtil.getProxy can't load right class in OSGi
    * [CXF-3188] - The response code 500 and soapFault are produced for an one way operation when the soap understand headers can not be processed
    * [CXF-3193] - CachingXmlEventWriter.NSContext supports only one prefix for a namespace (backed by map)
    * [CXF-3196] - Generated build.xml doesn't endorse the api jars
    * [CXF-3197] - NullPointerException in WrapperStyleNameCollisionValidator when generating stubs
    * [CXF-3198] - XMLBeansElementProvider doesn't support text/xml
    * [CXF-3202] - Have XJC-Util work with both JAXB 2.1 and JAXB 2.2
    * [CXF-3206] - PolicyEngineImpl initializes bus interceptors twice
    * [CXF-3208] - Timestamp validation in ws-security
    * [CXF-3211] - Infinite loop in FileUtils.getDefaultTempDir() when "java.io.tmpdir" directory is not writable
    * [CXF-3214] - CXFBusLifeCycleManager will call the preshutdown twice if when the BusApplicationContext is closed
    * [CXF-3215] - Error when a process method of a webservice is called by multiple client (thread) in the same time
    * [CXF-3218] - apparent regression introduced between 2.2.8 and 2.2.9:  http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/SCT not supported
    * [CXF-3220] - java_first_jms server doesn't support to start the service with out using the jaxws API
    * [CXF-3222] - OsgiTransportFactory can't fully initialized problem
    * [CXF-3226] - Going to a JAX-RS resource that contains a space in the path returns a 404 response code
    * [CXF-3228] - SOAPMessage does not recognize SOAPMessage.WRITE_XML_DECLARATION
    * [CXF-3229] - Generated Exception files should extend java.lang.Exception, not Exception
    * [CXF-3232] - OneWayProcessorInterceptor throws fault on WebSphere
    * [CXF-3234] - JAXRSOutInterceptor can be confused about response Type when Response entity is overidden
    * [CXF-3236] - Add support for an Issued Token extracted from a SAML assertion
    * [CXF-3238] - idl2wsdl fails when constant is used to define string lenght
    * [CXF-3239] - idl2wsdl fails if invisible const char is defined in IDL
    * [CXF-3241] - JAXRSOutInterceptor should attempt to downcast CGLIB-enchanced types of response objects  
    * [CXF-3244] - Policies for Fault messages are not being applied for unwrapped operations
    * [CXF-3247] - CXF JAX-RS does not recognize MessageBodyReader/MessageBodyWriter with no generic parameters
    * [CXF-3248] - CXF JAX-RS assumes custom Application returns providers only via Application.getSingletons 
    * [CXF-3249] - When accessing a service that requires auth CXF returns: RuntimeException: Can't find input stream in message
    * [CXF-3250] - EPR's address is NOT used  for invocations on the endpoint when the dispatchImpl is created with EPR
    * [CXF-3252] - org.apache.cxf.ws.addressing.ContextUtils.getAction should support namespace "http://www.w3.org/2005/08/addressing" 

** Improvement
    * [CXF-622] - HTTPClientPolicy CacheControl type should accept parameters for some directives
    * [CXF-3079] - Javadoc refinements are necesarry as exposed by the CXF build process (mvn -e)
    * [CXF-3080] - Reactor Summary in build process has alignment issues.
    * [CXF-3085] - non-varargs related warning in CXF 2.3 build
    * [CXF-3154] - Add extraClass property to JAXBElementProvider in order to avoid @XmlSeeAlso annotations
    * [CXF-3164] - "echo ERROR: Set JAVA_HOME to the path where the J2SE 5.0 (JDK5.0) is installed" doesn't mention Java SE 6
    * [CXF-3165] - SUN_TOOL_PATH references legacy vendor
    * [CXF-3174] - support gzip encoding compliant with Soap over JMS spec
    * [CXF-3176] - Update to latest Jetty version 7.2.1 from 7.2.0
    * [CXF-3187] - Update to latest Jetty version 7.2.2 from 7.2.1
    * [CXF-3207] - Add JAX-RS Response MessageBodyReader
    * [CXF-3209] - Service is builtFromWSDL twice
    * [CXF-3213] - BusApplicationListener should listen to the parent context events of the BusApplicationContext
    * [CXF-3223] - introduce a threshold system property for staxutils to avoid parsing message with unreasonable inner element level 
    * [CXF-3231] - wsdl2java should check wsa action if soap:body is overloaded
    * [CXF-3242] - Improve the way primitive request or response types are shown in WADL

** New Feature
    * [CXF-3129] - wsdl2java: place @Generated annotation on generated code
    * [CXF-3172] - Add CXF interceptor capable of introspecting arbitrary secure annotations and making authorization decisions
    * [CXF-3195] - Add JAAS Autentication Interceptor for JAXWS and JAXRS endpoints





** Task
    * [CXF-3173] - Add JAX-RS system test using container-managed authentication and CXF security interceptors for authorization
    * [CXF-3192] - extract GZIP Interceptors/Feature from http transport to transport-common module
    * [CXF-3199] - Set the wsa action and remove the not understood soap headers in OneWayDecoupledFaultHandler
    * [CXF-3217] - Provide basic support for CXF DataBinding annotation in the JAX-RS frontend
    * [CXF-3227] - Introduce DataBinding implementation wrapping JAX-RS providers


** Test
    * [CXF-3095] - test to verify multiple xsd files work with schema-validation-enabled
    * [CXF-3179] - ServerPersistenceTest fail intermittently
    * [CXF-3200] - fix OOBHeaderTest failure
    * [CXF-3201] - Test failure on testCXF3105(org.apache.cxf.tools.wsdlto.jaxws.CodeGenBugTest) 
    * [CXF-3210] - add test to guarantee Aegis will use the interface method when looking for annotations


** Wish
    * [CXF-3156] - Have web service client cache SAML tokens used in SOAP calls

