<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
       "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <title>Apache Axis2 Archived News</title>
  <meta name="generator" content="amaya 9.2.1, see http://www.w3.org/Amaya/"
  />
  <link href="css/axis-docs.css" rel="stylesheet" type="text/css" media="all"
  />
</head>

<body xml:lang="en">
<h1>Apache Axis2 Archived News</h1>

<p>This document contains details of each Axis2 version that was released, up
to the current version.</p>

<h2>Content</h2>

<h3>Apache Axis2 Releases:</h3>
<ul>
  <li><a href="#1_1_1">09th January 2007- Version 1.1.1</a></li>
  <li><a href="#1_1">13th November 2006- Version 1.1</a></li>
  <li><a href="#1_0">04 May 2006- Version 1.0</a></li>
  <li><a href="#0_95">23 March 2006- Version 0.95</a></li>
  <li><a href="#0_94">11 January 2006- Version 0.94</a></li>
  <li><a href="#0_93">02 December 2005 - Version 0.93</a></li>
  <li><a href="#0_92">26 September 2005 - Version 0.92</a></li>
  <li><a href="#0_91">12 August 2005 - Version 0.91</a></li>
  <li><a href="#0_90">02 July 2005 - Version 0.9</a></li>
  <li><a href="#M2">07 June 2005 - Milestone 2</a></li>
  <li><a href="#M1">24 February 2005 - Milestone 1</a></li>
</ul>
<a id="1_1_1"></a>

<h2>09th January 2007- Apache Axis2/Java Version 1.1.1 Released!</h2>
<p>[<a href="http://ws.apache.org/axis2/download/1_1_1/download.cgi">Download 1.1.1</a>]</p>
<p>Apache Axis2 Version 1.1.1 comes with performance improvements and bug
fixes over the 1.1 release. Check out the complete list of features below.</p>

<h3>Programming Model</h3>
<ul>
  <li>Improved, XML-centric client API including full WSDL and policy
  support</li>
  <li>Support for any message exchange pattern</li>
  <li>Synchronous and asynchronous calls</li>
  <li>Archived service deployment model</li>
  <li>Archived module deployment model supporting controlled extensibility
    with versioning support</li>
  <li><a href="#Hot_Deployment">Hot deployment</a></li>
  <li>WS-Policy driven code generation extensions</li>
  <li>Flexible service life cycle model</li>
  <li>Support for querying a service's WSDL (using ?wsdl), schema (using
    ?xsd) and policies (using ?policy)</li>
</ul>

<h3>Supported Specifications</h3>
<ul>
  <li>SOAP 1.1 and 1.2</li>
  <li>Message Transmission Optimization Mechanism (MTOM), XML Optimized
    Packaging (XOP) and SOAP with Attachments</li>
  <li>WSDL 1.1, including both SOAP and HTTP bindings</li>
  <li>WS-Addressing (submission and final)</li>
  <li>WS-Policy</li>
  <li>SAAJ 1.1</li>
</ul>

<h3>Transports</h3>
<ul>
  <li>HTTP</li>
  <li>SMTP</li>
  <li>JMS</li>
  <li>TCP</li>
</ul>

<h3>Supported Data Bindings</h3>
<ul>
  <li>Axis Data Binding (ADB)</li>
  <li>XMLBeans</li>
  <li>JibX</li>
  <li>JaxMe</li>
</ul>

<h2><a>Tools Included in This Release</a></h2>

<p>[<a href="http://ws.apache.org/axis2/tools/index.html">Download Tool
Plug-ins</a>]</p>
<ol type="1">
  <li>Axis2 Web Application (Web App)</li>
  <li>WSDL2WS- <a
    href="tools/@axis2_version_dir@/eclipse/wsdl2java-plugin.html">eclipse
    plug-in</a><a>/</a> <a
    href="tools/@axis2_version_dir@/CodegenToolReference.html">Command line
    version</a><a>/</a><a
    href="tools/@axis2_version_dir@/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation">IntelliJ
    IDEA plug-in</a><a>/</a><a
    href="tools/@axis2_version_dir@/maven-plugins/maven-wsdl2code-plugin.html">Maven2
    WSDL2Code Plug-in</a></li>
  <li>Service Archive Wizard- <a
    href="tools/@axis2_version_dir@/eclipse/servicearchiver-plugin.html">eclipse
    plug-in</a>/ <a
    href="tools/@axis2_version_dir@/idea/Idea_plug-in_userguide.html#Create_Service_Archive">IntelliJ
    IDEA plug-in</a>/ <a
    href="tools/@axis2_version_dir@/maven-plugins/maven-aar-plugin.html">Maven2
    AAR Plug-in</a></li>
  <li>Java2WSDL- <a
    href="tools/@axis2_version_dir@/maven-plugins/maven-java2wsdl-plugin.html">Maven2
    Java2WSDL Plug-in</a></li>
