You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@synapse.apache.org by su...@apache.org on 2011/01/06 08:04:10 UTC

svn commit: r1055765 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints: AbstractEndpoint.java FailoverEndpoint.java LoadbalanceEndpoint.java SALoadbalanceEndpoint.java

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



Re: svn commit: r1055765 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints: AbstractEndpoint.java FailoverEndpoint.java LoadbalanceEndpoint.java SALoadbalanceEndpoint.java

Posted by Ruwan Linton <ru...@gmail.com>.
OK, thanks.

Ruwan

On Fri, Jan 7, 2011 at 10:21 AM, Supun Kamburugamuva <su...@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 <ru...@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: ruwan@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-unsubscribe@synapse.apache.org
> For additional commands, e-mail: dev-help@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: ruwan@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

Re: svn commit: r1055765 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints: AbstractEndpoint.java FailoverEndpoint.java LoadbalanceEndpoint.java SALoadbalanceEndpoint.java

Posted by Supun Kamburugamuva <su...@gmail.com>.
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 <ru...@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: ruwan@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-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


Re: svn commit: r1055765 - in /synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/endpoints: AbstractEndpoint.java FailoverEndpoint.java LoadbalanceEndpoint.java SALoadbalanceEndpoint.java

Posted by Ruwan Linton <ru...@gmail.com>.
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: ruwan@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