Author: mriou
Date: Wed Mar 5 12:41:22 2008
New Revision: 634020
URL: http://svn.apache.org/viewvc?rev=634020&view=rev
Log:
Hurra, hello world works! On the minus side the runtime Javascript expression
evaluation is very primitive, only a handful of activities are supported and
there are TODOs all over the place. But it's a nice first step.
Added:
ode/sandbox/simpel/lib/antlr-20080215.jar (with props)
ode/sandbox/simpel/lib/rhino-1.7R1.jar (with props)
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/expr/
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/expr/SimPELExprRuntime.java
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpr.java
- copied, changed from r628212,
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpression.java
Removed:
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpression.java
Modified:
ode/sandbox/simpel/Rakefile
ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g
ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g
ode/sandbox/simpel/src/main/java/org/apache/ode/embed/BindingContextImpl.java
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/SimPELCompiler.java
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/OBuilder.java
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/wsdl/SimPELOutput.java
ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java
Modified: ode/sandbox/simpel/Rakefile
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/Rakefile?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
--- ode/sandbox/simpel/Rakefile (original)
+++ ode/sandbox/simpel/Rakefile Wed Mar 5 12:41:22 2008
@@ -64,9 +64,29 @@
meta_inf << file("NOTICE")
pkg_name = "org.apache.ode.simpel.antlr"
- compile.from antlr(_("src/main/antlr"), {:in_package=>pkg_name,
:token=>pkg_name})
+ antlr_task = antlr(_("src/main/antlr"), {:in_package=>pkg_name,
:token=>pkg_name})
+
+ # Because of a pending ANTLR bug, we need to insert some additional
+ # code in generated classes.
+ task('tweak_antlr' => antlr_task) do
+ walker =
_("target/generated/antlr/org/apache/ode/simpel/antlr/SimPELWalker.java")
+ walker_txt = File.read(walker)
+
+ patch_walker = lambda do |regx, offset, txt|
+ insrt_idx = walker_txt.index(regx)
+ walker_txt.insert(insrt_idx + offset, txt)
+ end
+ patch_walker[/SimPELWalker.g(.*)ns_id$/, 51, "ids =
(LinkedListTree)input.LT(1);"]
+ patch_walker[/SimPELWalker.g(.*) \( path_expr \)$/, 37, "lv =
(LinkedListTree)input.LT(1);"]
+ patch_walker[/SimPELWalker.g(.*) \( rvalue \)$/, 34, "rv =
(LinkedListTree)input.LT(1);"]
+
+ File.open(walker, 'w') { |f| f << walker_txt }
+ end
+
+ compile.from antlr_task
+ compile.enhance([task('tweak_antlr')])
compile.with HSQLDB, JAVAX.resource, JAVAX.transaction, COMMONS.lang,
COMMONS.logging, ODE, LOG4J,
WSDL4J, GERONIMO.transaction, XERCES,
- file(_("lib/e4x-grammar-0.1.jar")), file(_("lib/antlr-20071220.jar"))
+ file(_("lib/e4x-grammar-0.1.jar")), file(_("lib/antlr-20080215.jar")),
file(_("lib/rhino-1.7R1.jar"))
package :jar
end
Added: ode/sandbox/simpel/lib/antlr-20080215.jar
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/lib/antlr-20080215.jar?rev=634020&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ode/sandbox/simpel/lib/antlr-20080215.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ode/sandbox/simpel/lib/rhino-1.7R1.jar
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/lib/rhino-1.7R1.jar?rev=634020&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ode/sandbox/simpel/lib/rhino-1.7R1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
--- ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g
(original)
+++ ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPEL.g Wed
Mar 5 12:41:22 2008
@@ -147,7 +147,7 @@
reply : 'reply' '(' ID (',' ID ',' ID)? ')' -> ^(REPLY ID (ID ID)?);
-assign : path_expr '=' rvalue -> ^(ASSIGN ID rvalue);
+assign : path_expr '=' rvalue -> ^(ASSIGN path_expr rvalue);
rvalue
: receive_base -> ^(RECEIVE receive_base)
| invoke | expr | xml_literal;
Modified:
ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
---
ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g
(original)
+++
ode/sandbox/simpel/src/main/antlr/org/apache/ode/simpel/antlr/SimPELWalker.g
Wed Mar 5 12:41:22 2008
@@ -10,12 +10,15 @@
scope BPELScope { OScope oscope; }
scope Parent { OBuilder.StructuredActivity activity; }
scope ReceiveBlock { OPickReceive receive; }
+scope ExprContext { SimPELExpr expr; }
@header {
package org.apache.ode.simpel.antlr;
import uk.co.badgersinfoil.e4x.antlr.LinkedListTree;
+import uk.co.badgersinfoil.e4x.antlr.LinkedListToken;
import org.apache.ode.simpel.ErrorListener;
import org.apache.ode.simpel.omodel.OBuilder;
+import org.apache.ode.simpel.omodel.SimPELExpr;
import org.apache.ode.bpel.o.*;
}
@@ -61,6 +64,16 @@
else return t.getText();
}
+ private String deepText(org.antlr.runtime.tree.Tree t) {
+ LinkedListTree llt = ((LinkedListTree)t);
+ StringBuffer b = new StringBuffer();
+ LinkedListToken tok = ((LinkedListTree)t).getStartToken();
+ b.append(tok.getText());
+ while(tok != llt.getStopToken() && (tok = tok.getNext()) != null)
+ if (tok.getText() != null) b.append(tok.getText());
+ return b.toString();
+ }
+
}
program : ^(ROOT declaration+);
@@ -165,9 +178,20 @@
(prb=(param_block))?;
-assign : ^(ASSIGN ID rv=(rvalue)) { builder.build(OAssign.class,
$BPELScope::oscope, $Parent::activity, text($ID), text($rv)); };
-rvalue
- : receive | invoke | expr | xmlElement;
+assign
+scope ExprContext;
+ : ^(ASSIGN
+ {
+ $ExprContext::expr = new SimPELExpr(builder.getProcess());
+ }
+ lv=(path_expr) rv=(rvalue))
+ {
+ $ExprContext::expr.setExpr(deepText($rv));
+ OBuilder.StructuredActivity<OAssign> assign =
builder.build(OAssign.class, $BPELScope::oscope, $Parent::activity,
deepText($lv), $ExprContext::expr);
+ // The long, winding road of abstraction
+ $ExprContext::expr = (SimPELExpr)
((OAssign.Expression)((OAssign.Copy)assign.getOActivity().operations.get(0)).from).expression;
+ };
+rvalue : receive | invoke | expr | xmlElement;
throw_ex: ^(THROW ns_id);
@@ -203,7 +227,7 @@
funct_call
: ^(CALL ID*);
path_expr
- : ^(PATH ns_id*);
+ : ^(PATH ids=(ns_id*)) {
builder.addExprVariable($BPELScope::oscope, $ExprContext::expr,
deepText($ids)); };
ns_id : ^(NS ID? ID);
s_expr : ^('==' s_expr s_expr)
Modified:
ode/sandbox/simpel/src/main/java/org/apache/ode/embed/BindingContextImpl.java
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/java/org/apache/ode/embed/BindingContextImpl.java?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
---
ode/sandbox/simpel/src/main/java/org/apache/ode/embed/BindingContextImpl.java
(original)
+++
ode/sandbox/simpel/src/main/java/org/apache/ode/embed/BindingContextImpl.java
Wed Mar 5 12:41:22 2008
@@ -2,6 +2,7 @@
import org.apache.ode.bpel.iapi.*;
import org.apache.ode.il.epr.WSDL11Endpoint;
+import org.apache.ode.il.epr.URLEndpoint;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.Namespaces;
import org.w3c.dom.Document;
@@ -36,6 +37,16 @@
}
public PartnerRoleChannel createPartnerRoleChannel(QName qName, PortType
portType, Endpoint endpoint) {
- throw new UnsupportedOperationException();
+ // TODO implement me
+ return new PartnerRoleChannelImpl();
+ }
+
+ private class PartnerRoleChannelImpl implements PartnerRoleChannel {
+ public EndpointReference getInitialEndpointReference() {
+ return new URLEndpoint();
+ }
+
+ public void close() {
+ }
}
}
Modified:
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/SimPELCompiler.java
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/SimPELCompiler.java?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
--- ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/SimPELCompiler.java
(original)
+++ ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/SimPELCompiler.java
Wed Mar 5 12:41:22 2008
@@ -57,6 +57,9 @@
}
// pull out the tree and cast it
Tree t = (Tree)result.getTree();
+ StringBuffer b = new StringBuffer();
+ toText((LinkedListTree) t, b);
+ System.out.println(b.toString());
if (t != null) {
// Handle functions separately
@@ -78,6 +81,12 @@
return walker.getBuilder().getProcess();
}
return null;
+ }
+
+ private void toText(Tree t, StringBuffer b) {
+ LinkedListToken tok = ((LinkedListTree)t).getStartToken();
+ while((tok = tok.getNext()) != null)
+ if (tok.getText() != null) b.append(tok.getText());
}
private void handleFunctions(Tree t) {
Added:
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/expr/SimPELExprRuntime.java
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/expr/SimPELExprRuntime.java?rev=634020&view=auto
==============================================================================
---
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/expr/SimPELExprRuntime.java
(added)
+++
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/expr/SimPELExprRuntime.java
Wed Mar 5 12:41:22 2008
@@ -0,0 +1,108 @@
+package org.apache.ode.simpel.expr;
+
+import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.explang.ConfigurationException;
+import org.apache.ode.bpel.explang.EvaluationContext;
+import org.apache.ode.bpel.explang.ExpressionLanguageRuntime;
+import org.apache.ode.bpel.o.OExpression;
+import org.apache.ode.bpel.o.OMessageVarType;
+import org.apache.ode.bpel.o.OScope;
+import org.apache.ode.simpel.omodel.SimPELExpr;
+import org.apache.ode.utils.DOMUtils;
+import org.apache.ode.utils.xsd.Duration;
+import org.mozilla.javascript.Context;
+import org.mozilla.javascript.ContextFactory;
+import org.mozilla.javascript.Delegator;
+import org.mozilla.javascript.Scriptable;
+import org.mozilla.javascript.xml.XMLLib;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.Element;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Matthieu Riou <[EMAIL PROTECTED]>
+ */
+public class SimPELExprRuntime implements ExpressionLanguageRuntime {
+ public void initialize(Map map) throws ConfigurationException {
+ }
+
+ public String evaluateAsString(OExpression oExpression, EvaluationContext
evaluationContext) throws FaultException {
+ return null;
+ }
+
+ public boolean evaluateAsBoolean(OExpression oExpression,
EvaluationContext evaluationContext) throws FaultException {
+ return false; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ public Number evaluateAsNumber(OExpression oExpression, EvaluationContext
evaluationContext) throws FaultException {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ public List evaluate(OExpression oexpr, EvaluationContext
evaluationContext) throws FaultException {
+ Context cx = ContextFactory.getGlobal().enterContext();
+ ODEDelegator scope = new ODEDelegator(cx.initStandardObjects(),
evaluationContext, (SimPELExpr)oexpr);
+
+ Object res = cx.evaluateString(scope, ((SimPELExpr)oexpr).getExpr(),
"<expr>", 0, null);
+ ArrayList<Node> resList = new ArrayList<Node>(1);
+
+ if (res instanceof String) {
+ Document doc = DOMUtils.newDocument();
+ Element wrapper =
doc.createElementNS("http://ode.apache.org/simpel/1.0/definition",
"simpelWrapper");
+ wrapper.setTextContent((String) res);
+ resList.add(wrapper);
+ }
+ if (res instanceof Node) resList.add((Node) res);
+ return resList;
+ }
+
+ public Calendar evaluateAsDate(OExpression oExpression, EvaluationContext
evaluationContext) throws FaultException {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ public Duration evaluateAsDuration(OExpression oExpression,
EvaluationContext evaluationContext) throws FaultException {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ public Node evaluateNode(OExpression oExpression, EvaluationContext
evaluationContext) throws FaultException {
+ return null; //To change body of implemented methods use File |
Settings | File Templates.
+ }
+
+ private class ODEDelegator extends Delegator {
+ private EvaluationContext _evaluationContext;
+ private XMLLib _xmlLib;
+ private SimPELExpr _expr;
+
+ private ODEDelegator(Scriptable obj, EvaluationContext
evaluationContext, SimPELExpr expr) {
+ super(obj);
+ _evaluationContext = evaluationContext;
+ _expr = expr;
+ }
+
+ public void setXmlLib(XMLLib _xmlLib) {
+ this._xmlLib = _xmlLib;
+ }
+
+ public Object get(String name, Scriptable start) {
+ try {
+ // TODO this assumes message type with a single part for all
variables, valid?
+ OScope.Variable v = _expr.getReferencedVariable(name);
+ Node node = _evaluationContext.readVariable(v,
+
((OMessageVarType)v.type).parts.values().iterator().next());
+ if (node.getTextContent() != null) return
node.getTextContent();
+ // TODO wrap xml nodes
+ return node;
+ } catch (Exception e) {
+ throw new RuntimeException("Variable " + name + " has never
been initialized.");
+ }
+ }
+
+ public boolean has(String name, Scriptable start) {
+ return get(name, start) != null;
+ }
+ }
+}
Modified:
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/OBuilder.java
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/OBuilder.java?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
--- ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/OBuilder.java
(original)
+++ ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/OBuilder.java
Wed Mar 5 12:41:22 2008
@@ -24,11 +24,17 @@
private static final Logger __log = Logger.getLogger(OBuilder.class);
private static final String SIMPEL_NS =
"http://ode.apache.org/simpel/1.0/definition";
+ private OExpressionLanguage _exprLang;
private HashMap<String,String> namespaces = new HashMap<String,String>();
private HashMap<String,OPartnerLink> partnerLinks = new
HashMap<String,OPartnerLink>();
private HashMap<String,OScope.Variable> variables = new
HashMap<String,OScope.Variable>();
private boolean firstReceive = true;
+ public OBuilder() {
+ HashMap<String, String> exprRuntime = new HashMap<String, String>();
+ exprRuntime.put("runtime-class",
"org.apache.ode.simpel.expr.SimPELExprRuntime");
+ _exprLang = new OExpressionLanguage(_oprocess, exprRuntime);
+ }
public StructuredActivity build(Class oclass, OScope oscope,
StructuredActivity parent, Object... params) {
try {
@@ -45,7 +51,7 @@
buildParams[0] = oactivity;
buildParams[1] = oscope;
StructuredActivity result = (StructuredActivity)
buildMethod.invoke(this, buildParams);
- parent.run((OActivity) result.getOActivity());
+ if (result != null) parent.run((OActivity) result.getOActivity());
return result;
} catch (Exception e) {
throw new RuntimeException("Couldn't build activity of type " +
oclass, e);
@@ -78,6 +84,8 @@
if (namespaces.get(prefix) == null) _oprocess.targetNamespace =
SIMPEL_NS;
else _oprocess.targetNamespace = namespaces.get(prefix);
+ _oprocess.expressionLanguages.add(_exprLang);
+
final OScope processScope = new OScope(_oprocess, null);
processScope.name = "__PROCESS_SCOPE:" + name;
_oprocess.procesScope = processScope;
@@ -113,15 +121,19 @@
};
}
- public SimpleActivity buildAssign(OAssign oassign, OScope oscope, String
lexpr, String rexpr) {
+ public SimpleActivity buildAssign(OAssign oassign, OScope oscope, String
lexpr, SimPELExpr rexpr) {
OAssign.Copy ocopy = new OAssign.Copy(_oprocess);
oassign.operations.add(ocopy);
+ // TODO lvalue should also be an expression
OAssign.VariableRef vref = new OAssign.VariableRef(_oprocess);
vref.variable = resolveVariable(oscope, lexpr);
+ vref.part = new OMessageVarType.Part(_oprocess, "payload",
+ new OElementVarType(_oprocess, new
QName("http://ode.apache.org/simpel/1.0/definition", "simpelWrapper")));
ocopy.to = vref;
- ocopy.from = new OAssign.Expression(_oprocess, new
SimPELExpression(_oprocess, rexpr));
+ rexpr.expressionLanguage = _exprLang;
+ ocopy.from = new OAssign.Expression(_oprocess, rexpr);
return new SimpleActivity<OAssign>(oassign);
}
@@ -137,6 +149,8 @@
oreply.partnerLink = buildPartnerLink(oscope, partnerLink,
operation, true);
oreply.operation =
oreply.partnerLink.myRolePortType.getOperation(operation, null, null);
}
+ // Adding partner role
+ buildPartnerLink(oscope, oreply.partnerLink.name,
oreply.operation.getName(), false);
oreply.operation.setOutput(new SimPELOutput("out"));
return new SimpleActivity<OReply>(oreply);
}
@@ -155,6 +169,15 @@
} else __log.warn("Can't set block parameter on activity " + oact);
}
+ public void addExprVariable(OScope oscope, SimPELExpr expr, String
varName) {
+ if (expr == null) {
+ // TODO Temporary plug until all activities are implemented
+ __log.warn("Skipping expression building, null expr");
+ return;
+ }
+ expr.addVariable(resolveVariable(oscope, varName));
+ }
+
public OProcess getProcess() {
return _oprocess;
}
@@ -169,6 +192,7 @@
resolved.declaringScope = oscope;
partnerLinks.put(name, resolved);
_oprocess.allPartnerLinks.add(resolved);
+ oscope.partnerLinks.put(name, resolved);
}
if (myRole) {
PortType pt = resolved.myRolePortType;
@@ -180,7 +204,7 @@
PortType pt = resolved.partnerRolePortType;
if (pt == null) pt = resolved.partnerRolePortType = new
SimPELPortType();
SimPELOperation op = new SimPELOperation(operation);
- op.setInput(new SimPELInput("in"));
+ op.setOutput(new SimPELOutput("out"));
pt.addOperation(op);
}
return resolved;
Copied:
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpr.java
(from r628212,
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpression.java)
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpr.java?p2=ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpr.java&p1=ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpression.java&r1=628212&r2=634020&rev=634020&view=diff
==============================================================================
---
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpression.java
(original)
+++
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/omodel/SimPELExpr.java
Wed Mar 5 12:41:22 2008
@@ -2,19 +2,34 @@
import org.apache.ode.bpel.o.OExpression;
import org.apache.ode.bpel.o.OProcess;
-import org.apache.ode.bpel.o.OExpressionLanguage;
+import org.apache.ode.bpel.o.OScope;
+
+import java.util.HashMap;
/**
* @author Matthieu Riou <[EMAIL PROTECTED]>
*/
-public class SimPELExpression extends OExpression {
+public class SimPELExpr extends OExpression {
private String expr;
+ private HashMap<String,OScope.Variable> _referencedVariables = new
HashMap<String,OScope.Variable>();
- public SimPELExpression(OProcess oProcess, String expr) {
+ public SimPELExpr(OProcess oProcess) {
super(oProcess);
+ }
+
+ public String getExpr() {
+ return expr;
+ }
+
+ public void setExpr(String expr) {
this.expr = expr;
- OExpressionLanguage oelang = new OExpressionLanguage(oProcess, null);
- oelang.expressionLanguageUri = "http://ode.apache.org/simpel/1.0/expr";
- expressionLanguage = oelang;
+ }
+
+ public void addVariable(OScope.Variable var) {
+ _referencedVariables.put(var.name, var);
+ }
+
+ public OScope.Variable getReferencedVariable(String name) {
+ return _referencedVariables.get(name);
}
}
Modified:
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/wsdl/SimPELOutput.java
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/wsdl/SimPELOutput.java?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
---
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/wsdl/SimPELOutput.java
(original)
+++
ode/sandbox/simpel/src/main/java/org/apache/ode/simpel/wsdl/SimPELOutput.java
Wed Mar 5 12:41:22 2008
@@ -8,6 +8,8 @@
*/
public class SimPELOutput extends SimPELWSDLElement implements Output {
private String name;
+ private SimPELMessage _message = new SimPELMessage();
+
public SimPELOutput(String name) {
this.name = name;
}
@@ -20,6 +22,6 @@
public void setMessage(Message message) {
}
public Message getMessage() {
- return null;
+ return _message;
}
}
Modified:
ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java
URL:
http://svn.apache.org/viewvc/ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java?rev=634020&r1=634019&r2=634020&view=diff
==============================================================================
---
ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java
(original)
+++
ode/sandbox/simpel/src/test/java/org/apache/ode/simpel/SimPELCompilerTest.java
Wed Mar 5 12:41:22 2008
@@ -118,10 +118,11 @@
server.deploy(process);
Document doc = DOMUtils.newDocument();
- Element wrapper = doc.createElement("wrapper");
+ Element wrapper =
doc.createElementNS("http://ode.apache.org/simpel/1.0/definition",
"simpelWrapper");
wrapper.setTextContent("Hello");
Element result = server.sendMessage("my_pl", "hello_op", wrapper);
+ assertTrue(DOMUtils.domToString(result).indexOf("Hello World") > 0);
}
private String readProcess(String fileName) throws Exception {
@@ -148,7 +149,6 @@
fail("There were failures.");
}
}
-
private static class TestErrorListener implements ErrorListener {
public StringBuffer messages = new StringBuffer();