<html>
<head></head>
<body>
<h1>Axis2 Release Notes</h1>

This is the 0.93 release of the Apache Axis2.

<h2>What's in this release?</h2>

<p>This release includes the following features:</p>
<ul>
  <li>Complete XML infoset support for AXIOM</li>
  <li>AXIOM, a SOAP specific streaming XML infoset model for SOAP 1.1/1.2 messages</li>
  <li>Support for one-way messaging and request response messaging</li>
  <li>Modules, mechanism to extend the SOAP processing model</li>
  <li>Archives based deployment model </li>
  <li>WSDL2Java code generation tool for stub and skeltons</li>
  <li>XML Beans based data binding support</li>
  <li>ADB (Axis Data Binding)  with complete simple type support and limited complex type support </li>
  <li>Support for WS-Addressing, both the submission and final versions</li>
  <li>Client API</li>
  <li>REST web service support</li>
  <li>HTTP transport support</li>
  <li>SMTP transport support</li>
  <li>TCP transport support</li>
  <li>MTOM/SWA attachments support</li>
  <li>SAAJ implementation</li>
  <li> WS-Security support using WSS4J</li>
</ul>

<h2>What's new in this release ? </h2>
<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 types 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 id="head-4804f145dbcf856d6cfef8fc5fff555e5590931b">Experimental features list</h3>
<ol type="1">
  <li>
    DOOM - DOM implementation over OM 
  </li>
  <li>
    Java2WSDL 
  </li>
  <li>
  RPC Support </li>
</ol>
<h3>Major changes since 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>
<h2>What's still to do?</h2>
<p>Please see a list of what we think needs doing - and please consider helping out if 
you're interested & able!</p>
<ul>
    <li> SOAP 1.1 and 1.2 validation </li>
    <li> JAX-RPC 1.1/2.0 compliance</li> 
    <li> Implementation of other transports. e.g. JMS..</li> 
    <li> Web Service Policy Support</li> 
<li> WSDL Generation</li>
<li> Axis2 Databinding implementation</li>
</ul>

<p>Axis2 is taking shape, this 0.93 release is a glimpse of 1.0 that should be comming soon. 
If you happen to have vision of how the next generation of the Web Service should be, and like to contribute to 
Apache Axis2 please help us to shape the Apache Axis2. Any contribution in the form of coding, testing, submiting 
improvements to the documentation, and reporting bugs are always welcome.</p>
<p>Thanks for your interest in Axis2!</p>
-- The Axis Development Team
</body>
</html>

 
