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/02/09 09:31:15 UTC
svn commit: r1068789 - in
/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse: ./
config/xml/ mediators/ mediators/base/ mediators/builtin/
mediators/transform/
Author: supun
Date: Wed Feb 9 08:31:14 2011
New Revision: 1068789
URL: http://svn.apache.org/viewvc?rev=1068789&view=rev
Log:
making the Value generic for using with all the places where static and dynamic values are required
Modified:
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigConstants.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorFactory.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorSerializer.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/ValidateMediator.java
synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/SynapseConstants.java Wed Feb 9 08:31:14 2011
@@ -103,6 +103,7 @@ public final class SynapseConstants {
public static final String SANDESHA_POLICY = "sandeshaPolicy";
/** ServerManager MBean category and id */
public static final String SERVER_MANAGER_MBEAN = "ServerManager";
+ public static final String RECEIVING_SEQUENCE = "RECEIVING_SEQUENCE";
/** Parameter names in the axis2.xml that can be used to configure the synapse */
public static final class Axis2Param {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorFactory.java Wed Feb 9 08:31:14 2011
@@ -19,10 +19,12 @@
package org.apache.synapse.config.xml;
+import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.synapse.Mediator;
import org.apache.synapse.config.xml.endpoints.EndpointFactory;
import org.apache.synapse.endpoints.Endpoint;
+import org.apache.synapse.mediators.Value;
import org.apache.synapse.mediators.builtin.SendMediator;
import javax.xml.namespace.QName;
@@ -76,6 +78,7 @@ public class SendMediatorFactory extends
private static final QName SEND_Q = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "send");
private static final QName ENDPOINT_Q = new QName(XMLConfigConstants.SYNAPSE_NAMESPACE, "endpoint");
+ private static final QName RECEIVING_SEQUENCE = new QName(XMLConfigConstants.RECEIVE);
public Mediator createSpecificMediator(OMElement elem, Properties properties) {
@@ -94,6 +97,14 @@ public class SendMediatorFactory extends
}
}
+ String receivingSequence = elem.getAttributeValue(RECEIVING_SEQUENCE);
+ if (receivingSequence != null) {
+ ValueFactory valueFactory = new ValueFactory();
+ Value value = valueFactory.createValue(XMLConfigConstants.RECEIVE, elem);
+
+ sm.setReceivingSequence(value);
+ }
+
return sm;
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SendMediatorSerializer.java Wed Feb 9 08:31:14 2011
@@ -22,6 +22,7 @@ package org.apache.synapse.config.xml;
import org.apache.axiom.om.OMElement;
import org.apache.synapse.Mediator;
import org.apache.synapse.config.xml.endpoints.EndpointSerializer;
+import org.apache.synapse.mediators.Value;
import org.apache.synapse.mediators.builtin.SendMediator;
import org.apache.synapse.endpoints.Endpoint;
@@ -47,6 +48,12 @@ public class SendMediatorSerializer exte
send.addChild(EndpointSerializer.getElementFromEndpoint(activeEndpoint));
}
+ Value receive = mediator.getReceivingSequence();
+ if (receive != null) {
+ ValueSerializer serializer = new ValueSerializer();
+ serializer.serializeValue(receive, XMLConfigConstants.RECEIVE, send);
+ }
+
return send;
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorFactory.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorFactory.java Wed Feb 9 08:31:14 2011
@@ -90,7 +90,7 @@ public class SequenceMediatorFactory ext
// ValueFactory for creating dynamic or static Value
ValueFactory keyFac = new ValueFactory();
// create dynamic or static key based on OMElement
- Value generatedKey = keyFac.createValue(elem);
+ Value generatedKey = keyFac.createValue(XMLConfigConstants.KEY, elem);
// setKey
seqMediator.setKey(generatedKey);
if (e != null) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/SequenceMediatorSerializer.java Wed Feb 9 08:31:14 2011
@@ -72,7 +72,7 @@ public class SequenceMediatorSerializer
if (mediator.getKey() != null) {
// Serialize Value using ValueSerializer
ValueSerializer keySerializer = new ValueSerializer();
- keySerializer.serializeValue(mediator.getKey(), sequence);
+ keySerializer.serializeValue(mediator.getKey(), XMLConfigConstants.KEY, sequence);
} else if (mediator.getName() != null) {
sequence.addAttribute(fac.createOMAttribute(
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorFactory.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorFactory.java Wed Feb 9 08:31:14 2011
@@ -68,7 +68,7 @@ public class ValidateMediatorFactory ext
// ValueFactory for creating dynamic or static Value
ValueFactory keyFac = new ValueFactory();
// create dynamic or static key based on OMElement
- Value generatedKey = keyFac.createValue(omElem);
+ Value generatedKey = keyFac.createValue(XMLConfigConstants.KEY, omElem);
schemaKeys.add(generatedKey);
} else {
handleException("A 'schema' definition must contain a local property 'key'");
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorSerializer.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValidateMediatorSerializer.java Wed Feb 9 08:31:14 2011
@@ -52,7 +52,7 @@ public class ValidateMediatorSerializer
OMElement schema = fac.createOMElement("schema", synNS, validate);
// Serialize Value using ValueSerializer
ValueSerializer keySerializer = new ValueSerializer();
- keySerializer.serializeValue(key, schema);
+ keySerializer.serializeValue(key, XMLConfigConstants.KEY, schema);
}
ResourceMapSerializer.serializeResourceMap(validate, mediator.getResourceMap());
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueFactory.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueFactory.java Wed Feb 9 08:31:14 2011
@@ -45,11 +45,11 @@ public class ValueFactory {
* @param elem OMElement
* @return Key
*/
- public Value createValue(OMElement elem) {
+ public Value createValue(String name, OMElement elem) {
Value key = null;
- OMAttribute attKey = elem.getAttribute(ATT_KEY);
+ OMAttribute attKey = elem.getAttribute(new QName(name));
if (attKey != null) {
String attributeValue = attKey.getAttributeValue();
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueSerializer.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/ValueSerializer.java Wed Feb 9 08:31:14 2011
@@ -40,15 +40,15 @@ public class ValueSerializer {
* @param elem OMElement
* @return OMElement
*/
- public OMElement serializeValue(Value key, OMElement elem) {
+ public OMElement serializeValue(Value key, String name, OMElement elem) {
if (key != null) {
if (key.getExpression() == null) {
//static key
- elem.addAttribute(fac.createOMAttribute("key", nullNS, key.getKeyValue()));
+ elem.addAttribute(fac.createOMAttribute(name, nullNS, key.getKeyValue()));
} else {
//dynamic key
SynapseXPathSerializer.serializeXPath(key.getExpression(), "{" +
- key.getExpression().toString() + "}", elem, "key");
+ key.getExpression().toString() + "}", elem, name);
}
}
return elem;
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigConstants.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigConstants.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigConstants.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XMLConfigConstants.java Wed Feb 9 08:31:14 2011
@@ -45,6 +45,8 @@ public class XMLConfigConstants {
public static final String SCOPE_TRANSPORT = "transport";
/** The scope name for registry properties */
public static final String SCOPE_REGISTRY = "registry";
+ public static final String KEY = "key";
+ public static final String RECEIVE = "receive";
/** The set of supported data types */
public static enum DATA_TYPES {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorFactory.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorFactory.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorFactory.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorFactory.java Wed Feb 9 08:31:14 2011
@@ -66,12 +66,13 @@ public class XSLTMediatorFactory extends
// ValueFactory for creating dynamic or static Value
ValueFactory keyFac = new ValueFactory();
// create dynamic or static key based on OMElement
- Value generatedKey = keyFac.createValue(elem);
+ Value generatedKey = keyFac.createValue(XMLConfigConstants.KEY, elem);
// set generated key as the Value
transformMediator.setXsltKey(generatedKey);
} else {
- handleException("The 'key' attribute is required for the XSLT mediator");
+ handleException("The '" + XMLConfigConstants.KEY + "' " +
+ "attribute is required for the XSLT mediator");
}
if (attSource != null) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorSerializer.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorSerializer.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorSerializer.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/config/xml/XSLTMediatorSerializer.java Wed Feb 9 08:31:14 2011
@@ -49,7 +49,7 @@ public class XSLTMediatorSerializer exte
if (mediator.getXsltKey() != null) {
// Serialize Value using ValueSerializer
ValueSerializer keySerializer = new ValueSerializer();
- keySerializer.serializeValue(mediator.getXsltKey(), xslt);
+ keySerializer.serializeValue(mediator.getXsltKey(), XMLConfigConstants.KEY, xslt);
} else {
handleException("Invalid XSLT mediator. XSLT registry key is required");
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/Value.java Wed Feb 9 08:31:14 2011
@@ -91,7 +91,7 @@ public class Value {
* @param synCtx message context
* @return string value of evaluated key
*/
- public String evaluateKey(MessageContext synCtx) {
+ public String evaluateValue(MessageContext synCtx) {
if (keyValue != null) {
//if static kry: return static key
return keyValue;
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/base/SequenceMediator.java Wed Feb 9 08:31:14 2011
@@ -156,7 +156,7 @@ public class SequenceMediator extends Ab
}
} else {
- String sequenceKey = key.evaluateKey(synCtx);
+ String sequenceKey = key.evaluateValue(synCtx);
//Mediator m = synCtx.getSequence(key);
Mediator m = synCtx.getSequence(sequenceKey);
if (m == null) {
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/SendMediator.java Wed Feb 9 08:31:14 2011
@@ -20,11 +20,13 @@
package org.apache.synapse.mediators.builtin;
import org.apache.synapse.MessageContext;
+import org.apache.synapse.SynapseConstants;
import org.apache.synapse.SynapseLog;
import org.apache.synapse.ManagedLifecycle;
import org.apache.synapse.core.SynapseEnvironment;
import org.apache.synapse.endpoints.Endpoint;
import org.apache.synapse.mediators.AbstractMediator;
+import org.apache.synapse.mediators.Value;
/**
* SendMediator sends a message using specified semantics. If it contains an endpoint it will
@@ -36,6 +38,8 @@ public class SendMediator extends Abstra
private Endpoint endpoint = null;
+ private Value receivingSequence = null;
+
/**
* This will call the send method on the messages with implicit message parameters
* or else if there is an endpoint, with that endpoint parameters
@@ -52,6 +56,14 @@ public class SendMediator extends Abstra
synLog.traceTrace("Message : " + synCtx.getEnvelope());
}
+ if (receivingSequence != null) {
+ if (synLog.isTraceOrDebugEnabled()) {
+ synLog.traceOrDebug("Receiving sequence is set to: " + receivingSequence);
+ }
+ synCtx.setProperty(SynapseConstants.RECEIVING_SEQUENCE,
+ receivingSequence.evaluateValue(synCtx));
+ }
+
// if no endpoints are defined, send where implicitly stated
if (endpoint == null) {
@@ -88,6 +100,14 @@ public class SendMediator extends Abstra
this.endpoint = endpoint;
}
+ public Value getReceivingSequence() {
+ return receivingSequence;
+ }
+
+ public void setReceivingSequence(Value receivingSequence) {
+ this.receivingSequence = receivingSequence;
+ }
+
public void init(SynapseEnvironment synapseEnvironment) {
if (endpoint != null) {
endpoint.init(synapseEnvironment);
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/ValidateMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/ValidateMediator.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/ValidateMediator.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/ValidateMediator.java Wed Feb 9 08:31:14 2011
@@ -116,7 +116,7 @@ public class ValidateMediator extends Ab
// if any of the schemas are not loaded, or have expired, load or re-load them
for (Value schemaKey : schemaKeys) {
// Derive actual key from message context
- String propKey = schemaKey.evaluateKey(synCtx);
+ String propKey = schemaKey.evaluateValue(synCtx);
Entry dp = synCtx.getConfiguration().getEntryDefinition(propKey);
if (dp != null && dp.isDynamic()) {
if (!dp.isCached() || dp.isExpired()) {
@@ -137,7 +137,7 @@ public class ValidateMediator extends Ab
int i = 0;
for (Value schemaKey : schemaKeys) {
// Derive actual key from message context
- String propName = schemaKey.evaluateKey(synCtx);
+ String propName = schemaKey.evaluateValue(synCtx);
sources[i++] = SynapseConfigUtils.getStreamSource(synCtx.getEntry(propName));
}
Modified: synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java
URL: http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java?rev=1068789&r1=1068788&r2=1068789&view=diff
==============================================================================
--- synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java (original)
+++ synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/transform/XSLTMediator.java Wed Feb 9 08:31:14 2011
@@ -213,7 +213,7 @@ public class XSLTMediator extends Abstra
boolean isSoapBody = (sourceNode == synCtx.getEnvelope().getBody());
// Derive actual key from message context
- String generatedXsltKey = xsltKey.evaluateKey(synCtx);
+ String generatedXsltKey = xsltKey.evaluateValue(synCtx);
// get templates from generatedXsltKey
Templates cachedTemplates = null;
@@ -385,7 +385,7 @@ public class XSLTMediator extends Abstra
private boolean isCreationOrRecreationRequired(MessageContext synCtx) {
// Derive actual key from message context
- String generatedXsltKey = xsltKey.evaluateKey(synCtx);
+ String generatedXsltKey = xsltKey.evaluateValue(synCtx);
// if there are no cachedTemplates inside cachedTemplatesMap or
// if the template related to this generated key is not cached