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/02/14 10:33:24 UTC

svn commit: r153752 [1/2] - in webservices/axis/trunk/java/dev/scratch/perf-suite: ./ axis/ axis/org/ axis/org/apache/ axis/org/apache/axis/ axis/org/apache/axis/sample/ axis/org/apache/axis/sample/echo/ axis2/ axis2/common/ common/

Author: hemapani
Date: Mon Feb 14 01:33:15 2005
New Revision: 153752

URL: http://svn.apache.org/viewcvs?view=rev&rev=153752
Log:
initial check in of the Axis Perf Suite

Added:
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/AxisTest.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/StructArraySampler.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/TeastAxis2.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/Echo.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoService.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoServiceLocator.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingImpl.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingStub.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoStruct.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/deploy.wsdd
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/undeploy.wsdd
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/Axis2Test.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoImpl.java   (with props)
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoProvider.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStruct.java   (with props)
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStructEncoder.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStub.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/StructArraySampler.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/TeastAxis2.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/common/
    webservices/axis/trunk/java/dev/scratch/perf-suite/build.xml
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/Collecter.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/Constants.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/EndToEndTest.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/LoadIncreaseTest.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/LoadTest.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/Sampler.java
    webservices/axis/trunk/java/dev/scratch/perf-suite/common/TestSuite.java

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/AxisTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/AxisTest.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/AxisTest.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/AxisTest.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,35 @@
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.net.URL;
+
+/*
+ * Created on Feb 11, 2005
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+
+/**
+ * @author hemapani
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class AxisTest {
+
+    public static void main(String[] args) throws IOException {
+        Writer writer = new FileWriter("results.txt",true);
+        PrintWriter pw = new PrintWriter(writer);
+        StructArraySampler sampler = new StructArraySampler(new URL(Constants.AXIS2_URL));
+        TestSuite suite = new TestSuite(sampler,pw,"[Client=\"Axis1.2-RC3\" Server=\"Axis2\"] EchoStruct test");
+        suite.runSuite();
+
+        sampler = new StructArraySampler(new URL(Constants.AXIS_URL));
+        suite = new TestSuite(sampler,pw,"[Client=\"Axis1.2-RC3\" Server=\"Axis1.2-RC3\"] EchoStruct test");
+        suite.runSuite();
+
+        writer.close();
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/StructArraySampler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/StructArraySampler.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/StructArraySampler.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/StructArraySampler.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,83 @@
+import java.net.URL;
+
+import org.apache.axis.sample.echo.Echo;
+import org.apache.axis.sample.echo.EchoServiceLocator;
+import org.apache.axis.sample.echo.EchoStruct;
+
+/*
+ * Created on Feb 11, 2005
+ *
+ * To change the template for this generated file go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+
+/**
+ * @author hemapani
+ *
+ * To change the template for this generated type comment go to
+ * Window>Preferences>Java>Code Generation>Code and Comments
+ */
+public class StructArraySampler implements Sampler {
+    
+    private EchoStruct[] objs;
+    private EchoStruct[] results;
+    private Echo stub;
+    private EchoServiceLocator locater;
+    private URL url;
+    
+    public StructArraySampler(URL url){
+        this.url = url;
+        locater = new EchoServiceLocator();
+    }
+
+    public void init(int arraysize) throws Exception {
+        this.objs = new EchoStruct[arraysize];
+        this.stub = locater.getecho(url);
+        for (int i = 0; i < objs.length; i++) {
+            objs[i] = new EchoStruct();
+            objs[i].setValue1("Ruy Lopez" + i);
+            objs[i].setValue2("Kings Gambit" + i);
+            objs[i].setValue3(345);
+            objs[i].setValue4("Kings Indian Defence" + i);
+            objs[i].setValue5("Musio Gambit" + i);
+            objs[i].setValue6("Benko Gambit" + i);
+            objs[i].setValue7("Secillian Defance" + i);
+            objs[i].setValue8("Queens Gambit" + i);
+            objs[i].setValue9("Queens Indian Defense" + i);
+            objs[i].setValue10("Alekine's Defense" + i);
+            objs[i].setValue11("Perc Defense" + i);
+            objs[i].setValue12("Scotch Gambit");
+            objs[i].setValue13("English Opening" + i);
+        }
+
+    }
+
+    /* (non-Javadoc)
+     * @see Sampler#invoke()
+     */
+    public void invoke() throws Exception {
+        results = stub.echoEchoStructArray(objs);
+
+    }
+
+    /* (non-Javadoc)
+     * @see Sampler#end()
+     */
+    public void end() throws Exception {
+
+        for (int i = 0; i < results.length; i++) {
+            if (!results[i].equals(objs[i])) {
+                throw new Exception("Assertion Failed");
+            }
+        }
+
+    }
+    /* (non-Javadoc)
+     * @see Sampler#createCopy()
+     */
+    public Sampler createCopy() {
+        
+        return new StructArraySampler(url);
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/TeastAxis2.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/TeastAxis2.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/TeastAxis2.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/TeastAxis2.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,37 @@
+import java.net.URL;
+
+/*
+ * Created on Feb 11, 2005
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+
+/**
+ * @author hemapani
+ *
+ * To change the template for this generated type comment go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+public class TeastAxis2 {
+
+    public static void main(String[] args) throws Exception {
+        StructArraySampler sampler =
+            new StructArraySampler(new URL(Constants.AXIS2_URL));
+        long start;
+        long end;
+        sampler.init(1);
+        start = System.currentTimeMillis();
+        sampler.invoke();
+        end = System.currentTimeMillis();
+        sampler.end();
+
+        sampler = new StructArraySampler(new URL(Constants.AXIS2_URL));
+        sampler.init(10);
+        start = System.currentTimeMillis();
+        sampler.invoke();
+        end = System.currentTimeMillis();
+        sampler.end();
+
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/Echo.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/Echo.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/Echo.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/Echo.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,15 @@
+/**
+ * Echo.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+package org.apache.axis.sample.echo;
+
+public interface Echo extends java.rmi.Remote {
+    public java.lang.String echoString(java.lang.String in) throws java.rmi.RemoteException;
+    public java.lang.String[] echoStringArray(java.lang.String[] in) throws java.rmi.RemoteException;
+    public org.apache.axis.sample.echo.EchoStruct echoEchoStruct(org.apache.axis.sample.echo.EchoStruct in) throws java.rmi.RemoteException;
+    public org.apache.axis.sample.echo.EchoStruct[] echoEchoStructArray(org.apache.axis.sample.echo.EchoStruct[] in) throws java.rmi.RemoteException;
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoService.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoService.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoService.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoService.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,16 @@
+/**
+ * EchoService.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+package org.apache.axis.sample.echo;
+
+public interface EchoService extends javax.xml.rpc.Service {
+    public java.lang.String getechoAddress();
+
+    public org.apache.axis.sample.echo.Echo getecho() throws javax.xml.rpc.ServiceException;
+
+    public org.apache.axis.sample.echo.Echo getecho(java.net.URL portAddress) throws javax.xml.rpc.ServiceException;
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoServiceLocator.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoServiceLocator.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoServiceLocator.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoServiceLocator.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,128 @@
+/**
+ * EchoServiceLocator.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+package org.apache.axis.sample.echo;
+
+public class EchoServiceLocator extends org.apache.axis.client.Service implements org.apache.axis.sample.echo.EchoService {
+
+    // Use to get a proxy class for echo
+    private java.lang.String echo_address = "http://localhost:8080/axis/services/echo";
+
+    public java.lang.String getechoAddress() {
+        return echo_address;
+    }
+
+    // The WSDD service name defaults to the port name.
+    private java.lang.String echoWSDDServiceName = "echo";
+
+    public java.lang.String getechoWSDDServiceName() {
+        return echoWSDDServiceName;
+    }
+
+    public void setechoWSDDServiceName(java.lang.String name) {
+        echoWSDDServiceName = name;
+    }
+
+    public org.apache.axis.sample.echo.Echo getecho() throws javax.xml.rpc.ServiceException {
+       java.net.URL endpoint;
+        try {
+            endpoint = new java.net.URL(echo_address);
+        }
+        catch (java.net.MalformedURLException e) {
+            throw new javax.xml.rpc.ServiceException(e);
+        }
+        return getecho(endpoint);
+    }
+
+    public org.apache.axis.sample.echo.Echo getecho(java.net.URL portAddress) throws javax.xml.rpc.ServiceException {
+        try {
+            org.apache.axis.sample.echo.EchoSoapBindingStub _stub = new org.apache.axis.sample.echo.EchoSoapBindingStub(portAddress, this);
+            _stub.setPortName(getechoWSDDServiceName());
+            return _stub;
+        }
+        catch (org.apache.axis.AxisFault e) {
+            return null;
+        }
+    }
+
+    public void setechoEndpointAddress(java.lang.String address) {
+        echo_address = address;
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     */
+    public java.rmi.Remote getPort(Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        try {
+            if (org.apache.axis.sample.echo.Echo.class.isAssignableFrom(serviceEndpointInterface)) {
+                org.apache.axis.sample.echo.EchoSoapBindingStub _stub = new org.apache.axis.sample.echo.EchoSoapBindingStub(new java.net.URL(echo_address), this);
+                _stub.setPortName(getechoWSDDServiceName());
+                return _stub;
+            }
+        }
+        catch (java.lang.Throwable t) {
+            throw new javax.xml.rpc.ServiceException(t);
+        }
+        throw new javax.xml.rpc.ServiceException("There is no stub implementation for the interface:  " + (serviceEndpointInterface == null ? "null" : serviceEndpointInterface.getName()));
+    }
+
+    /**
+     * For the given interface, get the stub implementation.
+     * If this service has no port for the given interface,
+     * then ServiceException is thrown.
+     */
+    public java.rmi.Remote getPort(javax.xml.namespace.QName portName, Class serviceEndpointInterface) throws javax.xml.rpc.ServiceException {
+        if (portName == null) {
+            return getPort(serviceEndpointInterface);
+        }
+        java.lang.String inputPortName = portName.getLocalPart();
+        if ("echo".equals(inputPortName)) {
+            return getecho();
+        }
+        else  {
+            java.rmi.Remote _stub = getPort(serviceEndpointInterface);
+            ((org.apache.axis.client.Stub) _stub).setPortName(portName);
+            return _stub;
+        }
+    }
+
+    public javax.xml.namespace.QName getServiceName() {
+        return new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "EchoService");
+    }
+
+    private java.util.HashSet ports = null;
+
+    public java.util.Iterator getPorts() {
+        if (ports == null) {
+            ports = new java.util.HashSet();
+            ports.add(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "echo"));
+        }
+        return ports.iterator();
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(java.lang.String portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        if ("echo".equals(portName)) {
+            setechoEndpointAddress(address);
+        }
+        else { // Unknown Port Name
+            throw new javax.xml.rpc.ServiceException(" Cannot set Endpoint Address for Unknown Port" + portName);
+        }
+    }
+
+    /**
+    * Set the endpoint address for the specified port name.
+    */
+    public void setEndpointAddress(javax.xml.namespace.QName portName, java.lang.String address) throws javax.xml.rpc.ServiceException {
+        setEndpointAddress(portName.getLocalPart(), address);
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingImpl.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingImpl.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingImpl.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,27 @@
+/**
+ * EchoSoapBindingImpl.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+package org.apache.axis.sample.echo;
+
+public class EchoSoapBindingImpl implements org.apache.axis.sample.echo.Echo{
+    public java.lang.String echoString(java.lang.String in) throws java.rmi.RemoteException {
+        return in;
+    }
+
+    public java.lang.String[] echoStringArray(java.lang.String[] in) throws java.rmi.RemoteException {
+        return in;
+    }
+
+    public org.apache.axis.sample.echo.EchoStruct echoEchoStruct(org.apache.axis.sample.echo.EchoStruct in) throws java.rmi.RemoteException {
+        return in;
+    }
+
+    public org.apache.axis.sample.echo.EchoStruct[] echoEchoStructArray(org.apache.axis.sample.echo.EchoStruct[] in) throws java.rmi.RemoteException {
+        return in;
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingStub.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingStub.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingStub.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoSoapBindingStub.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,286 @@
+/**
+ * EchoSoapBindingStub.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+package org.apache.axis.sample.echo;
+
+public class EchoSoapBindingStub extends org.apache.axis.client.Stub implements org.apache.axis.sample.echo.Echo {
+    private java.util.Vector cachedSerClasses = new java.util.Vector();
+    private java.util.Vector cachedSerQNames = new java.util.Vector();
+    private java.util.Vector cachedSerFactories = new java.util.Vector();
+    private java.util.Vector cachedDeserFactories = new java.util.Vector();
+
+    static org.apache.axis.description.OperationDesc [] _operations;
+
+    static {
+        _operations = new org.apache.axis.description.OperationDesc[4];
+        _initOperationDesc1();
+    }
+
+    private static void _initOperationDesc1(){
+        org.apache.axis.description.OperationDesc oper;
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("echoString");
+        oper.addParameter(new javax.xml.namespace.QName("", "in"), new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, org.apache.axis.description.ParameterDesc.IN, false, false);
+        oper.setReturnType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        oper.setReturnClass(java.lang.String.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("", "echoStringReturn"));
+        oper.setStyle(org.apache.axis.enum.Style.RPC);
+        oper.setUse(org.apache.axis.enum.Use.ENCODED);
+        _operations[0] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("echoStringArray");
+        oper.addParameter(new javax.xml.namespace.QName("", "in"), new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "ArrayOf_xsd_string"), java.lang.String[].class, org.apache.axis.description.ParameterDesc.IN, false, false);
+        oper.setReturnType(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "ArrayOf_xsd_string"));
+        oper.setReturnClass(java.lang.String[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("", "echoStringArrayReturn"));
+        oper.setStyle(org.apache.axis.enum.Style.RPC);
+        oper.setUse(org.apache.axis.enum.Use.ENCODED);
+        _operations[1] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("echoEchoStruct");
+        oper.addParameter(new javax.xml.namespace.QName("", "in"), new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "EchoStruct"), org.apache.axis.sample.echo.EchoStruct.class, org.apache.axis.description.ParameterDesc.IN, false, false);
+        oper.setReturnType(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "EchoStruct"));
+        oper.setReturnClass(org.apache.axis.sample.echo.EchoStruct.class);
+        oper.setReturnQName(new javax.xml.namespace.QName("", "echoEchoStructReturn"));
+        oper.setStyle(org.apache.axis.enum.Style.RPC);
+        oper.setUse(org.apache.axis.enum.Use.ENCODED);
+        _operations[2] = oper;
+
+        oper = new org.apache.axis.description.OperationDesc();
+        oper.setName("echoEchoStructArray");
+        oper.addParameter(new javax.xml.namespace.QName("", "in"), new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "ArrayOfEchoStruct"), org.apache.axis.sample.echo.EchoStruct[].class, org.apache.axis.description.ParameterDesc.IN, false, false);
+        oper.setReturnType(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "ArrayOfEchoStruct"));
+        oper.setReturnClass(org.apache.axis.sample.echo.EchoStruct[].class);
+        oper.setReturnQName(new javax.xml.namespace.QName("", "echoEchoStructArrayReturn"));
+        oper.setStyle(org.apache.axis.enum.Style.RPC);
+        oper.setUse(org.apache.axis.enum.Use.ENCODED);
+        _operations[3] = oper;
+
+    }
+
+    public EchoSoapBindingStub() throws org.apache.axis.AxisFault {
+         this(null);
+    }
+
+    public EchoSoapBindingStub(java.net.URL endpointURL, javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+         this(service);
+         super.cachedEndpoint = endpointURL;
+    }
+
+    public EchoSoapBindingStub(javax.xml.rpc.Service service) throws org.apache.axis.AxisFault {
+        if (service == null) {
+            super.service = new org.apache.axis.client.Service();
+        } else {
+            super.service = service;
+        }
+            java.lang.Class cls;
+            javax.xml.namespace.QName qName;
+            java.lang.Class beansf = org.apache.axis.encoding.ser.BeanSerializerFactory.class;
+            java.lang.Class beandf = org.apache.axis.encoding.ser.BeanDeserializerFactory.class;
+            java.lang.Class enumsf = org.apache.axis.encoding.ser.EnumSerializerFactory.class;
+            java.lang.Class enumdf = org.apache.axis.encoding.ser.EnumDeserializerFactory.class;
+            java.lang.Class arraysf = org.apache.axis.encoding.ser.ArraySerializerFactory.class;
+            java.lang.Class arraydf = org.apache.axis.encoding.ser.ArrayDeserializerFactory.class;
+            java.lang.Class simplesf = org.apache.axis.encoding.ser.SimpleSerializerFactory.class;
+            java.lang.Class simpledf = org.apache.axis.encoding.ser.SimpleDeserializerFactory.class;
+            java.lang.Class simplelistsf = org.apache.axis.encoding.ser.SimpleListSerializerFactory.class;
+            java.lang.Class simplelistdf = org.apache.axis.encoding.ser.SimpleListDeserializerFactory.class;
+            qName = new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "ArrayOf_xsd_string");
+            cachedSerQNames.add(qName);
+            cls = java.lang.String[].class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(arraysf);
+            cachedDeserFactories.add(arraydf);
+
+            qName = new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "ArrayOfEchoStruct");
+            cachedSerQNames.add(qName);
+            cls = org.apache.axis.sample.echo.EchoStruct[].class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(arraysf);
+            cachedDeserFactories.add(arraydf);
+
+            qName = new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "EchoStruct");
+            cachedSerQNames.add(qName);
+            cls = org.apache.axis.sample.echo.EchoStruct.class;
+            cachedSerClasses.add(cls);
+            cachedSerFactories.add(beansf);
+            cachedDeserFactories.add(beandf);
+
+    }
+
+    private org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
+        try {
+            org.apache.axis.client.Call _call =
+                    (org.apache.axis.client.Call) super.service.createCall();
+			_call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
+            if (super.maintainSessionSet) {
+                _call.setMaintainSession(super.maintainSession);
+            }
+            if (super.cachedUsername != null) {
+                _call.setUsername(super.cachedUsername);
+            }
+            if (super.cachedPassword != null) {
+                _call.setPassword(super.cachedPassword);
+            }
+            if (super.cachedEndpoint != null) {
+                _call.setTargetEndpointAddress(super.cachedEndpoint);
+            }
+            if (super.cachedTimeout != null) {
+                _call.setTimeout(super.cachedTimeout);
+            }
+            if (super.cachedPortName != null) {
+                _call.setPortName(super.cachedPortName);
+            }
+            java.util.Enumeration keys = super.cachedProperties.keys();
+            while (keys.hasMoreElements()) {
+                java.lang.String key = (java.lang.String) keys.nextElement();
+                _call.setProperty(key, super.cachedProperties.get(key));
+            }
+            // All the type mapping information is registered
+            // when the first call is made.
+            // The type mapping information is actually registered in
+            // the TypeMappingRegistry of the service, which
+            // is the reason why registration is only needed for the first call.
+            synchronized (this) {
+                if (firstCall()) {
+                    // must set encoding style before registering serializers
+                    _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+                    _call.setEncodingStyle(org.apache.axis.Constants.URI_SOAP11_ENC);
+                    for (int i = 0; i < cachedSerFactories.size(); ++i) {
+                        java.lang.Class cls = (java.lang.Class) cachedSerClasses.get(i);
+                        javax.xml.namespace.QName qName =
+                                (javax.xml.namespace.QName) cachedSerQNames.get(i);
+                        java.lang.Class sf = (java.lang.Class)
+                                 cachedSerFactories.get(i);
+                        java.lang.Class df = (java.lang.Class)
+                                 cachedDeserFactories.get(i);
+                        _call.registerTypeMapping(cls, qName, sf, df, false);
+                    }
+                }
+            }
+            return _call;
+        }
+        catch (java.lang.Throwable _t) {
+            throw new org.apache.axis.AxisFault("Failure trying to get the Call object", _t);
+        }
+    }
+
+    public java.lang.String echoString(java.lang.String in) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[0]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("");
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "echoString"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String.class);
+            }
+        }
+    }
+
+    public java.lang.String[] echoStringArray(java.lang.String[] in) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[1]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("");
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "echoStringArray"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (java.lang.String[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (java.lang.String[]) org.apache.axis.utils.JavaUtils.convert(_resp, java.lang.String[].class);
+            }
+        }
+    }
+
+    public org.apache.axis.sample.echo.EchoStruct echoEchoStruct(org.apache.axis.sample.echo.EchoStruct in) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[2]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("");
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "echoEchoStruct"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (org.apache.axis.sample.echo.EchoStruct) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (org.apache.axis.sample.echo.EchoStruct) org.apache.axis.utils.JavaUtils.convert(_resp, org.apache.axis.sample.echo.EchoStruct.class);
+            }
+        }
+    }
+
+    public org.apache.axis.sample.echo.EchoStruct[] echoEchoStructArray(org.apache.axis.sample.echo.EchoStruct[] in) throws java.rmi.RemoteException {
+        if (super.cachedEndpoint == null) {
+            throw new org.apache.axis.NoEndPointException();
+        }
+        org.apache.axis.client.Call _call = createCall();
+        _call.setOperation(_operations[3]);
+        _call.setUseSOAPAction(true);
+        _call.setSOAPActionURI("");
+        _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP11_CONSTANTS);
+        _call.setOperationName(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "echoEchoStructArray"));
+
+        setRequestHeaders(_call);
+        setAttachments(_call);
+        java.lang.Object _resp = _call.invoke(new java.lang.Object[] {in});
+
+        if (_resp instanceof java.rmi.RemoteException) {
+            throw (java.rmi.RemoteException)_resp;
+        }
+        else {
+            extractAttachments(_call);
+            try {
+                return (org.apache.axis.sample.echo.EchoStruct[]) _resp;
+            } catch (java.lang.Exception _exception) {
+                return (org.apache.axis.sample.echo.EchoStruct[]) org.apache.axis.utils.JavaUtils.convert(_resp, org.apache.axis.sample.echo.EchoStruct[].class);
+            }
+        }
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoStruct.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoStruct.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoStruct.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/EchoStruct.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,522 @@
+/**
+ * EchoStruct.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+package org.apache.axis.sample.echo;
+
+public class EchoStruct  implements java.io.Serializable {
+    private java.lang.String value13;
+    private java.lang.String value7;
+    private java.lang.String value2;
+    private java.lang.String value10;
+    private java.lang.String value12;
+    private java.lang.String value5;
+    private java.lang.String value6;
+    private java.lang.String value9;
+    private java.lang.String value1;
+    private java.lang.String value11;
+    private java.lang.String value4;
+    private java.lang.String value8;
+    private int value3;
+
+    public EchoStruct() {
+    }
+
+    public EchoStruct(
+           java.lang.String value13,
+           java.lang.String value7,
+           java.lang.String value2,
+           java.lang.String value10,
+           java.lang.String value12,
+           java.lang.String value5,
+           java.lang.String value6,
+           java.lang.String value9,
+           java.lang.String value1,
+           java.lang.String value11,
+           java.lang.String value4,
+           java.lang.String value8,
+           int value3) {
+           this.value13 = value13;
+           this.value7 = value7;
+           this.value2 = value2;
+           this.value10 = value10;
+           this.value12 = value12;
+           this.value5 = value5;
+           this.value6 = value6;
+           this.value9 = value9;
+           this.value1 = value1;
+           this.value11 = value11;
+           this.value4 = value4;
+           this.value8 = value8;
+           this.value3 = value3;
+    }
+
+
+    /**
+     * Gets the value13 value for this EchoStruct.
+     * 
+     * @return value13
+     */
+    public java.lang.String getValue13() {
+        return value13;
+    }
+
+
+    /**
+     * Sets the value13 value for this EchoStruct.
+     * 
+     * @param value13
+     */
+    public void setValue13(java.lang.String value13) {
+        this.value13 = value13;
+    }
+
+
+    /**
+     * Gets the value7 value for this EchoStruct.
+     * 
+     * @return value7
+     */
+    public java.lang.String getValue7() {
+        return value7;
+    }
+
+
+    /**
+     * Sets the value7 value for this EchoStruct.
+     * 
+     * @param value7
+     */
+    public void setValue7(java.lang.String value7) {
+        this.value7 = value7;
+    }
+
+
+    /**
+     * Gets the value2 value for this EchoStruct.
+     * 
+     * @return value2
+     */
+    public java.lang.String getValue2() {
+        return value2;
+    }
+
+
+    /**
+     * Sets the value2 value for this EchoStruct.
+     * 
+     * @param value2
+     */
+    public void setValue2(java.lang.String value2) {
+        this.value2 = value2;
+    }
+
+
+    /**
+     * Gets the value10 value for this EchoStruct.
+     * 
+     * @return value10
+     */
+    public java.lang.String getValue10() {
+        return value10;
+    }
+
+
+    /**
+     * Sets the value10 value for this EchoStruct.
+     * 
+     * @param value10
+     */
+    public void setValue10(java.lang.String value10) {
+        this.value10 = value10;
+    }
+
+
+    /**
+     * Gets the value12 value for this EchoStruct.
+     * 
+     * @return value12
+     */
+    public java.lang.String getValue12() {
+        return value12;
+    }
+
+
+    /**
+     * Sets the value12 value for this EchoStruct.
+     * 
+     * @param value12
+     */
+    public void setValue12(java.lang.String value12) {
+        this.value12 = value12;
+    }
+
+
+    /**
+     * Gets the value5 value for this EchoStruct.
+     * 
+     * @return value5
+     */
+    public java.lang.String getValue5() {
+        return value5;
+    }
+
+
+    /**
+     * Sets the value5 value for this EchoStruct.
+     * 
+     * @param value5
+     */
+    public void setValue5(java.lang.String value5) {
+        this.value5 = value5;
+    }
+
+
+    /**
+     * Gets the value6 value for this EchoStruct.
+     * 
+     * @return value6
+     */
+    public java.lang.String getValue6() {
+        return value6;
+    }
+
+
+    /**
+     * Sets the value6 value for this EchoStruct.
+     * 
+     * @param value6
+     */
+    public void setValue6(java.lang.String value6) {
+        this.value6 = value6;
+    }
+
+
+    /**
+     * Gets the value9 value for this EchoStruct.
+     * 
+     * @return value9
+     */
+    public java.lang.String getValue9() {
+        return value9;
+    }
+
+
+    /**
+     * Sets the value9 value for this EchoStruct.
+     * 
+     * @param value9
+     */
+    public void setValue9(java.lang.String value9) {
+        this.value9 = value9;
+    }
+
+
+    /**
+     * Gets the value1 value for this EchoStruct.
+     * 
+     * @return value1
+     */
+    public java.lang.String getValue1() {
+        return value1;
+    }
+
+
+    /**
+     * Sets the value1 value for this EchoStruct.
+     * 
+     * @param value1
+     */
+    public void setValue1(java.lang.String value1) {
+        this.value1 = value1;
+    }
+
+
+    /**
+     * Gets the value11 value for this EchoStruct.
+     * 
+     * @return value11
+     */
+    public java.lang.String getValue11() {
+        return value11;
+    }
+
+
+    /**
+     * Sets the value11 value for this EchoStruct.
+     * 
+     * @param value11
+     */
+    public void setValue11(java.lang.String value11) {
+        this.value11 = value11;
+    }
+
+
+    /**
+     * Gets the value4 value for this EchoStruct.
+     * 
+     * @return value4
+     */
+    public java.lang.String getValue4() {
+        return value4;
+    }
+
+
+    /**
+     * Sets the value4 value for this EchoStruct.
+     * 
+     * @param value4
+     */
+    public void setValue4(java.lang.String value4) {
+        this.value4 = value4;
+    }
+
+
+    /**
+     * Gets the value8 value for this EchoStruct.
+     * 
+     * @return value8
+     */
+    public java.lang.String getValue8() {
+        return value8;
+    }
+
+
+    /**
+     * Sets the value8 value for this EchoStruct.
+     * 
+     * @param value8
+     */
+    public void setValue8(java.lang.String value8) {
+        this.value8 = value8;
+    }
+
+
+    /**
+     * Gets the value3 value for this EchoStruct.
+     * 
+     * @return value3
+     */
+    public int getValue3() {
+        return value3;
+    }
+
+
+    /**
+     * Sets the value3 value for this EchoStruct.
+     * 
+     * @param value3
+     */
+    public void setValue3(int value3) {
+        this.value3 = value3;
+    }
+
+    private java.lang.Object __equalsCalc = null;
+    public synchronized boolean equals(java.lang.Object obj) {
+        if (!(obj instanceof EchoStruct)) return false;
+        EchoStruct other = (EchoStruct) obj;
+        if (obj == null) return false;
+        if (this == obj) return true;
+        if (__equalsCalc != null) {
+            return (__equalsCalc == obj);
+        }
+        __equalsCalc = obj;
+        boolean _equals;
+        _equals = true && 
+            ((this.value13==null && other.getValue13()==null) || 
+             (this.value13!=null &&
+              this.value13.equals(other.getValue13()))) &&
+            ((this.value7==null && other.getValue7()==null) || 
+             (this.value7!=null &&
+              this.value7.equals(other.getValue7()))) &&
+            ((this.value2==null && other.getValue2()==null) || 
+             (this.value2!=null &&
+              this.value2.equals(other.getValue2()))) &&
+            ((this.value10==null && other.getValue10()==null) || 
+             (this.value10!=null &&
+              this.value10.equals(other.getValue10()))) &&
+            ((this.value12==null && other.getValue12()==null) || 
+             (this.value12!=null &&
+              this.value12.equals(other.getValue12()))) &&
+            ((this.value5==null && other.getValue5()==null) || 
+             (this.value5!=null &&
+              this.value5.equals(other.getValue5()))) &&
+            ((this.value6==null && other.getValue6()==null) || 
+             (this.value6!=null &&
+              this.value6.equals(other.getValue6()))) &&
+            ((this.value9==null && other.getValue9()==null) || 
+             (this.value9!=null &&
+              this.value9.equals(other.getValue9()))) &&
+            ((this.value1==null && other.getValue1()==null) || 
+             (this.value1!=null &&
+              this.value1.equals(other.getValue1()))) &&
+            ((this.value11==null && other.getValue11()==null) || 
+             (this.value11!=null &&
+              this.value11.equals(other.getValue11()))) &&
+            ((this.value4==null && other.getValue4()==null) || 
+             (this.value4!=null &&
+              this.value4.equals(other.getValue4()))) &&
+            ((this.value8==null && other.getValue8()==null) || 
+             (this.value8!=null &&
+              this.value8.equals(other.getValue8()))) &&
+            this.value3 == other.getValue3();
+        __equalsCalc = null;
+        return _equals;
+    }
+
+    private boolean __hashCodeCalc = false;
+    public synchronized int hashCode() {
+        if (__hashCodeCalc) {
+            return 0;
+        }
+        __hashCodeCalc = true;
+        int _hashCode = 1;
+        if (getValue13() != null) {
+            _hashCode += getValue13().hashCode();
+        }
+        if (getValue7() != null) {
+            _hashCode += getValue7().hashCode();
+        }
+        if (getValue2() != null) {
+            _hashCode += getValue2().hashCode();
+        }
+        if (getValue10() != null) {
+            _hashCode += getValue10().hashCode();
+        }
+        if (getValue12() != null) {
+            _hashCode += getValue12().hashCode();
+        }
+        if (getValue5() != null) {
+            _hashCode += getValue5().hashCode();
+        }
+        if (getValue6() != null) {
+            _hashCode += getValue6().hashCode();
+        }
+        if (getValue9() != null) {
+            _hashCode += getValue9().hashCode();
+        }
+        if (getValue1() != null) {
+            _hashCode += getValue1().hashCode();
+        }
+        if (getValue11() != null) {
+            _hashCode += getValue11().hashCode();
+        }
+        if (getValue4() != null) {
+            _hashCode += getValue4().hashCode();
+        }
+        if (getValue8() != null) {
+            _hashCode += getValue8().hashCode();
+        }
+        _hashCode += getValue3();
+        __hashCodeCalc = false;
+        return _hashCode;
+    }
+
+    // Type metadata
+    private static org.apache.axis.description.TypeDesc typeDesc =
+        new org.apache.axis.description.TypeDesc(EchoStruct.class, true);
+
+    static {
+        typeDesc.setXmlType(new javax.xml.namespace.QName("http://axis.apache.org/sample/echo", "EchoStruct"));
+        org.apache.axis.description.ElementDesc elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value13");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value13"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value7");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value7"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value2");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value2"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value10");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value10"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value12");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value12"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value5");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value5"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value6");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value6"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value9");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value9"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value1");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value1"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value11");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value11"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value4");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value4"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value8");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value8"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"));
+        typeDesc.addFieldDesc(elemField);
+        elemField = new org.apache.axis.description.ElementDesc();
+        elemField.setFieldName("value3");
+        elemField.setXmlName(new javax.xml.namespace.QName("", "value3"));
+        elemField.setXmlType(new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "int"));
+        typeDesc.addFieldDesc(elemField);
+    }
+
+    /**
+     * Return type metadata object
+     */
+    public static org.apache.axis.description.TypeDesc getTypeDesc() {
+        return typeDesc;
+    }
+
+    /**
+     * Get Custom Serializer
+     */
+    public static org.apache.axis.encoding.Serializer getSerializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanSerializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+    /**
+     * Get Custom Deserializer
+     */
+    public static org.apache.axis.encoding.Deserializer getDeserializer(
+           java.lang.String mechType, 
+           java.lang.Class _javaType,  
+           javax.xml.namespace.QName _xmlType) {
+        return 
+          new  org.apache.axis.encoding.ser.BeanDeserializer(
+            _javaType, _xmlType, typeDesc);
+    }
+
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/deploy.wsdd
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/deploy.wsdd?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/deploy.wsdd (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/deploy.wsdd Mon Feb 14 01:33:15 2005
@@ -0,0 +1,60 @@
+<!-- Use this file to deploy some handlers/chains and services      -->
+<!-- Two ways to do this:                                           -->
+<!--   java org.apache.axis.client.AdminClient deploy.wsdd          -->
+<!--      after the axis server is running                          -->
+<!-- or                                                             -->
+<!--   java org.apache.axis.utils.Admin client|server deploy.wsdd   -->
+<!--      from the same directory that the Axis engine runs         -->
+
+<deployment
+    xmlns="http://xml.apache.org/axis/wsdd/"
+    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
+
+  <!-- Services from EchoService WSDL service -->
+
+  <service name="echo" provider="java:RPC" style="rpc" use="encoded">
+      <parameter name="wsdlTargetNamespace" value="http://axis.apache.org/sample/echo"/>
+      <parameter name="wsdlServiceElement" value="EchoService"/>
+      <parameter name="wsdlServicePort" value="echo"/>
+      <parameter name="className" value="org.apache.axis.sample.echo.EchoSoapBindingImpl"/>
+      <parameter name="wsdlPortType" value="Echo"/>
+      <operation name="echoString" qname="operNS:echoString" xmlns:operNS="http://axis.apache.org/sample/echo" returnQName="echoStringReturn" returnType="rtns:string" xmlns:rtns="http://www.w3.org/2001/XMLSchema" soapAction="" >
+        <parameter qname="in" type="tns:string" xmlns:tns="http://www.w3.org/2001/XMLSchema"/>
+      </operation>
+      <operation name="echoStringArray" qname="operNS:echoStringArray" xmlns:operNS="http://axis.apache.org/sample/echo" returnQName="echoStringArrayReturn" returnType="rtns:ArrayOf_xsd_string" xmlns:rtns="http://axis.apache.org/sample/echo" soapAction="" >
+        <parameter qname="in" type="tns:ArrayOf_xsd_string" xmlns:tns="http://axis.apache.org/sample/echo"/>
+      </operation>
+      <operation name="echoEchoStruct" qname="operNS:echoEchoStruct" xmlns:operNS="http://axis.apache.org/sample/echo" returnQName="echoEchoStructReturn" returnType="rtns:EchoStruct" xmlns:rtns="http://axis.apache.org/sample/echo" soapAction="" >
+        <parameter qname="in" type="tns:EchoStruct" xmlns:tns="http://axis.apache.org/sample/echo"/>
+      </operation>
+      <operation name="echoEchoStructArray" qname="operNS:echoEchoStructArray" xmlns:operNS="http://axis.apache.org/sample/echo" returnQName="echoEchoStructArrayReturn" returnType="rtns:ArrayOfEchoStruct" xmlns:rtns="http://axis.apache.org/sample/echo" soapAction="" >
+        <parameter qname="in" type="tns:ArrayOfEchoStruct" xmlns:tns="http://axis.apache.org/sample/echo"/>
+      </operation>
+      <parameter name="allowedMethods" value="echoEchoStructArray echoStringArray echoEchoStruct echoString"/>
+
+      <typeMapping
+        xmlns:ns="http://axis.apache.org/sample/echo"
+        qname="ns:ArrayOf_xsd_string"
+        type="java:java.lang.String[]"
+        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
+        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
+        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+      />
+      <typeMapping
+        xmlns:ns="http://axis.apache.org/sample/echo"
+        qname="ns:ArrayOfEchoStruct"
+        type="java:org.apache.axis.sample.echo.EchoStruct[]"
+        serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
+        deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
+        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+      />
+      <typeMapping
+        xmlns:ns="http://axis.apache.org/sample/echo"
+        qname="ns:EchoStruct"
+        type="java:org.apache.axis.sample.echo.EchoStruct"
+        serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
+        deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
+        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+      />
+  </service>
+</deployment>

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/undeploy.wsdd
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/undeploy.wsdd?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/undeploy.wsdd (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis/org/apache/axis/sample/echo/undeploy.wsdd Mon Feb 14 01:33:15 2005
@@ -0,0 +1,15 @@
+<!-- Use this file to undeploy some handlers/chains and services    -->
+<!-- Two ways to do this:                                           -->
+<!--   java org.apache.axis.client.AdminClient undeploy.wsdd        -->
+<!--      after the axis server is running                          -->
+<!-- or                                                             -->
+<!--   java org.apache.axis.utils.Admin client|server undeploy.wsdd -->
+<!--      from the same directory that the Axis engine runs         -->
+
+<undeployment
+    xmlns="http://xml.apache.org/axis/wsdd/">
+
+  <!-- Services from EchoService WSDL service -->
+
+  <service name="echo"/>
+</undeployment>

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/Axis2Test.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/Axis2Test.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/Axis2Test.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/Axis2Test.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,35 @@
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.net.URL;
+
+/*
+ * Created on Feb 11, 2005
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+
+/**
+ * @author hemapani
+ *
+ * To change the template for this generated type comment go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+public class Axis2Test {
+
+    public static void main(String[] args) throws IOException {
+        Writer writer = new FileWriter("results.txt",true);
+        PrintWriter pw = new PrintWriter(writer);
+        StructArraySampler sampler = new StructArraySampler(new URL(Constants.AXIS2_URL));
+        TestSuite suite = new TestSuite(sampler,pw,"[Client=\"Axis2\" Server=\"Axis2\"]EchoStruct test");
+        suite.runSuite();
+
+//        sampler = new StructArraySampler(new URL(Constants.AXIS_URL));
+//        suite = new TestSuite(sampler,pw,"[Client=\"Axis2\" Server=\"Axis1.2-RC3\"]EchoStruct test");
+//        suite.runSuite();
+
+        writer.close();
+    }
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoImpl.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoImpl.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoImpl.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,24 @@
+/**
+ * Echo.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+public class EchoImpl {
+	public EchoImpl(){}
+	public java.lang.String echoString(java.lang.String in) {
+		return in;
+	}
+	public java.lang.String[] echoStringArray(java.lang.String[] in) {
+		return in;
+	}
+	public EchoStruct echoEchoStruct(
+		EchoStruct in) {
+		return in;
+	}
+	public EchoStruct[] echoEchoStructArray(
+		EchoStruct[] in) {
+		return in;
+	}
+}

Propchange: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoImpl.java
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoProvider.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoProvider.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoProvider.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoProvider.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,166 @@
+/*
+ * Created on Jan 29, 2005
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+import java.lang.reflect.Method;
+
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.description.AxisOperation;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.om.OMConstants;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.SOAPEnvelope;
+import org.apache.axis.testUtils.ArrayTypeEncoder;
+import org.apache.axis.testUtils.Encoder;
+import org.apache.axis.testUtils.ObjectToOMBuilder;
+import org.apache.axis.testUtils.SimpleJavaProvider;
+import org.apache.axis.testUtils.SimpleTypeEncoder;
+import org.apache.axis.testUtils.SimpleTypeEncodingUtils;
+
+public class EchoProvider extends SimpleJavaProvider {
+
+    public Object[] deserializeParameters(
+      MessageContext msgContext,
+      Method method)
+      throws AxisFault {
+      //   org.TimeRecorder.BEFORE_DESERALIZE = System.currentTimeMillis();
+      XMLStreamReader xpp =
+          msgContext.getSoapOperationElement().getPullParser(true);
+		Class[] parms = method.getParameterTypes();
+		Object[] objs = new Object[parms.length];
+		
+		try {
+			int event = xpp.next();
+			while (XMLStreamConstants.START_ELEMENT != event
+				&& XMLStreamConstants.END_ELEMENT != event) {
+				event = xpp.next();
+			}
+            //now we are at the opearion element event 
+            event = xpp.next();
+            while (XMLStreamConstants.START_ELEMENT != event
+                && XMLStreamConstants.END_ELEMENT != event) {
+                event = xpp.next();
+            }
+        //          now we are at the parameter element event 
+            
+			if (XMLStreamConstants.END_ELEMENT == event) {
+				return null;
+			} else {
+				for (int i = 0; i < parms.length; i++) {
+					if (int.class.equals(parms[i])) {
+						objs[i] =
+							new Integer(
+								SimpleTypeEncodingUtils.deserializeInt(xpp));
+					} else if (String.class.equals(parms[i])) {
+						objs[i] =
+							SimpleTypeEncodingUtils.deserializeString(xpp);
+					} else if (String[].class.equals(parms[i])) {
+						objs[i] =
+							SimpleTypeEncodingUtils.deserializeStringArray(xpp);
+					} else if (EchoStruct.class.equals(parms[i])) {
+						Encoder en = new EchoStructEncoder(null);
+						objs[i] = en.deSerialize(xpp);
+					} else if (EchoStruct[].class.equals(parms[i])) {
+                        Encoder encoder = new ArrayTypeEncoder(new EchoStructEncoder(null));
+						objs[i] = encoder.deSerialize(xpp);
+					} else {
+						throw new UnsupportedOperationException("Only int,String and String[] is supported yet");
+					}
+				}
+				return objs;
+
+			}
+		} catch (Exception e) {
+			throw new AxisFault("Exception",e);
+		}
+	}
+
+	public MessageContext invoke(MessageContext msgContext) throws AxisFault {
+		try {
+			//get the implementation class for the Web Service 
+			Object obj = getTheImplementationObject(msgContext);
+			
+			//find the WebService method  
+			Class ImplClass = obj.getClass();
+			AxisOperation op = msgContext.getOperation();
+			String methodName = op.getName().getLocalPart();
+			
+			
+			Method[] methods = ImplClass.getMethods();
+			for (int i = 0; i < methods.length; i++) {
+				if (methods[i].getName().equals(methodName)) {
+					this.method = methods[i];
+					break;
+				}
+			}
+			//deserialize (XML-> java)
+			Object[] parms = deserializeParameters(msgContext, method);
+			//invoke the WebService 
+
+			EchoImpl echo = (EchoImpl)obj;
+			Object result = null;
+			if("echoEchoStruct".equals(methodName))	{
+				result = echo.echoEchoStruct((EchoStruct)parms[0]);
+			}else if ("echoString".equals(methodName))	{
+				result = echo.echoString((String)parms[0]);
+			}else if ("echoStringArray".equals(methodName))	{
+				result = echo.echoStringArray((String[])parms[0]);
+			}else if ("echoEchoStructArray".equals(methodName))	{
+				Object[] parmsIn = (Object[])parms[0];
+				EchoStruct[] structs = new EchoStruct[parmsIn.length];
+				for (int i = 0; i < structs.length; i++) {
+					structs[i] = (EchoStruct) parmsIn[i];
+
+				}
+				result = echo.echoEchoStructArray(structs);
+			}			
+			Encoder outobj = null;
+
+			if (result instanceof String || result instanceof String[]) {
+				outobj = new SimpleTypeEncoder(result);
+			} else if (result instanceof EchoStruct) {
+				outobj = new EchoStructEncoder((EchoStruct) result);
+			} else if (result instanceof EchoStruct[]) {
+				outobj =
+					new ArrayTypeEncoder(
+						(EchoStruct[]) result,
+						new EchoStructEncoder(null));
+			}
+
+			OMFactory fac = OMFactory.newInstance();
+			SOAPEnvelope responseEnvelope = fac.getDefaultEnvelope();
+
+			OMNamespace ns = fac.createOMNamespace("http://soapenc/", "res");
+			OMElement responseMethodName =
+				fac.createOMElement(methodName + "Response", ns);
+			responseEnvelope.getBody().addChild(responseMethodName);
+			OMElement returnelement =
+				fac.createOMElement(methodName + "Return", ns);
+			responseMethodName.addChild(returnelement);
+			returnelement.setBuilder(
+				new ObjectToOMBuilder(returnelement, outobj));
+			returnelement.declareNamespace(
+				OMConstants.ARRAY_ITEM_NSURI,
+				"arrays");
+            returnelement.declareNamespace(
+                "http://axis.apache.org",
+                "s");
+
+			msgContext.setEnvelope(responseEnvelope);
+
+			return msgContext;
+		} catch (SecurityException e) {
+			throw AxisFault.makeFault(e);
+		} catch (IllegalArgumentException e) {
+			throw AxisFault.makeFault(e);
+		}
+	}
+
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStruct.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStruct.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStruct.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStruct.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,343 @@
+/**
+ * EchoStruct.java
+ *
+ * This file was auto-generated from WSDL
+ * by the Apache Axis 1.2RC1 Sep 29, 2004 (08:29:40 EDT) WSDL2Java emitter.
+ */
+
+public class EchoStruct implements java.io.Serializable {
+    private java.lang.String value1;
+    private java.lang.String value10;
+    private java.lang.String value11;
+    private java.lang.String value12;
+    private java.lang.String value13;
+    private java.lang.String value2;
+    private int value3;
+    private java.lang.String value4;
+    private java.lang.String value5;
+    private java.lang.String value6;
+    private java.lang.String value7;
+    private java.lang.String value8;
+    private java.lang.String value9;
+
+    public EchoStruct() {
+    }
+
+    public EchoStruct(
+        java.lang.String value1,
+        java.lang.String value10,
+        java.lang.String value11,
+        java.lang.String value12,
+        java.lang.String value13,
+        java.lang.String value2,
+        int value3,
+        java.lang.String value4,
+        java.lang.String value5,
+        java.lang.String value6,
+        java.lang.String value7,
+        java.lang.String value8,
+        java.lang.String value9) {
+        this.value1 = value1;
+        this.value10 = value10;
+        this.value11 = value11;
+        this.value12 = value12;
+        this.value13 = value13;
+        this.value2 = value2;
+        this.value3 = value3;
+        this.value4 = value4;
+        this.value5 = value5;
+        this.value6 = value6;
+        this.value7 = value7;
+        this.value8 = value8;
+        this.value9 = value9;
+    }
+
+    /**
+     * Gets the value1 value for this EchoStruct.
+     * 
+     * @return value1
+     */
+    public java.lang.String getValue1() {
+        return value1;
+    }
+
+    /**
+     * Sets the value1 value for this EchoStruct.
+     * 
+     * @param value1
+     */
+    public void setValue1(java.lang.String value1) {
+        this.value1 = value1;
+    }
+
+    /**
+     * Gets the value10 value for this EchoStruct.
+     * 
+     * @return value10
+     */
+    public java.lang.String getValue10() {
+        return value10;
+    }
+
+    /**
+     * Sets the value10 value for this EchoStruct.
+     * 
+     * @param value10
+     */
+    public void setValue10(java.lang.String value10) {
+        this.value10 = value10;
+    }
+
+    /**
+     * Gets the value11 value for this EchoStruct.
+     * 
+     * @return value11
+     */
+    public java.lang.String getValue11() {
+        return value11;
+    }
+
+    /**
+     * Sets the value11 value for this EchoStruct.
+     * 
+     * @param value11
+     */
+    public void setValue11(java.lang.String value11) {
+        this.value11 = value11;
+    }
+
+    /**
+     * Gets the value12 value for this EchoStruct.
+     * 
+     * @return value12
+     */
+    public java.lang.String getValue12() {
+        return value12;
+    }
+
+    /**
+     * Sets the value12 value for this EchoStruct.
+     * 
+     * @param value12
+     */
+    public void setValue12(java.lang.String value12) {
+        this.value12 = value12;
+    }
+
+    /**
+     * Gets the value13 value for this EchoStruct.
+     * 
+     * @return value13
+     */
+    public java.lang.String getValue13() {
+        return value13;
+    }
+
+    /**
+     * Sets the value13 value for this EchoStruct.
+     * 
+     * @param value13
+     */
+    public void setValue13(java.lang.String value13) {
+        this.value13 = value13;
+    }
+
+    /**
+     * Gets the value2 value for this EchoStruct.
+     * 
+     * @return value2
+     */
+    public java.lang.String getValue2() {
+        return value2;
+    }
+
+    /**
+     * Sets the value2 value for this EchoStruct.
+     * 
+     * @param value2
+     */
+    public void setValue2(java.lang.String value2) {
+        this.value2 = value2;
+    }
+
+    /**
+     * Gets the value3 value for this EchoStruct.
+     * 
+     * @return value3
+     */
+    public int getValue3() {
+        return value3;
+    }
+
+    /**
+     * Sets the value3 value for this EchoStruct.
+     * 
+     * @param value3
+     */
+    public void setValue3(int value3) {
+        this.value3 = value3;
+    }
+
+    /**
+     * Gets the value4 value for this EchoStruct.
+     * 
+     * @return value4
+     */
+    public java.lang.String getValue4() {
+        return value4;
+    }
+
+    /**
+     * Sets the value4 value for this EchoStruct.
+     * 
+     * @param value4
+     */
+    public void setValue4(java.lang.String value4) {
+        this.value4 = value4;
+    }
+
+    /**
+     * Gets the value5 value for this EchoStruct.
+     * 
+     * @return value5
+     */
+    public java.lang.String getValue5() {
+        return value5;
+    }
+
+    /**
+     * Sets the value5 value for this EchoStruct.
+     * 
+     * @param value5
+     */
+    public void setValue5(java.lang.String value5) {
+        this.value5 = value5;
+    }
+
+    /**
+     * Gets the value6 value for this EchoStruct.
+     * 
+     * @return value6
+     */
+    public java.lang.String getValue6() {
+        return value6;
+    }
+
+    /**
+     * Sets the value6 value for this EchoStruct.
+     * 
+     * @param value6
+     */
+    public void setValue6(java.lang.String value6) {
+        this.value6 = value6;
+    }
+
+    /**
+     * Gets the value7 value for this EchoStruct.
+     * 
+     * @return value7
+     */
+    public java.lang.String getValue7() {
+        return value7;
+    }
+
+    /**
+     * Sets the value7 value for this EchoStruct.
+     * 
+     * @param value7
+     */
+    public void setValue7(java.lang.String value7) {
+        this.value7 = value7;
+    }
+
+    /**
+     * Gets the value8 value for this EchoStruct.
+     * 
+     * @return value8
+     */
+    public java.lang.String getValue8() {
+        return value8;
+    }
+
+    /**
+     * Sets the value8 value for this EchoStruct.
+     * 
+     * @param value8
+     */
+    public void setValue8(java.lang.String value8) {
+        this.value8 = value8;
+    }
+
+    /**
+     * Gets the value9 value for this EchoStruct.
+     * 
+     * @return value9
+     */
+    public java.lang.String getValue9() {
+        return value9;
+    }
+
+    /**
+     * Sets the value9 value for this EchoStruct.
+     * 
+     * @param value9
+     */
+    public void setValue9(java.lang.String value9) {
+        this.value9 = value9;
+    }
+
+    /* (non-Javadoc)
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    public boolean equals(Object obj) {
+        if (obj instanceof EchoStruct) {
+            EchoStruct val = (EchoStruct) obj;
+            if (obj == null) {
+                return false;
+            }
+            if (!value1.equals(val.value1)) {
+                return false;
+            }
+            if (!value2.equals(val.value2)) {
+                return false;
+            }
+            if (!(value3 == val.value3)) {
+                return false;
+            }
+            if (!value4.equals(val.value4)) {
+                return false;
+            }
+            if (!value5.equals(val.value5)) {
+                return false;
+            }
+            if (!value6.equals(val.value6)) {
+                return false;
+            }
+            if (!value7.equals(val.value7)) {
+                return false;
+            }
+            if (!value8.equals(val.value8)) {
+                return false;
+            }
+            if (!value9.equals(val.value9)) {
+                return false;
+            }
+            if (!value10.equals(val.value10)) {
+                return false;
+            }
+            if (!value11.equals(val.value11)) {
+                return false;
+            }
+            if (!value12.equals(val.value12)) {
+                return false;
+            }
+            if (!value13.equals(val.value13)) {
+                return false;
+
+            }
+
+        }
+        return true;
+
+    }
+}

Propchange: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStruct.java
------------------------------------------------------------------------------
    svn:executable = *

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStructEncoder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStructEncoder.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStructEncoder.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStructEncoder.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,362 @@
+/*
+ * Created on Jan 29, 2005
+ *
+ * To change the template for this generated file go to
+ * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
+ */
+import java.io.IOException;
+
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.om.OMException;
+import org.apache.axis.testUtils.Encoder;
+import org.apache.axis.testUtils.SimpleTypeEncodingUtils;
+import org.xml.sax.ContentHandler;
+
+public class EchoStructEncoder implements Encoder {
+
+	private static final int VALUE1 = -823812896;
+	private static final int VALUE2 = -823812895;
+	private static final int VALUE3 = -823812894;
+	private static final int VALUE4 = -823812893;
+	private static final int VALUE5 = -823812892;
+	private static final int VALUE6 = -823812891;
+	private static final int VALUE7 = -823812890;
+	private static final int VALUE8 = -823812889;
+	private static final int VALUE9 = -823812888;
+	private static final int VALUE10 = 231604048;
+	private static final int VALUE11 = 231604049;
+	private static final int VALUE12 = 231604050;
+	private static final int VALUE13 = 231604051;
+
+	private ContentHandler contentHandler;
+	private EchoStruct struct;
+    
+    
+    public EchoStructEncoder() {
+    }
+
+	public EchoStructEncoder(EchoStruct struct) {
+		this.struct = struct;
+	}
+
+	public Object deSerialize(XMLStreamReader xpp) throws AxisFault {
+		EchoStruct struct = new EchoStruct();
+
+		try {
+			int event = xpp.next();
+			while (true) {
+				if (XMLStreamConstants.START_ELEMENT == event) {
+					String localName = xpp.getLocalName();
+					int nameCode = localName.hashCode();
+					switch (nameCode) {
+						case VALUE1 :
+							struct.setValue1(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE2 :
+							struct.setValue2(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE3 :
+							struct.setValue3(
+								SimpleTypeEncodingUtils.deserializeInt(xpp));
+							break;
+						case VALUE4 :
+							struct.setValue4(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE5 :
+							struct.setValue5(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE6 :
+							struct.setValue6(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE7 :
+							struct.setValue7(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE8 :
+							struct.setValue8(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE9 :
+							struct.setValue9(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE10 :
+							struct.setValue10(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE11 :
+							struct.setValue11(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE12 :
+							struct.setValue12(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+							break;
+						case VALUE13 :
+							struct.setValue13(
+								SimpleTypeEncodingUtils.deserializeString(xpp));
+						break;
+						default:
+							throw new AxisFault("Unknown elemnt "+ localName);
+					}
+				}
+				if (XMLStreamConstants.END_ELEMENT == event) {
+					break;
+				}
+				if (XMLStreamConstants.END_DOCUMENT == event) {
+					throw new AxisFault("premature and of file");
+				}
+				event = xpp.next();
+			}
+
+			return struct;
+		} catch (XMLStreamException e) {
+			throw AxisFault.makeFault(e);
+		}
+
+	}
+
+	public void serialize(XMLStreamWriter writer)
+		throws IOException, XMLStreamException {
+		writer.writeStartElement("value1");
+
+		writer.writeEndElement();
+	}
+
+	public void serialize(ContentHandler contentHandler)
+		throws OMException {
+		if (contentHandler == null) {
+			throw new OMException("Please set the content Handler");
+		}
+		try {
+			String value = "value1";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value1",
+				null);
+			String strVal = struct.getValue1();
+			char[] str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value1");
+
+			value = "value2";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value2",
+				null);
+			strVal = struct.getValue2();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value2");
+
+			value = "value3";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value3",
+				null);
+			int intVal = struct.getValue3();
+			str = String.valueOf(intVal).toCharArray();
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value3");
+
+			value = "value4";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value4",
+				null);
+			strVal = struct.getValue4();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value4");
+
+			value = "value5";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value5",
+				null);
+			strVal = struct.getValue5();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value5");
+
+			value = "value6";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value6",
+				null);
+			strVal = struct.getValue6();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value6");
+
+			value = "value7";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value7",
+				null);
+			strVal = struct.getValue7();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value7");
+
+			value = "value8";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value8",
+				null);
+			strVal = struct.getValue8();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value8");
+
+			value = "value9";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value9",
+				null);
+			strVal = struct.getValue9();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value9");
+
+			value = "value10";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value10",
+				null);
+			strVal = struct.getValue10();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value10");
+
+			value = "value11";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value11",
+				null);
+			strVal = struct.getValue11();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value11");
+
+			value = "value12";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value12",
+				null);
+			strVal = struct.getValue12();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value12");
+
+			value = "value13";
+			contentHandler.startElement(
+				"http://axis.apache.org",
+				value,
+				"s:value13",
+				null);
+			strVal = struct.getValue13();
+			str = ((strVal == null) ? new char[] {
+			}
+			: strVal.toCharArray());
+			contentHandler.characters(str, 0, str.length);
+			contentHandler.endElement(
+				"http://axis.apache.org",
+				value,
+				"s:value13");
+
+		} catch (Exception e) {
+			throw new OMException(e);
+		}
+
+	}
+
+	/* (non-Javadoc)
+	 * @see org.apache.axis.encoding.Encoder#setObject(java.lang.Object)
+	 */
+	public void setObject(Object obj) {
+		this.struct = (EchoStruct) obj;
+
+	}
+
+}

Added: webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStub.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStub.java?view=auto&rev=153752
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStub.java (added)
+++ webservices/axis/trunk/java/dev/scratch/perf-suite/axis2/EchoStub.java Mon Feb 14 01:33:15 2005
@@ -0,0 +1,90 @@
+import java.net.URL;
+
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.clientapi.Call;
+import org.apache.axis.om.OMConstants;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.SOAPBody;
+import org.apache.axis.om.SOAPEnvelope;
+import org.apache.axis.testUtils.ArrayTypeEncoder;
+import org.apache.axis.testUtils.ObjectToOMBuilder;
+
+public class EchoStub {
+    private OMFactory fac;
+    private OMNamespace ns;
+    private OMNamespace arrayNs;
+    private OMNamespace targetNs;
+    private URL url;
+    public EchoStub(URL url) {
+        fac = OMFactory.newInstance();
+        ns =
+            fac.createOMNamespace(
+                "http://apache.ws.apache.org/samples",
+                "samples");
+        arrayNs =
+            fac.createOMNamespace(
+                OMConstants.ARRAY_ITEM_NSURI,
+                OMConstants.ARRAY_ITEM_NS_PREFIX);
+        targetNs = fac.createOMNamespace("http://axis.apache.org", "s");
+        this.url = url;
+    }
+    public EchoStruct[] echoEchoStructArray(EchoStruct[] in) throws Exception {
+        OMElement returnelement = fac.createOMElement("param1", ns);
+        EchoStructEncoder encoder = new EchoStructEncoder();
+        ArrayTypeEncoder arrayEncoder = new ArrayTypeEncoder(in, encoder);
+
+        ObjectToOMBuilder builder =
+            new ObjectToOMBuilder(returnelement, arrayEncoder);
+
+        returnelement.setBuilder(builder);
+        returnelement.declareNamespace(arrayNs);
+        returnelement.declareNamespace(targetNs);
+
+        SOAPEnvelope envelope = fac.getDefaultEnvelope();
+        OMElement responseMethodName =
+            fac.createOMElement("echoEchoStructArray", ns);
+        envelope.getBody().addChild(responseMethodName);
+        responseMethodName.addChild(returnelement);
+
+        EndpointReference targetEPR =
+            new EndpointReference(
+                AddressingConstants.WSA_TO,url.toString());
+        Call call = new Call();
+        call.setTo(targetEPR);
+        SOAPEnvelope responseEnv = call.sendReceive(envelope);
+
+        SOAPBody body = responseEnv.getBody();
+        if (body.hasFault()) {
+            throw body.getFault().getException();
+        }
+        XMLStreamReader xpp = body.getPullParser(true);
+
+        int event = xpp.next();
+        while (event != XMLStreamConstants.START_ELEMENT) {
+            event = xpp.next();
+        }
+        event = xpp.next();
+        while (event != XMLStreamConstants.START_ELEMENT) {
+            event = xpp.next();
+        }
+        event = xpp.next();
+        while (event != XMLStreamConstants.START_ELEMENT) {
+            event = xpp.next();
+        }
+
+        Object obj = arrayEncoder.deSerialize(xpp);
+        Object[] structs = (Object[]) obj;
+        EchoStruct[] response = new EchoStruct[structs.length];
+        for (int i = 0; i < structs.length; i++) {
+            response[i] = (EchoStruct) structs[i];
+
+        }
+        return response;
+    }
+}