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 he...@apache.org on 2005/06/06 05:53:12 UTC

svn commit: r180205 [2/2] - in /webservices/axis/trunk/java: ./ modules/core/src/org/apache/axis/ modules/core/src/org/apache/axis/clientapi/ modules/core/src/org/apache/axis/deployment/ modules/core/src/org/apache/axis/engine/ modules/core/src/org/apache/axis/transport/ modules/core/src/org/apache/axis/transport/http/ modules/core/src/org/apache/axis/transport/tcp/ modules/core/src/org/apache/axis/util/ modules/samples/ modules/samples/test/org/apache/axis/engine/ modules/samples/test/org/apache/axis/mail/ modules/samples/test/org/apache/axis/rest/ modules/samples/test/org/apache/axis/tcp/ xdocs/ xdocs/images/archi-guide/

Added: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java?rev=180205&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java (added)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java Sun Jun  5 20:53:09 2005
@@ -0,0 +1,212 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis.rest;
+
+//todo
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.Constants;
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ServiceContext;
+import org.apache.axis.description.Parameter;
+import org.apache.axis.description.ParameterImpl;
+import org.apache.axis.description.ServiceDescription;
+import org.apache.axis.engine.AxisConfiguration;
+import org.apache.axis.engine.AxisConfigurationImpl;
+import org.apache.axis.engine.Echo;
+import org.apache.axis.integration.UtilServer;
+import org.apache.axis.om.OMAbstractFactory;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.soap.SOAPFactory;
+import org.apache.axis.util.Utils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class RESTBasedEchoRawXMLTest extends TestCase {
+    private EndpointReference targetEPR =
+            new EndpointReference(AddressingConstants.WSA_TO,
+                    "http://127.0.0.1:"
+            + (UtilServer.TESTING_PORT)
+            + "/axis/services/EchoXMLService/echoOMElement");
+    private Log log = LogFactory.getLog(getClass());
+    private QName serviceName = new QName("EchoXMLService");
+    private QName operationName = new QName("echoOMElement");
+    private QName transportName = new QName("http://localhost/my", "NullTransport");
+
+    private AxisConfiguration engineRegistry;
+    private MessageContext mc;
+    //private Thread thisThread;
+   // private SimpleHTTPServer sas;
+    private ServiceContext serviceContext;
+    private ServiceDescription service;
+
+    private boolean finish = false;
+    
+   
+    private Thread thread;
+    
+    private final MessageInformation messageInfo = new MessageInformation();
+
+    public RESTBasedEchoRawXMLTest() {
+        super(RESTBasedEchoRawXMLTest.class.getName());
+    }
+
+    public RESTBasedEchoRawXMLTest(String testName) {
+        super(testName);
+    }
+
+    protected void setUp() throws Exception {
+        UtilServer.start();
+        Parameter parameter = new ParameterImpl(Constants.Configuration.ENABLE_REST,"true");
+        ((AxisConfigurationImpl)UtilServer.getConfigurationContext().getAxisConfiguration()).addParameter(parameter);
+        service =
+                Utils.createSimpleService(serviceName,
+        Echo.class.getName(),
+                        operationName);
+        UtilServer.deployService(service);
+        serviceContext =
+                UtilServer.getConfigurationContext().createServiceContext(service.getName());
+//                
+//         Runnable runnable = new Runnable() {
+//            public void run() {
+//                try {
+//                    ServerSocket socket = new ServerSocket(UtilServer.TESTING_PORT+345);
+//                    Socket clientSocket = socket.accept();
+//                    
+//                    InputStream in = clientSocket.getInputStream();
+//                    OutputStream out = clientSocket.getOutputStream();
+//                    
+//                    
+//                    byte[] byteBuff = new byte[in.available()];
+//                    in.read(byteBuff);
+//                    messageInfo.requestMessage = new String(byteBuff);
+//                    
+//                    Socket toServer = new Socket();
+//                    toServer.connect(new InetSocketAddress(UtilServer.TESTING_PORT));
+//                    OutputStream toServerOut = toServer.getOutputStream();
+//                    toServerOut.write(messageInfo.requestMessage.getBytes());
+//                    toServerOut.flush();
+//                    
+//                    InputStream fromServerIn = toServer.getInputStream();
+//                    byteBuff = new byte[fromServerIn.available()];
+//                    fromServerIn.read(byteBuff);
+//                    messageInfo.responseMessage = new String(byteBuff);
+//                    out.write(messageInfo.responseMessage.getBytes());
+//                    Thread.sleep(30000);
+//                    out.flush();
+//                    
+//                    toServer.close();
+//                    clientSocket.close();
+//                    socket.close();
+//                } catch (Exception e) {
+//                    // TODO Auto-generated catch block
+//                    e.printStackTrace();
+//                }
+//
+//            }
+//        };
+//        thread = new Thread(runnable);
+//        thread.start();
+                
+
+    }
+
+    protected void tearDown() throws Exception {
+        UtilServer.unDeployService(serviceName);
+        UtilServer.stop();
+    }
+
+    private OMElement createEnvelope() {
+        OMFactory fac = OMAbstractFactory.getOMFactory();
+        OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+        OMElement method = fac.createOMElement("echoOMElement", omNs);
+        OMElement value = fac.createOMElement("myValue", omNs);
+        value.addChild(fac.createText(value, "Isaac Assimov, the foundation Sega"));
+        method.addChild(value);
+        
+        return method;
+    }
+
+//    public void testEchoXMLASync() throws Exception {
+//                OMElement payload = createEnvelope();
+//
+//        org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call();
+//
+//        call.setTo(targetEPR);
+//        call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, false);
+//
+//        Callback callback = new Callback() {
+//            public void onComplete(AsyncResult result) {
+//                try {
+//                    result.getResponseEnvelope().serializeWithCache(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out));
+//                } catch (XMLStreamException e) {
+//                    reportError(e);
+//                } finally {
+//                    finish = true;
+//                }
+//            }
+//
+//            public void reportError(Exception e) {
+//                e.printStackTrace();
+//                finish = true;
+//            }
+//        };
+//
+//        call.invokeNonBlocking(operationName.getLocalPart(), payload, callback);
+//        int index = 0;
+//        while (!finish) {
+//            Thread.sleep(1000);
+//            index++;
+//            if(index > 10 ){
+//                throw new AxisFault("Server is shutdown as the Async response take too longs time");
+//            }
+//        }
+//
+//
+//        log.info("send the reqest");
+//    }
+
+    public void testEchoXMLSync() throws Exception {
+        SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
+
+        OMElement payload = createEnvelope();
+
+        org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call();
+
+        call.setTo(targetEPR);
+        call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, false);
+        call.set(Constants.Configuration.DO_REST,"true");
+        OMElement result =
+                (OMElement) call.invokeBlocking(operationName.getLocalPart(), payload);
+        result.serializeWithCache(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out));
+        
+        System.out.println(messageInfo.requestMessage);
+    }
+    
+    public class MessageInformation{
+        private String requestMessage = null;
+           private String responseMessage = null;
+    }
+}

