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();
}
}