========================
Apache ODE Release Notes
========================

Apache ODE 1.0 is the first official incubator release of ODE. As 
such this release notes can only be partial as the current code is a 
result of several code donations and months of development in the 
incubator, an exhaustive list is therefore almost impossible to 
build. So these first release notes are going to be closer to a
features list.

Apache ODE 1.0 requires Java 1.5.x. The WAR distribution can run in
most J2EE servlet container. The JBI distribution should be able to
run in any JBI container but has only been tested with ServiceMix
3.1 so far.

Apache ODE is a WS-BPEL compliant web services orchestration engine.
It organizes web services calls following a process description
written in BPEL. Another way to describe it would be a web service
capable workflow engine.

For more information check the following resources:

 * Our README file.
 * Our web site: http://incubator.apache.org/ode
 * The WS-BPEL 2.0 technical committee webinars linked here:
     http://incubator.apache.org/ode/introduction.html

Apache ODE is an open source project, as such we welcome all your
help and contributions. To participate and get involved, our mailing
lists are the best resources to start from:
    http://incubator.apache.org/ode/mailing-lists.html

Finally here is a non exhaustive but representative features list:

 * Compliant with both BPEL4WS 1.1 and WS-BPEL 2.0.
 * Deploys both as a WAR in any web container (using an Axis2-based
 communication layer) or as a JBI service assembly.
 * Small footprint server suitable for experimentation or 
 single-server production use.
 * Compiled approach to BPEL that provides detailed analysis and 
 validation at the command line or at deployment.
 * Processes hot deployment and management web service interface (war
 deployment only).
 * High level API to the engine that allows you to integrate the core
 with virtually any communication layer or even embed it.