Author: antelder
Date: Sat Oct 21 06:58:47 2006
New Revision: 466400
URL: http://svn.apache.org/viewvc?view=rev&rev=466400
Log:
Allow specifying the script function to use in the synapse config xml and add a
sample using that
Added:
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/synapse_sample_script2.xml
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/xmethodsStockquote.js
Modified:
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediator.java
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
Added:
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/synapse_sample_script2.xml
URL:
http://svn.apache.org/viewvc/incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/synapse_sample_script2.xml?view=auto&rev=466400
==============================================================================
---
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/synapse_sample_script2.xml
(added)
+++
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/synapse_sample_script2.xml
Sat Oct 21 06:58:47 2006
@@ -0,0 +1,24 @@
+<synapse xmlns="http://ws.apache.org/ns/synapse">
+
+ <definitions>
+
+ <set-property name="xmethodsStockquote"
src="file:synapse_repository/conf/sample/xmethodsStockquote.js"/>
+
+ </definitions>
+
+ <rules>
+
+ <in>
+ <script key="xmethodsStockquote" function="mediateIn"/>
+ <header name="To" value="http://64.124.140.30:9090/soap"/>
+ </in>
+
+ <out>
+ <script key="xmethodsStockquote" function="mediateOut"/>
+ </out>
+
+ <send/>
+
+ </rules>
+
+</synapse>
\ No newline at end of file
Added:
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/xmethodsStockquote.js
URL:
http://svn.apache.org/viewvc/incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/xmethodsStockquote.js?view=auto&rev=466400
==============================================================================
---
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/xmethodsStockquote.js
(added)
+++
incubator/synapse/trunk/scratch/ant/BSF/repository/conf/sample/xmethodsStockquote.js
Sat Oct 21 06:58:47 2006
@@ -0,0 +1,28 @@
+<x><![CDATA[
+
+ function mediateIn(msg) {
+
+ var payload = new XML(msg.getPayloadXML());
+ var newPayload = <ns1:getQuote xmlns:ns1="urn:xmethods-delayed-quotes"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
+ <symbol xsi:type="xsd:string"> {
payload..*::symbol.toString() } </symbol>
+ </ns1:getQuote>;
+ msg.setPayloadXML(newPayload);
+ }
+
+
+ function mediateOut(msg) {
+
+ var payload = new XML(msg.getPayloadXML());
+
+ var newPayload = <ns:getQuoteResponse
xmlns:ns="http://services.samples/xsd">
+ <ns:return>
+ <ns:last> { payload..Result.toString() } </ns:last>
+ </ns:return>
+ </ns:getQuoteResponse>;
+
+ msg.setPayloadXML(newPayload);
+ }
+
+]]></x>
+
+
Modified:
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediator.java
URL:
http://svn.apache.org/viewvc/incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediator.java?view=diff&rev=466400&r1=466399&r2=466400
==============================================================================
---
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediator.java
(original)
+++
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediator.java
Sat Oct 21 06:58:47 2006
@@ -31,11 +31,14 @@
public class ScriptMediator extends AbstractMediator {
private String scriptKey;
+
+ private String functionName;
private BSFEngine bsfEngine;
- public ScriptMediator(String scriptKey) {
+ public ScriptMediator(String scriptKey, String functionName) {
this.scriptKey = scriptKey;
+ this.functionName = functionName;
}
public boolean mediate(MessageContext synCtx) {
@@ -44,7 +47,7 @@
Object[] args = new Object[] { new ScriptMessageContext(synCtx) };
SynapseConfiguration synapseConfig = synCtx.getConfiguration();
- Object response = getBSFEngine(synapseConfig).call(null,
"mediate", args);
+ Object response = getBSFEngine(synapseConfig).call(null,
functionName, args);
if (response instanceof Boolean) {
return ((Boolean) response).booleanValue();
}
Modified:
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
URL:
http://svn.apache.org/viewvc/incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java?view=diff&rev=466400&r1=466399&r2=466400
==============================================================================
---
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
(original)
+++
incubator/synapse/trunk/scratch/ant/BSF/src/org/apache/synapse/mediators/bsf/ScriptMediatorFactory.java
Sat Oct 21 06:58:47 2006
@@ -28,7 +28,7 @@
* Creates an instance of a Script mediator. <p/>
*
* <pre>
- * <script key="property-key" <script/>
+ * <script key="property-key"
function="script-function-name" <script/>
* </pre>
*
*/
@@ -42,7 +42,11 @@
if (scriptKey == null) {
throw new SynapseException("must specify 'key' for script source");
}
- ScriptMediator sm = new ScriptMediator(scriptKey.getAttributeValue());
+
+ OMAttribute function = elem.getAttribute(new
QName(Constants.NULL_NAMESPACE, "function"));
+ String functionName = (function == null) ? "mediate" :
function.getAttributeValue();
+
+ ScriptMediator sm = new ScriptMediator(scriptKey.getAttributeValue(),
functionName);
return sm;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]