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