You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sv...@apache.org on 2006/10/15 15:19:17 UTC
svn commit: r464185 - in
/incubator/tuscany/branches/sca-java-M2/sca/services/containers/container.javascript/src:
main/java/org/apache/tuscany/container/javascript/
main/java/org/apache/tuscany/container/javascript/rhino/
main/resources/META-INF/sca/ ...
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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org