You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/27 00:05:17 UTC

svn commit: r381195 - in /incubator/tuscany/java/sca/container.js/src/main: java/org/apache/tuscany/container/js/builder/ java/org/apache/tuscany/container/js/context/ resources/

Author: jsdelfino
Date: Sun Feb 26 15:05:16 2006
New Revision: 381195

URL: http://svn.apache.org/viewcvs?rev=381195&view=rev
Log:
bringup of JavaScript container - added missing declaration in system.fragment, missing annotations and methods in runtimeconfiguration builder, and handling of locateService(componentName)

Modified:
    incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptComponentContextBuilder.java
    incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/context/JavaScriptComponentContext.java
    incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment

Modified: incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptComponentContextBuilder.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptComponentContextBuilder.java?rev=381195&r1=381194&r2=381195&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptComponentContextBuilder.java (original)
+++ incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/builder/JavaScriptComponentContextBuilder.java Sun Feb 26 15:05:16 2006
@@ -38,6 +38,7 @@
 import org.apache.tuscany.core.invocation.spi.ProxyFactory;
 import org.apache.tuscany.core.invocation.spi.ProxyFactoryFactory;
 import org.apache.tuscany.core.message.MessageFactory;
+import org.apache.tuscany.core.runtime.RuntimeContext;
 import org.apache.tuscany.core.system.annotation.Autowire;
 import org.apache.tuscany.model.assembly.AssemblyModelObject;
 import org.apache.tuscany.model.assembly.ComponentImplementation;
@@ -48,6 +49,7 @@
 import org.apache.tuscany.model.assembly.Service;
 import org.apache.tuscany.model.assembly.ServiceContract;
 import org.apache.tuscany.model.assembly.SimpleComponent;
+import org.osoa.sca.annotations.Init;
 
 /**
  * Builds {@link org.apache.tuscany.container.js.config.JavaScriptComponentRuntimeConfiguration}s from a JavaScript
@@ -55,13 +57,13 @@
  * 
  * @version $Rev$ $Date$
  */
+@org.osoa.sca.annotations.Scope("MODULE")
 public class JavaScriptComponentContextBuilder implements RuntimeConfigurationBuilder<AggregateContext> {
 
     private ProxyFactoryFactory factory;
-
     private MessageFactory msgFactory;
-
     private RuntimeConfigurationBuilder referenceBuilder;
+    private RuntimeContext runtimeContext;
 
     // ----------------------------------
     // Constructors
@@ -73,6 +75,19 @@
     // ----------------------------------
     // Methods
     // ----------------------------------
+
+    @Init(eager = true)
+    public void init() {
+        runtimeContext.addBuilder(this);
+    }
+
+    /**
+     * @param runtimeContext The runtimeContext to set.
+     */
+    @Autowire
+    public void setRuntimeContext(RuntimeContext runtimeContext) {
+        this.runtimeContext = runtimeContext;
+    }
 
     /**
      * Sets the factory used to construct proxies implmementing the business interface required by a reference

Modified: incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/context/JavaScriptComponentContext.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/context/JavaScriptComponentContext.java?rev=381195&r1=381194&r2=381195&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/context/JavaScriptComponentContext.java (original)
+++ incubator/tuscany/java/sca/container.js/src/main/java/org/apache/tuscany/container/js/context/JavaScriptComponentContext.java Sun Feb 26 15:05:16 2006
@@ -61,9 +61,18 @@
     }
 
     public synchronized Object getInstance(QualifiedName qName, boolean notify) throws TargetException {
-        ProxyFactory targetFactory = targetProxyFactories.get(qName.getPortName());
+        String portName=qName.getPortName();
+        ProxyFactory targetFactory;
+        if (portName!=null) {
+            targetFactory = targetProxyFactories.get(portName);
+        }  else {
+            //FIXME The port name is null here, either locateService needs more information (the expected interface) to
+            // select the correct port, or we need to return a factory that matches the whole set of services exposed by
+            // the component.
+            targetFactory = targetProxyFactories.values().iterator().next();
+        }
         if (targetFactory == null) {
-            TargetException e = new TargetException("Target interface not found");
+            TargetException e = new TargetException("Target service not found");
             e.setIdentifier(qName.getPortName());
             e.addContextName(getName());
             throw e;

Modified: incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment?rev=381195&r1=381194&r2=381195&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment (original)
+++ incubator/tuscany/java/sca/container.js/src/main/resources/system.fragment Sun Feb 26 15:05:16 2006
@@ -26,4 +26,8 @@
         <system:implementation.system class="org.apache.tuscany.container.js.loader.JavaScriptSCDLModelLoader"/>
     </component>
 
+    <component name="org.apache.tuscany.container.js.builder.JavaScriptTargetWireBuilder">
+        <system:implementation.system class="org.apache.tuscany.container.js.builder.JavaScriptTargetWireBuilder"/>
+    </component>
+
 </moduleFragment>