</ol>

<h2>Extension Modules</h2>
<ul>
  <li>Apache Rampart: Supporting WS-Security (and soon WS-Policy)</li>
  <li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>
</ul>
(Apache Axis2 comes built in with a module that supports WS-Addressing.)

<h2>Known Issues and Limitations</h2>
<ul>
  <li>ADB does not support unwrapping of response messages(coming in 1.2)</li>
  <li>JSR 181/183 Annotation support (coming in 1.2)</li>
  <li>JaxMe and JAXBRI data binding support is experimental</li>
  <li>Simple Axis Server does not support POX/REST</li>
  <li>RPC Message Receiver does not validate a request against the schema
    (AXIS2-1943)</li>
  <li>Axis2 Idea plugin shows random behavior when XMLBeans is used</li>
</ul>
<a id="1_1"></a>

<h2>13th November 2006 - Apache Axis2/Java Version 1.1 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download/1_1/download.cgi">Download
1.1</a>]</p>

<p>Apache Axis2 Version 1.1 comes with better Axis2 Databinding Framework
(ADB) support, <a href="http://www.w3.org/TR/SOAP-attachments">attachments
API</a>, Spring, and complete support for SOAP with Attachments (SwA). Check
out the complete list of features below.</p>

<h3>Programming Model</h3>
<ul>
  <li>Improved, XML-centric client API including full WSDL and policy
  support</li>
  <li>Support for any message exchange pattern</li>
  <li>Synchronous and asynchronous calls</li>
  <li>Archived service deployment model</li>
  <li>Archived module deployment model, supporting controlled extensibility
    with versioning support</li>
  <li><a href="#Hot_Deployment">Hot deployment</a></li>
  <li>WS-Policy driven code generation extensions</li>
  <li>Flexible service life cycle model</li>
  <li>Support for the querying service's WSDL (using ?wsdl), schema (using
    ?xsd), and policies (using ?policy)</li>
</ul>

<h3>Supported Specifications</h3>
<ul>
  <li>SOAP 1.1 and 1.2</li>
  <li>Message Transmission Optimization Mechanism (MTOM), XML Optimized
    Packaging (XOP) and SOAP with Attachments</li>
  <li>WSDL 1.1, including both SOAP and HTTP bindings</li>
  <li>WS-Addressing (submission and final)</li>
  <li>WS-Policy</li>
  <li>SAAJ 1.1</li>
</ul>

<h3>Transports</h3>
<ul>
  <li>HTTP</li>
  <li>SMTP</li>
  <li>JMS</li>
  <li>TCP</li>
</ul>

<h3>Supported Data Bindings</h3>
<ul>
  <li>Axis Data Binding (ADB)</li>
  <li>XMLBeans</li>
  <li>JibX</li>
  <li>JaxMe</li>
</ul>
<a></a>

<h2>Tools Included in This Release</h2>

<p>[<a href="http://ws.apache.org/axis2/tools/index.html">Download Tool
Plug-ins</a>]</p>
<ol type="1">
  <li>Axis2 Web Application (Web App)</li>
  <li>WSDL2WS- <a href="tools/1_1/eclipse/wsdl2java-plugin.html">eclipse
    plug-in</a><a>/</a> <a href="tools/1_1/CodegenToolReference.html">Command
    line version</a><a>/</a><a
    href="tools/1_1/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation">IntelliJ
    IDEA plug-in</a><a>/</a><a
    href="tools/1_1/maven-plugins/maven-wsdl2code-plugin.html">Maven2
    WSDL2Code Plug-in</a></li>
  <li>Service Archive Wizard- <a
    href="tools/1_1/eclipse/servicearchiver-plugin.html">eclipse plug-in</a>/
    <a
    href="tools/1_1/idea/Idea_plug-in_userguide.html#Create_Service_Archive">IntelliJ
    IDEA plug-in</a>/ <a
    href="tools/1_1/maven-plugins/maven-aar-plugin.html">Maven2 AAR
    Plug-in</a></li>
  <li>Java2WSDL- <a
    href="tools/1_1/maven-plugins/maven-java2wsdl-plugin.html">Maven2
    Java2WSDL Plug-in</a></li>
