You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by da...@apache.org on 2005/12/28 05:17:36 UTC

svn commit: r359386 [2/3] - in /webservices/kandula/branches/Kandula_1/src: ./ conf/ java/ java/org/ java/org/apache/ java/org/apache/ws/ java/org/apache/ws/transaction/ java/org/apache/ws/transaction/coordinator/ java/org/apache/ws/transaction/coordin...

Added: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/EndpointReferenceFactory.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/EndpointReferenceFactory.java?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/EndpointReferenceFactory.java (added)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/EndpointReferenceFactory.java Tue Dec 27 20:17:27 2005
@@ -0,0 +1,84 @@
+/*
+ * Copyright 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.ws.transaction.utility;
+
+import java.io.InputStream;
+import java.net.InetAddress;
+import java.util.Properties;
+
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.axis.message.addressing.PortType;
+import org.apache.axis.message.addressing.ReferencePropertiesType;
+
+public class EndpointReferenceFactory {
+	static final String PROPERTY_FILE = "endpoints.conf";
+
+	static final String PROTOCOL_PROPERTY = "protocol";
+
+	static final String HOST_PROPERTY = "host";
+
+	static final String PORT_PROPERTY = "port";
+
+	static EndpointReferenceFactory instance = null;
+
+	Properties properties = null;
+
+	String location = null;
+
+	private EndpointReferenceFactory() {
+		InputStream in = getClass().getClassLoader().getResourceAsStream(
+			PROPERTY_FILE);
+		properties = new Properties();
+		try {
+			properties.load(in);
+			in.close();
+			String host = properties.getProperty(HOST_PROPERTY);
+			if (host == null)
+				host = InetAddress.getLocalHost().getHostAddress();
+			location = properties.getProperty(PROTOCOL_PROPERTY) + "://" + host
+					+ ":" + properties.getProperty(PORT_PROPERTY);
+		} catch (Exception e) {
+			if (e instanceof RuntimeException)
+				throw (RuntimeException) e;
+			else
+				throw new RuntimeException(e);
+		}
+	}
+
+	public static EndpointReferenceFactory getInstance() {
+		if (instance == null)
+			instance = new EndpointReferenceFactory();
+		return instance;
+	}
+
+	public EndpointReference getEndpointReference(PortType portType,
+			ReferencePropertiesType referenceProperties) {
+		String path = properties.getProperty(portType.getLocalPart());
+		try {
+			EndpointReference endpointReference = new EndpointReference(
+					location + path);
+			endpointReference.setPortType(portType);
+			endpointReference.setProperties(referenceProperties);
+			return endpointReference;
+		} catch (Exception e) {
+			if (e instanceof RuntimeException)
+				throw (RuntimeException) e;
+			else
+				throw new RuntimeException(e);
+		}
+	}
+}
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java (added)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java Tue Dec 27 20:17:27 2005
@@ -0,0 +1,110 @@
+/*
+ * Copyright 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.ws.transaction.utility;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.Call;
+import javax.xml.rpc.ServiceException;
+
+import org.apache.axis.components.uuid.UUIDGenFactory;
+import org.apache.axis.message.MessageElement;
+import org.apache.axis.message.addressing.AddressingHeaders;
+import org.apache.axis.message.addressing.Constants;
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.axis.message.addressing.MessageID;
+import org.apache.axis.message.addressing.RelatesTo;
+import org.apache.axis.message.addressing.RelationshipTypeValues;
+import org.apache.axis.types.URI;
+import org.apache.axis.types.URI.MalformedURIException;
+
+public class Service extends org.apache.axis.client.Service {
+	AddressingHeaders headers;
+
+	Object callback;
+
+	public Service(EndpointReference epr) {
+		headers = new AddressingHeaders(epr);
+	}
+	
+	public Service(EndpointReference epr, EndpointReference replyTo) {
+		headers = new AddressingHeaders(epr);
+		headers.setReplyTo(replyTo);
+	}
+	
+	public void setCallback(Object callback) {
+		this.callback = callback;
+	}
+	
+	public void setRelatesTo(MessageID id){
+		List l = new ArrayList(1);
+		l.add(new RelatesTo(id, RelationshipTypeValues.RESPONSE));
+		headers.setRelatesTo(l);
+	}
+	
+	public Call createCall() throws ServiceException {
+		Call call = super.createCall();
+		if (callback != null) {
+			try {
+				MessageID id = new MessageID(new URI("uuid:"
+						+ UUIDGenFactory.getUUIDGen().nextUUID()));
+				headers.setMessageID(id);
+				String ref = id.toString();
+				CallbackRegistry.getInstance().registerCallback(ref, callback);
+				MessageElement e = new MessageElement(
+						CallbackRegistry.CALLBACK_REF, ref);
+				headers.getReplyTo().getProperties().add(e);
+			} catch (MalformedURIException e) {
+				throw new ServiceException(e.getMessage());
+			}
+		}
+		call.setProperty(Constants.ENV_ADDRESSING_REQUEST_HEADERS, headers);
+		return call;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see javax.xml.rpc.Service#createCall(javax.xml.namespace.QName,
+	 *      javax.xml.namespace.QName)
+	 */
+	public Call createCall(QName arg0, QName arg1) throws ServiceException {
+		throw new UnsupportedOperationException();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see javax.xml.rpc.Service#createCall(javax.xml.namespace.QName,
+	 *      java.lang.String)
+	 */
+	public Call createCall(QName arg0, String arg1) throws ServiceException {
+		throw new UnsupportedOperationException();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see javax.xml.rpc.Service#createCall(javax.xml.namespace.QName)
+	 */
+	public Call createCall(QName arg0) throws ServiceException {
+		throw new UnsupportedOperationException();
+	}
+
+}
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/TCPSnifferHelper.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/TCPSnifferHelper.java?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/TCPSnifferHelper.java (added)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/TCPSnifferHelper.java Tue Dec 27 20:17:27 2005
@@ -0,0 +1,18 @@
+/*
+ * Created on Dec 23, 2005
+ *
+ */
+package org.apache.ws.transaction.utility;
+
+/**
+ * @author Dasarath Weeratunge
+ *  
+ */
+public class TCPSnifferHelper {
+
+	public static String redirect(String url) {
+		return url.replaceAll("wsi\\.alphaworks\\.ibm\\.com:8080",
+				"localhost:8082");
+	}
+
+}
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1.wsdl
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1.wsdl?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1.wsdl (added)
+++ webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1.wsdl Tue Dec 27 20:17:27 2005
@@ -0,0 +1,638 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="urn:test" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:impl" xmlns:intf="urn:test" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+<!--WSDL created by Apache Axis version: 1.3
+Built on Oct 05, 2005 (05:23:37 EDT)-->
+
+   <wsdl:message name="testReadonlyRollbackResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testPrepareRollbackResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testRollbackFailureResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testRollbackResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testMarkedRollbackCommitRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="testEarlyRollbackRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="testPrepareCommitResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testEarlyCommitRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="testCommitFailureResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testPrepareRollbackRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="enlistXA_OKOnPrepareResourceOperationResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testReadonlyCommitResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testCommitFailureRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="justReturnOperationRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="markTransactionForRollbackOperationRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="testReadonlyCommitRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="rollbackTransactionOperationResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testPrepareCommitRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="testMarkedRollbackCommitResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testRollbackFailureRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="justReturnOperationResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testEarlyRollbackResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="commitTransactionOperationResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="enlistXAExceptionOnCommitRollbackResourceOperationRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="testRollbackRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="rollbackTransactionOperationRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="commitTransactionOperationRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="enlistXAExceptionOnPrepareResourceOperationRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="enlistXA_OKOnPrepareResourceOperationRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="markTransactionForRollbackOperationResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testEarlyCommitResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testMarkedRollbackRollbackRequest">
+
+   </wsdl:message>
+
+   <wsdl:message name="testMarkedRollbackRollbackResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="enlistXAExceptionOnCommitRollbackResourceOperationResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="enlistXAExceptionOnPrepareResourceOperationResponse">
+
+   </wsdl:message>
+
+   <wsdl:message name="testReadonlyRollbackRequest">
+
+   </wsdl:message>
+
+   <wsdl:portType name="TestSuite1PortType">
+
+      <wsdl:operation name="testReadonlyCommit">
+
+         <wsdl:input message="intf:testReadonlyCommitRequest" name="testReadonlyCommitRequest"/>
+
+         <wsdl:output message="intf:testReadonlyCommitResponse" name="testReadonlyCommitResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testReadonlyRollback">
+
+         <wsdl:input message="intf:testReadonlyRollbackRequest" name="testReadonlyRollbackRequest"/>
+
+         <wsdl:output message="intf:testReadonlyRollbackResponse" name="testReadonlyRollbackResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testRollback">
+
+         <wsdl:input message="intf:testRollbackRequest" name="testRollbackRequest"/>
+
+         <wsdl:output message="intf:testRollbackResponse" name="testRollbackResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testPrepareCommit">
+
+         <wsdl:input message="intf:testPrepareCommitRequest" name="testPrepareCommitRequest"/>
+
+         <wsdl:output message="intf:testPrepareCommitResponse" name="testPrepareCommitResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testPrepareRollback">
+
+         <wsdl:input message="intf:testPrepareRollbackRequest" name="testPrepareRollbackRequest"/>
+
+         <wsdl:output message="intf:testPrepareRollbackResponse" name="testPrepareRollbackResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testEarlyCommit">
+
+         <wsdl:input message="intf:testEarlyCommitRequest" name="testEarlyCommitRequest"/>
+
+         <wsdl:output message="intf:testEarlyCommitResponse" name="testEarlyCommitResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testEarlyRollback">
+
+         <wsdl:input message="intf:testEarlyRollbackRequest" name="testEarlyRollbackRequest"/>
+
+         <wsdl:output message="intf:testEarlyRollbackResponse" name="testEarlyRollbackResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testMarkedRollbackCommit">
+
+         <wsdl:input message="intf:testMarkedRollbackCommitRequest" name="testMarkedRollbackCommitRequest"/>
+
+         <wsdl:output message="intf:testMarkedRollbackCommitResponse" name="testMarkedRollbackCommitResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testMarkedRollbackRollback">
+
+         <wsdl:input message="intf:testMarkedRollbackRollbackRequest" name="testMarkedRollbackRollbackRequest"/>
+
+         <wsdl:output message="intf:testMarkedRollbackRollbackResponse" name="testMarkedRollbackRollbackResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testCommitFailure">
+
+         <wsdl:input message="intf:testCommitFailureRequest" name="testCommitFailureRequest"/>
+
+         <wsdl:output message="intf:testCommitFailureResponse" name="testCommitFailureResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testRollbackFailure">
+
+         <wsdl:input message="intf:testRollbackFailureRequest" name="testRollbackFailureRequest"/>
+
+         <wsdl:output message="intf:testRollbackFailureResponse" name="testRollbackFailureResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="justReturnOperation">
+
+         <wsdl:input message="intf:justReturnOperationRequest" name="justReturnOperationRequest"/>
+
+         <wsdl:output message="intf:justReturnOperationResponse" name="justReturnOperationResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="enlistXA_OKOnPrepareResourceOperation">
+
+         <wsdl:input message="intf:enlistXA_OKOnPrepareResourceOperationRequest" name="enlistXA_OKOnPrepareResourceOperationRequest"/>
+
+         <wsdl:output message="intf:enlistXA_OKOnPrepareResourceOperationResponse" name="enlistXA_OKOnPrepareResourceOperationResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="enlistXAExceptionOnPrepareResourceOperation">
+
+         <wsdl:input message="intf:enlistXAExceptionOnPrepareResourceOperationRequest" name="enlistXAExceptionOnPrepareResourceOperationRequest"/>
+
+         <wsdl:output message="intf:enlistXAExceptionOnPrepareResourceOperationResponse" name="enlistXAExceptionOnPrepareResourceOperationResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="markTransactionForRollbackOperation">
+
+         <wsdl:input message="intf:markTransactionForRollbackOperationRequest" name="markTransactionForRollbackOperationRequest"/>
+
+         <wsdl:output message="intf:markTransactionForRollbackOperationResponse" name="markTransactionForRollbackOperationResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="commitTransactionOperation">
+
+         <wsdl:input message="intf:commitTransactionOperationRequest" name="commitTransactionOperationRequest"/>
+
+         <wsdl:output message="intf:commitTransactionOperationResponse" name="commitTransactionOperationResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="rollbackTransactionOperation">
+
+         <wsdl:input message="intf:rollbackTransactionOperationRequest" name="rollbackTransactionOperationRequest"/>
+
+         <wsdl:output message="intf:rollbackTransactionOperationResponse" name="rollbackTransactionOperationResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="enlistXAExceptionOnCommitRollbackResourceOperation">
+
+         <wsdl:input message="intf:enlistXAExceptionOnCommitRollbackResourceOperationRequest" name="enlistXAExceptionOnCommitRollbackResourceOperationRequest"/>
+
+         <wsdl:output message="intf:enlistXAExceptionOnCommitRollbackResourceOperationResponse" name="enlistXAExceptionOnCommitRollbackResourceOperationResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="TestSuite1SoapBinding" type="intf:TestSuite1PortType">
+
+      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="testReadonlyCommit">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testReadonlyCommitRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testReadonlyCommitResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testReadonlyRollback">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testReadonlyRollbackRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testReadonlyRollbackResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testRollback">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testRollbackRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testRollbackResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testPrepareCommit">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testPrepareCommitRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testPrepareCommitResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testPrepareRollback">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testPrepareRollbackRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testPrepareRollbackResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testEarlyCommit">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testEarlyCommitRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testEarlyCommitResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testEarlyRollback">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testEarlyRollbackRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testEarlyRollbackResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testMarkedRollbackCommit">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testMarkedRollbackCommitRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testMarkedRollbackCommitResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testMarkedRollbackRollback">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testMarkedRollbackRollbackRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testMarkedRollbackRollbackResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testCommitFailure">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testCommitFailureRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testCommitFailureResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="testRollbackFailure">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="testRollbackFailureRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="testRollbackFailureResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="justReturnOperation">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="justReturnOperationRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="justReturnOperationResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="enlistXA_OKOnPrepareResourceOperation">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="enlistXA_OKOnPrepareResourceOperationRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="enlistXA_OKOnPrepareResourceOperationResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="enlistXAExceptionOnPrepareResourceOperation">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="enlistXAExceptionOnPrepareResourceOperationRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="enlistXAExceptionOnPrepareResourceOperationResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="markTransactionForRollbackOperation">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="markTransactionForRollbackOperationRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="markTransactionForRollbackOperationResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="commitTransactionOperation">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="commitTransactionOperationRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="commitTransactionOperationResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="rollbackTransactionOperation">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="rollbackTransactionOperationRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="rollbackTransactionOperationResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="enlistXAExceptionOnCommitRollbackResourceOperation">
+
+         <wsdlsoap:operation soapAction="http://foo"/>
+
+         <wsdl:input name="enlistXAExceptionOnCommitRollbackResourceOperationRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="enlistXAExceptionOnCommitRollbackResourceOperationResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="TestSuite1PortTypeService">
+
+      <wsdl:port binding="intf:TestSuite1SoapBinding" name="TestSuite1">
+
+         <wsdlsoap:address location="http://localhost:8081/axis/services/TestSuite1"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>

