Author: svkrish
Date: Sun Oct 15 06:19:16 2006
New Revision: 464185
URL: http://svn.apache.org/viewvc?view=rev&rev=464185
Log:
Fixed xml namespaces to
http://incubator.apache.org/tuscany/xmlns/<module>/1.0-incubator-M2 and ability
to handle non-string (default) return types from javascript (by setting the
response class in the invoker)
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptInstance.java
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/default.scdl
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/js.system.scdl
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoFunctionInvokerTestCase.java
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptTestCase.java
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java?view=diff&rev=464185&r1=464184&r2=464185
==============================================================================
---
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
(original)
+++
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
Sun Oct 15 06:19:16 2006
@@ -86,7 +86,7 @@
}
public TargetInvoker createTargetInvoker(String targetName, Operation
operation) {
- return new JavaScriptInvoker(operation.getName(), this);
+ return new JavaScriptInvoker(operation.getName(),
(Class)operation.getOutputType().getLogical(), this);
}
// TODO: move all the following up to AtomicComponentExtension?
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java?view=diff&rev=464185&r1=464184&r2=464185
==============================================================================
---
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java
(original)
+++
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptInvoker.java
Sun Oct 15 06:19:16 2006
@@ -33,10 +33,13 @@
private JavaScriptComponent context;
private String functionName;
+
+ private Class responseClass;
- public JavaScriptInvoker(String functionName, JavaScriptComponent context)
{
+ public JavaScriptInvoker(String functionName, Class respClass,
JavaScriptComponent context) {
this.functionName = functionName;
this.context = context;
+ this.responseClass = respClass;
}
/**
@@ -44,7 +47,7 @@
*/
public Object invokeTarget(final Object payload) throws
InvocationTargetException {
RhinoScriptInstance target = context.getTargetInstance();
- return target.invokeFunction(functionName, (Object[]) payload);
+ return target.invokeFunction(functionName, (Object[]) payload,
responseClass);
}
}
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptInstance.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptInstance.java?view=diff&rev=464185&r1=464184&r2=464185
==============================================================================
---
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptInstance.java
(original)
+++
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptInstance.java
Sun Oct 15 06:19:16 2006
@@ -47,15 +47,24 @@
}
addContexts(instanceScope, context);
}
-
+
public Object invokeFunction(String functionName, Object[] args) {
- RhinoFunctionInvoker invoker =
createRhinoFunctionInvoker(functionName);
+ return invokeFunction(functionName, args, null);
+ }
+
+ public Object invokeFunction(String functionName, Object[] args, Class
respClass) {
+ RhinoFunctionInvoker invoker =
createRhinoFunctionInvoker(functionName, respClass);
return invoker.invoke(args);
}
public RhinoFunctionInvoker createRhinoFunctionInvoker(String
functionName) {
+ return createRhinoFunctionInvoker(functionName, null);
+ }
+
+
+ public RhinoFunctionInvoker createRhinoFunctionInvoker(String
functionName, Class responseClass) {
Function function = getFunction(functionName);
- Class responseClass = responseClasses.get(functionName);
+ //Class responseClass = responseClasses.get(functionName);
RhinoFunctionInvoker invoker = new RhinoFunctionInvoker(instanceScope,
function, responseClass);
return invoker;
}
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/default.scdl
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/default.scdl?view=diff&rev=464185&r1=464184&r2=464185
==============================================================================
---
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/default.scdl
(original)
+++
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/default.scdl
Sun Oct 15 06:19:16 2006
@@ -21,11 +21,11 @@
JavaScript configuration for the launcher environment.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
+
xmlns:system="http://incubator.apache.org/tuscany/xmlns/system/1.0-incubator-M2"
name="org.apache.tuscany.launcher.JavaScriptImplementation">
- <dependency xmlns="http://tuscany.apache.org/xmlns/1.0-SNAPSHOT">
+ <dependency
xmlns="http://incubator.apache.org/tuscany/xmlns/1.0-incubator-M2">
<group>org.apache.tuscany.sca.services.containers</group>
<name>javascript</name>
<version>1.0-incubator-M2-SNAPSHOT</version>
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/js.system.scdl
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/js.system.scdl?view=diff&rev=464185&r1=464184&r2=464185
==============================================================================
---
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/js.system.scdl
(original)
+++
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/main/resources/META-INF/sca/js.system.scdl
Sun Oct 15 06:19:16 2006
@@ -21,7 +21,7 @@
JavaScript configuration for the launcher environment.
-->
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
- xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
+
xmlns:system="http://incubator.apache.org/tuscany/xmlns/system/1.0-incubator-M2"
name="org.apache.tuscany.launcher.JavaScriptImplementation">
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoFunctionInvokerTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoFunctionInvokerTestCase.java?view=diff&rev=464185&r1=464184&r2=464185
==============================================================================
---
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoFunctionInvokerTestCase.java
(original)
+++
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoFunctionInvokerTestCase.java
Sun Oct 15 06:19:16 2006
@@ -90,18 +90,18 @@
public void testResponseTypeBoolean() {
RhinoScript rhinoScript = new RhinoScript("foo", "function getTrue()
{return true;}");
- rhinoScript.setResponseClass("getTrue", Boolean.class);
+ //rhinoScript.setResponseClass("getTrue", Boolean.class);
RhinoScriptInstance instance = rhinoScript.createRhinoScriptInstance();
- RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("getTrue");
+ RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("getTrue", Boolean.class);
assertNotNull(invoker);
assertTrue((Boolean) invoker.invoke(new Object[0]));
}
public void testResponseTypeStringArray() {
RhinoScript rhinoScript = new RhinoScript("foo", "function getAs()
{var as = new Array(1);as[0]='petra';return as;}");
- rhinoScript.setResponseClass("getAs", new String[0].getClass());
+ //rhinoScript.setResponseClass("getAs", new String[0].getClass());
RhinoScriptInstance instance = rhinoScript.createRhinoScriptInstance();
- RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("getAs");
+ RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("getAs", new String[0].getClass());
assertNotNull(invoker);
Object o = invoker.invoke(new Object[0]);
assertNotNull(o);
@@ -113,7 +113,7 @@
RhinoScript rhinoScript = new RhinoScript("foo", "function getBs()
{var bs = new Array(1);bs[0]=true;return bs;}");
rhinoScript.setResponseClass("getBs", new Boolean[0].getClass());
RhinoScriptInstance instance = rhinoScript.createRhinoScriptInstance();
- RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("getBs");
+ RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("getBs", new Boolean[0].getClass());
assertNotNull(invoker);
Object o = invoker.invoke(new Object[0]);
assertNotNull(o);
@@ -147,9 +147,9 @@
public void testXMLRequest() throws XmlException, IOException {
RhinoScript rhinoScript = new RhinoScript("foo", "function isXML(x)
{return 'xml' == (typeof x);}");
- rhinoScript.setResponseClass("isXML", Boolean.class);
+ //rhinoScript.setResponseClass("isXML", Boolean.class);
RhinoScriptInstance instance = rhinoScript.createRhinoScriptInstance();
- RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("isXML");
+ RhinoFunctionInvoker invoker =
instance.createRhinoFunctionInvoker("isXML", Boolean.class);
assertNotNull(invoker);
Object xml = XmlObject.Factory.parse("<a><b/></a>");
Modified:
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptTestCase.java?view=diff&rev=464185&r1=464184&r2=464185
==============================================================================
---
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptTestCase.java
(original)
+++
incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src/test/java/org/apache/tuscany/container/javascript/rhino/RhinoScriptTestCase.java
Sun Oct 15 06:19:16 2006
@@ -75,7 +75,7 @@
RhinoScript rhinoScript = new RhinoScript("foo", "function getX()
{return 42;}");
rhinoScript.setResponseClass("getX", Integer.class);
RhinoScriptInstance instance = rhinoScript.createRhinoScriptInstance();
- Object x = instance.invokeFunction("getX", new Object[0]);
+ Object x = instance.invokeFunction("getX", new Object[0],
Integer.class);
assertTrue(x instanceof Integer);
assertEquals(new Integer(42), x);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]