You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2006/04/08 14:31:24 UTC

svn commit: r392519 - in /webservices/axis2/trunk/java: ./ modules/core/src/org/apache/axis2/deployment/ modules/core/src/org/apache/axis2/description/ modules/core/src/org/apache/axis2/transport/http/util/ modules/webapp/conf/

Author: deepal
Date: Sat Apr  8 05:31:22 2006
New Revision: 392519

URL: http://svn.apache.org/viewcvs?rev=392519&view=rev
Log:
- updating release notes
- fixing npe in rest

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisService2OM.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/util/RESTUtil.java
    webservices/axis2/trunk/java/modules/webapp/conf/web.xml
    webservices/axis2/trunk/java/release-notes.html

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java?rev=392519&r1=392518&r2=392519&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java Sat Apr  8 05:31:22 2006
@@ -76,11 +76,9 @@
                     } catch (Exception e) {
                         deploymentEngine.loadFromClassPath();
                     }
-                    deploymentEngine.loadFromClassPath();
                 }
             }
-            Parameter unableHttp = new Parameter("enableREST", "true");
-            axisConfig.addParameter(unableHttp);
+
         } catch (FileNotFoundException e) {
             log.info(e.getMessage());
         } catch (DeploymentException e) {
@@ -89,6 +87,13 @@
             log.info(e.getMessage());
         } catch (IOException e) {
             log.info(e.getMessage());
+        } finally {
+            try {
+                Parameter unableHttp = new Parameter("enableREST", "true");
+                axisConfig.addParameter(unableHttp);
+            } catch (AxisFault axisFault) {
+                log.info(axisFault.getMessage());
+            }
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisService2OM.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisService2OM.java?rev=392519&r1=392518&r2=392519&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisService2OM.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisService2OM.java Sat Apr  8 05:31:22 2006
@@ -4,25 +4,20 @@
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
-
 import org.apache.axis2.wsdl.SOAPHeaderMessage;
 import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.ws.java2wsdl.Java2WSDLConstants;
-
 import org.apache.ws.policy.Policy;
 import org.apache.ws.policy.PolicyReference;
 import org.apache.ws.policy.util.PolicyFactory;
-import org.apache.ws.policy.util.PolicyWriter;
 import org.apache.ws.policy.util.StAXPolicyWriter;
-import org.apache.wsdl.extensions.SOAPHeader;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamException;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.StringWriter;
@@ -294,9 +289,8 @@
                     operation.addChild(fault);
                 }
             }
-            
-           
-            
+
+
         }
     }
 
@@ -309,14 +303,14 @@
         defintions.addChild(service);
         service.addAttribute(ATTRIBUTE_NAME, axisService.getName(), null);
         generateSOAP11Port(fac, service);
-        generateSOAP12Port(fac, service);
-        
+        generateSOAP12Port(fac, service);
+
         addPolicy(PolicyInclude.SERVICE_POLICY, axisService.getPolicyInclude(), service, fac);
-        
+
         if (generateHttp) {
             generateHTTPPort(fac, service);
         }
-
+
     }
 
     private void generateSOAP11Port(OMFactory fac, OMElement service) throws Exception {
@@ -329,11 +323,11 @@
                     axisService.getName() + BINDING_NAME_SUFFIX, null);
             addExtensionElemnet(fac, port, SOAP_ADDRESS, LOCATION,
                     urlString, soap);
-            
+
             addPolicy(PolicyInclude.PORT_POLICY, axisService.getPolicyInclude(), service, fac);
         }
-        
-        
+
+
     }
 
     private void generateHTTPPort(OMFactory fac, OMElement service) throws Exception {
@@ -363,7 +357,7 @@
                     axisService.getName() + SOAP12BINDING_NAME_SUFFIX, null);
             addExtensionElemnet(fac, port, SOAP_ADDRESS, LOCATION,
                     urlString, soap12);
-            
+
             addPolicy(PolicyInclude.PORT_POLICY, axisService.getPolicyInclude(), service, fac);
         }
     }
