Author: hiranya
Date: Fri Jul 19 21:12:52 2013
New Revision: 1505022
URL: http://svn.apache.org/r1505022
Log:
Applying the patch for SYNAPSE-892 with a test case. Script mediator doesn't
parse and serialize includes properly.
Modified:
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/ScriptMediatorSerializationTest.java
Modified:
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java?rev=1505022&r1=1505021&r2=1505022&view=diff
==============================================================================
---
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
(original)
+++
synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
Fri Jul 19 21:12:52 2013
@@ -29,10 +29,7 @@ import org.apache.synapse.mediators.Valu
import org.apache.synapse.config.xml.ValueFactory;
import javax.xml.namespace.QName;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Properties;
-import java.util.TreeMap;
+import java.util.*;
/**
* Creates an instance of a Script mediator for inline or external script
mediation for BSF
@@ -112,7 +109,7 @@ public class ScriptMediatorFactory exten
// from void ScriptMediator.prepareExternalScript(MessageContext
synCtx)
// TreeMap used to keep given scripts order if needed
- Map<Value, Object> includeKeysMap = new TreeMap<Value, Object>();
+ Map<Value, Object> includeKeysMap = new LinkedHashMap<Value, Object>();
Iterator itr = elem.getChildrenWithName(INCLUDE_Q);
while (itr.hasNext()) {
OMElement includeElem = (OMElement) itr.next();
@@ -121,7 +118,7 @@ public class ScriptMediatorFactory exten
// ValueFactory for creating dynamic or static Value
ValueFactory keyFac = new ValueFactory();
// create dynamic or static key based on OMElement
- Value generatedKey = keyFac.createValue(XMLConfigConstants.KEY,
elem);
+ Value generatedKey = keyFac.createValue(XMLConfigConstants.KEY,
includeElem);
if (key == null) {
throw new SynapseException("Cannot use 'include' element
without 'key'" +
Modified:
synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/ScriptMediatorSerializationTest.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/ScriptMediatorSerializationTest.java?rev=1505022&r1=1505021&r2=1505022&view=diff
==============================================================================
---
synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/ScriptMediatorSerializationTest.java
(original)
+++
synapse/trunk/java/modules/extensions/src/test/java/org/apache/synapse/mediators/bsf/ScriptMediatorSerializationTest.java
Fri Jul 19 21:12:52 2013
@@ -42,6 +42,12 @@ public class ScriptMediatorSerialization
assertTrue(serialization(inputXml, scriptMediatorSerializer));
}
+ public void testScriptMediatorSerializationScenarioThree() {
+ String inputXml = "<script xmlns=\"http://ws.apache.org/ns/synapse\"
language=\"js\" key=\"jsMaster\" function=\"functionFoo\"><include
key=\"jschild1\"/><include key=\"jschild2\"/></script>";
+ assertTrue(serialization(inputXml, mediatorFactory,
scriptMediatorSerializer));
+ assertTrue(serialization(inputXml, scriptMediatorSerializer));
+ }
+
public void testInlineScriptMediatorSerializationScenarioOne() {
String inputXml = "<syn:script
xmlns:syn=\"http://ws.apache.org/ns/synapse\" language='js'>" +
"<![CDATA[var symbol =
mc.getPayloadXML()..*::Code.toString();mc.setPayloadXML(<m:getQuote
xmlns:m=\"http://services.samples/xsd\">\n" +