Added: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java?rev=180205&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java (added)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java Sun Jun  5 20:53:09 2005
@@ -0,0 +1,182 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis.tcp;
+
+
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.Constants;
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.clientapi.AsyncResult;
+import org.apache.axis.clientapi.Callback;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ServiceContext;
+import org.apache.axis.description.ServiceDescription;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Echo;
+import org.apache.axis.integration.UtilServer;
+import org.apache.axis.integration.UtilsTCPServer;
+import org.apache.axis.om.OMAbstractFactory;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.soap.SOAPFactory;
+import org.apache.axis.transport.http.SimpleHTTPServer;
+import org.apache.axis.util.Utils;
+
+public class TCPEchoRawXMLTest extends TestCase {
+    private EndpointReference targetEPR =
+            new EndpointReference(AddressingConstants.WSA_TO,
+                    "tcp://127.0.0.1:"
+            + (UtilServer.TESTING_PORT)
+            + "/axis/services/EchoXMLService/echoOMElement");
+    private QName serviceName = new QName("EchoXMLService");
+    private QName operationName = new QName("echoOMElement");
+    private QName transportName = new QName("http://localhost/my", "NullTransport");
+
+    private MessageContext mc;
+    private SimpleHTTPServer sas;
+    private ServiceDescription service;
+    private ServiceContext serviceContext;
+    
+    private boolean finish = false;
+
+    public TCPEchoRawXMLTest() {
+        super(TCPEchoRawXMLTest.class.getName());
+    }
+
+    public TCPEchoRawXMLTest(String testName) {
+        super(testName);
+    }
+
+    protected void setUp() throws Exception {
+        UtilsTCPServer.start();
+
+        
+        //create and deploy the service
+        service =
+                Utils.createSimpleService(serviceName,
+        Echo.class.getName(),
+                        operationName);
+        UtilsTCPServer.deployService(service);
+        
+        ServiceDescription service =
+                   Utils.createSimpleService(
+                       serviceName,
+                       org.apache.axis.engine.Echo.class.getName(),
+                       operationName);
+               serviceContext = UtilServer.createAdressedEnabledClientSide(service);
+    }
+
+    protected void tearDown() throws Exception {
+        UtilsTCPServer.stop();
+    }
+
+    private OMElement createEnvelope() {
+        OMFactory fac = OMAbstractFactory.getOMFactory();
+        OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+        OMElement method = fac.createOMElement("echoOMElement", omNs);
+        OMElement value = fac.createOMElement("myValue", omNs);
+        value.addChild(fac.createText(value, "Isaac Assimov, the foundation Sega"));
+        method.addChild(value);
+        
+        return method;
+    }
+
+    public void testEchoXMLASync() throws Exception {
+                OMElement payload = createEnvelope();
+
+        org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call(serviceContext);
+
+        call.setTo(targetEPR);
+        call.setTransportInfo(Constants.TRANSPORT_TCP, Constants.TRANSPORT_TCP, false);
+
+        Callback callback = new Callback() {
+            public void onComplete(AsyncResult result) {
+                try {
+                    result.getResponseEnvelope().serializeWithCache(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out));
+                } catch (XMLStreamException e) {
+                    reportError(e);
+                } finally {
+                    finish = true;
+                }
+            }
+
+            public void reportError(Exception e) {
+                e.printStackTrace();
+                finish = true;
+            }
+        };
+
+        call.invokeNonBlocking(operationName.getLocalPart(), payload, callback);
+        int index = 0;
+        while (!finish) {
+            Thread.sleep(1000);
+            index++;
+            if(index > 10 ){
+                throw new AxisFault("Server is shutdown as the Async response take too longs time");
+            }
+        }
+    }
+
+    public void testEchoXMLSync() throws Exception {
+        SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
+
+        OMElement payload = createEnvelope();
+
+        org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call(serviceContext);
+
+        call.setTo(targetEPR);
+        call.setTransportInfo(Constants.TRANSPORT_TCP, Constants.TRANSPORT_TCP, false);
+
+        OMElement result =
+                (OMElement) call.invokeBlocking(operationName.getLocalPart(), payload);
+        result.serializeWithCache(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out));
+    }
+    
+    public void testEchoXMLCompleteSync() throws Exception {
+          ServiceDescription service =
+              Utils.createSimpleService(
+                  serviceName,
+          Echo.class.getName(),
+                  operationName);
+
+          OMFactory fac = OMAbstractFactory.getOMFactory();
+
+          OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+          OMElement method = fac.createOMElement("echoOMElement", omNs);
+          OMElement value = fac.createOMElement("myValue", omNs);
+          value.setText("Isaac Assimov, the foundation Sega");
+          method.addChild(value);
+
+          org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call(serviceContext);
+          call.setTo(targetEPR);
+          call.setTransportInfo(Constants.TRANSPORT_TCP, Constants.TRANSPORT_TCP, true);
+
+          OMElement result = (OMElement) call.invokeBlocking(operationName.getLocalPart(), method);
+          result.serializeWithCache(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out));
+
+      }
+      
+  
+}