@@ -378,7 +372,7 @@
         binding.addAttribute(ATTRIBUTE_NAME, axisService.getName() + BINDING_NAME_SUFFIX, null);
         binding.addAttribute("type", tns.getPrefix() + ":" + axisService.getName() + PORT_TYPE_SUFFIX, null);
         addPolicy(PolicyInclude.BINDING_POLICY, axisService.getPolicyInclude(), binding, fac);
-        
+
         //Adding ext elements
         addExtensionElemnet(fac, binding, BINDING_LOCAL_NAME,
                 TRANSPORT, TRANSPORT_URI,
@@ -401,7 +395,7 @@
                     SOAP_ACTION, soapAction,
                     STYLE, style, soap);
             addPolicy(PolicyInclude.BINDING_OPERATION_POLICY, axisOperation.getPolicyInclude(), operation, fac);
-            
+
             String MEP = axisOperation.getMessageExchangePattern();
 
             if (WSDLConstants.MEP_URI_IN_ONLY.equals(MEP) ||
@@ -456,8 +450,8 @@
                 }
             }
         }
-        
-        
+
+
     }
 
     /**
@@ -470,7 +464,7 @@
         binding.addAttribute(ATTRIBUTE_NAME, axisService.getName() + SOAP12BINDING_NAME_SUFFIX, null);
         binding.addAttribute("type", tns.getPrefix() + ":" + axisService.getName() + PORT_TYPE_SUFFIX, null);
         addPolicy(PolicyInclude.BINDING_POLICY, axisService.getPolicyInclude(), binding, fac);
-        
+
         //Adding ext elements
         addExtensionElemnet(fac, binding, BINDING_LOCAL_NAME,
                 TRANSPORT, TRANSPORT_URI,
@@ -493,7 +487,7 @@
                     SOAP_ACTION, soapAction,
                     STYLE, style, soap12);
             addPolicy(PolicyInclude.BINDING_OPERATION_POLICY, axisOperation.getPolicyInclude(), operation, fac);
-            
+
             String MEP = axisOperation.getMessageExchangePattern();
 
             if (WSDLConstants.MEP_URI_IN_ONLY.equals(MEP) ||
@@ -610,8 +604,8 @@
                     OMElement outElement = fac.createOMElement("content", mime);
                     outElement.addChild(outElement);
                     outElement.addAttribute("type", "text/xml", null);
+                    output.addChild(outElement);
                     operation.addChild(output);
-                    writeSoapHeaders(outAxisMessage, fac, output, soap12);
                 }
             }
         }
@@ -688,33 +682,26 @@
         }
         return null;
     }
-    
-    private void addPolicy(int type, PolicyInclude policyInclude, OMElement element, OMFactory factory) {
+
+    private void addPolicy(int type, PolicyInclude policyInclude, OMElement element, OMFactory factory) throws XMLStreamException {
         ArrayList elementList = policyInclude.getPolicyElements(type);
         StAXPolicyWriter pwrt = (StAXPolicyWriter) PolicyFactory.getPolicyWriter(PolicyFactory.StAX_POLICY_WRITER);
-        
+
         for (Iterator iterator = elementList.iterator(); iterator.hasNext();) {
             Object policyElement = iterator.next();
-            
+
             if (policyElement instanceof Policy) {
                 ByteArrayOutputStream baos = new ByteArrayOutputStream();
                 pwrt.writePolicy((Policy) policyElement, baos);
-                
+
                 ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-                try {
-					element.addChild(OMXMLBuilderFactory.createStAXOMBuilder(factory, XMLInputFactory.newInstance().createXMLStreamReader(bais)).getDocumentElement());
-                    
-				} catch (Exception ex) {
-                    ex.printStackTrace();
-                    // TODO handle this exception
-				}
-                
-                                
+                element.addChild(OMXMLBuilderFactory.createStAXOMBuilder(factory, XMLInputFactory.newInstance().createXMLStreamReader(bais)).getDocumentElement());
+
             } else if (policyElement instanceof PolicyReference) {
-                // TODO need to implement this ..    
+                // TODO need to implement this ..
             }
-            
+
         }
-        
+
     }
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/util/RESTUtil.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/util/RESTUtil.java?rev=392519&r1=392518&r2=392519&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/util/RESTUtil.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/transport/http/util/RESTUtil.java Sat Apr  8 05:31:22 2006
@@ -15,10 +15,13 @@
  */
 package org.apache.axis2.transport.http.util;
 
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.HTTPConstants;
-import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.axis2.util.SchemaUtil;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisMessage;
@@ -26,12 +29,9 @@
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.engine.RequestURIBasedDispatcher;
 import org.apache.axis2.transport.TransportUtils;
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axis2.util.SchemaUtil;
+import org.apache.axis2.wsdl.WSDLConstants;
 import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.axiom.soap.SOAPBody;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPFactory;
 
 import javax.servlet.ServletInputStream;
 import javax.servlet.http.HttpServletRequest;
