Author: dasarath
Date: Thu Dec 29 04:14:51 2005
New Revision: 359778

URL: http://svn.apache.org/viewcvs?rev=359778&view=rev
Log: (empty)

Modified:
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/ActivationImpl.java
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinationService.java
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/Coordinator.java
    
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinatorImpl.java

Modified: 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/ActivationImpl.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/ActivationImpl.java?rev=359778&r1=359777&r2=359778&view=diff
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/ActivationImpl.java
 (original)
+++ 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/ActivationImpl.java
 Thu Dec 29 04:14:51 2005
@@ -18,7 +18,6 @@
 
 import java.rmi.RemoteException;
 
-import org.apache.axis.types.URI.MalformedURIException;
 import org.apache.ws.transaction.wscoor.ActivationPortTypeRPC;
 import org.apache.ws.transaction.wscoor.CreateCoordinationContextResponseType;
 import org.apache.ws.transaction.wscoor.CreateCoordinationContextType;
@@ -26,22 +25,8 @@
 public class ActivationImpl implements ActivationPortTypeRPC {
 
        public CreateCoordinationContextResponseType 
createCoordinationContextOperation(
-                       CreateCoordinationContextType parameters) throws 
RemoteException {
-
-               String t = parameters.getCoordinationType().toString();
-               CoordinationContext ctx;
-               try {
-                       ctx = 
CoordinationService.getInstance().createCoordinationContext(t);
-               } catch (MalformedURIException e) {
-                       e.printStackTrace();
-                       throw new RuntimeException(e);
-               } catch (UnsupportedCoordinationTypeException e) {
-                       e.printStackTrace();
-                       throw new RuntimeException(e);
-               }
-               CreateCoordinationContextResponseType r = new 
CreateCoordinationContextResponseType();
-               r.setCoordinationContext(ctx);
-               return r;
-
+                       CreateCoordinationContextType params) throws 
RemoteException {
+               return 
CoordinationService.getInstance().createCoordinationContextOperation(
+                       params);
        }
 }

Modified: 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinationService.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinationService.java?rev=359778&r1=359777&r2=359778&view=diff
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinationService.java
 (original)
+++ 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinationService.java
 Thu Dec 29 04:14:51 2005
@@ -4,6 +4,10 @@
  */
 package org.apache.ws.transaction.coordinator;
 
+import java.rmi.RemoteException;
+import java.util.Timer;
+import java.util.TimerTask;
+
 import org.apache.axis.message.MessageElement;
 import org.apache.axis.message.addressing.EndpointReference;
 import org.apache.axis.message.addressing.PortType;
@@ -13,12 +17,16 @@
 import org.apache.ws.transaction.coordinator.at.ATCoordinatorImpl;
 import org.apache.ws.transaction.utility.CallbackRegistry;
 import org.apache.ws.transaction.utility.EndpointReferenceFactory;
+import org.apache.ws.transaction.wscoor.ActivationPortTypeRPC;
+import org.apache.ws.transaction.wscoor.CreateCoordinationContextResponseType;
+import org.apache.ws.transaction.wscoor.CreateCoordinationContextType;
+import org.apache.ws.transaction.wscoor.Expires;
 
 /**
  * @author Dasarath Weeratunge
  *  
  */
-public class CoordinationService {
+public class CoordinationService implements ActivationPortTypeRPC {
        public static PortType ACTIVATION_SERVICE = new PortType(
                        "http://schemas.xmlsoap.org/ws/2004/10/wscoor";,
                        "ActivationPortTypeRPC");
@@ -36,6 +44,10 @@
                        "http://schemas.xmlsoap.org/ws/2004/10/wscoor";,
                        "RegistrationPortTypeRPC");
 
+       public static final long DEFAULT_TIMEOUT_MILLIS = 60 * 60 * 1000;
+
+       private Timer timer = new Timer();
+
        public static CoordinationService getInstance() {
                return instance;
        }
@@ -43,12 +55,18 @@
        private CoordinationService() {
        }
 
-       public CoordinationContext createCoordinationContext(String 
coordinationType)
+       private CoordinationContext createCoordinationContext(
+                       String coordinationType, long timeout)
                        throws UnsupportedCoordinationTypeException, 
MalformedURIException {
                if 
(!ATCoordinator.COORDINATION_TYPE_ID.equals(coordinationType))
                        throw new UnsupportedCoordinationTypeException();
-               Coordinator c = new ATCoordinatorImpl();
+               final Coordinator c = new ATCoordinatorImpl();
                CallbackRegistry.getInstance().registerCallback(c.getID(), c);
+               timer.schedule(new TimerTask() {
+                       public void run() {
+                               c.timeout();
+                       }
+               }, timeout);
                return c.getCoordinationContext();
        }
 
@@ -77,5 +95,29 @@
                r.add(new MessageElement(CallbackRegistry.COORDINATOR_REF, 
c.getID()));
                return 
EndpointReferenceFactory.getInstance().getEndpointReference(
                        REGISTRATION_SERVICE, r);
+       }
+
+       public CreateCoordinationContextResponseType 
createCoordinationContextOperation(
+                       CreateCoordinationContextType parameters) throws 
RemoteException {
+               String t = parameters.getCoordinationType().toString();
+               Expires ex = parameters.getExpires();
+               long timeout;
+               if (ex == null)
+                       timeout = DEFAULT_TIMEOUT_MILLIS;
+               else
+                       timeout = ex.get_value().longValue() * 1000;
+               CoordinationContext ctx;
+               try {
+                       ctx = createCoordinationContext(t, timeout);
+               } catch (MalformedURIException e) {
+                       e.printStackTrace();
+                       throw new RemoteException(e.toString());
+               } catch (UnsupportedCoordinationTypeException e) {
+                       e.printStackTrace();
+                       throw new RemoteException(e.toString());
+               }
+               CreateCoordinationContextResponseType r = new 
CreateCoordinationContextResponseType();
+               r.setCoordinationContext(ctx);
+               return r;
        }
 }

Modified: 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/Coordinator.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/Coordinator.java?rev=359778&r1=359777&r2=359778&view=diff
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/Coordinator.java
 (original)
+++ 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/Coordinator.java
 Thu Dec 29 04:14:51 2005
@@ -14,4 +14,6 @@
        String getID();
 
        CoordinationContext getCoordinationContext();
+
+       void timeout();
 }

Modified: 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinatorImpl.java
URL: 
http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinatorImpl.java?rev=359778&r1=359777&r2=359778&view=diff
==============================================================================
--- 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinatorImpl.java
 (original)
+++ 
webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator/CoordinatorImpl.java
 Thu Dec 29 04:14:51 2005
@@ -41,7 +41,7 @@
        public abstract EndpointReference register(String prot,
                        EndpointReference pps) throws 
InvalidCoordinationProtocolException;
 
-       public RegisterResponseType registerOperation(RegisterType params)
+       public synchronized RegisterResponseType registerOperation(RegisterType 
params)
                        throws RemoteException {
                EndpointReference epr = null;
                try {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to