You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kandula-dev@ws.apache.org by th...@apache.org on 2006/07/26 04:51:43 UTC

svn commit: r425588 - in /webservices/kandula/trunk/java: src/org/apache/kandula/coordinator/at/ src/org/apache/kandula/storage/ src/org/apache/kandula/utility/ src/org/apache/kandula/wscoor/ test/interop/

Author: thilina
Date: Tue Jul 25 19:51:43 2006
New Revision: 425588

URL: http://svn.apache.org/viewvc?rev=425588&view=rev
Log:
Ading time out capability for trasactions in the coordinator.
Fixing a bug in the register response message.

Improving Interop Tests.

Modified:
    webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java
    webservices/kandula/trunk/java/src/org/apache/kandula/storage/SimpleStore.java
    webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java
    webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java
    webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationPortTypeRawXMLSkeleton.java
    webservices/kandula/trunk/java/test/interop/InteropTest.java
    webservices/kandula/trunk/java/test/interop/TestServiceStub.java
    webservices/kandula/trunk/java/test/interop/testService.java

Modified: webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/coordinator/at/ATCoordinator.java Tue Jul 25 19:51:43 2006
@@ -334,7 +334,7 @@
 	 * @param context
 	 * @throws Exception
 	 */
-	private void abortActivity(AbstractContext context)
+	public void abortActivity(AbstractContext context)
 			throws AbstractKandulaException {
 		ParticipantPortTypeRawXMLStub stub = new ParticipantPortTypeRawXMLStub();
 		ATActivityContext atContext = (ATActivityContext) context;
@@ -350,7 +350,6 @@
 		CompletionInitiatorPortTypeRawXMLStub completionStub = new CompletionInitiatorPortTypeRawXMLStub(
 				atContext.getCompletionParticipant());
 		completionStub.abortedOperation();
-
 	}
 
 	/**
@@ -414,7 +413,7 @@
 				}
 			}
 		}
-		
+
 		try {
 			Method method = ATCoordinator.class.getMethod("durablePrepare",
 					new Class[] { AbstractContext.class });
@@ -464,6 +463,30 @@
 				throw new KandulaGeneralException(
 						"Internal Kandula Server Error ", e);
 			}
+		}
+	}
+
+	public void timeout(AbstractContext context){
+		ATActivityContext atContext = (ATActivityContext) context;
+		atContext.lock();
+		switch (atContext.getStatus()) {
+
+		case CoordinatorStatus.STATUS_ABORTING:
+		case CoordinatorStatus.STATUS_COMMITTING:
+		case CoordinatorStatus.STATUS_PREPARED_SUCCESS:
+			atContext.unlock();
+			break;
+		case CoordinatorStatus.STATUS_ACTIVE:
+		case CoordinatorStatus.STATUS_PREPARING_VOLATILE:
+		case CoordinatorStatus.STATUS_PREPARING_DURABLE:
+			try {
+					abortActivity(context);
+				} catch (AbstractKandulaException e) {
+					e.printStackTrace();
+				}
+			break;
+		default:
+			atContext.unlock();
 		}
 	}
 }

Modified: webservices/kandula/trunk/java/src/org/apache/kandula/storage/SimpleStore.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/src/org/apache/kandula/storage/SimpleStore.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/storage/SimpleStore.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/storage/SimpleStore.java Tue Jul 25 19:51:43 2006
@@ -17,12 +17,17 @@
 package org.apache.kandula.storage;
 
 import java.util.HashMap;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.apache.kandula.context.impl.ATActivityContext;
+import org.apache.kandula.coordinator.at.ATCoordinator;
 
 /**
  * @author <a href="mailto:thilina@opensource.lk"> Thilina Gunarathne </a>
  */
 public class SimpleStore implements Store {
-
+	Timer timer = new Timer();
 	private HashMap contextMap;
 
 	/*
@@ -37,6 +42,17 @@
 
 	public void put(Object id, Object context) {
 		contextMap.put(id, context);
+	}
+	
+	public void put(final Object id, final ATActivityContext context,long expires) {
+		contextMap.put(id, context);
+		timer.schedule(new TimerTask() {
+			public void run() {
+				forget(id);
+				ATCoordinator coordinator = new ATCoordinator();
+				coordinator.timeout(context);
+			}
+		}, expires);
 	}
 
 	/*

Modified: webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/utility/EndpointReferenceFactory.java Tue Jul 25 19:51:43 2006
@@ -228,4 +228,4 @@
 			}
 		}
 	}
-}
\ No newline at end of file
+}

Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationCoordinatorPortTypeRawXMLStub.java Tue Jul 25 19:51:43 2006
@@ -138,7 +138,7 @@
 							"CoordinatorProtocolService"));
 			if (serviceElement != null) {
 				EndpointReference coordinatorService = EndpointReferenceFactory
-						.endpointFromOM(serviceElement.getFirstElement());
+						.endpointFromOM(serviceElement);
 				// try to avoid following
 				InitiatorTransaction initiatorTransaction;
 				initiatorTransaction = (InitiatorTransaction) StorageFactory

Modified: webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationPortTypeRawXMLSkeleton.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationPortTypeRawXMLSkeleton.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationPortTypeRawXMLSkeleton.java (original)
+++ webservices/kandula/trunk/java/src/org/apache/kandula/wscoor/RegistrationPortTypeRawXMLSkeleton.java Tue Jul 25 19:51:43 2006
@@ -93,13 +93,10 @@
 		SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
 		OMNamespace wsCoor = factory.createOMNamespace(
 				org.apache.kandula.Constants.WS_COOR, "wscoor");
-		OMElement protocolService = factory.createOMElement(
-				"CoordinatorProtocolService", wsCoor);
 		OMElement coordinatorProtocolService = factory.createOMElement(
 				"CoordinatorProtocolService", wsCoor);
 		EndpointReferenceFactory.endpointToOM(epr, coordinatorProtocolService,
 				factory);
-		protocolService.addChild(coordinatorProtocolService);
-		return protocolService;
+		return coordinatorProtocolService;
 	}
 }

Modified: webservices/kandula/trunk/java/test/interop/InteropTest.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/test/interop/InteropTest.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/test/interop/InteropTest.java (original)
+++ webservices/kandula/trunk/java/test/interop/InteropTest.java Tue Jul 25 19:51:43 2006
@@ -29,7 +29,7 @@
 public class InteropTest extends TestCase {
 
 	EndpointReference coordinator = new EndpointReference(
-			"http://localhost:8085/axis2/services/ActivationCoordinator");
+			"http://127.0.0.1:8086/axis2/services/ActivationCoordinator");
 
 	String axis2Repo = "target/initiator-repository";
 
@@ -37,8 +37,9 @@
 
 	TestServiceStub stub = new TestServiceStub("target/initiator-repository",
 			new EndpointReference(
-					"http://localhost:8085/axis2/services/TestService"));
-
+					"http://www.soaphub.org/wstx/services/InteropService"));
+					//"http://127.0.0.1:81/wstx/services/InteropService"));	
+					
 	public InteropTest() throws Exception {
 		super(InteropTest.class.getName());
 	}
@@ -50,21 +51,21 @@
 	public void testCompletionCommit() throws Exception {
 		TransactionManager tm = new TransactionManager(Constants.WS_AT,
 				coordinator, axis2Repo, axis2XML);
-		tm.begin(true);
+		tm.begin(false);
 		tm.commit();
 	}
 
 	public void testCompletionRollback() throws Exception {
 		TransactionManager tm = new TransactionManager(Constants.WS_AT,
 				coordinator, axis2Repo, axis2XML);
-		tm.begin(true);
+		tm.begin(false);
 		tm.rollback();
 	}
 
 	public void testCommit() throws Exception {
 		TransactionManager tm = new TransactionManager(Constants.WS_AT,
 				coordinator, axis2Repo, axis2XML);
-		tm.begin(true);
+		tm.begin(false);
 		stub.commitOperation();
 		tm.commit();
 	}
@@ -80,7 +81,7 @@
 	public void testPhase2Rollback() throws Exception {
 		TransactionManager tm = new TransactionManager(Constants.WS_AT,
 				coordinator, axis2Repo, axis2XML);
-		tm.begin(true);
+		tm.begin(false);
 		stub.phase2RollbackOperation();
 
 		boolean done = false;
@@ -95,7 +96,7 @@
 	public void testReadonly() throws Exception {
 		TransactionManager tm = new TransactionManager(Constants.WS_AT,
 				coordinator, axis2Repo, axis2XML);
-		tm.begin(true);
+		tm.begin(false);
 		stub.readonlyOperation();
 		tm.commit();
 	}
@@ -103,14 +104,15 @@
 	public void testVolatileAndDurable() throws Exception {
 		TransactionManager tm = new TransactionManager(Constants.WS_AT,
 				coordinator, axis2Repo, axis2XML);
-		tm.begin(true);
+		tm.begin(false);
 		stub.readonlyOperation();
 		tm.commit();
 	}
 	public void testEarlyAborted() throws Exception {
 		TransactionManager tm = new TransactionManager(Constants.WS_AT,
 				coordinator, axis2Repo, axis2XML);
-		tm.begin(true);
+		tm.begin(false);
 		stub.earlyAbortedOperation();
+		Thread.sleep(5000);
 	}
 }

Modified: webservices/kandula/trunk/java/test/interop/TestServiceStub.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/test/interop/TestServiceStub.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/test/interop/TestServiceStub.java (original)
+++ webservices/kandula/trunk/java/test/interop/TestServiceStub.java Tue Jul 25 19:51:43 2006
@@ -20,6 +20,7 @@
 
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
@@ -84,25 +85,30 @@
 
 	}
 
-	public void commitOperation() throws IOException, AxisFault {
-
+	public void sendMessage(String name) throws AxisFault
+	{
 		Options options = new Options();
 		MessageContext messageContext = new MessageContext();
 		messageContext.setProperty(AddressingConstants.WS_ADDRESSING_VERSION,
 				AddressingConstants.Submission.WSA_NAMESPACE);
-		SOAPEnvelope env = createSOAPEnvelope();
+		
+		SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
+		SOAPEnvelope env = factory.getDefaultEnvelope();
+		OMNamespace namespace = factory.createOMNamespace("http://fabrikam123.com","tns");
+		OMElement testType = factory.createOMElement(name,namespace);
+		env.getBody().addChild(testType);
 		messageContext.setEnvelope(env);
-
-		options.setAction("Commit");
+		
+		options.setAction(name);
 		options.setTo(this.toEPR);
-
-		// messageSender
-		// .setSenderTransport(org.apache.axis2.Constants.TRANSPORT_HTTP);
 		OperationClient client = operations[0].createClient(serviceContext,
 				options);
 		client.addMessageContext(messageContext);
 		client.execute(true);
-
+	}
+	
+	public void commitOperation() throws IOException, AxisFault {
+		sendMessage("Commit");
 	}
 
 	public void rollbackOperation() throws IOException, AxisFault {

Modified: webservices/kandula/trunk/java/test/interop/testService.java
URL: http://svn.apache.org/viewvc/webservices/kandula/trunk/java/test/interop/testService.java?rev=425588&r1=425587&r2=425588&view=diff
==============================================================================
--- webservices/kandula/trunk/java/test/interop/testService.java (original)
+++ webservices/kandula/trunk/java/test/interop/testService.java Tue Jul 25 19:51:43 2006
@@ -18,7 +18,11 @@
 
 import java.util.Map;
 
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.OperationContext;
@@ -51,20 +55,15 @@
 	}
 
 	public OMElement Commit(OMElement element) {
-		element.build();
-		element.detach();
-		return element;
+		return getResponseElement();
 	}
 
 	public OMElement Rollback(OMElement element) {
-		element.build();
-		element.detach();
-		return element;
+		return getResponseElement();
 	}
 
 	public OMElement Phase2Rollback(OMElement element) throws AxisFault {
-		element.build();
-		element.detach();
+
 		String reqID = (String) msgcts
 				.getProperty(AbstractContext.REQUESTER_ID);
 		Store store = StorageFactory.getInstance().getStore();
@@ -87,12 +86,11 @@
 		store.put(participantContext1.getID(), participantContext1);
 		ParticipantUtility.registerParticipant(participantContext1);
 
-		return element;
+		return getResponseElement();
 	}
 
 	public OMElement Readonly(OMElement element) throws AxisFault {
-		element.build();
-		element.detach();
+
 		String reqID = (String) msgcts
 				.getProperty(AbstractContext.REQUESTER_ID);
 		Store store = StorageFactory.getInstance().getStore();
@@ -115,12 +113,11 @@
 		store.put(participantContext1.getID(), participantContext1);
 		ParticipantUtility.registerParticipant(participantContext1);
 
-		return element;
+		return getResponseElement();
 	}
 
 	public OMElement VolatileAndDurable(OMElement element) throws AxisFault {
-		element.build();
-		element.detach();
+
 		String reqID = (String) msgcts
 				.getProperty(AbstractContext.REQUESTER_ID);
 		final Store store = StorageFactory.getInstance().getStore();
@@ -162,12 +159,11 @@
 			}
 		});
 		thread.start();
-		return element;
+		return getResponseElement();
 	}
 
 	public OMElement EarlyAborted(OMElement element) throws AxisFault {
-		element.build();
-		element.detach();
+
 		String reqID = (String) msgcts
 				.getProperty(AbstractContext.REQUESTER_ID);
 		Store store = StorageFactory.getInstance().getStore();
@@ -199,6 +195,13 @@
 			throw new AxisFault(e);
 		}
 
-		return element;
+		return getResponseElement();
+	}
+	private OMElement getResponseElement()
+	{
+		SOAPFactory factory = OMAbstractFactory.getSOAP12Factory();
+		OMNamespace namespace = factory.createOMNamespace("http://fabrikam123.com",null);
+		OMElement testType = factory.createOMElement("Response",namespace);
+		return testType;
 	}
 }



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