synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Supun Kamburugamuva <supu...@gmail.com>
Subject 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
Date Fri, 07 Jan 2011 04:51:32 GMT
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.linton@gmail.com> wrote:
> Supun,
>
> On Thu, Jan 6, 2011 at 12:34 PM, <supun@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


Mime
View raw message