@@ -63,11 +63,11 @@
             SOAPEnvelope soapEnvelope;
             if ("".equals(contentType) || contentType == null) {
                 throw new AxisFault("ContentType should be given to proceed," +
-                                    " according to WSDL 2.0 HTTP binding rules");
+                        " according to WSDL 2.0 HTTP binding rules");
             } else if (contentType.indexOf(HTTPConstants.MEDIA_TYPE_TEXT_XML) > -1 ||
-                       contentType.indexOf(HTTPConstants.MEDIA_TYPE_MULTIPART_RELATED) > -1) {
+                    contentType.indexOf(HTTPConstants.MEDIA_TYPE_MULTIPART_RELATED) > -1) {
                 soapEnvelope = handleNonURLEncodedContentTypes(msgContext, request,
-                                                               OMAbstractFactory.getSOAP11Factory());
+                        OMAbstractFactory.getSOAP11Factory());
             } else if (contentType.indexOf(HTTPConstants.MEDIA_TYPE_X_WWW_FORM) > -1) {
                 // 2. Else, Dispatch and find out the operation and the service.
                 // Dispatching can only be done using the RequestURI, as others can not be run in the REST case
@@ -81,13 +81,13 @@
                                 getMessage(WSDLConstants.MESSAGE_LABEL_IN_VALUE).getSchemaElement();
 
                 soapEnvelope = SchemaUtil.handleMediaTypeURLEncoded(msgContext,
-                                                                    request,
-                                                                    xmlSchemaElement,
-                                                                    OMAbstractFactory.getSOAP11Factory());
+                        request,
+                        xmlSchemaElement,
+                        OMAbstractFactory.getSOAP11Factory());
             } else {
                 throw new AxisFault("Content type should be one of /n " + HTTPConstants.MEDIA_TYPE_TEXT_XML +
-                                    "/n " + HTTPConstants.MEDIA_TYPE_X_WWW_FORM +
-                                    "/n " + HTTPConstants.MEDIA_TYPE_MULTIPART_RELATED);
+                        "/n " + HTTPConstants.MEDIA_TYPE_X_WWW_FORM +
+                        "/n " + HTTPConstants.MEDIA_TYPE_MULTIPART_RELATED);
             }
 
 
@@ -126,17 +126,20 @@
             }
 
             SOAPEnvelope soapEnvelope = SchemaUtil.handleMediaTypeURLEncoded(msgContext,
-                                                                             request,
-                                                                             xmlSchemaElement,
-                                                                             OMAbstractFactory.getSOAP11Factory());
+                    request,
+                    xmlSchemaElement,
+                    OMAbstractFactory.getSOAP11Factory());
             msgContext.setEnvelope(soapEnvelope);
             msgContext.setProperty(HTTPConstants.HTTP_METHOD, HTTPConstants.HTTP_METHOD_GET);
             msgContext.setDoingREST(true);
+            msgContext.setProperty(MessageContext.TRANSPORT_OUT, response.getOutputStream());
 
             invokeAxisEngine(msgContext);
 
         } catch (AxisFault axisFault) {
             throw new AxisFault(axisFault);
+        } catch (IOException e) {
+            throw  new AxisFault(e);
         }
         return true;
     }