</ol>

<h2>Extension Modules</h2>
<ul>
  <li>Apache Rampart: Supporting WS-Security (and soon WS-Policy)</li>
  <li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>
</ul>
(Apache Axis2 comes built in with a module that supports WS-Addressing.)

<h2>Known Issues and Limitations</h2>
<ul>
  <li>JaxMe and JAXBRI data binding support is experimental</li>
  <li>AXIS2-595: Hot re-deployment in Apache Tomcat has problems</li>
  <li>Axis Data Binding (ADB) does not support the following constructs:
    <ol>
      <li>AXIS2-983: Support for Simple Type Union and Simple Type List</li>
      <li>AXIS2-1092: Support for xs:list inside an xs:simpleType</li>
      <li>AXIS2-1093: Support for xs:union inside xs:simpleType</li>
    </ol>
  </li>
  <li>No support yet for unwrapping of doc/lit WSDL files (in stub
  generation)</li>
  <li>No support yet for rpc/encoded style WSDL documents (in stub
  generation)</li>
  <li>Idea plugin shows random behavior when XMLBeans is used</li>
</ul>
<a id="1_0"></a>

<h2>04 May 2006 - Apache Axis2 Version 1.0 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download.cgi">Download 1.0</a>]</p>

<p>Apache Axis2 is a complete re-design and re-write of the widely used
Apache Axis SOAP stack, built on the lessons learnt from Apache Axis.</p>

<p>Apache Axis2 not only supports SOAP 1.1 and SOAP 1.2, but it also has
integrated support for the widely popular REST style of Web services. The
same business logic implementation can offer both a WS-* style interface as
well as a REST style interface simultaneously.</p>

<p>Apache Axis2 is more efficient, more modular and more XML-oriented than
the older version. It is designed to support the easy addition of plug-in
"modules" that extend their functionality for features such as security and
reliability. The modules currently available or under development include:</p>
<ul>
  <li><a
    href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsrm">WS-ReliableMessaging</a>
    - Supported by <a href="http://ws.apache.org/sandesha/sandesha2/">Apache
    Sandesha2</a></li>
  <li><a
    href="http://www-128.ibm.com/developerworks/library/specification/ws-tx/#coor">WS-Coordination</a>
    and <a
    href="http://www-128.ibm.com/developerworks/library/specification/ws-tx/#atom">WS-AtomicTransaction</a>
    - Supported by <a href="http://ws.apache.org/kandula/">Apache
  Kandula2</a></li>
  <li><a
    href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wss">WS-Security</a>
    - Supported by <a
    href="http://ws.apache.org/axis2/modules/index.html">Apache
  Rampart</a></li>
  <li><a href="http://www.w3.org/Submission/ws-addressing/">WS-Addressing</a>
    - <a href="http://ws.apache.org/axis2/modules/index.html">Module</a>
    included as part of Axis2 core</li>
</ul>

<p>Apache Axis2 is built on <a
href="http://ws.apache.org/commons/axiom/index.html">Apache Axiom</a>, a new
high performant, pull-based XML object model that was released on 02 May
2006.</p>

<h2>Features</h2>

<h3>Programming Model</h3>
<ul>
  <li>Improved, XML-centric client API including full WSDL and policy
  support</li>
  <li>Support for any message exchange pattern</li>
  <li>Synchronous and asynchronous calls</li>
  <li>Archived service deployment model</li>
  <li>Archived module deployment model supporting controlled extensibility
    with versioning support</li>
  <li><a href="1_1/installationguide.html#hot_deployment">Hot
  deployment</a></li>
  <li>WS-Policy driven code generation extensions</li>
  <li>Flexible service lifecyle model</li>
  <li>Support for querying a service's WSDL (using ?wsdl), schema (using
    ?xsd) and policies (using ?policy)</li>
</ul>

