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