Axis2-C (0.91)

  * Full Addressing 1.0 support
  * Improved fault handling model
  * SSL client transport
  * MTOM implementation
  * Implementation of easy to use service client and operation client APIs for client side programming
  * REST support (POST case)
  * Module version support
  * Service groups
  * Numerous bug fixes since last release

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Mon, 15 May 2006 


Axis2-C (0.90)

  * Minimal memory leaks
  * Apache2 module working in Windows
  * More samples and tests
  * WSDL Object Model built based on the proposed WSDL 2.0 Component model
  * Dynamic Invocation
  * Numerous bug fixes since last release

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Fri, 31 Mar 2006 


Axis2-C (M0.5)

  * Improving code quality by fixing memory leaks and reviewing the code
  * Apache2 integration
  * More samples and tests
  * Initial documentation(User guide, Developer Guide and Installation Guide)
  * Numerous bug fixes since last release

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Fri, 10 Mar 2006 


Axis2-C (M0.4)

  * Threading support and threaded simple axis server
  * Module loading support
  * Addressing module and addressing based dispatching
  * HTTP chunking support
  * Improved logging mechanism
  * Ability to build and run on Windows platform

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Fri, 17 Feb 2006


Axis2-C (M0.3)

  * Core engine in place with deployment, description and context hiarachies and http transport support
  * Soap processing support
  * Simple http server
  * Client API implementation
  * Couple of working service and client samples

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Thu, 02 Feb 2006 


Axis2-C (M0.2)

  * Improved OM module
  * libxml2 parser support
  * PHP binding for OM module
  * Some test cases for PHP binding
  * Many memory leaks fixes

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Thu, 08 Dec 2005


Axis2-C (M0.1)

  * Initial release

  * OM module
  * Guththila pull parser support
  * libxml2 parser support(only reader is supported as of now)
  * doxygen documentation support
  * A sample demonstrating how to use OM

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Fri, 25 Nov 2005