<h3>Supported Specifications</h3>
<ul>
  <li>SOAP 1.1 and 1.2</li>
  <li>Message Transmission Optimization Mechanism (MTOM), XML Optimized
    Packaging (XOP) and SOAP with Attachments</li>
  <li>WSDL 1.1, including both SOAP and HTTP bindings</li>
  <li>WS-Addressing (submission and final)</li>
  <li>WS-Policy</li>
  <li>SAAJ 1.1</li>
</ul>

<h3>Transports</h3>
<ul>
  <li>HTTP</li>
  <li>SMTP</li>
  <li>JMS</li>
  <li>TCP</li>
</ul>

<h3>Supported Data Bindings</h3>
<ul>
  <li>Axis Data Binding (ADB)</li>
  <li>XMLBeans</li>
  <li>JibX</li>
  <li>JaxMe</li>
</ul>

<h2><a>Tools Included in This Release</a></h2>

<p><a href="http://ws.apache.org/axis2/tools/index.html">[Download
plug-ins]</a></p>
<ol type="1">
  <li>Axis2 Web Application (Web App)</li>
  <li>WSDL2WS- <a href="../tools/1_0/eclipse/wsdl2java-plugin.html">eclipse
    plug-in</a><a>/</a> <a
    href="../tools/1_0/CodegenToolReference.html">Command line
    version</a><a>/</a><a
    href="../tools/1_0/idea/Idea_plug-in_userguide.html#WSDL2Java_Code_Generation">IntelliJ
    IDEA plug-in</a></li>
  <li>Service Archive Wizard- <a
    href="../tools/1_0/eclipse/servicearchiver-plugin.html">eclipse
    plug-in</a>/ <a
    href="../tools/1_0/idea/Idea_plug-in_userguide.html#Create_Service_Archive">IntelliJ
    IDEA plug-in</a></li>
</ol>

<h2>Extension Modules</h2>
<ul>
  <li>Apache Rampart: Supporting WS-Security (and soon WS-Policy)</li>
  <li>Apache Sandesha2: Supporting WS-Reliable Messaging</li>
</ul>
(Apache Axis2 comes with a built in module that supports WS-Addressing.)

<h2>Known Issues and Limitations</h2>
<ul>
  <li>Recursive schemas (A includes B which includes A) may cause
  problems</li>
  <li>JaxMe data binding support is experimental</li>
  <li>Axis2-595: Hot re-deployment in Apache Tomcat has problems</li>
  <li>Axis2-666: AddressingSubmissionInHandler does not deserialize EPR
    extensibility attributes and elements</li>
  <li>AXIS2-667: Operation dispatch based on message body has a known
  issue</li>
  <li>Axis Data Binding (ADB) does not cover all of the XML Schema; its an
    80-20 design point. Unsupported XML Schema features include:
    <ol>
      <li>Simple content extension and restriction</li>
      <li>Complex content restriction</li>
    </ol>
  </li>
  <li>ADB does not support xsi:type based deserialization at runtime</li>
  <li>No support yet for unwrapping of doc/lit WSDL files (in stub
  generation)</li>
  <li>No support yet for rpc/encoded style WSDL documents (in stub
  generation)</li>
</ul>
<a id="0_95"></a>

<h2>23 March 2006 - Apache Axis2 Version 0.95 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download.cgi">Download 0.95</a>]</p>

<p>This release includes the following features:</p>

<h3 id="head-215f3945a40558f9ad055ed5b6601e8f93706558">Axis2 Complete List of
Features</h3>
<ol type="1">
  <li>AXIOM, an XML object model working on StAX (Streaming API for XML)
    parsing optimized for SOAP 1.1/1.2 messages. This has complete XML
    infoset support.</li>
  <li>Support for One-Way Messaging (In-Only) and Request Response Messaging
    (In-Out)</li>
  <li>Module Architecture, a mechanism to extend the SOAP Processing
  Model</li>
  <li>Module version support; you can have multiple versions of the same
    module and use them depending on the requirement.</li>
  <li>Context hierarchy</li>
  <li>Archive based deployment model and Directory based deployment model</li>
  <li>JWS-like deployment (making a Java class into a Web service)</li>
  <li>WSDL Code Generation Tool for Stub and skeletons</li>
  <li>WS-Addressing, both in the submission (2004/08) and final (2005/08)
    versions</li>
  <li>WSS4J module for security</li>
  <li>Improved and user friendly Client API</li>
  <li>WSDL2Java and Java2WSDL</li>
  <li>REST (REpresentational State Transfer) Support</li>
  <li>Transports supports: HTTP, SMTP, TCP, JMS</li>
  <li>Raw XML providers</li>
  <li>Support for MTOM/ MIME/ SwA</li>
  <li>SAAJ implementation</li>
  <li>DOOM</li>
  <li>Pack/Unpack capability for the generated code</li>
  <li>Axis Data Binding - ADB (Framework and Schema Compiler)</li>
  <li>Numerous bug fixes since last release</li>
  <li>Transport framework improvements (ListenerManager)-<span
    style="color: #FF0000">New</span></li>
  <li>AxisServlet auto start when the application server starts up-<span
    style="color: #FF0000">New</span></li>
  <li>Module disengagement support-<span
  style="color: #FF0000">New</span></li>
  <li>Loading module (.mar) from classpath-<span
    style="color: #FF0000">New</span></li>
  <li>Sessions scoping for Application, SOAP, Transport and Request
    levels-<span style="color: #FF0000">New</span></li>
