Axis2-C (0.95)
  * Major Memory leak fixes
  * Many Bug Fixes
  * Improved Documentation
-- Axis2-C team <axis-c-dev@ws.apache.org> Thu, 26 October  2006 

Axis2-C (0.94)
  * Guththila pull parser support
  * WSDL2C code generation tool
  * TCP Monitor - C implementation
  * Major Memory leak fixes
  * Fixes to code generation with Java Tool
  * Many Bug Fixes
	
-- Axis2-C team <axis-c-dev@ws.apache.org>  Tue, 3 October  2006 
	
Axis2-C (0.93)
  * REST support for HTTP GET case
  * XML Schema implementation
  * Woden/C implementation that supports both WSDL 1.1 and WSDL 2.0
  * Dynamic client invocation (given a WSDL, consume services dynamically)
  * Numerous improvements to API and API documentation
  * Many bug fixes, especially, many paths of execution previously untouched were tested along with Sandesha2/C  implementation

-- Axis2-C team <axis-c-dev@ws.apache.org>  Thu, 31 August  2006 
	
Axis2-C (0.92)
  * Completed MTOM implementation with multiple attachment support and non-optimize  
  * Completed service client API with send robust and fire and forget
  * Added "message" to description hierarchy
  * Archive based deployment Model (for services and modules)
  * Code generation for WSDL using Java WSDL2Code tool
  * ADB support (with Java WSDL2C tool)
  * WS-Security usernameToken support
  * Initial implementation of the XML Schema parser (To be used in WSDL parser and REST support)
  * Initial implementation of WSDL parser (To be used in dynamic invocation)
  * Changed double pointer environment parameters into pointer parameters
  to improve efficiency

 -- Axis2-C team <axis-c-dev@ws.apache.org>  Fri, 16 June 2006 
	
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