Added: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java?rev=180205&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java (added)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java Sun Jun  5 20:53:09 2005
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis.tcp;
+
+
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.Constants;
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.clientapi.AsyncResult;
+import org.apache.axis.clientapi.Callback;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ServiceContext;
+import org.apache.axis.description.ServiceDescription;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Echo;
+import org.apache.axis.integration.UtilServer;
+import org.apache.axis.integration.UtilsTCPServer;
+import org.apache.axis.om.OMAbstractFactory;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.transport.http.SimpleHTTPServer;
+import org.apache.axis.util.Utils;
+
+public class TCPTwoChannelEchoRawXMLTest extends TestCase {
+    private EndpointReference targetEPR =
+            new EndpointReference(AddressingConstants.WSA_TO,
+                    "tcp://127.0.0.1:"
+            + (UtilServer.TESTING_PORT)
+            + "/axis/services/EchoXMLService/echoOMElement");
+    private QName serviceName = new QName("EchoXMLService");
+    private QName operationName = new QName("echoOMElement");
+    private QName transportName = new QName("http://localhost/my", "NullTransport");
+
+    private MessageContext mc;
+    private SimpleHTTPServer sas;
+    private ServiceDescription service;
+    private ServiceContext serviceContext;
+    
+    private boolean finish = false;
+
+    public TCPTwoChannelEchoRawXMLTest() {
+        super(TCPTwoChannelEchoRawXMLTest.class.getName());
+    }
+
+    public TCPTwoChannelEchoRawXMLTest(String testName) {
+        super(testName);
+    }
+
+    protected void setUp() throws Exception {
+        UtilsTCPServer.start();
+
+        
+        //create and deploy the service
+        service =
+                Utils.createSimpleService(serviceName,
+        Echo.class.getName(),
+                        operationName);
+        UtilsTCPServer.deployService(service);
+        
+        ServiceDescription service =
+                   Utils.createSimpleService(
+                       serviceName,
+                       org.apache.axis.engine.Echo.class.getName(),
+                       operationName);
+               serviceContext = UtilServer.createAdressedEnabledClientSide(service);
+    }
+
+    protected void tearDown() throws Exception {
+        UtilsTCPServer.stop();
+    }
+
+    private OMElement createEnvelope() {
+        OMFactory fac = OMAbstractFactory.getOMFactory();
+        OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+        OMElement method = fac.createOMElement("echoOMElement", omNs);
+        OMElement value = fac.createOMElement("myValue", omNs);
+        value.addChild(fac.createText(value, "Isaac Assimov, the foundation Sega"));
+        method.addChild(value);
+        
+        return method;
+    }
+
+    public void testEchoXMLCompleteASync() throws Exception {
+            ServiceDescription service =
+                Utils.createSimpleService(
+                    serviceName,
+            Echo.class.getName(),
+                    operationName);
+
+            
+
+            OMFactory fac = OMAbstractFactory.getOMFactory();
+
+            OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+            OMElement method = fac.createOMElement("echoOMElement", omNs);
+            OMElement value = fac.createOMElement("myValue", omNs);
+            value.setText("Isaac Assimov, the foundation Sega");
+            method.addChild(value);
+
+            org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call(serviceContext);
+            // call.engageModule(new QName(Constants.MODULE_ADDRESSING));
+
+            try {
+                call.setTo(targetEPR);
+                call.setTransportInfo(Constants.TRANSPORT_TCP, Constants.TRANSPORT_TCP, true);
+                Callback callback = new Callback() {
+                    public void onComplete(AsyncResult result) {
+                        try {
+                            result.getResponseEnvelope().serialize(
+                                XMLOutputFactory.newInstance().createXMLStreamWriter(System.out));
+                        } catch (XMLStreamException e) {
+                            reportError(e);
+                        } finally {
+                            finish = true;
+                        }
+                    }
+
+                    public void reportError(Exception e) {
+                        e.printStackTrace();
+                        finish = true;
+                    }
+                };
+
+                call.invokeNonBlocking(operationName.getLocalPart(), method, callback);
+                int index = 0;
+                while (!finish) {
+                    Thread.sleep(1000);
+                    index++;
+                    if (index > 10) {
+                        throw new AxisFault("Server is shutdown as the Async response take too longs time");
+                    }
+                }
+            } finally {
+                call.close();
+            }
+
+        }
+}

