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