Author: supun
Date: Thu Jan 6 07:04:10 2011
New Revision: 1055765
URL: http://svn.apache.org/viewvc?rev=1055765&view=rev
Log:
adding scope to the properties and evaluating the properties before sending a
message through an endpoint
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/LoadbalanceEndpoint.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java?rev=1055765&r1=1055764&r2=1055765&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/AbstractEndpoint.java
Thu Jan 6 07:04:10 2011
@@ -79,7 +79,7 @@ public abstract class AbstractEndpoint e
protected String fileName;
/** Map for storing configuration parameters */
- private Map<String, MediatorProperty> properties = new HashMap<String,
MediatorProperty>();
+ protected Map<String, MediatorProperty> properties = new HashMap<String,
MediatorProperty>();
protected boolean anonymous = false;
@@ -238,6 +238,9 @@ public abstract class AbstractEndpoint e
((Axis2MessageContext) synCtx).getAxis2MessageContext().setProperty(
BaseConstants.METRICS_COLLECTOR, metricsMBean);
+ evaluateProperties(synCtx);
+
+
// if the envelope preserving set build the envelope
MediatorProperty preserveEnv =
getProperty(SynapseConstants.PRESERVE_ENVELOPE);
if (preserveEnv != null &&
JavaUtils.isTrueExplicitly(preserveEnv.getValue() != null ?
@@ -612,4 +615,17 @@ public abstract class AbstractEndpoint e
public void setOnFaultMessageStore(String onFaultMessageStore) {
this.onFaultMessageStore = onFaultMessageStore;
}
+
+ /**
+ * Evaluates the endpoint properties based on the current message context
and set
+ * the properties to the message context appropriately
+ * @param synCtx the current message context
+ */
+ protected void evaluateProperties(MessageContext synCtx) {
+ // evaluate the properties
+ Set<Map.Entry<String, MediatorProperty>> propertySet =
properties.entrySet();
+ for (Map.Entry<String, MediatorProperty> e : propertySet) {
+ e.getValue().evaluate(synCtx);
+ }
+ }
}
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java?rev=1055765&r1=1055764&r2=1055765&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/FailoverEndpoint.java
Thu Jan 6 07:04:10 2011
@@ -21,6 +21,10 @@ package org.apache.synapse.endpoints;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseConstants;
+import org.apache.synapse.mediators.MediatorProperty;
+
+import java.util.Map;
+import java.util.Set;
/**
* FailoverEndpoint can have multiple child endpoints. It will always try to
send messages to
@@ -61,6 +65,9 @@ public class FailoverEndpoint extends Ab
"FailoverLoadbalance endpoint : " + getName() + " - no
child endpoints");
return;
}
+
+ // evaluate the endpoint properties
+ evaluateProperties(synCtx);
if (dynamic) {
// Dynamic fail-over mode - Switch to a backup endpoint when an
error occurs
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=1055765&r1=1055764&r2=1055765&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
Thu Jan 6 07:04:10 2011
@@ -28,12 +28,10 @@ import org.apache.synapse.core.axis2.Axi
import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.endpoints.algorithms.AlgorithmContext;
import org.apache.synapse.endpoints.algorithms.LoadbalanceAlgorithm;
+import org.apache.synapse.mediators.MediatorProperty;
import java.net.*;
-import java.util.List;
-import java.util.TimerTask;
-import java.util.Timer;
-import java.util.ArrayList;
+import java.util.*;
import java.io.IOException;
/**
@@ -107,6 +105,9 @@ public class LoadbalanceEndpoint extends
endpoint = getNextChild(synCtx);
}
+ // evaluate the endpoint properties
+ evaluateProperties(synCtx);
+
if (endpoint != null) {
// if this is not a retry
if (synCtx.getProperty(SynapseConstants.LAST_ENDPOINT) == null) {
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java?rev=1055765&r1=1055764&r2=1055765&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints/SALoadbalanceEndpoint.java
Thu Jan 6 07:04:10 2011
@@ -27,9 +27,12 @@ import org.apache.synapse.core.axis2.Axi
import org.apache.synapse.endpoints.dispatch.Dispatcher;
import org.apache.synapse.endpoints.dispatch.SALSessions;
import org.apache.synapse.endpoints.dispatch.SessionInformation;
+import org.apache.synapse.mediators.MediatorProperty;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
/**
* SALoadbalanceEndpoint supports session affinity based load balancing. Each
of this endpoint
@@ -99,6 +102,9 @@ public class SALoadbalanceEndpoint exten
List<Endpoint> endpoints = (List<Endpoint>) synCtx.getProperty(
SynapseConstants.PROP_SAL_ENDPOINT_CURRENT_ENDPOINT_LIST);
+ // evaluate the properties
+ evaluateProperties(synCtx);
+
if (sessionInformation == null && endpoints == null) {
sessionInformation = dispatcher.getSession(synCtx);