Added: webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1PortType.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1PortType.java?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1PortType.java (added)
+++ webservices/kandula/branches/Kandula_1/src/samples/test-suite1/TestSuite1PortType.java Tue Dec 27 20:17:27 2005
@@ -0,0 +1,74 @@
+/*
+ * Created on Dec 27, 2005
+ *
+ */
+/**
+ * @author Dasarath Weeratunge
+ *  
+ */
+public interface TestSuite1PortType {
+
+	/*
+	 * no resources involved
+	 */
+	void testReadonlyCommit();
+	
+	void testReadonlyRollback();
+	
+	/*
+	 * involves just one resource, which answers XA_OK on prepare
+	 */
+	void testRollback();
+
+	void testPrepareCommit();
+	
+	/*
+	 * involves two resources, one which answers XA_OK and another
+	 * which throws an XAException on prepare
+	 */
+	void testPrepareRollback();
+
+	/*
+	 * attempt to commit the local (j2ee) tx
+	 */
+	void testEarlyCommit();
+	
+	/*
+	 * attemp to rollback the local (j2ee) tx
+	 */
+	
+	void testEarlyRollback();
+	
+	/*
+	 * local (j2ee) tx is marked rollback
+	 */
+	void testMarkedRollbackCommit();
+	
+	void testMarkedRollbackRollback();
+	
+	/*
+	 * involves one resource that throws an XAException on commit/rollback
+	 */
+	
+	void testCommitFailure();
+	
+	void testRollbackFailure();
+	
+	
+	
+	
+	void justReturnOperation();	
+	
+	void enlistXA_OKOnPrepareResourceOperation();
+	
+	void enlistXAExceptionOnPrepareResourceOperation();
+	
+	void markTransactionForRollbackOperation();
+	
+	void commitTransactionOperation();
+	
+	void rollbackTransactionOperation();
+	
+	void enlistXAExceptionOnCommitRollbackResourceOperation();
+	
+}
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/samples/test-suite1/build.xml
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/test-suite1/build.xml?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/samples/test-suite1/build.xml (added)
+++ webservices/kandula/branches/Kandula_1/src/samples/test-suite1/build.xml Tue Dec 27 20:17:27 2005
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<project name="kandula"
+	 default="compile"
+	 basedir=".">
+
+	 <property name="src.dir" value="src" />	 
+ 	 <property name="build.dir" value="build" />
+ 	 <property name="home.dir" value="../../.." />
+  	 
+	 <property file="${home.dir}/build.properties" />  	  	 
+	 
+	 <path id="base.classpath">
+	 	<fileset dir="${home.dir}/target/lib" >
+	 		<include name="**/*.jar" />
+		</fileset>
+	 	<fileset dir="${home.dir}/target" >
+		 	<include name="**/*.jar" />
+		</fileset>		
+	 </path>
+	 
+	 <taskdef resource="axis-tasks.properties"  classpathref="base.classpath" />
+	 
+	 <target name="compile" depends="wsdl2java" >
+	 	<javac srcdir="${src.dir};${build.dir}/src" destdir="${build.dir}">
+	 		<classpath refid="base.classpath" />
+	 	</javac>
+	 </target>
+	 
+	 <target name="clean" >
+	 	<delete dir="${build.dir}" /> 	
+	 </target> 
+
+	 <target name="init" >
+	 	<mkdir dir="${build.dir}" />
+	 	<mkdir dir="${build.dir}/src" />
+	 </target>
+	 
+	 <target name="wsdl2java" depends="init">
+		 <axis-wsdl2java
+		 	output="${build.dir}/src"
+		 	serverside = "false"
+		 	testcase = "false"
+		 	url= "TestSuite1.wsdl" >
+	 		<mapping namespace="urn:test" package="" />
+		 </axis-wsdl2java>
+	</target>
+	
+	 <target name="java2wsdl" > 		 		
+		 <axis-java2wsdl
+		 	output="TestSuite1.wsdl"		 	
+	 		classname = "TestSuite1PortType" 
+		 	location = "http://localhost:8081/axis/services/TestSuite1"
+	 	    soapaction = "http://ws.apache.org/kandula/test"
+	 		namespace ="urn:test" 
+		 	namespaceimpl = "urn:impl"
+		 	style = "document" >
+		 	<classpath >
+		 		<pathelement location = "${basedir}"/>
+		 	</classpath>
+	 	</axis-java2wsdl>
+	</target>
+
+	<!--
+	 <target name="temp" depends="init">
+		 <axis-wsdl2java
+		 	output="temp"
+		 	verbose="true"
+		 	serverside="true"
+		 	url="${basedir}/../../schema/wscoor.wsdl" >
+    		<mapping namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" package="org.apache.axis.message.addressing"/>
+    		<mapping namespace="http://schemas.xmlsoap.org/ws/2004/10/wsat" package="org.apache.ws.transaction.wsat"/>
+    		<mapping namespace="http://schemas.xmlsoap.org/ws/2004/10/wscoor" package="org.apache.ws.transaction.wscoor"/>    
+		 </axis-wsdl2java>
+	</target>
+-->
+	<target name="dist" depends="compile">
+		<jar jarfile="${build.dir}/test-suite1.jar">
+			<fileset dir="${build.dir}">
+				<include name="**/*.class" />
+			</fileset>
+		</jar>
+	</target>
+	
+	<target name="test" >
+	 	<junit printsummary="withOutAndErr" >
+	 		<formatter type="plain"/>
+	 		<classpath>	 			
+		 		<path refid="base.classpath" />
+	 			<fileset dir="${basedir}/build" includes="*.jar" />
+		 		<pathelement location="${ws-tx.dir}/conf" />
+		 	</classpath>
+	 		<test name="TestSuite1PortTypeServiceTestCase" />
+		</junit>
+	 </target>
+</project>
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/samples/test-suite1/client-config.wsdd
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/test-suite1/client-config.wsdd?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/samples/test-suite1/client-config.wsdd (added)
+++ webservices/kandula/branches/Kandula_1/src/samples/test-suite1/client-config.wsdd Tue Dec 27 20:17:27 2005
@@ -0,0 +1,69 @@
+<!-- a barebone jboss.net/axis client configuration which includes some basic typemappings related to jboss -->
+
+<deployment name="defaultClientConfig"
+            xmlns="http://xml.apache.org/axis/wsdd/"
+            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
+
+  <globalConfiguration>
+	<parameter name="sendMultiRefs" value="false"/>
+	<parameter name="disablePrettyXML" value="true"/>
+        
+        <requestFlow>
+		<handler type="java:org.apache.axis.message.addressing.handler.AddressingHandler" />
+        </requestFlow>
+        <responseFlow>
+		<handler type="java:org.apache.axis.message.addressing.handler.AddressingHandler" />        
+        </responseFlow>
+  </globalConfiguration>
+
+  <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender">
+	<requestFlow>		
+	</requestFlow>
+	<responseFlow>		
+	</responseFlow>	
+  </transport>
+
+ <transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
+ <transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
+
+<typeMapping
+	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
+      deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:EndpointReference" 
+      serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
+      type="java:org.apache.axis.message.addressing.EndpointReferenceType"/>
+
+ <typeMapping
+	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" 
+      deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:ReferencePropertiesType" 
+      serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.ReferencePropertiesType"/>
+
+ <typeMapping 
+	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
+      deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:Address" 
+      serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.Address"/>
+
+ <typeMapping 
+	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
+      deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:PortType" 
+      serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.PortType" />
+
+ <typeMapping 
+	xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
+      deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" 
+      encodingStyle="" 
+      qname="wsa:ServiceNameType" 
+      serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" 
+      type="java:org.apache.axis.message.addressing.ServiceNameType" />
+
+</deployment>

