OK, thanks. Ruwan
On Fri, Jan 7, 2011 at 10:21 AM, Supun Kamburugamuva <supu...@gmail.com>wrote: > Yeah, it was a mistake to make it protected. I'll make it private. > Thanks for pointing out. > > We already had the concept of endpoint properties. But these > properties were accessed only within the LoadBalancing algorithms. But > some properties like HTTP_METHOD, or FORCE_HTTP_1_0 are more suitable > in the endpoint level than at the mediator level. That is why I put > the evaluate method. > > Thanks, > Supun.. > > On Fri, Jan 7, 2011 at 7:01 AM, Ruwan Linton <ruwan.lin...@gmail.com> > wrote: > > Supun, > > > > On Thu, Jan 6, 2011 at 12:34 PM, <su...@apache.org> wrote: > >> > >> 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>(); > >> > > > > Any reason for making it protected from private??? > > Also what is the rational behind this evaluate properties thing? I guess > it > > is better if there is a discussion for this sort of a change :-) > > Ruwan > > > >> > >> 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); > >> > >> > > > > > > > > -- > > Ruwan Linton > > Software Architect & Product Manager > > WSO2 Inc.; http://wso2.org > > > > Lean . Enterprise . Middleware > > > > phone: +1 408 754 7388 ext 51789 > > email: ru...@wso2.com; cell: +94 77 341 3097 > > blog: http://blog.ruwan.org > > linkedin: http://www.linkedin.com/in/ruwanlinton > > google: http://www.google.com/profiles/ruwan.linton > > tweet: http://twitter.com/ruwanlinton > > > > > > -- > Technical Lead, WSO2 Inc > http://wso2.org > supunk.blogspot.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@synapse.apache.org > For additional commands, e-mail: dev-h...@synapse.apache.org > > -- Ruwan Linton Software Architect & Product Manager WSO2 Inc.; http://wso2.org Lean . Enterprise . Middleware phone: +1 408 754 7388 ext 51789 email: ru...@wso2.com; cell: +94 77 341 3097 blog: http://blog.ruwan.org linkedin: http://www.linkedin.com/in/ruwanlinton google: http://www.google.com/profiles/ruwan.linton tweet: http://twitter.com/ruwanlinton