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 da...@apache.org on 2005/12/29 13:14:53 UTC
svn commit: r359778 - in
/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/coordinator:
ActivationImpl.java CoordinationService.java Coordinator.java
CoordinatorImpl.java
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: kandula-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: kandula-dev-help@ws.apache.org