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:[EMAIL PROTECTED]"> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to