</ol>

<p id="head-5bb5aa099717d1d49642f7ae2d63ce5cf94487ad"><strong><em>Axis2 List
of Experimental Features</em></strong></p>
<ol type="1">
  <li>Server side and client side Web Service Policy support</li>
  <li>?wsdl and ?xsd support</li>
  <li>Generate ServiceClient for a given WSDL and invoke the corresponding
    service using the generated client.</li>
</ol>

<h3 id="head-7dd8e783bb9e22fb00f88748855bb6e500111e12">Major Changes Since
Last Release</h3>
<ol type="1">
  <li>Transport framework improvements (ListenerManager)</li>
  <li>Changed the way you add action to mapping (wsamapping) from a parameter
    to a child element. Therefore, from this version onward, adding mapping
    is as follows:</li>
  <pre>   &lt;actionMapping&gt;MyMapping&lt;/actionMapping&gt;
   </pre>
  <li>Refactored the following packages in Axiom.
    <ul>
      <li>org.apache.axiom.om.impl.llom.builder to
        org.apache.axiom.om.impl.builder</li>
      <li>org.apache.axiom.om.impl.llom.mtom to
      org.apache.axiom.om.impl.mtom</li>
      <li>org.apache.axiom.om.impl.llom.serialize to
        org.apache.axiom.om.impl.serialize</li>
      <li>org.apache.axiom.om.impl.llom.traverse to
        org.apache.axiom.om.impl.traverse</li>
    </ul>
  </li>
</ol>

<h3 id="head-83371cc3d6961295be042f584c7b74d81cca23c4">Tools Included in This
Release</h3>
<ol type="1">
  <li>Axis2 Web Application (Web App)</li>
  <li>WSDL2WS- Command line version</li>
  <!--<li>Service Archive Wizard- eclipse Plugin</li>-->
</ol>

<h3 id="head-599c5a50552f02ebdeb5f58ef8da289234812ca4">What Still Needs to be
Done</h3>

<p>The list of what we think needs to be done. Even you can consider helping
out if you are interested.</p>
<ol type="1">
  <li>JAX-RPC 1.1 and/or JAX-WS compliance</li>
  <li>SOAP Encoding</li>
  <li>Binary serialization and de-serialization support</li>
  <li>Management Interface for Axis2</li>
  <li>Implementation of other Transports.</li>
  <li>Resource framework implementation (WS-RF) and Enterprise web services
    such as JSR 109 support</li>
  <li>Completion of Interop tests</li>
</ol>
<a id="0_94"></a>

<h2>11 January 2006 - Apache Axis2 Version 0.94 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download.cgi">Download 0.94</a>]</p>

<p>This release includes the following features:</p>

