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 2004/11/28 16:27:18 UTC
svn commit: r106816 - in webservices/axis/trunk/java/dev/scratch/prototype1: . src/java/javax src/java/javax/xml src/java/javax/xml/namespace src/java/org/apache/axis/deployment src/java/org/apache/axis/deployment/deployEvents src/java/org/apache/axis/engine src/java/org/apache/axis/engine/context src/java/org/apache/axis/handlers src/java/org/apache/axis/providers src/java/org/apache/axis/recivers src/java/org/apache/axis/transport src/java/org/apache/axis/transport/http src/samples/msg src/samples/msg/echo src/samples/msg/echo/META-INF src/schema src/test-resources/echo src/test-resources/soap src/test/org/apache/axis/engine src/test/org/apache/axis/engine/registry src/test/org/apache/axis/om src/test/org/apache/axis/om/soap
Author: hemapani
Date: Sun Nov 28 07:27:17 2004
New Revision: 106816
URL: http://svn.apache.org/viewcvs?view=rev&rev=106816
Log:
1) add recivers,providers get the engine to decided point
2) remove saaj and jaxrpc jars and add javax...QName
3) add test cases to OM
4) add a sample and fix the maven build to create a jar out of it in the build
Added:
webservices/axis/trunk/java/dev/scratch/prototype1/maven.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/javax/
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/javax/xml/
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/javax/xml/namespace/
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/javax/xml/namespace/QName.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Reciver.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ReciverLocator.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ServiceLocator.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSender.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSenderLocator.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/OpNameFinder.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/RawXMLProvider.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/INReciver.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutAsyncReciver.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutSyncReciver.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/TCPTrasnportSender.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/
webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/
webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Echo.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Handler1.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/META-INF/
webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/META-INF/service.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/build.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/schema/wsdd.xsd
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/echo/
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/emtyBodymessage.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/minimalMessage.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/reallyReallyBigMessage.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.txt
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.txt
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/whitespacedMessage.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler1.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestUtils.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/MessagesTest.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeAnotherTest.java
Removed:
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/DocLitOpNameFinder.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/RPCOpNameFinder.java
Modified:
webservices/axis/trunk/java/dev/scratch/prototype1/project.xml
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/DeploymentEngine.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/deployEvents/RepositaryListenerImpl.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/AxisEngine.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Provider.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Sender.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Service.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/SimpleService.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/context/MessageContext.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/AbstractProvider.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/SimpleJavaProvider.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/TransportSender.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/HTTPConstants.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EchoTest.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EngineTest.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/Utils.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/MockFlow.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingProvider.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTest.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestCase.java
webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeTest.java
Added: webservices/axis/trunk/java/dev/scratch/prototype1/maven.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/maven.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/maven.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Revision: 1.21 $ $Date: 2004-10-27 20:54:09 +0600 (Wed, 27 Oct 2004) $ -->
+
+<project default="jar"
+ xmlns:j="jelly:core"
+ xmlns:maven="jelly:maven"
+ xmlns:deploy="deploy"
+ xmlns:ant="jelly:ant">
+ <preGoal name="test:test">
+ <j:jelly xmlns="jelly:ant">
+ <ant:ant antfile="build.xml" inheritall="true" inheritrefs="true" dir="src/samples/msg/echo"/>
+ </j:jelly>
+ </preGoal>
+</project>
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/project.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/project.xml?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/project.xml&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/project.xml&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/project.xml (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/project.xml Sun Nov 28 07:27:17 2004
@@ -74,6 +74,12 @@
<unitTestSourceDirectory>src/test</unitTestSourceDirectory>
<unitTest>
+
+ <excludes>
+ <exclude>**/*Abstract*.java</exclude>
+ <exclude>**/*Util*.java</exclude>
+ <exclude>**/*SOAPEnvelopeAnotherTest.java</exclude>
+ </excludes>
<includes>
<include>**/*Test.java</include>
</includes>
@@ -118,22 +124,6 @@
<dependency>
<groupId>axis</groupId>
<artifactId>commons-logging</artifactId>
- <version>SNAPSHOT</version>
- <properties>
- <module>true</module>
- </properties>
- </dependency>
- <dependency>
- <groupId>axis</groupId>
- <artifactId>jaxrpc</artifactId>
- <version>SNAPSHOT</version>
- <properties>
- <module>true</module>
- </properties>
- </dependency>
- <dependency>
- <groupId>axis</groupId>
- <artifactId>saaj</artifactId>
<version>SNAPSHOT</version>
<properties>
<module>true</module>
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/javax/xml/namespace/QName.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/javax/xml/namespace/QName.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/javax/xml/namespace/QName.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,229 @@
+/*
+ * Copyright 2001-2004 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 javax.xml.namespace;
+
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.Serializable;
+
+/**
+ * <code>QName</code> class represents the value of a qualified name
+ * as specified in <a href="http://www.w3.org/TR/xmlschema-2/#QName">XML
+ * Schema Part2: Datatypes specification</a>.
+ * <p>
+ * The value of a QName contains a <b>namespaceURI</b>, a <b>localPart</b> and a
+ * <b>prefix</b>. The localPart provides the local part of the qualified name.
+ * The namespaceURI is a URI reference identifying the namespace.
+ *
+ * @version 1.1
+ */
+public class QName implements Serializable {
+
+ /** Comment/shared empty <code>String</code>. */
+ private static final String emptyString = "".intern();
+
+ private String namespaceURI;
+
+ private String localPart;
+
+ private String prefix;
+
+ /**
+ * Constructor for the QName.
+ *
+ * @param localPart local part of the QName
+ */
+ public QName(String localPart) {
+ this(emptyString, localPart, emptyString);
+ }
+
+ /**
+ * Constructor for the QName.
+ *
+ * @param namespaceURI namespace URI for the QName
+ * @param localPart local part of the QName.
+ */
+ public QName(String namespaceURI, String localPart) {
+ this(namespaceURI, localPart, emptyString);
+ }
+
+ /**
+ * Constructor for the QName.
+ *
+ * @param namespaceURI Namespace URI for the QName
+ * @param localPart Local part of the QName.
+ * @param prefix Prefix of the QName.
+ */
+ public QName(String namespaceURI, String localPart, String prefix) {
+ this.namespaceURI = (namespaceURI == null)
+ ? emptyString
+ : namespaceURI.intern();
+ if (localPart == null) {
+ throw new IllegalArgumentException("invalid QName local part");
+ } else {
+ this.localPart = localPart.intern();
+ }
+
+ if (prefix == null) {
+ throw new IllegalArgumentException("invalid QName prefix");
+ } else {
+ this.prefix = prefix.intern();
+ }
+ }
+
+ /**
+ * Gets the namespace URI for this QName.
+ *
+ * @return namespace URI
+ */
+ public String getNamespaceURI() {
+ return namespaceURI;
+ }
+
+ /**
+ * Gets the local part for this QName.
+ *
+ * @return the local part
+ */
+ public String getLocalPart() {
+ return localPart;
+ }
+
+ /**
+ * Gets the prefix for this QName.
+ *
+ * @return the prefix
+ */
+ public String getPrefix() {
+ return prefix;
+ }
+
+ /**
+ * Returns a string representation of this QName.
+ *
+ * @return a string representation of the QName
+ */
+ public String toString() {
+
+ return ((namespaceURI == emptyString)
+ ? localPart
+ : '{' + namespaceURI + '}' + localPart);
+ }
+
+ /**
+ * Tests this QName for equality with another object.
+ * <p>
+ * If the given object is not a QName or is null then this method
+ * returns <tt>false</tt>.
+ * <p>
+ * For two QNames to be considered equal requires that both
+ * localPart and namespaceURI must be equal. This method uses
+ * <code>String.equals</code> to check equality of localPart
+ * and namespaceURI. Any class that extends QName is required
+ * to satisfy this equality contract.
+ * <p>
+ * This method satisfies the general contract of the <code>Object.equals</code> method.
+ *
+ * @param obj the reference object with which to compare
+ *
+ * @return <code>true</code> if the given object is identical to this
+ * QName: <code>false</code> otherwise.
+ */
+ public boolean equals(Object obj) {
+
+ if (obj == this) {
+ return true;
+ }
+
+ if (!(obj instanceof QName)) {
+ return false;
+ }
+
+ if ((namespaceURI == ((QName) obj).namespaceURI)
+ && (localPart == ((QName) obj).localPart)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns a QName holding the value of the specified String.
+ * <p>
+ * The string must be in the form returned by the QName.toString()
+ * method, i.e. "{namespaceURI}localPart", with the "{namespaceURI}"
+ * part being optional.
+ * <p>
+ * This method doesn't do a full validation of the resulting QName.
+ * In particular, it doesn't check that the resulting namespace URI
+ * is a legal URI (per RFC 2396 and RFC 2732), nor that the resulting
+ * local part is a legal NCName per the XML Namespaces specification.
+ *
+ * @param s the string to be parsed
+ * @throws java.lang.IllegalArgumentException If the specified String cannot be parsed as a QName
+ * @return QName corresponding to the given String
+ */
+ public static QName valueOf(String s) {
+
+ if ((s == null) || s.equals("")) {
+ throw new IllegalArgumentException("invalid QName literal");
+ }
+
+ if (s.charAt(0) == '{') {
+ int i = s.indexOf('}');
+
+ if (i == -1) {
+ throw new IllegalArgumentException("invalid QName literal");
+ }
+
+ if (i == s.length() - 1) {
+ throw new IllegalArgumentException("invalid QName literal");
+ } else {
+ return new QName(s.substring(1, i), s.substring(i + 1));
+ }
+ } else {
+ return new QName(s);
+ }
+ }
+
+ /**
+ * Returns a hash code value for this QName object. The hash code
+ * is based on both the localPart and namespaceURI parts of the
+ * QName. This method satisfies the general contract of the
+ * <code>Object.hashCode</code> method.
+ *
+ * @return a hash code value for this Qname object
+ */
+ public int hashCode() {
+ return namespaceURI.hashCode() ^ localPart.hashCode();
+ }
+
+ /**
+ * Ensure that deserialization properly interns the results.
+ * @param in the ObjectInputStream to be read
+ * @throws IOException if there was a failure in the object input stream
+ * @throws ClassNotFoundException if the class of any sub-objects could
+ * not be found
+ */
+ private void readObject(ObjectInputStream in) throws
+ IOException, ClassNotFoundException {
+ in.defaultReadObject();
+
+ namespaceURI = namespaceURI.intern();
+ localPart = localPart.intern();
+ prefix = prefix.intern();
+ }
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/DeploymentEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/DeploymentEngine.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/DeploymentEngine.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/DeploymentEngine.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/DeploymentEngine.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/DeploymentEngine.java Sun Nov 28 07:27:17 2004
@@ -226,7 +226,7 @@
* ****************************************************************************
* setting service provider
*/
- service.setProvider(new SyncProvider(new SimpleJavaProvider()));
+ service.setProvider(new SimpleJavaProvider());
//todo Module should come inside operation not service (Srinath fix that :) )
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/deployEvents/RepositaryListenerImpl.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/deployEvents/RepositaryListenerImpl.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/deployEvents/RepositaryListenerImpl.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/deployEvents/RepositaryListenerImpl.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/deployEvents/RepositaryListenerImpl.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/deployment/deployEvents/RepositaryListenerImpl.java Sun Nov 28 07:27:17 2004
@@ -99,15 +99,17 @@
File dir = (File) current_jars.elementAt(0); // get first dir
current_jars.remove(0); // remove it
files = dir.list(); // get list of files
-
- for (int i = 0; i < files.length; i++) { // iterate
- File f = new File(dir, files[i]);
- if (f.isDirectory()) { // see if it's a directory
- current_jars.insertElementAt(f, 0);
- } // add dir to start of agenda
- else if (isJarFile(f.getName())) {
- wsinfoList.addWSInfoItem(f, type);
+ if(files != null){
+ for (int i = 0; i < files.length; i++) { // iterate
+ File f = new File(dir, files[i]);
+ if (f.isDirectory()) { // see if it's a directory
+ current_jars.insertElementAt(f, 0);
+ } // add dir to start of agenda
+ else if (isJarFile(f.getName())) {
+ wsinfoList.addWSInfoItem(f, type);
+ }
}
+
}
}
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/AxisEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/AxisEngine.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/AxisEngine.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/AxisEngine.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/AxisEngine.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/AxisEngine.java Sun Nov 28 07:27:17 2004
@@ -16,11 +16,13 @@
package org.apache.axis.engine;
+import javax.naming.OperationNotSupportedException;
import javax.xml.namespace.QName;
import org.apache.axis.engine.context.MessageContext;
import org.apache.axis.engine.exec.ExecutionChain;
import org.apache.axis.engine.registry.EngineRegistry;
+import org.apache.axis.handlers.OpNameFinder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -42,11 +44,12 @@
QName currentServiceName = null;
Service service = null;
//dispatch the service Name
- currentServiceName = mc.getCurrentService();
- service = registry.getService(currentServiceName);
+ service = mc.getService();
try{
ExecutionChain exeChain = service.getOutputExecutionChain();
exeChain.invoke(mc);
+ TransportSender ts = TransportSenderLocator.locateTransPortSender(mc);
+ ts.invoke(mc);
}catch(AxisFault e){
if(mc.isProcessingFault()){
//TODO log and exit
@@ -63,14 +66,17 @@
public void recive(MessageContext mc)throws AxisFault{
QName currentServiceName = null;
- Service service = null;
-
- currentServiceName = mc.getCurrentService();
- service = registry.getService(currentServiceName);
+ Service service = mc.getService();
try{
ExecutionChain exeChain = service.getInputExecutionChain();
exeChain.invoke(mc);
+ if(mc.isServerSide()){
+ OpNameFinder finder = new OpNameFinder();
+ finder.invoke(mc);
+ Reciver reciver = ReciverLocator.locateReciver(mc);
+ reciver.invoke(mc);
+ }
}catch(AxisFault e){
if(mc.isProcessingFault()){
//TODO log and exit
@@ -81,6 +87,7 @@
ExecutionChain faultExeChain = service.getFaultExecutionChain();
faultExeChain.invoke(mc);
}
+ e.printStackTrace();
}
log.info("end the recive()");
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Provider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Provider.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Provider.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Provider.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Provider.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Provider.java Sun Nov 28 07:27:17 2004
@@ -15,11 +15,17 @@
*/
package org.apache.axis.engine;
+import java.io.Serializable;
+
+import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.engine.registry.NamedEngineElement;
+
/**
* This Provider is the workhorse who locate the implementation of the Web Service and
* invoke the Web Service.
* @author Srinath Perera(hemapani@opensource.lk)
*/
-public interface Provider extends Handler{
+public interface Provider extends Serializable,NamedEngineElement{
+ public MessageContext invoke(MessageContext msgCtx)throws AxisFault;
}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Reciver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Reciver.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Reciver.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2001-2004 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.engine;
+
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public interface Reciver extends Handler{
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ReciverLocator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ReciverLocator.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ReciverLocator.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2001-2004 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.engine;
+
+import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.recivers.InOutSyncReciver;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class ReciverLocator {
+ public static Reciver locateReciver(MessageContext msgCtx)throws AxisFault{
+
+ //File wsdlFile = msgCtx.getService().getParameter("wsdlFile");
+ //parse the WSDL find the patterns
+ //create a reciver
+ return new InOutSyncReciver();
+ }
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Sender.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Sender.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Sender.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Sender.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Sender.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Sender.java Sun Nov 28 07:27:17 2004
@@ -17,9 +17,7 @@
import org.apache.axis.engine.context.MessageContext;
-/**
- * @author Srinath Perera (hemapani@opensource.lk)
- */
+
public class Sender {
public void send(MessageContext msgCtx) throws AxisFault{
AxisEngine engine = new AxisEngine(msgCtx.getGlobalContext().getRegistry());
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Service.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Service.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Service.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Service.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Service.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/Service.java Sun Nov 28 07:27:17 2004
@@ -32,9 +32,9 @@
TypeMappingInclude,ModuleInclude{
public Operation getOperation(QName index);
public void addOperation(Operation op);
- public Handler getProvider();
+ public Provider getProvider();
public Handler getSender();
- public void setProvider(Handler handler);
+ public void setProvider(Provider handler);
public ClassLoader getClassLoader();
public void setClassLoader(ClassLoader cl);
/**
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ServiceLocator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ServiceLocator.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/ServiceLocator.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2001-2004 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.engine;
+
+import javax.print.attribute.standard.Severity;
+import javax.xml.namespace.QName;
+
+import org.apache.axis.engine.context.MessageContext;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class ServiceLocator {
+ public static Service locateService(String uri,String soapAction,MessageContext msgctx) throws AxisFault{
+ QName serviceName = null;
+ if(uri != null){
+ int index = uri.indexOf('?');
+ if(index > -1){
+ //TODO get the opeartion name from URI as well
+ serviceName = new QName(uri);
+ }else{
+ serviceName = new QName(uri);
+ }
+ }else{
+ if(soapAction != null){
+ serviceName = new QName(uri);
+ }
+ }
+ if(serviceName != null){
+ Service service = msgctx.getGlobalContext().getRegistry().getService(serviceName);
+ if(service != null){
+ return service;
+ }else{
+ throw new AxisFault("Service Not found");
+ }
+ }else{
+ throw new AxisFault("Both the URI and SOAP_ACTION Is Null");
+ }
+ }
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/SimpleService.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/SimpleService.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/SimpleService.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/SimpleService.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/SimpleService.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/SimpleService.java Sun Nov 28 07:27:17 2004
@@ -54,7 +54,7 @@
private Log log = LogFactory.getLog(getClass());
private HashMap operations = new HashMap();
private QName name;
- private Handler provider;
+ private Provider provider;
private Handler sender;
private ClassLoader classLoader;
@@ -82,11 +82,11 @@
operations.put(op.getName(),op);
}
- public Handler getProvider() {
+ public Provider getProvider() {
return provider;
}
- public void setProvider(Handler provider) {
+ public void setProvider(Provider provider) {
this.provider = provider;
}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSender.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSender.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSender.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2001-2004 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.engine;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public interface TransportSender extends Handler {
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSenderLocator.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSenderLocator.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/TransportSenderLocator.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2001-2004 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.engine;
+
+import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.transport.http.TCPTrasnportSender;
+
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class TransportSenderLocator {
+ public static final String TRANSPORT_TCP = "TRANSPORT_TCP";
+
+ public static TransportSender locateTransPortSender(MessageContext msgContext){
+ String type= (String)msgContext.getProperty(MessageContext.TRANSPORT_TYPE);
+
+ if( TransportSenderLocator.TRANSPORT_TCP.equals(type)){
+ return new TCPTrasnportSender();
+ }
+ return null;
+ }
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/context/MessageContext.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/context/MessageContext.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/context/MessageContext.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/context/MessageContext.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/context/MessageContext.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/engine/context/MessageContext.java Sun Nov 28 07:27:17 2004
@@ -20,10 +20,14 @@
import javax.xml.namespace.QName;
+import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.Operation;
+import org.apache.axis.engine.Service;
+import org.apache.axis.engine.addressing.EndPointReferance;
import org.apache.axis.engine.registry.EngineRegistry;
import org.apache.axis.om.soap.SOAPMessage;
-import org.apache.axis.transport.TransportSender;
+
/**
* The palce where all the service specific states are kept.
* All the Global states kept in the <code>EngineRegistry</code> and all the
@@ -32,130 +36,126 @@
*/
public class MessageContext {
private int messageStyle = Constants.SOAP_STYLE_RPC_ENCODED;
- private HashMap messages = new HashMap();
- public static String USER_NAME = "USER";
- public static String PASSWARD = "PASSWD";
-
-
- public MessageContext(EngineRegistry er){
- globalContext = new GlobalContext(er);
- sessionContext = new SimpleSessionContext();
- }
+// private HashMap messages = new HashMap();
+
+ public static final String USER_NAME = "USER";
+ public static final String PASSWARD = "PASSWD";
+ public static final String TRANSPORT_TYPE = "TRANSPORT_TYPE";
+ public static final String SOAP_ACTION = "SOAP_ACTION";
+ public static final String TRANSPORT_DATA = "TRANSPORT_DATA";
private boolean processingFault = false;
- private QName currentTansport = null;
- private QName currentService = null;
- private QName currentOperation = null;
- private HashMap properties = new HashMap();
- private boolean useSOAPAction = true;
- private String soapAction = "";
- private SOAPMessage inMessage;
- private SOAPMessage outMessage;
- private TransportSender transportSender;
+ private EndPointReferance to;
+ private EndPointReferance from;
+ private EndPointReferance relatesTo;
+ private EndPointReferance replyTo;
+ private EndPointReferance faultTo;
+
+ //there is a no use cas found to set those proprties
+ //so declare them final
+ private final HashMap properties;
+ private final GlobalContext globalContext;
+
+ private SessionContext sessionContext;
+ private Service service;
+ private SOAPMessage message;
+ private boolean responseWritten;
+ private boolean infaultFlow;
+ private boolean serverSide;
+ private String messageID;
+ private Operation operation;
+ private boolean newThreadRequired = false;
+
+ public MessageContext(EngineRegistry er) throws AxisFault{
+ this.globalContext = new GlobalContext(er);
+ this.sessionContext = new SimpleSessionContext();
+ properties = new HashMap();
+ }
+
/**
- * @return Returns the transportSender.
+ * @return
*/
- public TransportSender getTransportSender() {
- return transportSender;
+ public EndPointReferance getFaultTo() {
+ return faultTo;
}
+
/**
- * @param transportSender The transportSender to set.
+ * @return
*/
- public void setTransportSender(TransportSender transportSender) {
- this.transportSender = transportSender;
- }
- /**
- * @return Returns the soapAction.
- */
- public String getSoapAction() {
- return soapAction;
- }
- /**
- * @param soapAction The soapAction to set.
- */
- public void setSoapAction(String soapAction) {
- this.soapAction = soapAction;
- }
- /**
- * @return Returns the useSOAPAction.
- */
- public boolean isUseSOAPAction() {
- return useSOAPAction;
- }
- /**
- * @param useSOAPAction The useSOAPAction to set.
- */
- public void setUseSOAPAction(boolean useSOAPAction) {
- this.useSOAPAction = useSOAPAction;
- }
- private SessionContext sessionContext;
- private GlobalContext globalContext;
-
-
- public boolean isProcessingFault(){
- return processingFault;
- }
- public void setProcessingFault(boolean processingFault){
- this.processingFault = processingFault;
+ public EndPointReferance getFrom() {
+ return from;
}
-
- public void setProperty(String key,String value){
- properties.put(key,value);
+
+ /**
+ * @return
+ */
+ public GlobalContext getGlobalContext() {
+ return globalContext;
}
-
- public String getProperty(String key){
- return (String)properties.get(key);
+
+ /**
+ * @return
+ */
+ public boolean isInfaultFlow() {
+ return infaultFlow;
}
+
/**
* @return
*/
- public QName getCurrentTansport() {
- return currentTansport;
+ public SOAPMessage getMessage() {
+ return message;
}
-
/**
- * @param name
+ * @return
*/
- public void setCurrentTansport(QName name) {
- currentTansport = name;
+ public String getMessageID() {
+ return messageID;
}
+
/**
* @return
*/
- public QName getCurrentOperation() {
- return currentOperation;
+ public boolean isProcessingFault() {
+ return processingFault;
}
+ /**
+ * @return
+ */
+ public Object getProperty(Object key) {
+ return properties.get(key);
+ }
/**
- * @param name
+ * @return
*/
- public void setCurrentOperation(QName name) {
- currentOperation = name;
+ public EndPointReferance getRelatesTo() {
+ return relatesTo;
}
/**
- * @param name
+ * @return
*/
- public void setCurrentService(QName name) {
- currentService = name;
+ public EndPointReferance getReplyTo() {
+ return replyTo;
}
/**
* @return
*/
- public QName getCurrentService() {
- return currentService;
+ public boolean isResponseWritten() {
+ return responseWritten;
}
/**
* @return
*/
- public GlobalContext getGlobalContext() {
- return globalContext;
+ public boolean isServerSide() {
+ return serverSide;
}
/**
@@ -166,10 +166,139 @@
}
/**
- * @param context
+ * @return
+ */
+ public EndPointReferance getTo() {
+ return to;
+ }
+
+ /**
+ * @param referance
+ */
+ public void setFaultTo(EndPointReferance referance) {
+ faultTo = referance;
+ }
+
+ /**
+ * @param referance
+ */
+ public void setFrom(EndPointReferance referance) {
+ from = referance;
+ }
+
+ /**
+ * @param b
+ */
+ public void setInfaultFlow(boolean b) {
+ infaultFlow = b;
+ }
+
+ /**
+ * @param message
+ */
+ public void setMessage(SOAPMessage message) {
+ this.message = message;
+ }
+
+ /**
+ * @param string
*/
- public void setGlobalContext(GlobalContext context) {
- globalContext = context;
+ public void setMessageID(String string) {
+ messageID = string;
+ }
+
+
+ /**
+ * @param b
+ */
+ public void setProcessingFault(boolean b) {
+ processingFault = b;
+ }
+
+ /**
+ * @param map
+ */
+ public void setProperty(Object key,Object value) {
+ properties.put(key,value);
+ }
+
+ /**
+ * @param referance
+ */
+ public void setRelatesTo(EndPointReferance referance) {
+ relatesTo = referance;
+ }
+
+ /**
+ * @param referance
+ */
+ public void setReplyTo(EndPointReferance referance) {
+ replyTo = referance;
+ }
+
+ /**
+ * @param b
+ */
+ public void setResponseWritten(boolean b) {
+ responseWritten = b;
+ }
+
+ /**
+ * @param b
+ */
+ public void setServerSide(boolean b) {
+ serverSide = b;
+ }
+
+
+ /**
+ * @param referance
+ */
+ public void setTo(EndPointReferance referance) {
+ to = referance;
+ }
+
+ /**
+ * @return
+ */
+ public Service getService() {
+ return service;
+ }
+
+
+ /**
+ * @return
+ */
+ public Operation getOperation() {
+ return operation;
+ }
+
+ /**
+ * @param operation
+ */
+ public void setOperation(Operation operation) {
+ this.operation = operation;
+ }
+
+ /**
+ * @return
+ */
+ public boolean isNewThreadRequired() {
+ return newThreadRequired;
+ }
+
+ /**
+ * @param b
+ */
+ public void setNewThreadRequired(boolean b) {
+ newThreadRequired = b;
+ }
+
+ /**
+ * @param service
+ */
+ public void setService(Service service) {
+ this.service = service;
}
/**
@@ -179,44 +308,18 @@
sessionContext = context;
}
- /**
- * @return Returns the inMessage.
- */
- public SOAPMessage getInMessage() {
- return inMessage;
- }
- /**
- * @param inMessage The inMessage to set.
- */
- public void setInMessage(SOAPMessage inMessage) {
- this.inMessage = inMessage;
- }
- /**
- * @return Returns the outMessage.
- */
- public SOAPMessage getOutMessage() {
- return outMessage;
- }
- /**
- * @param outMessage The outMessage to set.
- */
- public void setOutMessage(SOAPMessage outMessage) {
- this.outMessage = outMessage;
- }
/**
- * @return Returns the messageStyle.
+ * @return
*/
public int getMessageStyle() {
return messageStyle;
}
+
/**
- * @param messageStyle The messageStyle to set.
+ * @param i
*/
- public void setMessageStyle(int messageStyle) {
- this.messageStyle = messageStyle;
+ public void setMessageStyle(int i) {
+ messageStyle = i;
}
-
- public void addRelatedMessageContext(String key,MessageContext msgctx){
- messages.put(key,msgctx);
- }
+
}
Deleted: /webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/DocLitOpNameFinder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/DocLitOpNameFinder.java?view=auto&rev=106815
==============================================================================
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/OpNameFinder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/OpNameFinder.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/OpNameFinder.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2003,2004 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.handlers;
+
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.Service;
+import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMNode;
+import org.apache.axis.om.soap.SOAPMessage;
+
+/**
+ * @author Srinath Perera (hemapani@opensource.lk)
+ */
+public class OpNameFinder extends AbstractHandler{
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ int style = msgContext.getMessageStyle();
+ if(Constants.SOAP_STYLE_RPC_ENCODED == style || style == Constants.SOAP_STYLE_RPC_LITERAL){
+ SOAPMessage message = msgContext.getMessage();
+ OMNode node = null;
+ OMElement element = message.getEnvelope().getBody();
+ if(Constants.ELEM_BODY.equals(element.getLocalName())){
+ Iterator bodychilderen = element.getChildren();
+ while(bodychilderen.hasNext()){
+ node = (OMNode)bodychilderen.next();
+
+ //TODO
+ if(node == null){
+ System.out.println("Why the some nodes are null :( :( :(");
+ continue;
+ }
+
+ if(node.getType() == OMNode.ELEMENT_NODE){
+ OMElement bodyChild = (OMElement)node;
+
+ OMNamespace omns = bodyChild.getNamespace();
+
+ if(omns != null){
+ String ns = omns.getValue();
+ if(ns != null){
+ QName opName = new QName(ns,bodyChild.getLocalName());
+ Service service = msgContext.getService();
+ msgContext.setOperation(service.getOperation(opName));
+ }
+ }else{
+ throw new AxisFault("SOAP Body must be NS Qualified");
+ }
+
+ }
+ }
+ }
+ }
+ }
+}
Deleted: /webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/RPCOpNameFinder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/handlers/RPCOpNameFinder.java?view=auto&rev=106815
==============================================================================
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/AbstractProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/AbstractProvider.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/AbstractProvider.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/AbstractProvider.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/AbstractProvider.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/AbstractProvider.java Sun Nov 28 07:27:17 2004
@@ -15,14 +15,9 @@
*/
package org.apache.axis.providers;
-import java.lang.reflect.Method;
-
import javax.xml.namespace.QName;
-import org.apache.axis.engine.AxisFault;
-import org.apache.axis.engine.Handler;
import org.apache.axis.engine.Provider;
-import org.apache.axis.engine.context.MessageContext;
import org.apache.axis.engine.registry.AbstractEngineElement;
/**
@@ -30,18 +25,9 @@
* protected abstract methods are only for the sake of braking down the logic
* @author Srinath Perera(hemapani@opensource.lk)
*/
-public abstract class AbstractProvider extends AbstractEngineElement implements Handler, Provider{
+public abstract class AbstractProvider extends AbstractEngineElement implements Provider{
private QName name;
private String scope;
-
- protected abstract Object makeNewServiceObject(MessageContext msgContext)throws AxisFault;
-
- public abstract Object getTheImplementationObject(
- MessageContext msgContext)throws AxisFault;
-
- public abstract Object[] deserializeParameters(MessageContext msgContext,Method method)throws AxisFault;
-
-
public QName getName() {
return name;
}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/RawXMLProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/RawXMLProvider.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/RawXMLProvider.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2001-2004 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.providers;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Constants;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.engine.Service;
+import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.engine.context.SessionContext;
+import org.apache.axis.engine.registry.Parameter;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.soap.SOAPBody;
+import org.apache.axis.om.soap.SOAPEnvelope;
+import org.apache.axis.om.soap.SOAPMessage;
+
+/**
+ * This is a Simple java Provider.
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+
+public class RawXMLProvider extends AbstractProvider implements Provider {
+ private String message;
+ private QName name;
+ private String scope;
+ private Method method;
+ private ClassLoader classLoader;
+
+ public RawXMLProvider(){
+ scope = Constants.APPLICATION_SCOPE;
+
+ }
+
+ protected Object makeNewServiceObject(MessageContext msgContext)
+ throws AxisFault
+ {
+ try {
+ Service service = msgContext.getService();
+ classLoader = service.getClassLoader();
+ Parameter classParm = service.getParameter("className");
+ String className = (String)classParm.getValue();
+ if(className == null)
+ throw new AxisFault("className parameter is null");
+ if(classLoader == null){
+ classLoader = Thread.currentThread().getContextClassLoader();
+ }
+ Class implClass =Class.forName(className,true,classLoader);
+ return implClass.newInstance();
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ public Object getTheImplementationObject(
+ MessageContext msgContext)throws AxisFault{
+ Service service = msgContext.getService();
+ QName serviceName = service.getName();
+ if(Constants.APPLICATION_SCOPE.equals(scope)){
+ return makeNewServiceObject(msgContext);
+ }else if(Constants.SESSION_SCOPE.equals(scope)){
+ SessionContext sessionContext = msgContext.getSessionContext();
+ Object obj = sessionContext.get(serviceName);
+ if(obj == null){
+ obj = makeNewServiceObject(msgContext);
+ sessionContext.put(serviceName,obj);
+ }
+ return obj;
+ }else if(Constants.GLOBAL_SCOPE.equals(scope)){
+ SessionContext globalContext = msgContext.getSessionContext();
+ Object obj = globalContext.get(serviceName);
+ if(obj == null){
+ obj = makeNewServiceObject(msgContext);
+ globalContext.put(serviceName,obj);
+ }
+ return obj;
+ }else{
+ throw new AxisFault("unknown scope "+ scope);
+ }
+
+ }
+
+
+
+ public QName getName() {
+ return name;
+ }
+
+ 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();
+ String methodName = msgContext.getOperation().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;
+ }
+ }
+
+ Object[] parms = new Object[]{msgContext.getMessage()};
+ //invoke the WebService
+ SOAPMessage result = (SOAPMessage)method.invoke(obj,parms);
+ MessageContext msgContext1 = new MessageContext(msgContext.getGlobalContext().getRegistry());
+ msgContext1.setMessage(result);
+
+ return msgContext1;
+ } catch (SecurityException e) {
+ throw AxisFault.makeFault(e);
+ } catch (IllegalArgumentException e) {
+ throw AxisFault.makeFault(e);
+ } catch (IllegalAccessException e) {
+ throw AxisFault.makeFault(e);
+ } catch (InvocationTargetException e) {
+ throw AxisFault.makeFault(e);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ public void revoke(MessageContext msgContext) {
+ System.out.println("I am Speaking Provider revoking :)");
+ }
+
+ public void setName(QName name) {
+ this.name = name;
+ }
+
+ /**
+ * @return
+ */
+ public ClassLoader getClassLoader() {
+ return classLoader;
+ }
+
+ /**
+ * @param loader
+ */
+ public void setClassLoader(ClassLoader loader) {
+ classLoader = loader;
+ }
+
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/SimpleJavaProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/SimpleJavaProvider.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/SimpleJavaProvider.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/SimpleJavaProvider.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/SimpleJavaProvider.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/providers/SimpleJavaProvider.java Sun Nov 28 07:27:17 2004
@@ -23,22 +23,18 @@
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.Constants;
-import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Provider;
import org.apache.axis.engine.Service;
import org.apache.axis.engine.context.MessageContext;
import org.apache.axis.engine.context.SessionContext;
import org.apache.axis.engine.registry.Parameter;
-import org.apache.axis.om.OMXMLParserWrapper;
-import org.apache.axis.om.impl.OMXMLPullParserWrapper;
-import org.apache.axis.om.impl.SOAPMessageImpl;
-import org.apache.axis.om.soap.SOAPMessage;
/**
* This is a Simple java Provider.
* @author Srinath Perera(hemapani@opensource.lk)
*/
-public class SimpleJavaProvider extends AbstractProvider implements Handler {
+public class SimpleJavaProvider extends AbstractProvider implements Provider {
private String message;
private QName name;
private String scope;
@@ -54,8 +50,7 @@
throws AxisFault
{
try {
- QName serviceName = msgContext.getCurrentService();
- Service service = msgContext.getGlobalContext().getRegistry().getService(serviceName);
+ Service service = msgContext.getService();
classLoader = service.getClassLoader();
Parameter classParm = service.getParameter("className");
String className = (String)classParm.getValue();
@@ -73,7 +68,8 @@
public Object getTheImplementationObject(
MessageContext msgContext)throws AxisFault{
- QName serviceName = msgContext.getCurrentService();
+ Service service = msgContext.getService();
+ QName serviceName = service.getName();
if(Constants.APPLICATION_SCOPE.equals(scope)){
return makeNewServiceObject(msgContext);
}else if(Constants.SESSION_SCOPE.equals(scope)){
@@ -108,14 +104,14 @@
return name;
}
- public void invoke(MessageContext msgContext) throws AxisFault {
+ 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();
- String methodName = msgContext.getCurrentOperation().getLocalPart();
+ String methodName = msgContext.getOperation().getName().getLocalPart();
Method[] methods = ImplClass.getMethods();
for(int i = 0;i<methods.length;i++){
if(methods[i].getName().equals(methodName)){
@@ -131,6 +127,7 @@
//TODO fix the server side
// OMXMLParserWrapper parser = new OMXMLPullParserWrapper();
// msgContext.setOutMessage(new SOAPMessageImpl(parser));
+ return msgContext;
} catch (SecurityException e) {
throw AxisFault.makeFault(e);
} catch (IllegalArgumentException e) {
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/INReciver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/INReciver.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/INReciver.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2001-2004 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.recivers;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class INReciver {
+
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutAsyncReciver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutAsyncReciver.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutAsyncReciver.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2001-2004 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.recivers;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class InOutAsyncReciver {
+
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutSyncReciver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutSyncReciver.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/recivers/InOutSyncReciver.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2001-2004 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.recivers;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Provider;
+import org.apache.axis.engine.Reciver;
+import org.apache.axis.engine.Sender;
+import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.handlers.AbstractHandler;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class InOutSyncReciver extends AbstractHandler implements Reciver {
+ protected Log log = LogFactory.getLog(getClass());
+
+ public void invoke(final MessageContext msgContext) throws AxisFault {
+ if(msgContext.isNewThreadRequired()){
+ Runnable runner = new Runnable() {
+ public void run() {
+ try{
+ send(msgContext);
+ }catch(AxisFault e){
+ log.error("Exception occured in new thread starting response",e);
+ }
+
+ }
+ };
+ Thread thread = new Thread(runner);
+ thread.start();
+ }else{
+ send(msgContext);
+ }
+ }
+
+ public void send(MessageContext msgContext)throws AxisFault{
+ Provider provider = msgContext.getService().getProvider();
+ MessageContext outMsgContext = provider.invoke(msgContext);
+ Sender sender = new Sender();
+ sender.send(msgContext);
+ }
+
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/TransportSender.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/TransportSender.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/TransportSender.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/TransportSender.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/TransportSender.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/TransportSender.java Sun Nov 28 07:27:17 2004
@@ -32,7 +32,7 @@
this.out = out;
}
public void invoke(MessageContext msgContext) throws AxisFault {
- SOAPMessage message = msgContext.getOutMessage();
+ SOAPMessage message = msgContext.getMessage();
//Serialize the Mesage
}
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/HTTPConstants.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/HTTPConstants.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/HTTPConstants.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/HTTPConstants.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/HTTPConstants.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/HTTPConstants.java Sun Nov 28 07:27:17 2004
@@ -103,10 +103,6 @@
public static String MC_HTTP_SERVLETLOCATION= "transport.http.servletLocation";
public static String MC_HTTP_SERVLETPATHINFO= "transport.http.servletPathInfo";
- /**
- * @deprecated Should use javax.xml.rpc.Call.SOAPACTION_URI_PROPERTY instead.
- */
- public static String MC_HTTP_SOAPACTION = javax.xml.rpc.Call.SOAPACTION_URI_PROPERTY;
/** HTTP header field values
*/
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/SimpleAxisWorker.java Sun Nov 28 07:27:17 2004
@@ -21,15 +21,18 @@
import java.net.Socket;
import javax.xml.namespace.QName;
-import javax.xml.soap.MimeHeaders;
import org.apache.axis.encoding.Base64;
import org.apache.axis.engine.AxisEngine;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Service;
+import org.apache.axis.engine.ServiceLocator;
+import org.apache.axis.engine.TransportSenderLocator;
import org.apache.axis.engine.context.MessageContext;
import org.apache.axis.engine.registry.EngineRegistry;
import org.apache.axis.om.OMXMLParserWrapper;
import org.apache.axis.om.impl.OMXMLPullParserWrapper;
-import org.apache.axis.om.impl.SOAPMessageImpl;
+import org.apache.axis.om.mime.MimeHeaders;
import org.apache.axis.transport.TransportSender;
import org.apache.axis.utils.Messages;
import org.apache.commons.logging.Log;
@@ -46,6 +49,8 @@
private AxisEngine engine;
private SimpleAxisServer server;
private Socket socket;
+ private String serviceFromURI;
+
// Axis specific constants
private static String transportName = "SimpleHTTP";
@@ -149,19 +154,22 @@
public void run() {
try {
execute();
- } finally {
+ }catch(AxisFault e){
+ log.error(e);
+ }finally {
+
}
}
/**
* The main workhorse method.
*/
- public void execute () {
+ public void execute () throws AxisFault {
byte buf[] = new byte[BUFSIZ];
// create an Axis server
MessageContext msgContext = new MessageContext(engine.getRegistry());
-
+ msgContext.setServerSide(true);
// Reusuable, buffered, content length controlled, InputStream
NonBlockingBufferedInputStream is =
@@ -233,7 +241,7 @@
servicePart.substring(separator + 1));
servicePart = servicePart.substring(0, separator);
}
- msgContext.setCurrentService(new QName(servicePart));
+ this.serviceFromURI = servicePart;
}
if (authInfo.length() > 0) {
@@ -259,8 +267,6 @@
msgContext.setProperty(MessageContext.USER_NAME,userBuf.toString());
msgContext.setProperty(MessageContext.PASSWARD,pwBuf.toString());
}
-///////////////////////
- // if get, then return simpleton document as response
if (httpRequest.toString().equals("GET")) {
throw new UnsupportedOperationException("GET not supported");
} else {
@@ -269,16 +275,24 @@
// for now, do not complain if no SOAPAction at all
String soapActionString = soapAction.toString();
if (soapActionString != null) {
- msgContext.setUseSOAPAction(true);
- msgContext.setSoapAction(soapActionString);
+ msgContext.setProperty(MessageContext.SOAP_ACTION,soapActionString);
}
-
+
+ Service service = ServiceLocator.locateService(serviceFromURI,soapActionString,msgContext);
+ msgContext.setService(service);
// Send it on its way...
OutputStream out = socket.getOutputStream();
out.write(HTTP);
out.write(status);
log.info("status written");
- msgContext.setTransportSender(new TransportSender(out));
+
+
+
+ //We do not have any Addressing Headers to put
+ //let us put the information about incoming transport
+ msgContext.setProperty(MessageContext.TRANSPORT_TYPE,
+ TransportSenderLocator.TRANSPORT_TCP);
+ msgContext.setProperty(MessageContext.TRANSPORT_DATA,out);
XmlPullParserFactory pf = XmlPullParserFactory.newInstance();
pf.setNamespaceAware(true);
@@ -286,7 +300,7 @@
parser.setInput(new InputStreamReader(is));
OMXMLParserWrapper parserWrapper = new OMXMLPullParserWrapper(parser);
- msgContext.setInMessage(parserWrapper.getSOAPMessage());
+ msgContext.setMessage(parserWrapper.getSOAPMessage());
EngineRegistry reg = engine.getRegistry();
// invoke the Axis engine
engine.recive(msgContext);
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/TCPTrasnportSender.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/TCPTrasnportSender.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/java/org/apache/axis/transport/http/TCPTrasnportSender.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2001-2004 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.transport.http;
+
+import java.io.OutputStream;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.TransportSender;
+import org.apache.axis.engine.context.MessageContext;
+import org.apache.axis.handlers.AbstractHandler;
+import org.apache.axis.om.soap.SOAPMessage;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class TCPTrasnportSender extends AbstractHandler implements TransportSender{
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ OutputStream out = (OutputStream)msgContext.getProperty(MessageContext.TRANSPORT_DATA);
+ SOAPMessage message = msgContext.getMessage();
+ //TODO write OM
+ }
+
+ public void revoke(MessageContext msgContext) {
+
+ }
+
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Echo.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Echo.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Echo.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,26 @@
+import org.apache.axis.om.soap.SOAPMessage;
+
+/*
+ * Copyright 2001-2004 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.
+ */
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class Echo {
+ public SOAPMessage echo(SOAPMessage in){
+ return in;
+ }
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Handler1.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Handler1.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/Handler1.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 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.
+ */
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.engine.registry.*;
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.context.MessageContext;
+
+public class Handler1 extends AbstractEngineElement implements Handler {
+ private QName name;
+ public Handler1() {
+ }
+ public QName getName() {
+ return name;
+ }
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ System.out.println("I am Running :)");
+ }
+
+ public void revoke(MessageContext msgContext) {
+ System.out.println("I am Handler Running :)");
+ }
+
+ public void setName(QName name) {
+ this.name = name;
+ }
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/META-INF/service.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/META-INF/service.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/META-INF/service.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,9 @@
+<service
+ provider="org.apache.axis.providers.RawXMLProvider"
+ style="msg">
+ <java:implementation class="Echo"/>
+ <inflow>
+ <handler name="h1" class="Handler1"/>
+ </inflow>
+ <operation name="echo"/>
+</service>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/build.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/build.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/samples/msg/echo/build.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,52 @@
+<?xml version="1.0"?>
+<project basedir="." default="jar">
+ <property name="src" location="."/>
+ <property name="build" location="build"/>
+ <property name="build.classes" location="${build}/classes"/>
+ <property name="build.lib" location="${build}/lib"/>
+ <property name="lib" location="lib"/>
+ <property name="root" location="../../../../"/>
+ <property name="jar.dir" location="${root}/target/test-resources/"/>
+
+ <path id="axis.test.classpath">
+ <path refid="maven.dependency.classpath"></path>
+ <pathelement location="../../../../target/classes"/>
+ </path>
+
+ <target name="compile" depends="init" unless="jars.uptodate">
+ <mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.lib}"/>
+ <javac destdir="${build.classes}" debug="on">
+ <classpath refid="axis.test.classpath" />
+ <src path="${src}"/>
+ </javac>
+ </target>
+
+ <target name="jar" depends="compile" unless="jars.uptodate">
+ <copy todir="${build.classes}/META-INF">
+ <fileset dir="${basedir}/META-INF/">
+ <include name="**/*.xml"/>
+ <exclude name="build.xml"/>
+ </fileset>
+ </copy>
+
+ <mkdir dir="${jar.dir}"/>
+ <jar jarfile="${jar.dir}/echo-msg.jar" basedir="${build.classes}" >
+ <include name="**" />
+ </jar>
+ <delete dir="${build}"/>
+ </target>
+
+ <target name="init">
+ <uptodate property="jars.uptodate" targetfile="${jar.dir}/echo.jar">
+ <srcfiles dir="${src}">
+ <include name="**/*.java"/>
+ <include name="**/*.xml"/>
+ <include name="**/*.wsdl"/>
+ <exclude name="${build}/**"/>
+ </srcfiles>
+ </uptodate>
+ <echo message="the files are up to date = ${jars.uptodate}"></echo>
+ </target>
+
+</project>
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/schema/wsdd.xsd
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/schema/wsdd.xsd?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/schema/wsdd.xsd Sun Nov 28 07:27:17 2004
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--//
+ Web Services Deployment Descriptor (WSDD) Version 1.1 (Proposal)
+
+ BNF NOTE:- everything started with _ is a intermediate varibale
+ The BNF service.xml for the XML in XML out M1 purposed, no data binding support
+
+ _parameter::=<parameter name="xsd:string" value="xsd:string"/>
+ |<parameter name="string">xsd:any</parameter/>
+
+ _handler::=<handler name="URI">
+ (_parameter)*
+ <order phase=”#phase” />
+ <java:implementation class=”..”/>
+ </handler>
+ _in_flow::= <inflow>(_handler)*<inflow>
+ _out_flow::= <outflow>(_handler)*<outflow>
+ _fault_flow::= <faultflow>(_handler)*<faultflow>
+
+ _operation::=<operation name="xsd:string">
+ (_parameter)*
+ (_in_flow)?
+ (_out_flow)?
+ (_fault_flow)?
+ </operation>
+
+ _service ::= <service name="URI">
+ (_operation)*
+ (_in_flow)?
+ (_out_flow)?
+ (_fault_flow)?
+ </service>
+
+//-->
+<xsd:schema targetNamespace="http://xml.apache.org/axis/wsdd/" xmlns:wsdd="http://xml.apache.org/axis/wsdd/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1">
+ <xsd:complexType name="parameter">
+ <xsd:sequence>
+ <xsd:element ref="xsd:any" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:NCName" use="optional"/>
+ <xsd:attribute name="value" type="xsd:QName" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="java:implementation" xmlns:java="http://xml.apache.org/axis/wsdd/java">
+ <xsd:attribute name="class" type="xsd:URI" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="order">
+ <xsd:attribute name="phase" type="xsd:URI" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="handler">
+ <xsd:sequence>
+ <xsd:element ref="wsdd:parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:element ref="wsdd:order" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="java:implementation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:attribute name="name" type="xsd:QName" use="optional"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="inflow">
+ <xsd:sequence>
+ <xsd:element ref="wsdd:handler" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="outflow">
+ <xsd:sequence>
+ <xsd:element ref="wsdd:handler" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="faultflow">
+ <xsd:sequence>
+ <xsd:element ref="wsdd:handler" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="operation">
+ <xsd:sequence>
+ <xsd:element ref="wsdd:parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:element ref="wsdd:inflow" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="wsdd:outflow" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="wsdd:faultflow" minOccurs="0" maxOccurs="1"/>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="service">
+ <xsd:sequence>
+ <xsd:element ref="wsdd:parameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:element ref="wsdd:operation" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element ref="wsdd:inflow" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="wsdd:outflow" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="wsdd:faultflow" minOccurs="0" maxOccurs="1"/>
+ </xsd:complexType>
+</xsd:schema>
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/emtyBodymessage.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/emtyBodymessage.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/emtyBodymessage.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,11 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/minimalMessage.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/minimalMessage.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/minimalMessage.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,4 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Body/>
+</env:Envelope>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/reallyReallyBigMessage.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/reallyReallyBigMessage.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/reallyReallyBigMessage.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,2489 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <env:Header>
+
+<wsdl:definitions targetNamespace="http://echo.services"
+xmlns="http://schemas.xmlsoap.org/wsdl/"
+xmlns:impl="http://echo.services-impl"
+xmlns:intf="http://echo.services"
+xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:tns1="http://types.echo.services"
+xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+<wsdl:types>
+<schema targetNamespace="http://types.echo.services"
+xmlns="http://www.w3.org/2001/XMLSchema">
+<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
+<complexType name="MyComplexType">
+<sequence>
+<element name="simpleItem" nillable="true" type="xsd:string" />
+</sequence>
+</complexType>
+<element name="MyElement" nillable="true" type="tns1:MyComplexType" />
+</schema>
+</wsdl:types>
+<wsdl:message name="echoRequest">
+<wsdl:part element="tns1:MyElement" name="MyElement" />
+</wsdl:message>
+<wsdl:message name="echoResponse">
+<wsdl:part element="tns1:MyElement" name="MyElement" />
+</wsdl:message>
+<wsdl:portType name="Echo">
+<wsdl:operation name="echo" parameterOrder="MyElement">
+<wsdl:input message="intf:echoRequest" name="echoRequest" />
+<wsdl:output message="intf:echoResponse" name="echoResponse" />
+</wsdl:operation>
+</wsdl:portType>
+<wsdl:binding name="ComplexEchoServiceSoapBinding" type="intf:Echo">
+<wsdlsoap:binding style="document"
+transport="http://schemas.xmlsoap.org/soap/http" />
+<wsdl:operation name="echo">
+<wsdlsoap:operation soapAction="" />
+<wsdl:input name="echoRequest">
+<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+namespace="http://types.echo.services" use="literal" />
+</wsdl:input>
+<wsdl:output name="echoResponse">
+<wsdlsoap:body namespace="http://types.echo.services" use="literal" />
+</wsdl:output>
+</wsdl:operation>
+</wsdl:binding>
+<wsdl:service name="ComplexEchoService">
+<wsdl:port binding="intf:ComplexEchoServiceSoapBinding" name="ComplexEchoService">
+<wsdlsoap:address
+location="http://localhost:8080/axis/services/ComplexEchoService" />
+</wsdl:port>
+</wsdl:service>
+</wsdl:definitions>
+
+
+ </env:Header>
+ <env:Body>
+ <definitions
+ name="comprehensive types test"
+ targetNamespace="urn:comprehensive-service.types.wsdl.test"
+ xmlns:tns="urn:comprehensive-service.types.wsdl.test"
+ xmlns:typens="urn:comprehensive-types.types.wsdl.test"
+ xmlns:typens2="urn:comprehensive-types2.types.wsdl.test"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+
+ <types>
+ <xsd:schema
+ targetNamespace="urn:comprehensive-types.types.wsdl.test"
+ xmlns:xsd="http://www.w3.org/1999/XMLSchema"
+ xmlns:xsd2="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:simpleType name="simple">
+ <xsd:restriction base="xsd:string" />
+ </xsd:simpleType>
+
+ <xsd:simpleType name="simpleDate">
+ <xsd:restriction base="xsd:date" />
+ </xsd:simpleType>
+
+ <xsd:simpleType name="simpleDateTime">
+ <xsd:restriction base="xsd2:dateTime" />
+ </xsd:simpleType>
+
+ <xsd:simpleType name="enum">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="one"/>
+ <xsd:enumeration value="two"/>
+ <xsd:enumeration value="three"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:complexType name="array">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:string[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="array_of_base64">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:base64Binary[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexAll">
+ <xsd:all>
+ <xsd:element name="areaCode" type="xsd:int"/>
+ <xsd:element name="exchange" type="xsd:string"/>
+ <xsd:element name="number" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexSequence">
+ <xsd:sequence>
+ <xsd:element name="areaCode" type="xsd:int"/>
+ <xsd:element name="exchange" type="xsd:string"/>
+ <xsd:element name="number" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexChoice">
+ <xsd:choice>
+ <xsd:element name="choiceA" type="xsd:int"/>
+ <xsd:element name="choiceB" type="xsd:string"/>
+ <xsd:element name="choiceC" type="xsd:string"/>
+ </xsd:choice>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="Object">
+ <xsd:sequence>
+ <xsd:element name="test" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="String">
+ <xsd:sequence>
+ <xsd:element name="test" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="Class">
+ <xsd:sequence>
+ <xsd:element name="test" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="enumValue" type="typens:enum"/>
+
+ <xsd:complexType name="time">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="DST" type="xsd:boolean" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="complexWComplex">
+ <xsd:sequence>
+ <xsd:element name="stock_quote">
+ <xsd:complexType>
+ <xsd:attribute name="symbol" type="xsd:string"/>
+ <xsd:sequence>
+
+ <xsd:element name="time" type="typens:time"/>
+ <xsd:element name="change" type="typens:simpleFwd"/>
+ <xsd:element name="pctchange" type="xsd:string"/>
+ <xsd:element name="bid" type="xsd:string"/>
+ <xsd:element name="ask" type="xsd:string"/>
+ <xsd:element name="choice" type="typens:complexChoice"/>
+ </xsd:sequence>
+ <xsd:attribute name="last" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="outside" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="emptyFault">
+ <xsd:sequence />
+ </xsd:complexType>
+
+ <xsd:element name="faultElement" type="typens:faultType" />
+ <xsd:complexType name="faultType">
+ <xsd:sequence>
+ <xsd:element name="userData" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:complexType name="emptyComplexType">
+ <xsd:sequence />
+ </xsd:complexType>
+
+ <xsd:simpleType name="simpleFwd">
+ <xsd:restriction base="typens:simple" />
+ </xsd:simpleType>
+
+
+ <xsd:complexType name="arrayM">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:arrayM2[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="arrayM2">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="typens:arrayM3[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:complexType name="arrayM3">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:int[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+
+ <xsd:complexType name="Animal">
+ <xsd:all>
+ <xsd:element name="Name" nillable="true" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+ <xsd:element name="Animal" nillable="true" type="typens:Animal"/>
+ <xsd:complexType name="Cat">
+ <xsd:complexContent>
+ <xsd:extension base="typens:Animal">
+ <xsd:all>
+ <xsd:element name="Purr" nillable="true" type="xsd:string"/>
+ </xsd:all>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="Cat" nillable="true" type="typens:Cat"/>
+
+ <xsd:complexType name="PersionCat">
+ <xsd:complexContent>
+ <xsd:extension base="typens:Cat">
+ <xsd:all>
+ <xsd:element name="Color" type="xsd:string"/>
+ <xsd:element name="Toy" />
+ </xsd:all>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="Yarn">
+ <xsd:all>
+ <xsd:element name="Color" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+
+
+ <xsd:simpleType name="enumString">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Ho Ho Ho"/>
+ <xsd:enumeration value="He He He"/>
+ <xsd:enumeration value="Ha Ha Ha"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumInt">
+ <xsd:restriction base="xsd:int">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumLong">
+ <xsd:restriction base="xsd:long">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ <xsd:enumeration value="-9223372036854775808"/>
+ <xsd:enumeration value="9223372036854775807"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumShort">
+ <xsd:restriction base="xsd:short">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumFloat">
+ <xsd:restriction base="xsd:float">
+ <xsd:enumeration value="1.1"/>
+ <xsd:enumeration value="2.2"/>
+ <xsd:enumeration value="3.3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumDouble">
+ <xsd:restriction base="xsd:double">
+ <xsd:enumeration value="1.1"/>
+ <xsd:enumeration value="2.2"/>
+ <xsd:enumeration value="3.3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="enumByte">
+ <xsd:restriction base="xsd:byte">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="enumInteger">
+ <xsd:restriction base="xsd:integer">
+ <xsd:enumeration value="1"/>
+ <xsd:enumeration value="2"/>
+ <xsd:enumeration value="3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="flowDirectionType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="in"/>
+ <xsd:enumeration value="inOut"/>
+ <xsd:enumeration value="out"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="enumNMTOKEN">
+ <xsd:restriction base="xsd:NMTOKEN">
+ <xsd:enumeration value="NameToken1"/>
+ <xsd:enumeration value="NameToken2"/>
+ <xsd:enumeration value="NameToken3"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="AIDType">
+ <xsd:restriction base="xsd:hexBinary">
+ <xsd:maxLength value="16"/>
+ <xsd:minLength value="5"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+<xsd:simpleType name="passModeType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="passByValue"/>
+ <xsd:enumeration value="passByReference"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+
+<xsd:element name="StringParameter" type="typens:StringParameter" />
+ <xsd:complexType name="StringParameter">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute name="numBytes" type="soapenc:int"/>
+ <xsd:attribute name="storageEncoding" type="xsd:string"/>
+ <xsd:attribute name="direction" type="typens:flowDirectionType"/>
+ <xsd:attribute name="passMode" type="typens:passModeType"/>
+ <xsd:attribute name="description" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+</xsd:complexType>
+
+ </xsd:schema>
+
+
+ <xsd:schema
+ targetNamespace="urn:comprehensive-types2.types.wsdl.test"
+ xmlns:xsd="http://www.w3.org/1999/XMLSchema">
+ <xsd:complexType name="fwd">
+ <xsd:complexContent>
+ <xsd:restriction base="soapenc:Array">
+ <xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:QName[]"/>
+ </xsd:restriction>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+
+ <xsd:element name="three" type="typens:enum" maxOccurs="unbounded" />
+
+
+
+ <xsd:element name="a" type="xsd:short" />
+ <xsd:complexType name="a">
+ <xsd:sequence>
+ <xsd:element name="c" type="xsd:int" />
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="b">
+ <xsd:sequence>
+ <xsd:element name="d" type="typens2:a" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+
+ <xsd:complexType name="SimpleAnyURIType">
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:anyURI">
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+
+ </xsd:schema>
+
+ </types>
+
+ <message name="empty"/>
+
+ <message name="allPrimitives">
+ <part name="string" type="xsd:string"/>
+ <part name="integer" type="xsd:integer"/>
+ <part name="int" type="xsd:int"/>
+ <part name="long" type="xsd:long"/>
+ <part name="short" type="xsd:short"/>
+ <part name="decimal" type="xsd:decimal"/>
+ <part name="float" type="xsd:float"/>
+ <part name="double" type="xsd:double"/>
+ <part name="boolean" type="xsd:boolean"/>
+ <part name="byte" type="xsd:byte"/>
+ <part name="QName" type="xsd:QName"/>
+ <part name="dateTime" type="xsd:dateTime"/>
+ <part name="base64Binary" type="xsd:base64Binary"/>
+ <part name="hexBinary" type="xsd:hexBinary"/>
+ <part name="soapString" type="soapenc:string"/>
+ <part name="soapBoolean" type="soapenc:boolean"/>
+ <part name="soapFloat" type="soapenc:float"/>
+ <part name="soapDouble" type="soapenc:double"/>
+ <part name="soapDecimal" type="soapenc:decimal"/>
+ <part name="soapInt" type="soapenc:int"/>
+ <part name="soapShort" type="soapenc:short"/>
+ <part name="soapBase64" type="soapenc:base64"/>
+ <part name="time" type="xsd:time"/>
+ <part name="unsignedLong" type="xsd:unsignedLong"/>
+ <part name="unsignedInt" type="xsd:unsignedInt"/>
+ <part name="unsignedShort" type="xsd:unsignedShort"/>
+ <part name="unsignedByte" type="xsd:unsignedByte"/>
+ <part name="nonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ <part name="positiveInteger" type="xsd:positiveInteger"/>
+ <part name="nonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ <part name="negativeInteger" type="xsd:negativeInteger"/>
+ <part name="anyURI" type="xsd:anyURI"/>
+ <part name="gYear" type="xsd:gYear"/>
+ <part name="gMonth" type="xsd:gMonth"/>
+ <part name="gDay" type="xsd:gDay"/>
+ <part name="gYearMonth" type="xsd:gYearMonth"/>
+ <part name="gMonthDay" type="xsd:gMonthDay"/>
+ </message>
+ <message name="inputBoolean">
+ <part name="inBoolean" type="xsd:boolean"/>
+ <part name="boolean" type="xsd:boolean"/>
+ </message>
+
+ <message name="outputBoolean">
+ <part name="outBoolean" type="xsd:boolean"/>
+ <part name="boolean" type="xsd:boolean"/>
+ </message>
+
+ <message name="inputByte">
+ <part name="inByte" type="xsd:byte"/>
+ <part name="byte" type="xsd:byte"/>
+ </message>
+
+ <message name="outputByte">
+ <part name="outByte" type="xsd:byte"/>
+ <part name="byte" type="xsd:byte"/>
+ </message>
+
+ <message name="inputShort">
+ <part name="inShort" type="xsd:short"/>
+ <part name="short" type="xsd:short"/>
+ </message>
+
+ <message name="outputShort">
+ <part name="outShort" type="xsd:short"/>
+ <part name="short" type="xsd:short"/>
+ </message>
+
+ <message name="inputInt">
+ <part name="inInt" type="xsd:int"/>
+ <part name="int" type="xsd:int"/>
+ </message>
+
+ <message name="outputInt">
+ <part name="outInt" type="xsd:int"/>
+ <part name="int" type="xsd:int"/>
+ </message>
+
+ <message name="inputLong">
+ <part name="inLong" type="xsd:long"/>
+ <part name="long" type="xsd:long"/>
+ </message>
+
+ <message name="outputLong">
+ <part name="outLong" type="xsd:long"/>
+ <part name="long" type="xsd:long"/>
+ </message>
+
+ <message name="inputFloat">
+ <part name="inFloat" type="xsd:float"/>
+ <part name="float" type="xsd:float"/>
+ </message>
+
+ <message name="outputFloat">
+ <part name="outFloat" type="xsd:float"/>
+ <part name="float" type="xsd:float"/>
+ </message>
+
+ <message name="inputDouble">
+ <part name="inDouble" type="xsd:double"/>
+ <part name="double" type="xsd:double"/>
+ </message>
+
+ <message name="outputDouble">
+ <part name="outDouble" type="xsd:double"/>
+ <part name="double" type="xsd:double"/>
+ </message>
+
+ <message name="inputString">
+ <part name="inString" type="xsd:string"/>
+ <part name="string" type="xsd:string"/>
+ </message>
+
+ <message name="outputString">
+ <part name="outString" type="xsd:string"/>
+ <part name="string" type="xsd:string"/>
+ </message>
+
+ <message name="inputInteger">
+ <part name="inInteger" type="xsd:integer"/>
+ <part name="integer" type="xsd:integer"/>
+ </message>
+
+ <message name="outputInteger">
+ <part name="outInteger" type="xsd:integer"/>
+ <part name="integer" type="xsd:integer"/>
+ </message>
+
+ <message name="inputDecimal">
+ <part name="inDecimal" type="xsd:decimal"/>
+ <part name="decimal" type="xsd:decimal"/>
+ </message>
+
+ <message name="outputDecimal">
+ <part name="outDecimal" type="xsd:decimal"/>
+ <part name="decimal" type="xsd:decimal"/>
+ </message>
+
+ <message name="inputDateTime">
+ <part name="inDateTime" type="xsd:dateTime"/>
+ <part name="dateTime" type="xsd:dateTime"/>
+ </message>
+
+ <message name="outputDateTime">
+ <part name="outDateTime" type="xsd:dateTime"/>
+ <part name="dateTime" type="xsd:dateTime"/>
+ </message>
+
+ <message name="inputBase64Binary">
+ <part name="inBase64Binary" type="xsd:base64Binary"/>
+ <part name="base64Binary" type="xsd:base64Binary"/>
+ </message>
+
+ <message name="outputBase64Binary">
+ <part name="outBase64Binary" type="xsd:base64Binary"/>
+ <part name="base64Binary" type="xsd:base64Binary"/>
+ </message>
+
+ <message name="inputQName">
+ <part name="inQName" type="xsd:QName"/>
+ <part name="qName" type="xsd:QName"/>
+ </message>
+
+ <message name="outputQName">
+ <part name="outQName" type="xsd:QName"/>
+ <part name="qName" type="xsd:QName"/>
+ </message>
+
+ <message name="inputHexBinary">
+ <part name="inHexBinary" type="xsd:hexBinary"/>
+ <part name="hexBinary" type="xsd:hexBinary"/>
+ </message>
+
+ <message name="outputHexBinary">
+ <part name="outHexBinary" type="xsd:hexBinary"/>
+ <part name="hexBinary" type="xsd:hexBinary"/>
+ </message>
+
+ <message name="inputTime">
+ <part name="inTime" type="xsd:time"/>
+ <part name="time" type="xsd:time"/>
+ </message>
+
+ <message name="outputTime">
+ <part name="outTime" type="xsd:time"/>
+ <part name="time" type="xsd:time"/>
+ </message>
+
+ <message name="inputUnsignedLong">
+ <part name="inUnsignedLong" type="xsd:unsignedLong"/>
+ <part name="unsignedLong" type="xsd:unsignedLong"/>
+ </message>
+
+ <message name="outputUnsignedLong">
+ <part name="outUnsignedLong" type="xsd:unsignedLong"/>
+ <part name="unsignedLong" type="xsd:unsignedLong"/>
+ </message>
+
+ <message name="inputUnsignedInt">
+ <part name="inUnsignedInt" type="xsd:unsignedInt"/>
+ <part name="unsignedInt" type="xsd:unsignedInt"/>
+ </message>
+
+ <message name="outputUnsignedInt">
+ <part name="outUnsignedInt" type="xsd:unsignedInt"/>
+ <part name="unsignedInt" type="xsd:unsignedInt"/>
+ </message>
+
+ <message name="inputUnsignedShort">
+ <part name="inUnsignedShort" type="xsd:unsignedShort"/>
+ <part name="unsignedShort" type="xsd:unsignedShort"/>
+ </message>
+
+ <message name="outputUnsignedShort">
+ <part name="outUnsignedShort" type="xsd:unsignedShort"/>
+ <part name="unsignedShort" type="xsd:unsignedShort"/>
+ </message>
+
+ <message name="inputUnsignedByte">
+ <part name="inUnsignedByte" type="xsd:unsignedByte"/>
+ <part name="unsignedByte" type="xsd:unsignedByte"/>
+ </message>
+
+ <message name="outputUnsignedByte">
+ <part name="outUnsignedByte" type="xsd:unsignedByte"/>
+ <part name="unsignedByte" type="xsd:unsignedByte"/>
+ </message>
+
+ <message name="inputNonNegativeInteger">
+ <part name="inNonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ <part name="NonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ </message>
+
+ <message name="outputNonNegativeInteger">
+ <part name="outNonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ <part name="NonNegativeInteger" type="xsd:nonNegativeInteger"/>
+ </message>
+
+ <message name="inputPositiveInteger">
+ <part name="inPositiveInteger" type="xsd:positiveInteger"/>
+ <part name="PositiveInteger" type="xsd:positiveInteger"/>
+ </message>
+
+ <message name="outputPositiveInteger">
+ <part name="outPositiveInteger" type="xsd:positiveInteger"/>
+ <part name="PositiveInteger" type="xsd:positiveInteger"/>
+ </message>
+
+ <message name="inputNonPositiveInteger">
+ <part name="inNonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ <part name="NonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ </message>
+
+ <message name="outputNonPositiveInteger">
+ <part name="outNonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ <part name="NonPositiveInteger" type="xsd:nonPositiveInteger"/>
+ </message>
+
+ <message name="inputNegativeInteger">
+ <part name="inNegativeInteger" type="xsd:negativeInteger"/>
+ <part name="NegativeInteger" type="xsd:negativeInteger"/>
+ </message>
+
+ <message name="outputNegativeInteger">
+ <part name="outNegativeInteger" type="xsd:negativeInteger"/>
+ <part name="NegativeInteger" type="xsd:negativeInteger"/>
+ </message>
+
+ <message name="inputAnyURI">
+ <part name="inAnyURI" type="xsd:anyURI"/>
+ <part name="anyURI" type="xsd:anyURI"/>
+ </message>
+
+ <message name="outputAnyURI">
+ <part name="outAnyURI" type="xsd:anyURI"/>
+ <part name="anyURI" type="xsd:anyURI"/>
+ </message>
+
+ <message name="inputSimpleAnyURI">
+ <part name="inAnyURI" type="typens2:SimpleAnyURIType"/>
+ <part name="anyURI" type="typens2:SimpleAnyURIType"/>
+ </message>
+
+ <message name="outputSimpleAnyURI">
+ <part name="outAnyURI" type="typens2:SimpleAnyURIType"/>
+ <part name="anyURI" type="typens2:SimpleAnyURIType"/>
+ </message>
+
+ <message name="inputYear">
+ <part name="inYear" type="xsd:gYear"/>
+ <part name="Year" type="xsd:gYear"/>
+ </message>
+
+ <message name="outputYear">
+ <part name="outYear" type="xsd:gYear"/>
+ <part name="Year" type="xsd:gYear"/>
+ </message>
+
+ <message name="inputMonth">
+ <part name="inMonth" type="xsd:gMonth"/>
+ <part name="Month" type="xsd:gMonth"/>
+ </message>
+
+ <message name="outputMonth">
+ <part name="outMonth" type="xsd:gMonth"/>
+ <part name="Month" type="xsd:gMonth"/>
+ </message>
+
+ <message name="inputDay">
+ <part name="inDay" type="xsd:gDay"/>
+ <part name="Day" type="xsd:gDay"/>
+ </message>
+
+ <message name="outputDay">
+ <part name="outDay" type="xsd:gDay"/>
+ <part name="Day" type="xsd:gDay"/>
+ </message>
+
+ <message name="inputYearMonth">
+ <part name="inYearMonth" type="xsd:gYearMonth"/>
+ <part name="YearMonth" type="xsd:gYearMonth"/>
+ </message>
+
+ <message name="outputYearMonth">
+ <part name="outYearMonth" type="xsd:gYearMonth"/>
+ <part name="YearMonth" type="xsd:gYearMonth"/>
+ </message>
+
+ <message name="inputMonthDay">
+ <part name="inMonthDay" type="xsd:gMonthDay"/>
+ <part name="MonthDay" type="xsd:gMonthDay"/>
+ </message>
+
+ <message name="outputMonthDay">
+ <part name="outMonthDay" type="xsd:gMonthDay"/>
+ <part name="MonthDay" type="xsd:gMonthDay"/>
+ </message>
+
+ <message name="inputSoapString">
+ <part name="inSoapString" type="soapenc:string"/>
+ <part name="soapencString" type="soapenc:string"/>
+ </message>
+
+ <message name="outputSoapString">
+ <part name="outSoapString" type="soapenc:string"/>
+ <part name="soapencString" type="soapenc:string"/>
+ </message>
+
+ <message name="inputSoapBoolean">
+ <part name="inSoapBoolean" type="soapenc:boolean"/>
+ <part name="soapencBoolean" type="soapenc:boolean"/>
+ </message>
+
+ <message name="outputSoapBoolean">
+ <part name="outSoapBoolean" type="soapenc:boolean"/>
+ <part name="soapencBoolean" type="soapenc:boolean"/>
+ </message>
+
+ <message name="inputSoapFloat">
+ <part name="inSoapFloat" type="soapenc:float"/>
+ <part name="soapencFloat" type="soapenc:float"/>
+ </message>
+
+ <message name="outputSoapFloat">
+ <part name="outSoapFloat" type="soapenc:float"/>
+ <part name="soapencFloat" type="soapenc:float"/>
+ </message>
+
+ <message name="inputSoapDouble">
+ <part name="inSoapDouble" type="soapenc:double"/>
+ <part name="soapencDouble" type="soapenc:double"/>
+ </message>
+
+ <message name="outputSoapDouble">
+ <part name="outSoapDouble" type="soapenc:double"/>
+ <part name="soapencDouble" type="soapenc:double"/>
+ </message>
+
+ <message name="inputSoapDecimal">
+ <part name="inSoapDecimal" type="soapenc:decimal"/>
+ <part name="soapencDecimal" type="soapenc:decimal"/>
+ </message>
+
+ <message name="outputSoapDecimal">
+ <part name="outSoapDecimal" type="soapenc:decimal"/>
+ <part name="soapencDecimal" type="soapenc:decimal"/>
+ </message>
+
+ <message name="inputSoapInt">
+ <part name="inSoapInt" type="soapenc:int"/>
+ <part name="soapencInt" type="soapenc:int"/>
+ </message>
+
+ <message name="outputSoapInt">
+ <part name="outSoapInt" type="soapenc:int"/>
+ <part name="soapencInt" type="soapenc:int"/>
+ </message>
+
+ <message name="inputSoapShort">
+ <part name="inSoapShort" type="soapenc:short"/>
+ <part name="soapencShort" type="soapenc:short"/>
+ </message>
+
+ <message name="outputSoapShort">
+ <part name="outSoapShort" type="soapenc:short"/>
+ <part name="soapencShort" type="soapenc:short"/>
+ </message>
+
+ <message name="inputSoapBase64">
+ <part name="inSoapBase64" type="soapenc:base64"/>
+ <part name="soapencBase64" type="soapenc:base64"/>
+ </message>
+
+ <message name="outputSoapBase64">
+ <part name="outSoapBase64" type="soapenc:base64"/>
+ <part name="soapencBase64" type="soapenc:base64"/>
+ </message>
+
+ <message name="enum">
+ <part name="enum" type="typens:enum"/>
+ </message>
+
+ <message name="enumInt">
+ <part name="enumInt" type="typens:enumInt"/>
+ </message>
+
+ <message name="array">
+ <part name="array" type="typens:array"/>
+ </message>
+
+ <message name="arrayM">
+ <part name="arrayM" type="typens:arrayM"/>
+ </message>
+
+ <message name="complexAll">
+ <part name="complexAll" type="typens:complexAll"/>
+ </message>
+
+ <message name="complexSequence">
+ <part name="complexSequence" type="typens:complexSequence"/>
+ </message>
+
+ <message name="complexWComplex">
+ <part name="complexWComplex" type="typens:complexWComplex"/>
+ </message>
+
+ <message name="any">
+ <part name="any" type="xsd:anyType"/>
+ </message>
+
+ <message name="animal">
+ <part name="animal" type="typens:Animal"/>
+ </message>
+
+ <message name="cat">
+ <part name="cat" type="typens:Cat"/>
+ </message>
+
+ <message name="emptyFault">
+ <part name="theFault" type="typens:emptyFault" />
+ </message>
+
+ <message name="faultWithElement">
+ <part name="fault2" element="typens:faultElement" />
+ </message>
+
+ <message name="emptyComplexType">
+ <part name="emptyComplexType" type="typens:emptyComplexType" />
+ </message>
+
+
+ <portType name="TypeTest">
+ <operation name="allPrimitivesIn">
+ <input message="tns:allPrimitives"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="allPrimitivesInout">
+ <input message="tns:allPrimitives"/>
+ <output message="tns:allPrimitives"/>
+ </operation>
+ <operation name="allPrimitivesOut">
+ <input message="tns:empty"/>
+ <output message="tns:allPrimitives"/>
+ </operation>
+ <operation name="enumIn">
+ <input message="tns:enum"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="enumInout">
+ <input message="tns:enum"/>
+ <output message="tns:enum"/>
+ </operation>
+ <operation name="enumOut" parameterOrder="enum">
+ <input message="tns:empty"/>
+ <output message="tns:enum"/>
+ </operation>
+ <operation name="enumReturn">
+ <input message="tns:empty"/>
+ <output message="tns:enum"/>
+ </operation>
+ <operation name="enumIntIn">
+ <input message="tns:enumInt"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="enumIntInout">
+ <input message="tns:enumInt"/>
+ <output message="tns:enumInt"/>
+ </operation>
+ <operation name="enumIntOut" parameterOrder="enumInt">
+ <input message="tns:empty"/>
+ <output message="tns:enumInt"/>
+ </operation>
+ <operation name="enumIntReturn">
+ <input message="tns:empty"/>
+ <output message="tns:enumInt"/>
+ </operation>
+ <operation name="arrayIn">
+ <input message="tns:array"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="arrayInout">
+ <input message="tns:array"/>
+ <output message="tns:array"/>
+ </operation>
+ <operation name="arrayOut" parameterOrder="array">
+ <input message="tns:empty"/>
+ <output message="tns:array"/>
+ </operation>
+ <operation name="arrayReturn">
+ <input message="tns:empty"/>
+ <output message="tns:array"/>
+ </operation>
+
+ <operation name="arrayMIn">
+ <input message="tns:arrayM"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="arrayMInout">
+ <input message="tns:arrayM"/>
+ <output message="tns:arrayM"/>
+ </operation>
+ <operation name="arrayMOut" parameterOrder="arrayM">
+ <input message="tns:empty"/>
+ <output message="tns:arrayM"/>
+ </operation>
+ <operation name="arrayMReturn">
+ <input message="tns:empty"/>
+ <output message="tns:arrayM"/>
+ </operation>
+
+ <operation name="complexAllIn">
+ <input message="tns:complexAll"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="complexAllInout">
+ <input message="tns:complexAll"/>
+ <output message="tns:complexAll"/>
+ </operation>
+ <operation name="complexAllOut" parameterOrder="complexAll">
+ <input message="tns:empty"/>
+ <output message="tns:complexAll"/>
+ </operation>
+ <operation name="complexAllReturn">
+ <input message="tns:empty"/>
+ <output message="tns:complexAll"/>
+ </operation>
+ <operation name="complexSequenceIn">
+ <input message="tns:complexSequence"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="complexSequenceInout">
+ <input message="tns:complexSequence"/>
+ <output message="tns:complexSequence"/>
+ </operation>
+ <operation name="complexSequenceOut" parameterOrder="complexSequence">
+ <input message="tns:empty"/>
+ <output message="tns:complexSequence"/>
+ </operation>
+ <operation name="complexSequenceReturn">
+ <input message="tns:empty"/>
+ <output message="tns:complexSequence"/>
+ </operation>
+ <operation name="complexWComplexIn">
+ <input message="tns:complexWComplex"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="complexWComplexInout">
+ <input message="tns:complexWComplex"/>
+ <output message="tns:complexWComplex"/>
+ </operation>
+ <operation name="complexWComplexOut" parameterOrder="complexWComplex">
+ <input message="tns:empty"/>
+ <output message="tns:complexWComplex"/>
+ </operation>
+ <operation name="complexWComplexReturn">
+ <input message="tns:empty"/>
+ <output message="tns:complexWComplex"/>
+ </operation>
+ <operation name="emptyComplexTypeIn" parameterOrder="emptyComplexType">
+ <input message="tns:emptyComplexType"/>
+ <output message="tns:empty"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="emptyComplexTypeInout" parameterOrder="emptyComplexType">
+ <input message="tns:emptyComplexType"/>
+ <output message="tns:emptyComplexType"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="emptyComplexTypeOut" parameterOrder="emptyComplexType">
+ <input message="tns:empty"/>
+ <output message="tns:emptyComplexType"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="emptyComplexTypeReturn">
+ <input message="tns:empty"/>
+ <output message="tns:emptyComplexType"/>
+ <fault name="emptyFault" message="tns:emptyFault"/>
+ </operation>
+ <operation name="anyIn">
+ <input message="tns:any"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="anyInout">
+ <input message="tns:any"/>
+ <output message="tns:any"/>
+ </operation>
+ <operation name="anyOut" parameterOrder="any">
+ <input message="tns:empty"/>
+ <output message="tns:any"/>
+ </operation>
+ <operation name="anyReturn">
+ <input message="tns:empty"/>
+ <output message="tns:any"/>
+ </operation>
+ <operation name="animalIn">
+ <input message="tns:animal"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="animalInout">
+ <input message="tns:animal"/>
+ <output message="tns:animal"/>
+ </operation>
+ <operation name="animalOut" parameterOrder="animal">
+ <input message="tns:empty"/>
+ <output message="tns:animal"/>
+ </operation>
+ <operation name="animalReturn">
+ <input message="tns:empty"/>
+ <output message="tns:animal"/>
+ </operation>
+ <operation name="catIn">
+ <input message="tns:cat"/>
+ <output message="tns:empty"/>
+ </operation>
+ <operation name="catInout">
+ <input message="tns:cat"/>
+ <output message="tns:cat"/>
+ </operation>
+ <operation name="catOut" parameterOrder="cat">
+ <input message="tns:empty"/>
+ <output message="tns:cat"/>
+ </operation>
+ <operation name="catReturn">
+ <input message="tns:empty"/>
+ <output message="tns:cat"/>
+ </operation>
+ <operation name="methodBoolean">
+ <input message="tns:inputBoolean"/>
+ <output message="tns:outputBoolean"/>
+ </operation>
+ <operation name="methodByte">
+ <input message="tns:inputByte"/>
+ <output message="tns:outputByte"/>
+ </operation>
+ <operation name="methodShort">
+ <input message="tns:inputShort"/>
+ <output message="tns:outputShort"/>
+ </operation>
+ <operation name="methodInt">
+ <input message="tns:inputInt"/>
+ <output message="tns:outputInt"/>
+ </operation>
+ <operation name="methodLong">
+ <input message="tns:inputLong"/>
+ <output message="tns:outputLong"/>
+ </operation>
+ <operation name="methodFloat">
+ <input message="tns:inputFloat"/>
+ <output message="tns:outputFloat"/>
+ </operation>
+ <operation name="methodDouble">
+ <input message="tns:inputDouble"/>
+ <output message="tns:outputDouble"/>
+ </operation>
+ <operation name="methodString">
+ <input message="tns:inputString"/>
+ <output message="tns:outputString"/>
+ </operation>
+ <operation name="methodInteger">
+ <input message="tns:inputInteger"/>
+ <output message="tns:outputInteger"/>
+ </operation>
+ <operation name="methodDecimal">
+ <input message="tns:inputDecimal"/>
+ <output message="tns:outputDecimal"/>
+ </operation>
+ <operation name="methodDateTime">
+ <input message="tns:inputDateTime"/>
+ <output message="tns:outputDateTime"/>
+ </operation>
+ <operation name="methodQName">
+ <input message="tns:inputQName"/>
+ <output message="tns:outputQName"/>
+ </operation>
+ <operation name="methodTime">
+ <input message="tns:inputTime"/>
+ <output message="tns:outputTime"/>
+ </operation>
+ <operation name="methodUnsignedLong">
+ <input message="tns:inputUnsignedLong"/>
+ <output message="tns:outputUnsignedLong"/>
+ </operation>
+ <operation name="methodUnsignedInt">
+ <input message="tns:inputUnsignedInt"/>
+ <output message="tns:outputUnsignedInt"/>
+ </operation>
+ <operation name="methodUnsignedShort">
+ <input message="tns:inputUnsignedShort"/>
+ <output message="tns:outputUnsignedShort"/>
+ </operation>
+ <operation name="methodUnsignedByte">
+ <input message="tns:inputUnsignedByte"/>
+ <output message="tns:outputUnsignedByte"/>
+ </operation>
+ <operation name="methodNonNegativeInteger">
+ <input message="tns:inputNonNegativeInteger"/>
+ <output message="tns:outputNonNegativeInteger"/>
+ </operation>
+ <operation name="methodPositiveInteger">
+ <input message="tns:inputPositiveInteger"/>
+ <output message="tns:outputPositiveInteger"/>
+ </operation>
+ <operation name="methodNonPositiveInteger">
+ <input message="tns:inputNonPositiveInteger"/>
+ <output message="tns:outputNonPositiveInteger"/>
+ </operation>
+ <operation name="methodNegativeInteger">
+ <input message="tns:inputNegativeInteger"/>
+ <output message="tns:outputNegativeInteger"/>
+ </operation>
+ <operation name="methodAnyURI">
+ <input message="tns:inputAnyURI"/>
+ <output message="tns:outputAnyURI"/>
+ </operation>
+ <operation name="methodSimpleAnyURI">
+ <input message="tns:inputSimpleAnyURI"/>
+ <output message="tns:outputSimpleAnyURI"/>
+ </operation>
+ <operation name="methodYear">
+ <input message="tns:inputYear"/>
+ <output message="tns:outputYear"/>
+ </operation>
+ <operation name="methodMonth">
+ <input message="tns:inputMonth"/>
+ <output message="tns:outputMonth"/>
+ </operation>
+ <operation name="methodDay">
+ <input message="tns:inputDay"/>
+ <output message="tns:outputDay"/>
+ </operation>
+ <operation name="methodYearMonth">
+ <input message="tns:inputYearMonth"/>
+ <output message="tns:outputYearMonth"/>
+ </operation>
+ <operation name="methodMonthDay">
+ <input message="tns:inputMonthDay"/>
+ <output message="tns:outputMonthDay"/>
+ </operation>
+ <operation name="methodSoapString">
+ <input message="tns:inputSoapString"/>
+ <output message="tns:outputSoapString"/>
+ </operation>
+ <operation name="methodSoapBoolean">
+ <input message="tns:inputSoapBoolean"/>
+ <output message="tns:outputSoapBoolean"/>
+ </operation>
+ <operation name="methodSoapFloat">
+ <input message="tns:inputSoapFloat"/>
+ <output message="tns:outputSoapFloat"/>
+ </operation>
+ <operation name="methodSoapDouble">
+ <input message="tns:inputSoapDouble"/>
+ <output message="tns:outputSoapDouble"/>
+ </operation>
+ <operation name="methodSoapDecimal">
+ <input message="tns:inputSoapDecimal"/>
+ <output message="tns:outputSoapDecimal"/>
+ </operation>
+ <operation name="methodSoapInt">
+ <input message="tns:inputSoapInt"/>
+ <output message="tns:outputSoapInt"/>
+ </operation>
+ <operation name="methodSoapShort">
+ <input message="tns:inputSoapShort"/>
+ <output message="tns:outputSoapShort"/>
+ </operation>
+ </portType>
+
+
+ <binding name="TypeTestBinding" type="tns:TypeTest">
+ <soap:binding
+ style="rpc"
+ transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="allPrimitivesIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="allPrimitivesInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="allPrimitivesOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="enumIntReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ <operation name="arrayMIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayMInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayMOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="arrayMReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ <operation name="complexAllIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexAllInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexAllOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexAllReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexSequenceReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="complexWComplexReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="emptyComplexTypeIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="emptyComplexTypeInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="emptyComplexTypeOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="emptyComplexTypeReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ <fault name="emptyFault">
+ <soap:fault name="emptyFault" use="encoded"/>
+ </fault>
+ </operation>
+ <operation name="anyIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="anyInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="anyOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="anyReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="animalReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catIn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catInout">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catOut">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="catReturn">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodBoolean">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodByte">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodShort">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodInt">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodLong">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodFloat">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDouble">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodString">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDecimal">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDateTime">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodQName">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodTime">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedLong">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedInt">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedShort">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodUnsignedByte">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodNonNegativeInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodPositiveInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodNonPositiveInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodNegativeInteger">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+
+ <operation name="methodAnyURI">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSimpleAnyURI">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodYear">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodMonth">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodDay">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodYearMonth">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodMonthDay">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapString">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapBoolean">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapFloat">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapDouble">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapDecimal">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapInt">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ <operation name="methodSoapShort">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body
+ use="encoded"
+ namespace=""
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+
+
+ <service name="TypeTestService">
+ <port name="TypeTest" binding="tns:TypeTestBinding">
+ <soap:address location="http://localhost:8080/axis/services/TypeTest"/>
+ </port>
+ </service>
+
+</definitions>
+
+ </env:Body>
+</env:Envelope>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.txt
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.txt?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.txt Sun Nov 28 07:27:17 2004
@@ -0,0 +1,12 @@
+POST /axis/services/EchoService HTTP/1.1
+Host: 127.0.0.1
+Content-Type: application/soap+xml; charset="utf-8"
+
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+ </env:Header>
+ <env:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2" ></axis2:echoVoid>
+ </env:Body>
+</env:Envelope>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/sample1.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,8 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
+ <env:Header>
+ </env:Header>
+ <env:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2" ></axis2:echoVoid>
+ </env:Body>
+</env:Envelope>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.txt
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.txt?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.txt Sun Nov 28 07:27:17 2004
@@ -0,0 +1,16 @@
+POST /axis/services/EchoService HTTP/1.1
+Host: 127.0.0.1
+Content-Type: application/soap+xml; charset="utf-8"
+
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2" ></axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/soapmessage.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,12 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+ <soapenv:Header>
+ <wsa:MessageID soapenv:mustUnderstand="0">uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From soapenv:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</Address>
+ </wsa:From>
+ </soapenv:Header>
+ <soapenv:Body>
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2" ></axis2:echoVoid>
+ </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/whitespacedMessage.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/whitespacedMessage.xml?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test-resources/soap/whitespacedMessage.xml Sun Nov 28 07:27:17 2004
@@ -0,0 +1,28 @@
+<?xml version='1.0' ?>
+<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+
+ <env:Header>
+
+
+
+
+
+ <wsa:MessageID env:mustUnderstand="0">uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To env:mustUnderstand="0">http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From env:mustUnderstand="0">
+ <Address xmlns="http://schemas.xmlsoap.org/ws/2004/03/addressing">http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</Address>
+ </wsa:From>
+
+ </env:Header> <env:Body>
+
+
+ <axis2:echoVoid xmlns:axis2="http://ws.apache.org/axis2" ></axis2:echoVoid>
+
+
+
+
+
+
+
+ </env:Body>
+</env:Envelope>
\ No newline at end of file
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EchoTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EchoTest.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EchoTest.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EchoTest.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EchoTest.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EchoTest.java Sun Nov 28 07:27:17 2004
@@ -17,7 +17,6 @@
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
@@ -28,29 +27,8 @@
import javax.xml.namespace.QName;
import org.apache.axis.AbstractTestCase;
-import org.apache.axis.engine.AxisEngine;
-import org.apache.axis.engine.EngineUtils;
-import org.apache.axis.engine.Global;
-import org.apache.axis.engine.Operation;
-import org.apache.axis.engine.Service;
-import org.apache.axis.engine.SimpleGlobal;
-import org.apache.axis.engine.SimpleModule;
-import org.apache.axis.engine.SimpleOperation;
-import org.apache.axis.engine.SimpleService;
-import org.apache.axis.engine.SimpleTransport;
-import org.apache.axis.engine.Transport;
import org.apache.axis.engine.context.MessageContext;
-import org.apache.axis.engine.exec.Constants;
-import org.apache.axis.engine.exec.ExecutionChain;
-import org.apache.axis.engine.registry.ConcreateParameter;
-import org.apache.axis.engine.registry.EchoService;
import org.apache.axis.engine.registry.EngineRegistry;
-import org.apache.axis.engine.registry.MockFlow;
-import org.apache.axis.engine.registry.Module;
-import org.apache.axis.engine.registry.Parameter;
-import org.apache.axis.engine.registry.SimpleEngineRegistry;
-import org.apache.axis.providers.SimpleJavaProvider;
-import org.apache.axis.providers.SyncProvider;
import org.apache.axis.transport.http.SimpleAxisServer;
/**
@@ -73,12 +51,6 @@
protected void setUp() throws Exception {
engineRegistry = Utils.createMockRegistry(serviceName,operationName,transportName);
-
- mc = new MessageContext(engineRegistry);
- mc.setCurrentTansport(transportName);
- mc.setCurrentService(serviceName);
- mc.setCurrentOperation(operationName);
-
AxisEngine engine = new AxisEngine(engineRegistry);
sas = new SimpleAxisServer(engine);
sas.setServerSocket(new ServerSocket(testingPort));
@@ -92,7 +64,7 @@
public void testEchoStringServer() throws Exception{
- File file = new File("src/samples/soap/sample1.txt");
+ File file = new File("src/test-resources/soap/soapmessage.txt");
FileInputStream in = new FileInputStream(file);
Socket socket = new Socket("127.0.0.1",testingPort);
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EngineTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EngineTest.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EngineTest.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EngineTest.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EngineTest.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/EngineTest.java Sun Nov 28 07:27:17 2004
@@ -16,11 +16,12 @@
package org.apache.axis.engine;
+import java.io.OutputStream;
+
import javax.xml.namespace.QName;
import junit.framework.TestCase;
-import org.apache.axis.engine.AxisEngine;
import org.apache.axis.engine.context.MessageContext;
import org.apache.axis.engine.registry.EngineRegistry;
@@ -44,9 +45,15 @@
protected void setUp() throws Exception {
engineRegistry = Utils.createMockRegistry(serviceName,operationName,transportName);
mc = new MessageContext(engineRegistry);
- mc.setCurrentTansport(transportName);
- mc.setCurrentService(serviceName);
- mc.setCurrentOperation(operationName);
+ Service service = engineRegistry.getService(serviceName);
+ mc.setService(service);
+ mc.setOperation(service.getOperation(operationName));
+
+ OutputStream out = System.out;
+ mc.setProperty(MessageContext.TRANSPORT_TYPE,
+ TransportSenderLocator.TRANSPORT_TCP);
+ mc.setProperty(MessageContext.TRANSPORT_DATA,out);
+ out.flush();
}
public void testSend()throws Exception{
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/Utils.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/Utils.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/Utils.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/Utils.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/Utils.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/Utils.java Sun Nov 28 07:27:17 2004
@@ -17,18 +17,6 @@
import javax.xml.namespace.QName;
-import org.apache.axis.engine.AxisFault;
-import org.apache.axis.engine.EngineUtils;
-import org.apache.axis.engine.Global;
-import org.apache.axis.engine.Operation;
-import org.apache.axis.engine.Service;
-import org.apache.axis.engine.SimpleGlobal;
-import org.apache.axis.engine.SimpleModule;
-import org.apache.axis.engine.SimpleOperation;
-import org.apache.axis.engine.SimpleService;
-import org.apache.axis.engine.SimpleTransport;
-import org.apache.axis.engine.Transport;
-import org.apache.axis.engine.context.MessageContext;
import org.apache.axis.engine.exec.Constants;
import org.apache.axis.engine.exec.ExecutionChain;
import org.apache.axis.engine.exec.Phase;
@@ -40,7 +28,6 @@
import org.apache.axis.engine.registry.Parameter;
import org.apache.axis.engine.registry.SimpleEngineRegistry;
import org.apache.axis.providers.SimpleJavaProvider;
-import org.apache.axis.providers.SyncProvider;
/**
* @author Srinath Perera (hemapani@opensource.lk)
@@ -69,7 +56,7 @@
Parameter classParam = new ConcreateParameter("className",EchoService.class.getName());
service.addParameter(classParam);
- service.setProvider(new SyncProvider(new SimpleJavaProvider()));
+ service.setProvider(new SimpleJavaProvider());
Module m1 = new SimpleModule(new QName("","A Mdoule 1"));
m1.setInFlow(new MockFlow("service module inflow",4));
@@ -95,9 +82,9 @@
outchain.addPhase(new Phase(Constants.PHASE_SERVICE));
outchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
outchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
- EngineUtils.addHandlers(service.getInFlow(),outchain,Constants.PHASE_SERVICE);
- EngineUtils.addHandlers(global.getInFlow(),outchain,Constants.PHASE_GLOBAL);
- EngineUtils.addHandlers(transport.getInFlow(),outchain,Constants.PHASE_TRANSPORT);
+ EngineUtils.addHandlers(service.getOutFlow(),outchain,Constants.PHASE_SERVICE);
+ EngineUtils.addHandlers(global.getOutFlow(),outchain,Constants.PHASE_GLOBAL);
+ EngineUtils.addHandlers(transport.getOutFlow(),outchain,Constants.PHASE_TRANSPORT);
service.setOutExecutionChain(outchain);
ExecutionChain faultchain = new ExecutionChain();
@@ -106,9 +93,9 @@
faultchain.addPhase(new Phase(Constants.PHASE_GLOBAL));
faultchain.addPhase(new Phase(Constants.PHASE_TRANSPORT));
- EngineUtils.addHandlers(service.getInFlow(),faultchain,Constants.PHASE_SERVICE);
- EngineUtils.addHandlers(global.getInFlow(),faultchain,Constants.PHASE_GLOBAL);
- EngineUtils.addHandlers(transport.getInFlow(),faultchain,Constants.PHASE_TRANSPORT);
+ EngineUtils.addHandlers(service.getFaultFlow(),faultchain,Constants.PHASE_SERVICE);
+ EngineUtils.addHandlers(global.getFaultFlow(),faultchain,Constants.PHASE_GLOBAL);
+ EngineUtils.addHandlers(transport.getFaultFlow(),faultchain,Constants.PHASE_TRANSPORT);
service.setFaultExecutionChain(outchain);
return engineRegistry;
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/MockFlow.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/MockFlow.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/MockFlow.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/MockFlow.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/MockFlow.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/MockFlow.java Sun Nov 28 07:27:17 2004
@@ -21,7 +21,7 @@
public MockFlow(String message, int length) {
super();
for (int i = 0; i < length; i++) {
- SpeakingHandler h1 = new SpeakingHandler();//"Executing " + i + " inside " + message);
+ SpeakingHandler1 h1 = new SpeakingHandler1("Executing " + i + " inside " + message);
super.addHandler(h1);
}
}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler.java Sun Nov 28 07:27:17 2004
@@ -25,19 +25,9 @@
public class SpeakingHandler extends AbstractEngineElement implements Handler {
private String message;
private QName name;
- /*
- public SpeakingHandler(QName name) {
- this.name = name;
- }
- */
public SpeakingHandler() {
this.message = "Hi I amtesting ";
}
- /*
- public SpeakingHandler(String message) {
- this.message = message;
- }
- */
public QName getName() {
return name;
}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler1.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler1.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingHandler1.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2001-2004 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.engine.registry;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis.engine.AxisFault;
+import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.context.MessageContext;
+
+public class SpeakingHandler1 extends AbstractEngineElement implements Handler {
+ private String message;
+ private QName name;
+ public SpeakingHandler1(String message) {
+ this.message = message;
+ }
+ public QName getName() {
+ return name;
+ }
+
+ public void invoke(MessageContext msgContext) throws AxisFault {
+ System.out.println("I am " + message + " Handler Running :)");
+ }
+
+ public void revoke(MessageContext msgContext) {
+ System.out.println("I am " + message + " Handler Running :)");
+ }
+
+ public void setName(QName name) {
+ this.name = name;
+ }
+
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingProvider.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingProvider.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingProvider.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingProvider.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingProvider.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/engine/registry/SpeakingProvider.java Sun Nov 28 07:27:17 2004
@@ -20,16 +20,18 @@
import org.apache.axis.engine.AxisFault;
import org.apache.axis.engine.Handler;
+import org.apache.axis.engine.Provider;
import org.apache.axis.engine.context.MessageContext;
import org.apache.axis.providers.AbstractProvider;
-public class SpeakingProvider extends AbstractProvider implements Handler {
+public class SpeakingProvider extends AbstractProvider implements Provider {
private String message;
public SpeakingProvider(){}
- public void invoke(MessageContext msgContext) throws AxisFault {
+ public MessageContext invoke(MessageContext msgContext) throws AxisFault {
System.out.println("I am Speaking Provider Running :)");
+ return msgContext;
}
public void revoke(MessageContext msgContext) {
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTest.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTest.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTest.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTest.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTest.java Sun Nov 28 07:27:17 2004
@@ -35,7 +35,7 @@
public class OMTest extends TestCase{
SOAPMessage omdoc;
protected void setUp() throws Exception {
- File file = new File("src/samples/soap/sample1.xml");
+ File file = new File("src/test-resources/soap/sample1.xml");
FileInputStream in = new FileInputStream(file);
XmlPullParserFactory pf = XmlPullParserFactory.newInstance();
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestCase.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestCase.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestCase.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestCase.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestCase.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestCase.java Sun Nov 28 07:27:17 2004
@@ -35,21 +35,8 @@
protected SOAPMessage soapMessage;
protected SOAPEnvelope soapEnvelope;
-
-
protected void setUp() throws Exception {
- super.setUp();
- soapMessage = getOMBuilder().getSOAPMessage();
+ soapMessage = OMTestUtils.getOMBuilder(IN_FILE_NAME).getSOAPMessage();
soapEnvelope = soapMessage.getEnvelope();
}
-
- protected OMXMLPullParserWrapper getOMBuilder() throws Exception {
- XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
- parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
- parser.setInput(new FileReader(IN_FILE_NAME));
- omXmlPullParserWrapper = new OMXMLPullParserWrapper(parser);
- return omXmlPullParserWrapper;
- }
-
-
}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestUtils.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestUtils.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/OMTestUtils.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2001-2004 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.om;
+
+import java.io.FileReader;
+import java.util.Iterator;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.om.impl.OMXMLPullParserWrapper;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserFactory;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class OMTestUtils {
+ public static OMXMLPullParserWrapper getOMBuilder(String file) throws Exception {
+ XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
+ parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
+ parser.setInput(new FileReader(file));
+ OMXMLPullParserWrapper omXmlPullParserWrapper = new OMXMLPullParserWrapper(parser);
+ return omXmlPullParserWrapper;
+ }
+
+ public static void walkThrough(OMElement omEle){
+ Iterator attibIt = omEle.getAttributes();
+ while(attibIt.hasNext()){
+ TestCase.assertNotNull("once the has next is not null, the " +
+ "eleemnt should not be null",attibIt.next());
+ }
+ Iterator it = omEle.getChildren();
+ while(it.hasNext()){
+ OMNode ele = (OMNode)it.next();
+ TestCase.assertNotNull("once the has next is not null, the " +
"eleemnt should not be null",ele);
+
+ if(ele instanceof OMElement){
+ walkThrough((OMElement)ele);
+ }
+ }
+
+ }
+
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/MessagesTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/MessagesTest.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/MessagesTest.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,57 @@
+/**
+* Copyright 2001-2004 The Apache Software Foundation.
+* <p/>
+* 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
+* <p/>
+* http://www.apache.org/licenses/LICENSE-2.0
+* <p/>
+* 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.
+* <p/>
+* Author: Eran Chinthaka - Lanka Software Foundation
+* Date: Nov 2, 2004
+* Time: 2:39:39 PM
+*/
+package org.apache.axis.om.soap;
+
+import org.apache.axis.om.OMException;
+import org.apache.axis.om.OMTestCase;
+import org.apache.axis.om.OMTestUtils;
+
+
+public class MessagesTest extends OMTestCase {
+ SOAPMessage soapMessage;
+ SOAPEnvelope soapEnvelope;
+
+ public void testMessageWithLotOfWhiteSpaces() throws OMException, Exception {
+ soapMessage = OMTestUtils.getOMBuilder("src/test-resources/soap/whitespacedMessage.xml").getSOAPMessage();
+ soapEnvelope = soapMessage.getEnvelope();
+ OMTestUtils.walkThrough(soapEnvelope);
+ }
+
+ public void testMinimalMessage() throws OMException, Exception {
+ soapMessage = OMTestUtils.getOMBuilder("src/test-resources/soap/minimalMessage.xml").getSOAPMessage();
+ soapEnvelope = soapMessage.getEnvelope();
+ OMTestUtils.walkThrough(soapEnvelope);
+ }
+
+ public void testReallyBigMessage() throws OMException, Exception {
+ soapMessage = OMTestUtils.getOMBuilder("src/test-resources/soap/reallyReallyBigMessage.xml").getSOAPMessage();
+ soapEnvelope = soapMessage.getEnvelope();
+ OMTestUtils.walkThrough(soapEnvelope);
+ }
+
+ public void testEmptyBodiedMessage() throws OMException, Exception {
+ soapMessage = OMTestUtils.getOMBuilder("src/test-resources/soap/emtyBodymessage.xml").getSOAPMessage();
+ soapEnvelope = soapMessage.getEnvelope();
+ OMTestUtils.walkThrough(soapEnvelope);
+ }
+
+
+
+}
Added: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeAnotherTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeAnotherTest.java?view=auto&rev=106816
==============================================================================
--- (empty file)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeAnotherTest.java Sun Nov 28 07:27:17 2004
@@ -0,0 +1,42 @@
+/**
+* Copyright 2001-2004 The Apache Software Foundation.
+* <p/>
+* 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
+* <p/>
+* http://www.apache.org/licenses/LICENSE-2.0
+* <p/>
+* 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.
+* <p/>
+* Author: Eran Chinthaka - Lanka Software Foundation
+* Date: Nov 2, 2004
+* Time: 2:39:39 PM
+*/
+package org.apache.axis.om.soap;
+
+import org.apache.axis.om.OMTestCase;
+import org.apache.axis.om.OMTestUtils;
+
+
+public class SOAPEnvelopeAnotherTest extends OMTestCase {
+ SOAPMessage soapMessage;
+ SOAPEnvelope soapEnvelope;
+ protected void setUp() throws Exception {
+ soapMessage = OMTestUtils.getOMBuilder("src/test-resources/soap/sample1.xml").getSOAPMessage();
+ soapEnvelope = soapMessage.getEnvelope();
+ }
+ public void testGetHeader() {
+ SOAPHeader header = soapEnvelope.getHeader();
+ assertTrue("Header information retrieved not correct", ( header != null && header.getLocalName().equalsIgnoreCase("Header")) );
+ }
+
+ public void testGetBody() {
+ SOAPBody body = soapEnvelope.getBody();
+ assertTrue("Header information retrieved not correct", ( body != null && body.getLocalName().equalsIgnoreCase("Body")) );
+ }
+}
Modified: webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeTest.java?view=diff&rev=106816&p1=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeTest.java&r1=106815&p2=webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeTest.java&r2=106816
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeTest.java (original)
+++ webservices/axis/trunk/java/dev/scratch/prototype1/src/test/org/apache/axis/om/soap/SOAPEnvelopeTest.java Sun Nov 28 07:27:17 2004
@@ -26,8 +26,6 @@
protected void setUp() throws Exception {
super.setUp();
}
-
-
public void testGetHeader() {
SOAPHeader header = soapEnvelope.getHeader();
assertTrue("Header information retrieved not correct", ( header != null && header.getLocalName().equalsIgnoreCase("Header")) );
@@ -36,9 +34,5 @@
public void testGetBody() {
SOAPBody body = soapEnvelope.getBody();
assertTrue("Header information retrieved not correct", ( body != null && body.getLocalName().equalsIgnoreCase("Body")) );
-
}
-
-
-
}