@@ -144,6 +147,7 @@
     private void invokeAxisEngine(MessageContext messageContext) throws AxisFault {
         AxisEngine axisEngine = new AxisEngine(configurationContext);
         axisEngine.receive(messageContext);
+
     }
 
     private void dispatchAndVerify(MessageContext msgContext) throws AxisFault {
@@ -153,7 +157,7 @@
         // check for the dispatching result
         if (msgContext.getAxisService() == null || msgContext.getAxisOperation() == null) {
             throw new AxisFault("I can not find a service for this request to be serviced." +
-                                " Check the WSDL and the request URI");
+                    " Check the WSDL and the request URI");
         }
     }
 
@@ -179,18 +183,18 @@
                     xmlreader = XMLInputFactory.
                             newInstance().
                             createXMLStreamReader(inputStream,
-                                                  MessageContext.DEFAULT_CHAR_SET_ENCODING);
+                                    MessageContext.DEFAULT_CHAR_SET_ENCODING);
 
                     // Set the encoding scheme in the message context
                     msgCtxt.setProperty(MessageContext.CHARACTER_SET_ENCODING,
-                                        MessageContext.DEFAULT_CHAR_SET_ENCODING);
+                            MessageContext.DEFAULT_CHAR_SET_ENCODING);
                 } else {
 
                     // get the type of char encoding
                     String charSetEnc = TransportUtils.getCharSetEncoding(contentType);
 
                     xmlreader = XMLInputFactory.newInstance().createXMLStreamReader(inputStream,
-                                                                                    charSetEnc);
+                            charSetEnc);
 
                     // Setting the value in msgCtx
                     msgCtxt.setProperty(MessageContext.CHARACTER_SET_ENCODING, charSetEnc);
@@ -201,8 +205,8 @@
                 // if the media type is multipart/related, get help from Axis2 :)
             } else if (checkContentType(HTTPConstants.MEDIA_TYPE_MULTIPART_RELATED, contentType)) {
                 body.addChild(TransportUtils.selectBuilderForMIME(msgCtxt,
-                                                                  inputStream,
-                                                                  contentType).getDocumentElement());
+                        inputStream,
+                        contentType).getDocumentElement());
             }
 
             return soapEnvelope;

Modified: webservices/axis2/trunk/java/modules/webapp/conf/web.xml
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/webapp/conf/web.xml?rev=392519&r1=392518&r2=392519&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/webapp/conf/web.xml (original)
+++ webservices/axis2/trunk/java/modules/webapp/conf/web.xml Sat Apr  8 05:31:22 2006
@@ -29,7 +29,7 @@
     </servlet>
     <servlet-mapping>
         <servlet-name>AxisRESTServlet</servlet-name>
