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

Reply via email to