Author: veithen
Date: Sat Sep 20 16:18:36 2008
New Revision: 697433
URL: http://svn.apache.org/viewvc?rev=697433&view=rev
Log:
SYNAPSE-451: Propagate lifecycle events to child mediators.
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SwitchCase.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SwitchCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SwitchCase.java?rev=697433&r1=697432&r2=697433&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SwitchCase.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SwitchCase.java
Sat Sep 20 16:18:36 2008
@@ -21,6 +21,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.core.SynapseEnvironment;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -46,6 +47,14 @@
*/
private AnonymousListMediator caseMediator;
+ public void init(SynapseEnvironment se) {
+ caseMediator.init(se);
+ }
+
+ public void destroy() {
+ caseMediator.destroy();
+ }
+
/**
* To delegate message mediation to list mediator
*
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java?rev=697433&r1=697432&r2=697433&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
Sat Sep 20 16:18:36 2008
@@ -24,8 +24,10 @@
import org.apache.axis2.clustering.context.Replicator;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.saaj.util.SAAJUtil;
+import org.apache.synapse.ManagedLifecycle;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseException;
+import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.core.axis2.Axis2MessageContext;
import org.apache.synapse.core.axis2.Axis2Sender;
import org.apache.synapse.mediators.AbstractMediator;
@@ -55,7 +57,7 @@
*
* @see org.apache.synapse.Mediator
*/
-public class CacheMediator extends AbstractMediator {
+public class CacheMediator extends AbstractMediator implements
ManagedLifecycle {
private String id = null;
private String scope = CachingConstants.SCOPE_PER_HOST;// global
@@ -72,6 +74,18 @@
private String cacheManagerKey = CachingConstants.CACHE_MANAGER; //
default per-host
private static final String CACHE_MANAGER_PREFIX =
"synapse.cache_manager_";
+ public void init(SynapseEnvironment se) {
+ if (onCacheHitSequence != null) {
+ onCacheHitSequence.init(se);
+ }
+ }
+
+ public void destroy() {
+ if (onCacheHitSequence != null) {
+ onCacheHitSequence.destroy();
+ }
+ }
+
public boolean mediate(MessageContext synCtx) {
// tracing and debuggin related mediation initiation
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java?rev=697433&r1=697432&r2=697433&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
Sat Sep 20 16:18:36 2008
@@ -23,8 +23,10 @@
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.ManagedLifecycle;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseConstants;
+import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.mediators.AbstractMediator;
import org.apache.synapse.mediators.base.SequenceMediator;
import org.apache.synapse.mediators.eip.EIPConstants;
@@ -46,7 +48,7 @@
* so that aggregations that never would complete could be timed out and
cleared from memory and
* any fault conditions handled
*/
-public class AggregateMediator extends AbstractMediator {
+public class AggregateMediator extends AbstractMediator implements
ManagedLifecycle {
private static final Log log = LogFactory.getLog(AggregateMediator.class);
private static final Log trace =
LogFactory.getLog(SynapseConstants.TRACE_LOGGER);
@@ -97,6 +99,18 @@
}
}
+ public void init(SynapseEnvironment se) {
+ if (onCompleteSequence != null) {
+ onCompleteSequence.init(se);
+ }
+ }
+
+ public void destroy() {
+ if (onCompleteSequence != null) {
+ onCompleteSequence.destroy();
+ }
+ }
+
/**
* Aggregate messages flowing through this mediator according to the
correlation criteria
* and the aggregation algorithm specified to it
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java?rev=697433&r1=697432&r2=697433&view=diff
==============================================================================
---
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
(original)
+++
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
Sat Sep 20 16:18:36 2008
@@ -19,8 +19,10 @@
package org.apache.synapse.mediators.filters;
+import org.apache.synapse.ManagedLifecycle;
import org.apache.synapse.MessageContext;
import org.apache.synapse.config.xml.SwitchCase;
+import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.mediators.AbstractMediator;
import org.apache.synapse.util.xpath.SynapseXPath;
@@ -33,7 +35,7 @@
* the given list of cases. This is actually a list of sequences, and
depending on the
* selected case, the selected sequence gets executed.
*/
-public class SwitchMediator extends AbstractMediator {
+public class SwitchMediator extends AbstractMediator implements
ManagedLifecycle {
/** The XPath expression specifying the source element to apply the switch
case expressions against */
private SynapseXPath source = null;
@@ -42,6 +44,24 @@
/** The default switch case, if any */
private SwitchCase defaultCase = null;
+ public void init(SynapseEnvironment se) {
+ for (SwitchCase swCase : cases) {
+ swCase.init(se);
+ }
+ if (defaultCase != null) {
+ defaultCase.init(se);
+ }
+ }
+
+ public void destroy() {
+ for (SwitchCase swCase : cases) {
+ swCase.destroy();
+ }
+ if (defaultCase != null) {
+ defaultCase.destroy();
+ }
+ }
+
/**
* Iterate over switch cases and find match and execute selected sequence
*
Modified:
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java?rev=697433&r1=697432&r2=697433&view=diff
==============================================================================
---
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
(original)
+++
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
Sat Sep 20 16:18:36 2008
@@ -20,10 +20,12 @@
import org.apache.axiom.om.OMElement;
import org.apache.neethi.PolicyEngine;
+import org.apache.synapse.ManagedLifecycle;
import org.apache.synapse.Mediator;
import org.apache.synapse.MessageContext;
import org.apache.synapse.transport.nhttp.NhttpConstants;
import org.apache.synapse.config.Entry;
+import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.core.axis2.Axis2MessageContext;
import org.apache.synapse.mediators.AbstractMediator;
import org.apache.axis2.context.ConfigurationContext;
@@ -39,7 +41,7 @@
* Only support IP based throttling- Throotling can manage per IP using the
throttle policy
*/
-public class ThrottleMediator extends AbstractMediator {
+public class ThrottleMediator extends AbstractMediator implements
ManagedLifecycle {
/* The key for getting the throttling policy - key refers to a/an
[registry] entry */
private String policyKey = null;
@@ -73,6 +75,24 @@
this.accessControler = new AccessRateController();
}
+ public void init(SynapseEnvironment se) {
+ if (onAcceptMediator instanceof ManagedLifecycle) {
+ ((ManagedLifecycle)onAcceptMediator).init(se);
+ }
+ if (onRejectMediator instanceof ManagedLifecycle) {
+ ((ManagedLifecycle)onRejectMediator).init(se);
+ }
+ }
+
+ public void destroy() {
+ if (onAcceptMediator instanceof ManagedLifecycle) {
+ ((ManagedLifecycle)onAcceptMediator).destroy();
+ }
+ if (onRejectMediator instanceof ManagedLifecycle) {
+ ((ManagedLifecycle)onRejectMediator).destroy();
+ }
+ }
+
public boolean mediate(MessageContext synCtx) {
boolean traceOn = isTraceOn(synCtx);