<h3 id="head-215f3945a40558f9ad055ed5b6601e8f93706558">The Complete List of
Features</h3>
<ol type="1">
  <li>AXIOM, an XML object model working on StAX (Streaming API for XML)
    parsing optimized for SOAP 1.1/1.2 Messages. This has complete XML
    infoset support.</li>
  <li>Support for One-Way Messaging (In-Only) and Request Response Messaging
    (In-Out)</li>
  <li>Module Architecture, mechanism to extend the SOAP Processing Model</li>
  <li>Module version support; you can have multiple versions of the same
    module and use them depending on the requirement.</li>
  <li>Context hierarchy</li>
  <li>Archive based deployment Model, and Directory based deployment
  model</li>
  <li>JWS-like deployment (making a Java class into a Web service)</li>
  <li>WSDL Code Generation Tool for Stub and skeletons</li>
  <li>WS-Addressing, both the submission (2004/08) and final (2005/08)
    versions</li>
  <li>WSS4J module for security</li>
  <li>Improved and user friendly Client API</li>
  <li>WSDL2Java</li>
  <li>REST (REpresentational State Transfer) Support</li>
  <li>Transports supports: HTTP, SMTP, TCP, JMS</li>
  <li>Raw XML providers</li>
  <li>Support for MTOM/ MIME/ SwA</li>
  <li>SAAJ implementation</li>
  <li>DOOM - <span style="color: #FF0000">New</span></li>
  <li>Pack/Unpack capability for the generated code - <span
    style="color: #FF0000">New</span></li>
  <li>Axis Data Binding - ADB (Framework and Schema Compiler)</li>
  <li>Numerous bug fixes since last release</li>
</ol>

<h4 id="head-5bb5aa099717d1d49642f7ae2d63ce5cf94487ad">Axis2 List of
Experimental Features</h4>
<ol type="1">
  <li>Sessions scoping for Application, SOAP, Transport and Request
  levels</li>
  <li>Server side Web Service Policy support</li>
  <li>?wsdl and ?xsd support</li>
  <li>Java2WSDL</li>
  <li>Generate ServiceClient for a given WSDL and invoke the corresponding
    service using the generated client.</li>
</ol>

<h3 id="head-7dd8e783bb9e22fb00f88748855bb6e500111e12">Major Changes Since
the Last Release</h3>
<ol type="1">
  <li>Fixing of memory leaks.</li>
  <li>Client API changes. Introducing ServiceClient instead of MEPClient,
    InOnlyMEPClient, InOutMEPClient, Call. (Please note that the above
    classes will be deprecated in this release.)</li>
  <li>Module versioning support. You can have multiple versions of the same
    module and use them depending on the requirement.</li>
  <li>Code generator improved to process multi-port WSDLs</li>
  <li>Packing and unpacking options for the code generated classes</li>
</ol>

<h3 id="head-83371cc3d6961295be042f584c7b74d81cca23c4">Tools Included in this
Release</h3>
<ol type="1">
  <li>Axis2 Web Application (Web App)</li>
  <li>WSDL2WS- Eclipse plugin/ Command line version/ IntelliJ IDEA plugin</li>
  <li>Service Archive Wizard- Eclipse plugin/ IntelliJ IDEA plugin</li>
</ol>

<h3 id="head-599c5a50552f02ebdeb5f58ef8da289234812ca4">What Still Needs to be
Done</h3>
<ol type="1">
  <li>JAX-RPC 1.1 and/or JAX-WS compliance</li>
  <li>SOAP Encoding</li>
  <li>Binary serialization and de-serialization support</li>
  <li>Management interface for Axis2</li>
  <li>Implementation of other Transports.</li>
  <li>Resource framework implementation (WS-RF) and Enterprise web services
    such as JSR 109 support</li>
  <li>Completion of interop tests</li>
</ol>
<a id="0_93"></a>

<h2>02 December 2005 - Apache Axis2 Version 0.93 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download.cgi">Download 0.93</a>]</p>

<p>Axis2 is becoming more and more stable. This 0.93 release contains the
following additional features:</p>
<ul>
  <li>JDK 1.5 compatibility</li>
  <li>Configurable handler chains using axis2.xml</li>
  <li>Improved class loader hierarchy</li>
  <li>Improved security module with dynamic configurability</li>
  <li>ADB (Axis Data Binding) with complete simple type support and limited
    complex type support</li>
  <li>Jalopy based code formatting of generated code</li>
  <li>Proxy support and NTLM authentication</li>
  <li>Support for rpc/literal</li>
  <li>And numerous bug fixes after 0.92 release</li>
</ul>

<h3>List of Experimental Features</h3>
<ol type="1">
  <li>DOOM - DOM implementation over OM</li>
  <li>Java2WSDL</li>
  <li>RPC Support</li>
</ol>

<h3>Major Changes Since the Last Release</h3>
<ol>
  <li>Refactored org.apache.axis2.clientapi to org.apache.axis2.client</li>
  <li>Introduction of Options to configure clients</li>
  <li>Renaming of descriptors. OperationDescription -&gt; AxisOperation,
    ServiceDescription -&gt; AxisService, ServiceGroupDescription -&gt;
    AxisServiceGroup</li>
