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

Reply via email to