You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by da...@apache.org on 2005/12/31 04:59:13 UTC

svn commit: r360233 - /webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/CallbackRegistry.java

Author: dasarath
Date: Fri Dec 30 19:59:11 2005
New Revision: 360233

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

Modified:
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/CallbackRegistry.java

Modified: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/CallbackRegistry.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/CallbackRegistry.java?rev=360233&r1=360232&r2=360233&view=diff
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/CallbackRegistry.java (original)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/CallbackRegistry.java Fri Dec 30 19:59:11 2005
@@ -9,6 +9,8 @@
 import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
+import java.util.Timer;
+import java.util.TimerTask;
 
 import javax.xml.namespace.QName;
 
@@ -27,6 +29,13 @@
 	public static final QName COORDINATOR_REF = new QName(
 			"http://ws.apache.org/kandula", "CoordinatorRef");
 
+	public static final int DEFAULT_TIMEOUT_MILLIS = 90 * 1000; // the value is
+
+	// for testing
+	// only...
+
+	private Timer timer = new Timer();
+
 	private static final CallbackRegistry instance = new CallbackRegistry();
 
 	private Map callbacks = new HashMap();
@@ -40,6 +49,21 @@
 
 	public synchronized void registerCallback(String ref, Object callback) {
 		callbacks.put(ref, callback);
+	}
+
+	public synchronized void registerCallback(String ref,
+			final Callback callback, long timeout) {
+		callbacks.put(ref, callback);
+		if (timeout == 0)
+			timeout = DEFAULT_TIMEOUT_MILLIS;
+		System.out.println("[CallbackRegistry] registerCallback: timeout= "
+				+ timeout);
+		timer.schedule(new TimerTask() {
+			public void run() {
+				callbacks.remove(callback);
+				callback.timeout();
+			}
+		}, timeout);
 	}
 
 	public synchronized Object correlateMessage(QName q, boolean terminal) {



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