You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2009/10/05 20:38:11 UTC

svn commit: r821953 - in /tuscany/java/sca/modules: core-spi/src/main/java/org/apache/tuscany/sca/context/ core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/ core/src/main/java/org/apache/tuscany/sca/core/context/impl/ node-impl/src/main/jav...

Author: rfeng
Date: Mon Oct  5 18:38:10 2009
New Revision: 821953

URL: http://svn.apache.org/viewvc?rev=821953&view=rev
Log:
Further refactor the CompositeContext to be the place to hold information about the Node

Modified:
    tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
    tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java
    tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/CompositeContextImpl.java
    tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java

Modified: tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java?rev=821953&r1=821952&r2=821953&view=diff
==============================================================================
--- tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java (original)
+++ tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java Mon Oct  5 18:38:10 2009
@@ -19,20 +19,17 @@
 
 package org.apache.tuscany.sca.context;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.tuscany.sca.assembly.Component;
-import org.apache.tuscany.sca.assembly.ComponentService;
+import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.assembly.Endpoint;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.EndpointRegistry;
 import org.apache.tuscany.sca.runtime.RuntimeComponent;
 import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
-import org.oasisopen.sca.ServiceRuntimeException;
 
 /**
+ * The context associated with the Node that provides access to ExtensionPointRegistry and EndpointRegistry
+ * 
  * @version $Rev$ $Date$
  */
 public abstract class CompositeContext {
@@ -46,7 +43,7 @@
             if (to == null) {
                 return null;
             }
-            RuntimeComponent component = (RuntimeComponent) message.getTo().getComponent();
+            RuntimeComponent component = (RuntimeComponent)message.getTo().getComponent();
             return component;
         }
         return null;
@@ -65,40 +62,23 @@
     }
 
     /**
-     * @param component
+     * Attach a component context to the component
+     * @param runtimeComponent
      */
-    public static ComponentService getSingleService(Component component) {
-        ComponentService targetService;
-        List<ComponentService> services = component.getServices();
-        List<ComponentService> regularServices = new ArrayList<ComponentService>();
-        for (ComponentService service : services) {
-            if (service.isForCallback()) {
-                continue;
-            }
-            String name = service.getName();
-            if (!name.startsWith("$") || name.startsWith("$dynamic$")) {
-                regularServices.add(service);
-            }
-        }
-        if (regularServices.size() == 0) {
-            throw new ServiceRuntimeException("No service is declared on component " + component.getURI());
-        }
-        if (regularServices.size() != 1) {
-            throw new ServiceRuntimeException("More than one service is declared on component " + component.getURI()
-                + ". Service name is required to get the service.");
-        }
-        targetService = regularServices.get(0);
-        return targetService;
-    }
+    public abstract void bindComponent(RuntimeComponent runtimeComponent);
 
-    public abstract void configureComponentContext(RuntimeComponent runtimeComponent);
-    
+    /**
+     * Get the ExtensionPointRegistry for this node
+     * @return The ExtensionPointRegistry
+     */
     public abstract ExtensionPointRegistry getExtensionPointRegistry();
 
     /**
      * Get the EndpointRegistry
-     * @return
+     * @return The EndpointRegistry for this node
      */
     public abstract EndpointRegistry getEndpointRegistry();
+    
+    public abstract Composite getDomainComposite();
 
 }

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java?rev=821953&r1=821952&r2=821953&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java Mon Oct  5 18:38:10 2009
@@ -496,7 +496,7 @@
             return;
         }
 
-        compositeContext.configureComponentContext(runtimeComponent);
+        compositeContext.bindComponent(runtimeComponent);
 
         // Reference bindings aren't started until the wire is first used
 

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java?rev=821953&r1=821952&r2=821953&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ComponentContextImpl.java Mon Oct  5 18:38:10 2009
@@ -20,6 +20,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Binding;
@@ -160,8 +161,36 @@
         throw new ServiceRuntimeException("Property not found: " + propertyName);
     }
 