Added: webservices/axis/trunk/java/release-notes1-M2.html
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/release-notes1-M2.html?rev=180205&view=auto
==============================================================================
--- webservices/axis/trunk/java/release-notes1-M2.html (added)
+++ webservices/axis/trunk/java/release-notes1-M2.html Sun Jun  5 20:53:09 2005
@@ -0,0 +1,56 @@
+<html>
+<head></head>
+<body>
+<h1>Axis 2.0 Release Notes</h1>
+
+This is the Second  Milestone release of the Apache Axis2.
+
+<h2>What's in this release?</h2>
+
+<p>This release includes the following features:</p>
+<ul>
+    <li>AXIOM, a SOAP specific streaming XML infoset model for SOAP 1.1/1.2 Messages</li> 
+    <li>Modules, mechnisum to extend the SOAP Processing Model</li>  
+    <li>Support for WS-Addressing</li> 
+    <li>Client API</li> 
+    <li>Support for One-Way Messaging</li> 
+    <li>Support for Request Response Messaging
+    	<ol>
+		<LI>Synchronous, Using a two way transport</LI>
+		<LI>Asynchronous, Using a two way transport</LI>
+		<LI>Synchronous, Using a one way transport</LI>
+		<LI>Aynchronous, Using a two way transport</LI>	
+	</ol>
+    
+    </li> 
+    <li>Hot deployment of Web Services and Module deployment based on the archived modules    </li> 
+    <li>WSDL Code Generation Tool.</li> 
+    <li>REST Web Service Support</li> 
+    <li>HTTP transport Support</li> 
+    <li>SMTP transport Support</li> 
+    <li>TCP transport Support</li> 
+</ul>
+
+<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>Encoding/data binding</li> 
+    <li>JAX-RPC 1.1/2.0 compliance</li> 
+    <li> Data binding support for WSDL Based code (server/client) code generator</li> 
+    <li> MTOM attachments support</li> 
+    <li> Complete XML infoset support for AXIOM</li> 
+    <li> Implementation of other transports. e.g. JMS..</li> 
+</ul>
+
+<p>Axis2 is taking shape, this M2 release is a glimpse what is to be expected in the future. 
+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>
+
+ 
\ No newline at end of file