</ol>
We are getting closer to a 1.0 release, and the remaining tasks to be
completed before the 1.0 release include: SOAP 1.1 and 1.2 validation, our
own data binding implementation, and WSDL generation. <a id="0_92"></a>

<h2>26 September 2005 - Apache Axis2 Version 0.92 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download.cgi">Download 0.92</a>]</p>

<p>This 0.92 release contains the following additional features:</p>
<ul>
  <li>WS-Security support using WSS4J</li>
  <li>Support for context hierarchy serialization</li>
  <li>Service Groups</li>
  <li>Numerous bug fixes after 0.91 release</li>
</ul>

<h3>The Release Includes the Following Tools</h3>
<ul>
  <li>Admin Web App</li>
  <li>WSDL2Java, eclipse Plugin/Command line version</li>
  <li>Service Archive Wizard, eclipse Plugin</li>
  <li>Module Archive Wizard, eclipse Plugin</li>
  <li>Service Archive Wizard, IntelliJ IDEA Plugin</li>
</ul>

<p>We are getting closer to a 1.0 release, and the remaining tasks to be
completed before a 1.0 release include: SOAP 1.1 and 1.2 validation, our own
data binding implementation, and WSDL generation.</p>
<a id="0_91"></a>

<h2>12 August 2005 - Apache Axis2 Version 0.91 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download.cgi">Download 0.91</a>]</p>

<p>This 0.91 release is a glimpse of the 1.0 that should be coming soon. This
0.91 release contains the following additional features:</p>
<ul>
  <li>File Caching for MTOM</li>
  <li>SOAP faults based on the SOAP version and better fault handling</li>
  <li>Different character encoding support</li>
  <li>Improved infoset support in AXIOM</li>
  <li>Improved code generation templates</li>
  <li>Numerous bug fixes</li>
</ul>
<a id="0_90"></a>

<h2>02 July 2005 - Apache Axis2 Version 0.9 Released!</h2>

<p>[<a href="http://ws.apache.org/axis2/download.cgi">Download 0.9</a>]</p>

<p>Axis2 is taking shape. This 0.9 release is a glimpse of the 1.0 that
should be coming soon. This 0.9 release contains the following additional
features:</p>
<ul>
  <li>XML Beans based data binding support</li>
  <li>Support for WS-Addressing, both the submission and final versions</li>
  <li>REST Web Service Support</li>
  <li>MTOM/SWA attachments support</li>
  <li>SAAJ implementation</li>
</ul>
<a id="M2"></a>

<h2>07 June 2005 - Apache Axis2 Milestone 2 (M2) Released</h2>

<p>Apache Axis2 is starting to take shape. Features implemented in this
second milestone release are:</p>
<ul>
  <li>Modules - a mechanism to extend the SOAP Processing Model</li>
  <li>Support for WS-Addressing</li>
  <li>Axis2 Client API - Blocking and Non-Blocking API</li>
  <li>Support for One-Way Messaging and Request Response Messaging</li>
  <li>WSDL Code Generation Tool.</li>
  <li>HTTP, SMTP, and TCP transport support</li>
</ul>
<b>This release also includes the following tools:</b>
<ul>
  <li>Administration web application,</li>
  <li>WSDL2WS-Eclipse plug-in</li>
  <li>Service Archive Wizard- Eclipse plug-in</li>
  <li>Module Archive Wizard-Eclipse plug-in</li>
</ul>
<a id="M1"></a>

<h2>24 February 2005 - Apache Axis2 Milestone 1 (M1) Released</h2>

<p>This first milestone release of Axis2 includes the following features:</p>
<ul>
  <li>AXIOM, a SOAP specific streaming XML infoset model for SOAP 1.1/1.2
    Messages</li>
  <li>WSDL Object Model built based on the proposed WSDL 2.0 Component
  Model.</li>
  <li>Handler framework with the support to specify the location of the
    Handler in a specific Phase</li>
  <li>Support to bundle and enable the Handlers as Modules</li>
  <li>Support for the Synchronous and Asynchronous IN-OUT messaging over HTTP
    transport</li>
  <li>Hot deployment of Web Services</li>
</ul>
</body>
</html>
