Author: supun
Date: Fri May  7 07:59:20 2010
New Revision: 942023

URL: http://svn.apache.org/viewvc?rev=942023&view=rev
Log:
Code for SYNAPSE-644. If the load balancing algorithm implements the 
managedLifecycle initialize and destroy the algorithm

Modified:
    
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java

Modified: 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
URL: 
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java?rev=942023&r1=942022&r2=942023&view=diff
==============================================================================
--- 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
 (original)
+++ 
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
 Fri May  7 07:59:20 2010
@@ -23,10 +23,7 @@ import org.apache.axis2.context.Configur
 import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.clustering.Member;
 import org.apache.http.protocol.HTTP;
-import org.apache.synapse.FaultHandler;
-import org.apache.synapse.MessageContext;
-import org.apache.synapse.SynapseConstants;
-import org.apache.synapse.SynapseException;
+import org.apache.synapse.*;
 import org.apache.synapse.core.axis2.Axis2SynapseEnvironment;
 import org.apache.synapse.core.axis2.Axis2MessageContext;
 import org.apache.synapse.core.SynapseEnvironment;
@@ -78,6 +75,25 @@ public class LoadbalanceEndpoint extends
             if (algorithmContext == null) {
                 algorithmContext = new AlgorithmContext(isClusteringEnabled, 
cc, getName());
             }
+
+            // if the loadbalancing algorithm implements the ManagedLifecycle 
interface
+            // initlize the algorithm
+            if (algorithm != null && algorithm instanceof ManagedLifecycle) {
+                ManagedLifecycle lifecycle = (ManagedLifecycle) algorithm;
+                lifecycle.init(synapseEnvironment);
+            }
+        }
+    }
+
+    @Override
+    public void destroy() {
+        super.destroy();
+
+        // if the loadbalancing algorithm implements the ManagedLifecycle 
interface
+        // destroy the algorithm
+        if (algorithm != null && algorithm instanceof ManagedLifecycle) {
+            ManagedLifecycle lifecycle = (ManagedLifecycle) algorithm;
+            lifecycle.destroy();
         }
     }
 


Reply via email to