Modified: webservices/axis/trunk/java/xdocs/Axis2ArchitectureGuide.html
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/Axis2ArchitectureGuide.html?rev=180205&r1=180204&r2=180205&view=diff
==============================================================================
--- webservices/axis/trunk/java/xdocs/Axis2ArchitectureGuide.html (original)
+++ webservices/axis/trunk/java/xdocs/Axis2ArchitectureGuide.html Sun Jun  5 20:53:09 2005
@@ -8,6 +8,16 @@
 	<p>Any architecture is a result of what that architecture should yield, the success of a architecture should be evaluated bases on the requirements the architecture should meet. Let us start our journey in to Axis2 looking at the requirements that are expected from Axis2.</p>
 
 	<h3>Requirement from Axis2</h3>
+	<p>According to SOAP, participant took part is a Web Service interaction is known as a SOAP Node. Delivery of a single SOAP Message is defined based on two participants, SOAP Sender and SOAP Receiver. Each SOAP Message is sent by SOAP Sender and received by SOAP Receiver, and single SOAP delivery is the most basic unit that build the Web Service interactions.</p>
+	
+	<p>Each SOAP Node is written in specific programming language, may it be Java, C++, .NET or Perl, the Web Services allow them to inter operate. This is possible because at the wire each web service interaction is done via SOAP, which is common to every SOAP Node. </p>
+	<IMG src="images/archi-guide/soap.gif" width="691" height="319" border="0">
+	
+	<p>It is the duty of the Web Service Middle-ware for each programing language to let the users to work in the programing language they are accustomed to and hide the complexity of the SOAP Messaging. Axis2 being one, let the java users to invoke the Web Services using java representations and handles the SOAP Messaging behind the curtain.</p>
+	
+	<p>Axis2 handle the SOAP processing Model, together with dozen services that make the life of the Web Service Developer simpler, following are the identified requirements.</p>
+	
+	
 	<ol><li>Provide a framework to process the SOAP messages, the framework should be extensible and the users should be able to extend the SOAP Processing in the Service or Operations basis. Further more it should be able to model different Message Exchange Patterns using the processing framework.</li>
 	<li>Ability to deploy the Web Services with or without WSDL</li>
 	<li>Provide a Client API that can be used to invoke the Web Services, the API should supports both the Synchronous and Asynchronous programming models.</li>
@@ -87,8 +97,15 @@
 
 
 <h2>SOAP Processing Model</h2>
+<p>Axis2 SOAP processing Model is based on two basic operation a SOAP Message can be undergone, sending and receiving. </p>
+<IMG src="images/archi-guide/soap-processing.gif" width="755" height="348" border="0">
+
+<p>The Architecture identified two basic actions a SOAP Processor should perform, sending and receiving SOAP Messages. The Architecture provides two Pipes (also named as Flows), to do this basic actions, Axis Engine or the Driver of Axis2 define two methods send() and receive() to implement these two Pipes. The two pipes are named as <i>In Pipe</i> and <i>Out Pipe</i>, the complex Message Exchange Patterns are constructed by combining these two Pipes.</p>
+
+<p>When a SOAP Message is send from the Client API, a <i>Out Pipe</i> would begun, the out pipe invoke the Handlers and ends with a Transport Sender that send the SOAP Message to the target endpoint. The SOAP Message is received by a Transport Receiver at the target endpoint, which read the SOAP Message and start  the <i>In Pipe</i>. The In pipe consists of Handler and end with a Message Receiver, which consumed the Message.</p>
+
+<p>The Processing take place for each and every SOAP Message exchanged. Processing that follows the such SOAP Message exchange may decide to give birth for the other SOAP Message in which case the more complex Patterns emerge. But Axis2 always view the SOAP Message in terms of processing of a Single Message where as the combination of the Messages are layered on top of that base.</p>
 
