Author: azeez
Date: Fri Mar  2 11:47:29 2012
New Revision: 1296158

URL: http://svn.apache.org/viewvc?rev=1296158&view=rev
Log:
Merging Member suspension functionality into 1_6 branch from trunk

Modified:
    
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java

Modified: 
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java?rev=1296158&r1=1296157&r2=1296158&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java
 (original)
+++ 
axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/clustering/Member.java
 Fri Mar  2 11:47:29 2012
@@ -57,11 +57,46 @@ public class Member {
      */
     private Properties properties = new Properties();
 
+    /**
+     * Time at which this member was suspended
+     */
+    private long suspendedTime = -1;
+
+    /**
+     * Time in millis which this member should be suspended
+     */
+    private long suspensionDuration = -1;
+
     public Member(String hostName, int port) {
         this.hostName = hostName;
         this.port = port;
     }
 
+    /**
+     * Temporarilly suspend this member
+     * @param suspensionDurationMillis The time duration in millis in which 
this member should be suspended
+     */
+    public void suspend(long suspensionDurationMillis){
+        this.suspendedTime = System.currentTimeMillis();
+        this.suspensionDuration = suspensionDurationMillis;
+    }
+
+    /**
+     * Check whether this member is suspended
+     * @return true if this member is still suspended, false oterwise
+     */
+    public boolean isSuspended() {
+        if (suspendedTime == -1) {
+            return false;
+        }
+        if (System.currentTimeMillis() - suspendedTime >= suspensionDuration) {
+            this.suspendedTime = -1;
+            this.suspensionDuration = -1;
+            return false;
+        }
+        return true;
+    }
+
     public String getHostName() {
         return hostName;
     }


Reply via email to