Author: antelder
Date: Sat May 13 03:15:11 2006
New Revision: 406057

URL: http://svn.apache.org/viewcvs?rev=406057&view=rev
Log:
Fixes for TUSCANY-82 and TUSCANY-221

Modified:
    
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
    
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
    
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
    
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java

Modified: 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
 (original)
+++ 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilder.java
 Sat May 13 03:15:11 2006
@@ -39,6 +39,8 @@
 import org.apache.tuscany.model.assembly.ServiceContract;
 import org.apache.tuscany.model.types.wsdl.WSDLServiceContract;
 
+import commonj.sdo.helper.TypeHelper;
+
 /**
  * Builds [EMAIL PROTECTED] 
org.apache.tuscany.container.rhino.config.JavaScriptContextFactory}s from a 
JavaScript component type
  * 
@@ -101,7 +103,9 @@
      * Create the data binding for the component initialized for each 
operation in the service
      */
     protected E4XDataBinding createDataBinding(JavaScriptImplementation 
jsImplementation) {
-        E4XDataBinding dataBinding = new 
E4XDataBinding(jsImplementation.getTypeHelper());
+        ClassLoader classLoader = 
jsImplementation.getResourceLoader().getClassLoader();
+        TypeHelper typeHelper = jsImplementation.getTypeHelper();
+        E4XDataBinding dataBinding = new E4XDataBinding(classLoader, 
typeHelper);
         for (Service service : 
jsImplementation.getComponentType().getServices()) {
             ServiceContract sc = service.getServiceContract();
             if (sc instanceof WSDLServiceContract) {

Modified: 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
 (original)
+++ 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/config/JavaScriptContextFactory.java
 Sat May 13 03:15:11 2006
@@ -25,10 +25,11 @@
 import org.apache.tuscany.container.rhino.rhino.RhinoScript;
 import org.apache.tuscany.core.builder.ContextCreationException;
 import org.apache.tuscany.core.builder.ContextFactory;
-import org.apache.tuscany.core.context.CompositeContext;
+import org.apache.tuscany.core.builder.ContextResolver;
 import org.apache.tuscany.core.context.AtomicContext;
-import org.apache.tuscany.core.wire.TargetWireFactory;
+import org.apache.tuscany.core.context.CompositeContext;
 import org.apache.tuscany.core.wire.SourceWireFactory;
+import org.apache.tuscany.core.wire.TargetWireFactory;
 import org.apache.tuscany.model.assembly.Scope;
 
 /**
@@ -36,12 +37,16 @@
  * 
  * @version $Rev$ $Date$
  */
-public class JavaScriptContextFactory implements ContextFactory<AtomicContext> 
{
+public class JavaScriptContextFactory implements 
ContextFactory<AtomicContext>, ContextResolver {
 
     private Scope scope;
 
     private String name;
 
+    private Map<String, TargetWireFactory> targetProxyFactories = new 
HashMap<String, TargetWireFactory>();
+
+    private List<SourceWireFactory> sourceProxyFactories = new 
ArrayList<SourceWireFactory>();
+
     private Map<String, Class> services;
 
     private Map<String, Object> properties;
@@ -49,9 +54,8 @@
     private RhinoScript invoker;
 
     private CompositeContext parentContext;
-    
-    public JavaScriptContextFactory(String name, Scope scope, Map<String, 
Class> services,
-            Map<String, Object> properties, RhinoScript invoker) {
+
+    public JavaScriptContextFactory(String name, Scope scope, Map<String, 
Class> services, Map<String, Object> properties, RhinoScript invoker) {
         this.name = name;
         this.scope = scope;
         this.services = services;
@@ -60,8 +64,7 @@
     }
 
     public AtomicContext createContext() throws ContextCreationException {
-        return new JavaScriptComponentContext(name, services, properties, 
sourceProxyFactories, targetProxyFactories, invoker
-                .copy());
+        return new JavaScriptComponentContext(name, services, properties, 
sourceProxyFactories, targetProxyFactories, invoker.copy());
     }
 
     public Scope getScope() {
@@ -73,11 +76,9 @@
     }
 
     public void addProperty(String propertyName, Object value) {
-
+        properties.put(propertyName, value);
     }
 
-    private Map<String, TargetWireFactory> targetProxyFactories = new 
HashMap<String, TargetWireFactory>();
-
     public void addTargetWireFactory(String serviceName, TargetWireFactory 
factory) {
         targetProxyFactories.put(serviceName, factory);
     }
@@ -90,14 +91,12 @@
         return targetProxyFactories;
     }
 
-    private List<SourceWireFactory> sourceProxyFactories = new 
ArrayList<SourceWireFactory>();
-
     public void addSourceWireFactory(String referenceName, SourceWireFactory 
factory) {
         sourceProxyFactories.add(factory);
     }
 
-    public void addSourceWireFactories(String referenceName, Class 
referenceInterface, List<SourceWireFactory> factory, boolean multiplicity) {
-        //TODO implement
+    public void addSourceWireFactories(String referenceName, Class 
referenceInterface, List<SourceWireFactory> factories, boolean multiplicity) {
+        sourceProxyFactories.addAll(factories);
     }
 
     public List<SourceWireFactory> getSourceWireFactories() {
@@ -108,5 +107,8 @@
         parentContext = parent;
     }
 
+    public CompositeContext getCurrentContext() {
+        return parentContext;
+    }
 
 }

Modified: 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
 (original)
+++ 
incubator/tuscany/java/sca/containers/container.rhino/src/main/java/org/apache/tuscany/container/rhino/rhino/E4XDataBinding.java
 Sat May 13 03:15:11 2006
@@ -37,13 +37,16 @@
  */
 public class E4XDataBinding {
 
+    private ClassLoader classLoader;
+
     private TypeHelper typeHelper;
 
     private Map<String, QName> function2ElementMap;
 
     private static final boolean IS_WRAPPED = true;
 
-    public E4XDataBinding(TypeHelper typeHelper) {
+    public E4XDataBinding(ClassLoader classLoader, TypeHelper typeHelper) {
+        this.classLoader = classLoader;
         this.typeHelper = typeHelper;
         this.function2ElementMap = new HashMap<String, QName>();
     }
@@ -56,7 +59,7 @@
      */
     public Object[] toObjects(Scriptable e4xXML) {
         byte[] xmlBytes = e4xXML.toString().getBytes();
-        Object[] os = SDOXMLHelper.toObjects(typeHelper, xmlBytes, IS_WRAPPED);
+        Object[] os = SDOXMLHelper.toObjects(classLoader, typeHelper, 
xmlBytes, IS_WRAPPED);
         return os;
     }
 
@@ -70,7 +73,7 @@
      */
     public Scriptable toE4X(String functionName, Object[] os, Scriptable 
scope) {
         QName elementQN = function2ElementMap.get(functionName);
-        byte[] xmlBytes = SDOXMLHelper.toXMLBytes(typeHelper, os, elementQN, 
IS_WRAPPED);
+        byte[] xmlBytes = SDOXMLHelper.toXMLBytes(classLoader, typeHelper, os, 
elementQN, IS_WRAPPED);
 
         XmlObject xmlObject;
         try {

Modified: 
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java?rev=406057&r1=406056&r2=406057&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java
 (original)
+++ 
incubator/tuscany/java/sca/containers/container.rhino/src/test/java/org/apache/tuscany/container/rhino/rhino/RhinoE4XScriptTestCase.java
 Sat May 13 03:15:11 2006
@@ -48,7 +48,7 @@
         URL url = getClass().getResource("helloworld.wsdl");
         xsdHelper.define(url.openStream(), null);
 
-        dataBinding = new E4XDataBinding(th);
+        dataBinding = new E4XDataBinding(getClass().getClassLoader(),th);
         dataBinding.addElementQName("getGreetings", new 
QName("http://helloworld.samples.tuscany.apache.org";, "getGreetings"));
     }
 


Reply via email to