-<p>The Architecture identified a two basic actions a SOAP Processor should do, sending and receiving SOAP Messages. The Architecture provides two Pipes (also named as Flows), to do this basic actions, Axis Engine or the Driver of Axis2 define two methods send() and receive() to implement these two Pipes. The two pipes are named as In Pipe and Out Pipe, the complex Message Exchange Patterns are constructed by combining these two Pipes.</p>
 <p>The two Pipes does not differentiate between the Server and the Client, the SOAP Processing Model Handles the Complexity and provide two abstract pipes to the User.  Each pipes is set of Handlers, the different areas of the Pipes are given names, and according to the Axis2 slang those are named Phases. The Handler is always run inside a Phase, and the Phase provide mechanisum to state the ordering of the Handler. Both Pipes has built in Phases, and both define the areas for User Phases which can be defined by the User.</p>
 
 <p>Following Picture shows the the two Pipes with their pre-defined Phases, the user defined Phases would be fit in to the User Phases.</p>
@@ -107,7 +124,7 @@
 </ol>
 
 <h3>Processing an Incoming SOAP Message</h3>
-<p>Incoming SOAP Message is always received by a Transport Receiver waiting for the SOAP Messages, once the SOAP Message is arrived the transport Headers are parsed and a Message Context is created for the incoming SOAP Message. The the In Pipe is executed with the Message Context. Let us see what would happen at the each Phase of the execution,  this process my happen in either in the server or the Client, there is a special case of using the two way transport where the first four phases in the In-Phase most likely to do nothing.</p>
+<p>Incoming SOAP Message is always received by a Transport Receiver waiting for the SOAP Messages, once the SOAP Message is arrived the transport Headers are parsed and a Message Context is created for the incoming SOAP Message. The the <i>In Pipe</i> is executed with the Message Context. Let us see what would happen at the each Phase of the execution,  this process my happen in either in the server or the Client, there is a special case of using the two way transport where the first four phases in the In-Phase most likely to do nothing.</p>
 
 <ol>
 <li>Transport Phase - The Handlers in the transport Phase are taken from the transport configuration associated, they are executed according to the Phase rules. </li>
@@ -206,6 +223,16 @@
 <li>Transport Handlers</li>
 </ol>
 
+Transport Sender send the SOAP Message over a given transport, each and every transport Out Configuration should define a transport Sender that send the transport. 
+
+Transport Receiver waits for the SOAP Messages and for each SOAP Message that arrives, uses the <l>In Pipe</i> to process the SOAP Message. 
+
+Axis2 Presently support the following transports
+
+<ol><LI>HTTP - The HTTP transport, the transport Listener is a Servelet or a Simple HTTP server provided by Axis2. The transport Sender uses sockets to connect and send the SOAP Message. Current Transport Sender is minimal and does not supports all the options HTTP support.</LI>
+<li>TCP - This is the most simplest transport, but needed the addressing support to be funtional. </li>
+<li>SMTP - This work off a single email account, Transport Receiver is a tread that checks for emails in fixed time intervals.</li>
+</ol>
 
 
 </body>

Added: webservices/axis/trunk/java/xdocs/images/archi-guide/big-picture.gif
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/images/archi-guide/big-picture.gif?rev=180205&view=auto
==============================================================================
Binary file - no diff available.

Propchange: webservices/axis/trunk/java/xdocs/images/archi-guide/big-picture.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: webservices/axis/trunk/java/xdocs/images/archi-guide/soap-processing.gif
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/images/archi-guide/soap-processing.gif?rev=180205&view=auto
==============================================================================
Binary file - no diff available.

Propchange: webservices/axis/trunk/java/xdocs/images/archi-guide/soap-processing.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: webservices/axis/trunk/java/xdocs/images/archi-guide/soap.gif
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/xdocs/images/archi-guide/soap.gif?rev=180205&view=auto
==============================================================================
Binary file - no diff available.

Propchange: webservices/axis/trunk/java/xdocs/images/archi-guide/soap.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream