Apache CXF is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Apache CXF: An Open Source Service Framework

Overview

The goal of the Apache Incubator CXF project is to deliver a high performance, fully featured services framework that is intuitive and easy to use. CXF will also implement important JCP and web services standards. Apache Incubator CXF simplifies the construction, integration, and flexible reuse of technical and business components using a standards-based, service-oriented architecture (SOA).
Using Apache Incubator CXF, services are defined using WSDL contracts and can be accessed using a number of different message formats (or bindings) and network protocols (or transports) including SOAP over HTTP, SOAP over JMS, XML over HTTP, and XML over JMS. Apache Incubator CXF has been designed to provide a pluggable architecture that supports not only XML but also non-XML type bindings in combination with any type of transport. Apache Incubator CXF will also support several programming languages like JAX-WS, JBI, SCA, and CORBA services and is designed for flexible deployment in a variety of containers including Spring-based, JBI, SCA, Servlet and J2EE containers. The broad range of flexibility makes it possible to create and integrate web services and legacy services using a single framework.

Goals

Usability and Performance

*Fast & Flexible
*Intuitive & Easy to Use

Support for Multiple Standards

*JAX-WS, JAX-WSA, JSR-181, and SAAJ
*SOAP 1.1, 1.2, WS-I BasicProfile, WS-Security, WS-Addressing, WS-RM and WS-Policy
*WSDL 1.1 and 2.0
*MTOM

Multiple Network Protocols (Transports) and Message Formats (Bindings)

*JAXB 2.0
*Including StAX-based streaming XML
*Built-in support for SOAP and XML over http, JMS, and Jabber transports
*Extensibility API allows additional bindings for CXF, enabling additional message format support such as CSV and fixed record length
*Data bindings include XML Beans, Castor, and JiBX

Flexible Deployment

*Lightweight containers: deploy services in Tomcat or Spring-based containers
*JBI integration: deploy as a service engine in a JBI container such as ServiceMix, OpenESB or Petals
*SCA integration: deploy in an SCA container such as Tuscany
*J2EE integration: deploy services in J2EE application servers such as Geronimo, JOnAS, JBoss, WebLogic, and WebSphere
*Standalone Java client/server

Support for Multiple Programming Languages

*Full support for JAX-WS 2.0 client/server programming model
*JAX-WS 2.0 synchronous, asynchronous and one-way API's
*JAX-WS 2.0 Dynamic Invocation Interface (DII) API
*Support for wrapped and non-wrapped styles
*XML messaging API
*Support for JavaScript and ECMAScript 4 XML (E4X) - both client and server
*Support for CORBA with Yoko
*Support for SCA withTuscany
*Support for JBI with ServiceMix

Code Generation

*Java to WSDL
*WSDL to Java
*XSD to WSDL
*WSDL to XML
*WSDL to SOAP
*WSDL to service

Getting Involved

Apache Incubator CXF is currenlty under heavy development. To get involved you can subscribe to the mailing lists. You can also grab the code from the Source Repository. You also need to read about Building CXF. For Eclipse users, you should read about Setting up Eclipse.