summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java')
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java46
1 files changed, 35 insertions, 11 deletions
diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
index a805985a11..a55de8f20e 100644
--- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
+++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/context/CompositeContext.java
@@ -33,7 +33,24 @@ import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
*
* @version $Rev$ $Date$
*/
-public abstract class CompositeContext {
+public class CompositeContext {
+ protected ExtensionPointRegistry extensionPointRegistry;
+ protected EndpointRegistry endpointRegistry;
+ protected ComponentContextFactory componentContextFactory;
+ protected Composite domainComposite;
+
+ public CompositeContext(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 CompositeContext(ExtensionPointRegistry registry, EndpointRegistry endpointRegistry) {
+ this(registry, endpointRegistry, null);
+ }
+
/**
* @return
*/
@@ -62,30 +79,37 @@ public abstract class CompositeContext {
return null;
}
- /**
- * Attach a component context to the component
- * @param runtimeComponent
- */
- public abstract void bindComponent(RuntimeComponent runtimeComponent);
-
+ public void bindComponent(RuntimeComponent runtimeComponent) {
+ RuntimeComponentContext componentContext =
+ (RuntimeComponentContext)componentContextFactory.createComponentContext(this, runtimeComponent);
+ runtimeComponent.setComponentContext(componentContext);
+ }
/**
*
* @param endpointReference
*/
- public abstract void bindEndpointReference(EndpointReference endpointReference);
+ public void bindEndpointReference(EndpointReference endpointReference) {
+
+ }
/**
* Get the ExtensionPointRegistry for this node
* @return The ExtensionPointRegistry
*/
- public abstract ExtensionPointRegistry getExtensionPointRegistry();
+ public ExtensionPointRegistry getExtensionPointRegistry() {
+ return extensionPointRegistry;
+ }
/**
* Get the EndpointRegistry
* @return The EndpointRegistry for this node
*/
- public abstract EndpointRegistry getEndpointRegistry();
+ public EndpointRegistry getEndpointRegistry() {
+ return endpointRegistry;
+ }
- public abstract Composite getDomainComposite();
+ public Composite getDomainComposite() {
+ return domainComposite;
+ }
}