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();