-        <url-pattern>/rest</url-pattern>
+        <url-pattern>/rest/*</url-pattern>
     </servlet-mapping>
 
 

Modified: webservices/axis2/trunk/java/release-notes.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/release-notes.html?rev=392519&r1=392518&r2=392519&view=diff
==============================================================================
--- webservices/axis2/trunk/java/release-notes.html (original)
+++ webservices/axis2/trunk/java/release-notes.html Sat Apr  8 05:31:22 2006
@@ -1,104 +1,87 @@
-<html>
-<head><title>:: Axis2 Release Notes ::</title></head>
-<body>
-<h1>Axis2 Release Notes</h1>
-
-<h2>This is the Apache Axis2 0.95 release</h2>
-
-<h3>Complete Features List</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, can have multiple versions of the same module and use them depending on the requirement.</li>
- <li>Content hierarchy</li>
- <li>Archive based deployment model and Directory based deployment model</li>
- <li>JWS like deployment (making Java class into Web service)</li>
- <li>WSDL Code Generation tool for stubs 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 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 starts when the application server starts up - <span style="color: #FF0000">New</span></li>
- <li>Module disengagemnt support - <span style="color: #FF0000">New</span></li>
- <li>Loading modules (.mar files) 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>
-
-<h4>Experimental
-Features List</h4>
-
-<ol type="1">
- <li>Server side and client side Web service Policy support</li>
- <li>?wsdl and ?xsd support</li>
- <li>Generating ServiceClient for a given WSDL and invoke the corresponding service using generated client</li>
-</ol>
-
-<h3>Major Changes Since
-Last Release</h3>
-
-<ol type="1">
-   <li>Transport framework improvements (ListenerManager)</li>
-   <li>The way to add an action mapping (wsamapping) has been moved from being a parameter to a child element. With this version onwards the way of adding an action mapping is as follows:</li>
-   <pre>
-   
-&lt;actionMapping&gt;MyMapping&lt;/actionMapping&gt;
-
-</pre>
-
-<li>Refactored 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>Tools Included In This
-Release</h3>
-<ol type="1">
- <li>Axis2 Web Application (Web App)</li>
- <li>WSDL2WS - Command line version</li>
-</ol>
-
-<h3>What's Still To
-Do?</h3>
-
-<p>See list of what we think needs to be done, and consider helping out if
-you're interested and able!</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>
-
-
-<p>Axis2 is taking shape, this 0.95 release is a glimpse of 1.0 that is coming soon. 
-If you happen to have a vision of how the next generation Web services platform should be, contribute to 
-Apache Axis2, and help us shape it. Any contribution in the form of coding, testing, submitting 
-improvements to the documentation, and reporting bugs are always welcome.</p>
-
-<p>Thanks for your interest in Axis2!</p>
-
-<strong><em>-The Axis2 Development Team</em></strong>
-</body>
-</html>
-
- 
+<html>
+<head><title>:: Axis2 Release Notes ::</title></head>
+<body>
+<h1>Axis2 Release Notes</h1>
+
+<h2>This is the Apache Axis2 1.0 RC1 release</h2>
+
+<h3>Complete Features List</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, can have multiple versions of the same module and use them depending on the requirement.</li>
+ <li>Content hierarchy</li>
+ <li>Archive based deployment model and Directory based deployment model</li>
+ <li>JWS like deployment (making Java class into Web service)</li>
+ <li>WSDL Code Generation tool for stubs 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 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>Transport framework improvements (ListenerManager)</li>
+ <li>AxisServlet auto starts when the application server starts up</li>
+ <li>Module disengagemnt support</li>
+ <li>Loading modules (.mar files) from classpath </li>
+ <li>Sessions scoping for Application, SOAP, Transport and Request levels</li>
+ <li>Server side and client side Web service Policy support</li>
+ <li>?wsdl and ?xsd support</li>
+ <li>Generating ServiceClient for a given WSDL and invoke the corresponding service using generated client</li>
+  <li>Numerous bug fixes since last release</li>
+</ol>
+
+<h4>Experimental
+Features List</h4>
+
+<ol type="1">
+ <li>WSDL fault handling (fault code generation)</li>
+ <li>URL based deployment mechanism (starting Axis with remote repository)</li>
+ <li>SOAP 1.2 and HTTP binding generation (?wsdl)</li>
+ <li>Un expanded war support  (location of axis2.xml and repository can be specified in web.xml )</li>
+</ol>
+
+<h3>Major Changes Since
+Last Release</h3>
+
+<ol type="1">
+   <li>Removed WOM and keep all the WSDL information in AxisService /AxisOperation /AxisMessage</li>
+   <li>Removed old client api classes (Call , MEPClient etc...)</li> 
+</ol>
+
+<h3>What's Still To
+Do?</h3>
+
+<p>See list of what we think needs to be done, and consider helping out if
+you're interested and able!</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>
+
+
+<p>Axis2 is taking shape, this 1.0 RC1 Release is a glimpse of 1.0 that is coming soon. 
+If you happen to have a vision of how the next generation Web services platform should be, contribute to 
+Apache Axis2, and help us shape it. Any contribution in the form of coding, testing, submitting 
+improvements to the documentation, and reporting bugs are always welcome.</p>
+
+<p>Thanks for your interest in Axis2!</p>
+
+<strong><em>-The Axis2 Development Team</em></strong>
+</body>
+</html>
+
+