Added: webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1PortTypeServiceTestCase.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1PortTypeServiceTestCase.java?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1PortTypeServiceTestCase.java (added)
+++ webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1PortTypeServiceTestCase.java Tue Dec 27 20:17:27 2005
@@ -0,0 +1,241 @@
+/**
+ * TestSuite1PortTypeServiceTestCase.java
+ *  
+ */
+
+public class TestSuite1PortTypeServiceTestCase extends junit.framework.TestCase {
+	public TestSuite1PortTypeServiceTestCase(java.lang.String name) {
+		super(name);
+	}
+
+	public void testTestSuite1WSDL() throws Exception {
+		javax.xml.rpc.ServiceFactory serviceFactory = javax.xml.rpc.ServiceFactory.newInstance();
+		java.net.URL url = new java.net.URL(
+				new TestSuite1PortTypeServiceLocator().getTestSuite1Address()
+						+ "?WSDL");
+		javax.xml.rpc.Service service = serviceFactory.createService(url,
+			new TestSuite1PortTypeServiceLocator().getServiceName());
+		assertTrue(service != null);
+	}
+
+	public void test1TestSuite1TestReadonlyCommit() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testReadonlyCommit();
+		// TBD - validate results
+	}
+
+	public void test2TestSuite1TestReadonlyRollback() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testReadonlyRollback();
+		// TBD - validate results
+	}
+
+	public void test3TestSuite1TestRollback() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testRollback();
+		// TBD - validate results
+	}
+
+	public void test4TestSuite1TestPrepareCommit() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testPrepareCommit();
+		// TBD - validate results
+	}
+
+	public void test5TestSuite1TestPrepareRollback() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testPrepareRollback();
+		// TBD - validate results
+	}
+
+	public void test6TestSuite1TestEarlyCommit() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testEarlyCommit();
+		// TBD - validate results
+	}
+
+	public void test7TestSuite1TestEarlyRollback() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testEarlyRollback();
+		// TBD - validate results
+	}
+
+	public void test8TestSuite1TestMarkedRollbackCommit() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testMarkedRollbackCommit();
+		// TBD - validate results
+	}
+
+	public void test9TestSuite1TestMarkedRollbackRollback() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testMarkedRollbackRollback();
+		// TBD - validate results
+	}
+
+	public void test10TestSuite1TestCommitFailure() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testCommitFailure();
+		// TBD - validate results
+	}
+
+	public void test11TestSuite1TestRollbackFailure() throws Exception {
+		TestSuite1SoapBindingStub binding;
+		try {
+			binding = (TestSuite1SoapBindingStub) new TestSuite1PortTypeServiceLocator().getTestSuite1();
+		} catch (javax.xml.rpc.ServiceException jre) {
+			if (jre.getLinkedCause() != null)
+				jre.getLinkedCause().printStackTrace();
+			throw new junit.framework.AssertionFailedError(
+					"JAX-RPC ServiceException caught: " + jre);
+		}
+		assertNotNull("binding is null", binding);
+
+		// Time out after a minute
+		binding.setTimeout(60000);
+
+		// Test operation
+		binding.testRollbackFailure();
+		// TBD - validate results
+	}
+
+}
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1SoapBindingImpl.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1SoapBindingImpl.java?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1SoapBindingImpl.java (added)
+++ webservices/kandula/branches/Kandula_1/src/samples/test-suite1/src/TestSuite1SoapBindingImpl.java Tue Dec 27 20:17:27 2005
@@ -0,0 +1,421 @@
+
+import java.lang.reflect.Field;
+import java.rmi.RemoteException;
+
+import javax.transaction.Status;
+import javax.transaction.SystemException;
+import javax.transaction.TransactionManager;
+import javax.transaction.xa.XAException;
+import javax.transaction.xa.XAResource;
+import javax.transaction.xa.Xid;
+import javax.xml.rpc.ServiceException;
+
+import org.apache.geronimo.transaction.manager.NamedXAResource;
+import org.apache.ws.transaction.coordinator.at.ATManager;
+import org.apache.ws.transaction.j2ee.Bridge;
+
+public class TestSuite1SoapBindingImpl implements TestSuite1PortType {
+	ATManager atM = ATManager.getInstance();
+
+	TransactionManager tm = Bridge.getInstance().getTM();
+
+	public void testReadonlyCommit() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.justReturnOperation();
+			atM.commit();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testReadonlyRollback() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.justReturnOperation();
+			atM.rollback();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testRollback() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.enlistXA_OKOnPrepareResourceOperation();
+			atM.rollback();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testPrepareCommit() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.enlistXA_OKOnPrepareResourceOperation();
+			atM.commit();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testPrepareRollback() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.enlistXA_OKOnPrepareResourceOperation();
+			p.enlistXAExceptionOnPrepareResourceOperation();
+			atM.commit();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testEarlyCommit() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.commitTransactionOperation();
+			atM.commit();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	public void testEarlyRollback() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.rollbackTransactionOperation();
+			atM.commit();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testMarkedRollbackCommit() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.markTransactionForRollbackOperation();
+			atM.commit();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	public void testMarkedRollbackRollback() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.markTransactionForRollbackOperation();
+			atM.rollback();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+
+	}
+
+	public void testCommitFailure() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.enlistXAExceptionOnCommitRollbackResourceOperation();
+			atM.commit();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void testRollbackFailure() throws RemoteException {
+		try {
+			TestSuite1PortType p = new TestSuite1PortTypeServiceLocator().getTestSuite1();
+			atM.begin();
+			p.enlistXAExceptionOnCommitRollbackResourceOperation();
+			atM.rollback();
+		} catch (ServiceException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void justReturnOperation() throws RemoteException {
+		try {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ getStatusName(tm.getStatus()));
+		} catch (SystemException e) {
+			e.printStackTrace();
+			throw new RemoteException(e.getMessage());
+		}
+	}
+
+	public void enlistXA_OKOnPrepareResourceOperation() throws RemoteException {
+		try {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ getStatusName(tm.getStatus()));
+			tm.getTransaction().enlistResource(new XA_OKOnPrepareXAResource());
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new RemoteException(e.getMessage());
+		}
+	}
+
+	public void enlistXAExceptionOnPrepareResourceOperation()
+			throws RemoteException {
+		try {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ getStatusName(tm.getStatus()));
+			tm.getTransaction().enlistResource(
+				new XAExceptionOnPrepareXAResource());
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new RemoteException(e.getMessage());
+		}
+	}
+
+	public void markTransactionForRollbackOperation() throws RemoteException {
+		try {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ getStatusName(tm.getStatus()));
+			tm.setRollbackOnly();
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new RemoteException(e.getMessage());
+		}
+
+	}
+
+	public void commitTransactionOperation() throws RemoteException {
+		try {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ getStatusName(tm.getStatus()));
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new RemoteException(e.getMessage());
+		}
+
+		try {
+			tm.commit();
+		} catch (Exception e) {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ e.getClass().getName() + " on commit.");
+		}
+	}
+
+	public void rollbackTransactionOperation() throws RemoteException {
+		try {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ getStatusName(tm.getStatus()));
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new RemoteException(e.getMessage());
+		}
+
+		try {
+			tm.rollback();
+		} catch (Exception e) {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ e.getClass().getName() + " on rollback.");
+		}
+	}
+
+	public void enlistXAExceptionOnCommitRollbackResourceOperation()
+			throws RemoteException {
+		try {
+			System.out.println("[TestSuite1SoapBindingImpl] "
+					+ getStatusName(tm.getStatus()));
+			tm.getTransaction().enlistResource(
+				new XAExceptionOnCommitRollbackXAResource());
+		} catch (Exception e) {
+			e.printStackTrace();
+			throw new RemoteException(e.getMessage());
+		}
+	}
+
+	private class XAExceptionOnCommitRollbackXAResource extends
+			XA_OKOnPrepareXAResource {
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#commit(javax.transaction.xa.Xid,
+		 *      boolean)
+		 */
+		public void commit(Xid arg0, boolean arg1) throws XAException {
+			throw new XAException();
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#rollback(javax.transaction.xa.Xid)
+		 */
+		public void rollback(Xid arg0) throws XAException {
+			throw new XAException();
+		}
+	}
+
+	private class XAExceptionOnPrepareXAResource extends XAResourceImpl {
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#prepare(javax.transaction.xa.Xid)
+		 */
+		public int prepare(Xid arg0) throws XAException {
+			// TODO Auto-generated method stub
+			throw new XAException();
+		}
+	}
+
+	private class XA_OKOnPrepareXAResource extends XAResourceImpl {
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#prepare(javax.transaction.xa.Xid)
+		 */
+		public int prepare(Xid arg0) throws XAException {
+			// TODO Auto-generated method stub
+			return XAResource.XA_OK;
+		}
+	}
+
+	private class XAResourceImpl implements NamedXAResource {
+		private int timeout = Integer.MAX_VALUE;
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.apache.geronimo.transaction.manager.NamedXAResource#getName()
+		 */
+		public String getName() {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#commit(javax.transaction.xa.Xid,
+		 *      boolean)
+		 */
+		public void commit(Xid arg0, boolean arg1) throws XAException {
+			// TODO Auto-generated method stub
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#end(javax.transaction.xa.Xid,
+		 *      int)
+		 */
+		public void end(Xid arg0, int arg1) throws XAException {
+			// TODO Auto-generated method stub
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#forget(javax.transaction.xa.Xid)
+		 */
+		public void forget(Xid arg0) throws XAException {
+			// TODO Auto-generated method stub
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#getTransactionTimeout()
+		 */
+		public int getTransactionTimeout() throws XAException {
+			return timeout;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#isSameRM(javax.transaction.xa.XAResource)
+		 */
+		public boolean isSameRM(XAResource arg0) throws XAException {
+			return this == arg0;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#prepare(javax.transaction.xa.Xid)
+		 */
+		public int prepare(Xid arg0) throws XAException {
+			// TODO Auto-generated method stub
+			return 0;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#recover(int)
+		 */
+		public Xid[] recover(int arg0) throws XAException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#rollback(javax.transaction.xa.Xid)
+		 */
+		public void rollback(Xid arg0) throws XAException {
+			// TODO Auto-generated method stub
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#setTransactionTimeout(int)
+		 */
+		public boolean setTransactionTimeout(int arg0) throws XAException {
+			timeout = arg0;
+			return true;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see javax.transaction.xa.XAResource#start(javax.transaction.xa.Xid,
+		 *      int)
+		 */
+		public void start(Xid arg0, int arg1) throws XAException {
+			// TODO Auto-generated method stub
+
+		}
+
+	}
+
+	private static Field[] flds = Status.class.getDeclaredFields();
+
+	public static String getStatusName(int status) {
+		String statusName = null;
+
+		try {
+			for (int i = 0; i < flds.length; i++) {
+				if (flds[i].getInt(null) == status)
+					statusName = flds[i].getName();
+			}
+		} catch (Exception e) {
+			statusName = "invalid status value!";
+		}
+		return statusName;
+	}
+
+}
\ No newline at end of file

Added: webservices/kandula/branches/Kandula_1/src/schema/addr.xsd
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/schema/addr.xsd?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/schema/addr.xsd (added)
+++ webservices/kandula/branches/Kandula_1/src/schema/addr.xsd Tue Dec 27 20:17:27 2005
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<!-- 
+Copyright © 2002-2004 BEA Systems Inc., International Business Machines Corporation, 
+Microsoft Corporation, Inc, SAP AG, and Sun Microsystems, Inc.. All rights reserved. 
+
+Permission to copy, display, perform, modify and distribute the WS-Addressing Specification, 
+and to authorize others to do the foregoing, in any medium without fee or royalty is hereby
+granted for the purpose of developing and evaluating the WS-Addressing Specification.
+
+BEA, IBM, Microsoft, SAP AG, and Sun Microsystems (collectively, the "Authors") each agree 
+to grant a license to third parties, under royalty-free  and otherwise reasonable, 
+non-discriminatory terms and conditions, to their respective essential patent claims that
+they deem necessary to implement the WS-Addressing Specification.
+
+DISCLAIMERS:
+
+THE WS-Addressing Specification IS PROVIDED "AS IS", AND THE AUTHORS MAKE NO REPRESENTATIONS
+OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF 
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE 
+CONTENTS OF THE WS-Addressing Specification IS SUITABLE FOR ANY PURPOSE; NOR THAT THE 
+IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, 
+TRADEMARKS OR OTHER RIGHTS.
+
+THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL 
+DAMAGES ARISING OUT OF ANY USE OF THE WS-Addressing Specification OR THE PERFORMANCE OR 
+IMPLEMENTATION OF THE CONTENTS THEREOF.
+
+You may remove these disclaimers from your modified versions of the WS-Addressing 
+Specification provided that you effectively disclaim all warranties and liabilities on behalf 
+of all copyright holders in the copies of any such modified versions you distribute.
+
+The name and trademarks of the Authors may NOT be used in any manner, including advertising 
+or publicity pertaining to the WS-Addressing Specification or its contents without specific, 
+written prior permission. Title to copyright in the WS-Addressing Specification will at all 
+times remain with the Authors.
+
+No other rights are granted by implication, estoppel or otherwise.
+
+-->
+<xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" elementFormDefault="qualified" blockDefault="#all">
+  <!-- //////////////////// WS-Addressing //////////////////// -->
+  <!-- Endpoint reference -->
+  <xs:element name="EndpointReference" type="wsa:EndpointReferenceType"/>
+  <xs:complexType name="EndpointReferenceType">
+    <xs:sequence>
+      <xs:element name="Address" type="wsa:AttributedURI"/>
+      <xs:element name="ReferenceProperties" type="wsa:ReferencePropertiesType" minOccurs="0"/>
+      <xs:element name="ReferenceParameters" type="wsa:ReferenceParametersType" minOccurs="0"/>
+      <xs:element name="PortType" type="wsa:AttributedQName" minOccurs="0"/>
+      <xs:element name="ServiceName" type="wsa:ServiceNameType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+					 If "Policy" elements from namespace "http://schemas.xmlsoap.org/ws/2002/12/policy#policy" are used, they must appear first (before any extensibility elements).
+					</xs:documentation>
+        </xs:annotation>
+      </xs:any>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="ReferencePropertiesType">
+    <xs:sequence>
+      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="ReferenceParametersType">
+    <xs:sequence>
+      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+  </xs:complexType>
+  <xs:complexType name="ServiceNameType">
+    <xs:simpleContent>
+      <xs:extension base="xs:QName">
+        <xs:attribute name="PortName" type="xs:NCName"/>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <!-- Message information header blocks -->
+  <xs:element name="MessageID" type="wsa:AttributedURI"/>
+  <xs:element name="RelatesTo" type="wsa:Relationship"/>
+  <xs:element name="To" type="wsa:AttributedURI"/>
+  <xs:element name="Action" type="wsa:AttributedURI"/>
+  <xs:element name="From" type="wsa:EndpointReferenceType"/>
+  <xs:element name="ReplyTo" type="wsa:EndpointReferenceType"/>
+  <xs:element name="FaultTo" type="wsa:EndpointReferenceType"/>
+  <xs:complexType name="Relationship">
+    <xs:simpleContent>
+      <xs:extension base="xs:anyURI">
+        <xs:attribute name="RelationshipType" type="xs:QName" use="optional"/>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:simpleType name="RelationshipTypeValues">
+    <xs:restriction base="xs:QName">
+      <xs:enumeration value="wsa:Reply"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="ReplyAfter" type="wsa:ReplyAfterType"/>
+  <xs:complexType name="ReplyAfterType">
+    <xs:simpleContent>
+      <xs:extension base="xs:nonNegativeInteger">
+        <xs:anyAttribute namespace="##other"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:simpleType name="FaultSubcodeValues">
+    <xs:restriction base="xs:QName">
+      <xs:enumeration value="wsa:InvalidMessageInformationHeader"/>
+      <xs:enumeration value="wsa:MessageInformationHeaderRequired"/>
+      <xs:enumeration value="wsa:DestinationUnreachable"/>
+      <xs:enumeration value="wsa:ActionNotSupported"/>
+      <xs:enumeration value="wsa:EndpointUnavailable"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:attribute name="Action" type="xs:anyURI"/>
+  <!-- Common declarations and definitions -->
+  <xs:complexType name="AttributedQName">
+    <xs:simpleContent>
+      <xs:extension base="xs:QName">
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:complexType name="AttributedURI">
+    <xs:simpleContent>
+      <xs:extension base="xs:anyURI">
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+</xs:schema>

Added: webservices/kandula/branches/Kandula_1/src/schema/wsat.wsdl
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/schema/wsat.wsdl?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/schema/wsat.wsdl (added)
+++ webservices/kandula/branches/Kandula_1/src/schema/wsat.wsdl Tue Dec 27 20:17:27 2005
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+(c) 2001-2005 Arjuna Technologies Ltd., BEA Systems, Hitachi Ltd., International Business Machines Corporation, IONA Technologies, Microsoft Corporation, Inc. All rights reserved.
+Permission to copy and display the "Web Services Atomic Transaction" Specification (the "Specification", which includes WSDL and schema documents), in any medium without fee or royalty is hereby granted, provided that you include the following on ALL copies of the "Web Services Atomic Transaction" Specification that you make:
+1.  A link or URL to the "Web Services Atomic Transaction" Specification at one of the Authors' websites
+2. The copyright notice as shown in the "Web Services Atomic Transaction" Specification.
+Arjuna, BEA, Hitachi, IBM, IONA and Microsoft (collectively, the "Authors") each agree to grant you a license, under royalty-free and otherwise reasonable, non-discriminatory terms and conditions, to their respective essential patent claims that they deem necessary to implement the "Web Services Atomic Transaction" Specification.
+THE "Web Services Atomic Transaction" SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE "Web Services Atomic Transaction" SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE "Web Services Atomic Transaction" SPECIFICATION.
+The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the "Web Services Atomic Transaction" Specification or its contents without specific, written prior permission. Title to copyright in the "Web Services Atomic Transaction" Specification will at all times remain with the Authors.
+No other rights are granted by implication, estoppel or otherwise.
+-->
+<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsat="http://schemas.xmlsoap.org/ws/2004/10/wsat" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" targetNamespace="http://schemas.xmlsoap.org/ws/2004/10/wsat">
+        <wsdl:types>
+          <xs:schema>
+            <xs:import
+                namespace='http://schemas.xmlsoap.org/ws/2004/08/addressing'
+                schemaLocation='addr.xsd' />
+            <xs:import
+                namespace='http://schemas.xmlsoap.org/ws/2004/10/wsat'
+                schemaLocation='wsat.xsd' />
+          </xs:schema>
+        </wsdl:types>
+        
+	<!-- Messages -->
+	
+	<wsdl:message name="Prepare">
+		<wsdl:part name="parameters" element="wsat:Prepare"/>
+	</wsdl:message>
+	<wsdl:message name="Prepared">
+		<wsdl:part name="parameters" element="wsat:Prepared"/>
+	</wsdl:message>
+	<wsdl:message name="Aborted">
+		<wsdl:part name="parameters" element="wsat:Aborted"/>
+	</wsdl:message>
+	<wsdl:message name="ReadOnly">
+		<wsdl:part name="parameters" element="wsat:ReadOnly"/>
+	</wsdl:message>
+	<wsdl:message name="Commit">
+		<wsdl:part name="parameters" element="wsat:Commit"/>
+	</wsdl:message>
+	<wsdl:message name="Rollback">
+		<wsdl:part name="parameters" element="wsat:Rollback"/>
+	</wsdl:message>
+	<wsdl:message name="Committed">
+		<wsdl:part name="parameters" element="wsat:Committed"/>
+	</wsdl:message>
+	<wsdl:message name="Replay">
+		<wsdl:part name="parameters" element="wsat:Replay"/>
+	</wsdl:message>
+	<wsdl:message name="PrepareResponse">
+		<wsdl:part name="parameters" element="wsat:PrepareResponse"/>
+	</wsdl:message>
+	<wsdl:message name="ReplayResponse">
+		<wsdl:part name="parameters" element="wsat:ReplayResponse"/>
+	</wsdl:message>
+	
+	<!-- Mandatory Asynchronous Messaging PortTypes -->
+	
+	<wsdl:portType name="CompletionCoordinatorPortType">
+		<wsdl:operation name="CommitOperation">
+			<wsdl:input message="wsat:Commit"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit"/>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<wsdl:input message="wsat:Rollback"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback"/>
+		</wsdl:operation>
+	</wsdl:portType>	
+	
+	<wsdl:binding name="CompletionCoordinatorBinding" type="wsat:CompletionCoordinatorPortType">
+		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+		<wsdl:operation name="CommitOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit" />
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback" />
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>	
+	
+	<wsdl:portType name="CompletionInitiatorPortType">
+		<wsdl:operation name="CommittedOperation">
+			<wsdl:input message="wsat:Committed"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed" />
+		</wsdl:operation>
+		<wsdl:operation name="AbortedOperation">
+			<wsdl:input message="wsat:Aborted"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted" />
+		</wsdl:operation>
+	</wsdl:portType>
+
+	<wsdl:binding name="CompletionInitiatorBinding" type="wsat:CompletionInitiatorPortType">
+		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+		<wsdl:operation name="CommittedOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed" />
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="AbortedOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted" />
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>	
+	
+	<wsdl:portType name="CoordinatorPortType">
+		<wsdl:operation name="PreparedOperation">
+			<wsdl:input message="wsat:Prepared"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepared"/>
+		</wsdl:operation>
+		<wsdl:operation name="AbortedOperation">
+			<wsdl:input message="wsat:Aborted"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted"/>
+		</wsdl:operation>
+		<wsdl:operation name="ReadOnlyOperation">
+			<wsdl:input message="wsat:ReadOnly"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/ReadOnly"/>
+		</wsdl:operation>
+		<wsdl:operation name="CommittedOperation">
+			<wsdl:input message="wsat:Committed"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed"/>
+		</wsdl:operation>
+		<wsdl:operation name="ReplayOperation">
+			<wsdl:input message="wsat:Replay"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Replay"/>
+		</wsdl:operation>
+	</wsdl:portType>	
+	
+	<wsdl:binding name="CoordinatorBinding" type="wsat:CoordinatorPortType">
+		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+		<wsdl:operation name="ReplayOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Replay"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="AbortedOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="ReadOnlyOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/ReadOnly"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="PreparedOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepared"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="CommittedOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed" />
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>	
+	
+	<wsdl:portType name="ParticipantPortType">
+		<wsdl:operation name="PrepareOperation">
+			<wsdl:input message="wsat:Prepare"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepare"/>
+		</wsdl:operation>
+		<wsdl:operation name="CommitOperation">
+			<wsdl:input message="wsat:Commit"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit"/>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<wsdl:input message="wsat:Rollback"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback"/>
+		</wsdl:operation>
+	</wsdl:portType>	
+	
+	<wsdl:binding name="ParticipantBinding" type="wsat:ParticipantPortType">
+		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+		<wsdl:operation name="PrepareOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepare"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="CommitOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<soap:operation soapAction="http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+		</wsdl:operation>
+	</wsdl:binding>	
+	
+	<!-- Optional Syncronous RPC Port Types -->
+	
+	<wsdl:portType name="CompletionPortTypeRPC">
+		<wsdl:operation name="CommitOperation">
+			<wsdl:input message="wsat:Commit"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit"/>
+			<wsdl:output message="wsat:Committed"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed"/>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<wsdl:input message="wsat:Rollback"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback"/>
+			<wsdl:output message="wsat:Aborted"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted"/>
+		</wsdl:operation>
+	</wsdl:portType>
+	
+	<wsdl:binding name="CompletionRPCBinding" type="wsat:CompletionPortTypeRPC">
+		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+		<wsdl:operation name="CommitOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+	</wsdl:binding>	
+	
+	<wsdl:portType name="ParticipantPortTypeRPC">
+		<wsdl:operation name="PrepareOperation">
+			<wsdl:input message="wsat:Prepare"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Prepare"/>
+			<wsdl:output message="wsat:PrepareResponse"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/PrepareResponse"/>
+		</wsdl:operation>
+		<wsdl:operation name="CommitOperation">
+			<wsdl:input message="wsat:Commit"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Commit"/>
+			<wsdl:output message="wsat:Committed"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Committed"/>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<wsdl:input message="wsat:Rollback"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Rollback"/>
+			<wsdl:output message="wsat:Aborted"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted"/>
+		</wsdl:operation>
+	</wsdl:portType>
+
+	<wsdl:binding name="ParticipantRPCBinding" type="wsat:ParticipantPortTypeRPC">
+		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+		<wsdl:operation name="PrepareOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="CommitOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="RollbackOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+	</wsdl:binding>
+	
+	
+	<wsdl:portType name="CoordinatorPortTypeRPC">
+		<wsdl:operation name="ReplayOperation">
+			<wsdl:input message="wsat:Replay"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Replay"/>
+			<wsdl:output message="wsat:ReplayResponse"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/ReplayResponse"/>
+		</wsdl:operation>
+		<wsdl:operation name="AbortedOperation">
+			<wsdl:input message="wsat:Aborted"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/Aborted"/>
+		</wsdl:operation>
+		<wsdl:operation name="ReadOnlyOperation">
+			<wsdl:input message="wsat:ReadOnly"
+			  wsa:Action="http://schemas.xmlsoap.org/ws/2004/10/wsat/ReadOnly"/>
+		</wsdl:operation>
+	</wsdl:portType>
+
+
+	<wsdl:binding name="CoordinatorRPCBinding" type="wsat:CoordinatorPortTypeRPC">
+		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+		<wsdl:operation name="ReplayOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="AbortedOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+		<wsdl:operation name="ReadOnlyOperation">
+			<soap:operation soapAction="http://foo"/>
+			<wsdl:input>
+				<soap:body use="literal"/>
+			</wsdl:input>
+			<wsdl:output>
+				<soap:body use="literal"/>
+			</wsdl:output>
+		</wsdl:operation>
+	</wsdl:binding>
+
+	<wsdl:service name="foo">
+		<wsdl:port binding="wsat:ParticipantBinding" name="Participant">
+      			<soap:address location="http://localhost:8081/axis/services/Participant"/>
+   		</wsdl:port>
+		<wsdl:port binding="wsat:CoordinatorBinding" name="Coordinator">
+      			<soap:address location="http://localhost:8081/axis/services/Coordinator"/>
+   		</wsdl:port>
+		<wsdl:port binding="wsat:CompletionInitiatorBinding" name="CompletionInitiator">
+   			<soap:address location="http://localhost:8081/axis/services/CompletionInitiator"/>
+   		</wsdl:port>
+		<wsdl:port binding="wsat:CompletionCoordinatorBinding" name="CompletionCoordinator">
+   			<soap:address location="http://localhost:8081/axis/services/CompletionCoordinator"/>
+   		</wsdl:port>   					
+		<wsdl:port binding="wsat:ParticipantRPCBinding" name="ParticipantRPC">
+      			<soap:address location="http://localhost:8081/axis/services/ParticipantRPC"/>
+   		</wsdl:port>
+		<wsdl:port binding="wsat:CoordinatorRPCBinding" name="CoordinatorRPC">
+      			<soap:address location="http://localhost:8081/axis/services/CoordinatorRPC"/>
+   		</wsdl:port>
+		<wsdl:port binding="wsat:CompletionRPCBinding" name="CompletionRPC">
+   			<soap:address location="http://localhost:8081/axis/services/CompletionRPC"/>
+   		</wsdl:port>
+	</wsdl:service>
+
+</wsdl:definitions>
+

Added: webservices/kandula/branches/Kandula_1/src/schema/wsat.xsd
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/schema/wsat.xsd?rev=359386&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/schema/wsat.xsd (added)
+++ webservices/kandula/branches/Kandula_1/src/schema/wsat.xsd Tue Dec 27 20:17:27 2005
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+(c) 2001-2005 Arjuna Technologies Ltd., BEA Systems, Hitachi Ltd., International Business Machines Corporation, IONA Technologies, Microsoft Corporation, Inc. All rights reserved.
+Permission to copy and display the "Web Services Atomic Transaction" Specification (the "Specification", which includes WSDL and schema documents), in any medium without fee or royalty is hereby granted, provided that you include the following on ALL copies of the "Web Services Atomic Transaction" Specification that you make:
+1.  A link or URL to the "Web Services Atomic Transaction" Specification at one of the Authors' websites
+2. The copyright notice as shown in the "Web Services Atomic Transaction" Specification.
+Arjuna, BEA, Hitachi, IBM, IONA and Microsoft (collectively, the "Authors") each agree to grant you a license, under royalty-free and otherwise reasonable, non-discriminatory terms and conditions, to their respective essential patent claims that they deem necessary to implement the "Web Services Atomic Transaction" Specification.
+THE "Web Services Atomic Transaction" SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE "Web Services Atomic Transaction" SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE "Web Services Atomic Transaction" SPECIFICATION.
+The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the "Web Services Atomic Transaction" Specification or its contents without specific, written prior permission. Title to copyright in the "Web Services Atomic Transaction" Specification will at all times remain with the Authors.
+No other rights are granted by implication, estoppel or otherwise.
+-->
+<xsd:schema targetNamespace="http://schemas.xmlsoap.org/ws/2004/10/wsat" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsat="http://schemas.xmlsoap.org/ws/2004/10/wsat" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
+	<xsd:complexType name="Notification">
+		<xsd:sequence>
+			<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:complexType>
+	<xsd:element name="Prepare" type="wsat:Notification"/>
+	<xsd:element name="Prepared" type="wsat:Notification"/>
+	<xsd:element name="Aborted" type="wsat:Notification"/>
+	<xsd:element name="ReadOnly" type="wsat:Notification"/>
+	<xsd:element name="Commit" type="wsat:Notification"/>
+	<xsd:element name="Rollback" type="wsat:Notification"/>
+	<xsd:element name="Committed" type="wsat:Notification"/>
+	<xsd:element name="Replay" type="wsat:Notification"/>
+	<xsd:simpleType name="Vote">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="VoteCommit"/>
+			<xsd:enumeration value="VoteRollback"/>
+			<xsd:enumeration value="VoteReadOnly"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:element name="PrepareResponse">
+		<xsd:complexType>
+			<xsd:attribute name="vote" type="wsat:Vote"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:simpleType name="Outcome">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="Commit"/>
+			<xsd:enumeration value="Rollback"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+	<xsd:element name="ReplayResponse">
+		<xsd:complexType>
+			<xsd:attribute name="outcome" type="wsat:Outcome"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:simpleType name="ErrorCodes">
+		<xsd:restriction base="xsd:QName">
+			<xsd:enumeration value="wsat:InconsistentInternalState"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+    
+    <!-- Policy assertions -->
+    <xsd:element name="ATAssertion">
+		<xsd:complexType>
+			<xsd:sequence>
+                   <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+               </xsd:sequence>
+               <xsd:anyAttribute namespace="##other" processContents="lax" />
+		</xsd:complexType>
+    </xsd:element>
+    <xsd:element name="ATAlwaysCapability">
+        <xsd:complexType>
+            <xsd:anyAttribute namespace="##other" processContents="lax" />
+        </xsd:complexType>
+    </xsd:element>
+</xsd:schema>
+



---------------------------------------------------------------------
To unsubscribe, e-mail: kandula-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: kandula-dev-help@ws.apache.org