+    /**
+     * @param component
+     */
+    public static ComponentService getSingleService(Component component) {
+        ComponentService targetService;
+        List<ComponentService> services = component.getServices();
+        List<ComponentService> regularServices = new ArrayList<ComponentService>();
+        for (ComponentService service : services) {
+            if (service.isForCallback()) {
+                continue;
+            }
+            String name = service.getName();
+            if (!name.startsWith("$") || name.startsWith("$dynamic$")) {
+                regularServices.add(service);
+            }
+        }
+        if (regularServices.size() == 0) {
+            throw new ServiceRuntimeException("No service is declared on component " + component.getURI());
+        }
+        if (regularServices.size() != 1) {
+            throw new ServiceRuntimeException("More than one service is declared on component " + component.getURI()
+                + ". Service name is required to get the service.");
+        }
+        targetService = regularServices.get(0);
+        return targetService;
+    }
+
+
     public <B> ServiceReference<B> createSelfReference(Class<B> businessInterface) {
-        ComponentService service = CompositeContext.getSingleService(component);
+        ComponentService service = getSingleService(component);
         try {
             return createSelfReference(businessInterface, service);
         } catch (Exception e) {

Modified: tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java?rev=821953&r1=821952&r2=821953&view=diff
==============================================================================
--- tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java (original)
+++ tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/context/impl/ServiceReferenceImpl.java Mon Oct  5 18:38:10 2009
@@ -380,7 +380,7 @@
             fromXMLString();
             
             this.component = (RuntimeComponent)endpointReference.getComponent();
-            compositeContext.configureComponentContext(this.component);
+            compositeContext.bindComponent(this.component);
             
             this.reference = (RuntimeComponentReference)endpointReference.getReference();
             this.reference.setComponent(this.component);

Modified: tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/CompositeContextImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/CompositeContextImpl.java?rev=821953&r1=821952&r2=821953&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/CompositeContextImpl.java (original)
+++ tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/CompositeContextImpl.java Mon Oct  5 18:38:10 2009
@@ -19,6 +19,7 @@
 
 package org.apache.tuscany.sca.node.impl;
 
+import org.apache.tuscany.sca.assembly.Composite;
 import org.apache.tuscany.sca.context.ComponentContextFactory;
 import org.apache.tuscany.sca.context.CompositeContext;
 import org.apache.tuscany.sca.context.ContextFactoryExtensionPoint;
@@ -34,12 +35,14 @@
     private final ExtensionPointRegistry extensionPointRegistry;
     private final EndpointRegistry endpointRegistry;
     private final ComponentContextFactory componentContextFactory;
+    private final Composite domainComposite;
 
-    public CompositeContextImpl(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry) {
+    public CompositeContextImpl(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry, Composite domainComposite) {
         this.extensionPointRegistry = registry;
         this.endpointRegistry = endpointRegistry;
         ContextFactoryExtensionPoint contextFactories = registry.getExtensionPoint(ContextFactoryExtensionPoint.class);
         this.componentContextFactory = contextFactories.getFactory(ComponentContextFactory.class);
+        this.domainComposite = domainComposite;
     }
 
     public ExtensionPointRegistry getExtensionPointRegistry() {
@@ -50,10 +53,14 @@
         return endpointRegistry;
     }
 
-    public void configureComponentContext(RuntimeComponent runtimeComponent) {
+    public void bindComponent(RuntimeComponent runtimeComponent) {
         RuntimeComponentContext componentContext =
             (RuntimeComponentContext)componentContextFactory.createComponentContext(this, runtimeComponent);
         runtimeComponent.setComponentContext(componentContext);
     }
 
+    public Composite getDomainComposite() {
+        return domainComposite;
+    }
+
 }

Modified: tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java?rev=821953&r1=821952&r2=821953&view=diff
==============================================================================
--- tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java (original)
+++ tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeImpl.java Mon Oct  5 18:38:10 2009
@@ -115,10 +115,10 @@
         
         // FIXME: Get the endpoint registry by the Node configuration
         EndpointRegistry endpointRegistry = utilities.getUtility(EndpointRegistry.class);
-        this.compositeContext = new CompositeContextImpl(manager.extensionPoints, endpointRegistry);
         this.compositeActivator = utilities.getUtility(CompositeActivator.class);
         try {
             domainComposite = manager.configureNode(configuration, contributions);
+            this.compositeContext = new CompositeContextImpl(manager.extensionPoints, endpointRegistry, domainComposite);
             
             // Activate the composite
             compositeActivator.activate(domainComposite);
@@ -189,6 +189,8 @@
             manager.extensionPoints.getExtensionPoint(UtilityExtensionPoint.class).removeUtility(compositeActivator);
             this.compositeActivator = null;
             this.proxyFactory = null;
+            this.domainComposite = null;
+            this.compositeContext = null;
             
             ThreadMessageContext.removeMessageContext();