You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2007/03/18 19:06:53 UTC

svn commit: r519655 - in /incubator/tuscany/java/sca/kernel: core/src/main/java/org/apache/tuscany/core/implementation/ core/src/main/java/org/apache/tuscany/core/implementation/java/ core/src/main/java/org/apache/tuscany/core/implementation/system/bui...

Author: jboynes
Date: Sun Mar 18 11:06:51 2007
New Revision: 519655

URL: http://svn.apache.org/viewvc?view=rev&rev=519655
Log:
supply groupId to PojoComponent so it can register

Modified:
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemComponent.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/physical/java/JavaPhysicalComponentDefinition.java
    incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoComponentTestCase.java
    incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalComponentDefinition.java

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java Sun Mar 18 11:06:51 2007
@@ -52,10 +52,12 @@
  *
  * @version $Rev$ $Date$
  * @param <T> the implementation class
+ * @param <GROUP> the component group id type
  */
-public abstract class PojoComponent<T> extends AbstractSCAObject implements AtomicComponent {
+public abstract class PojoComponent<T, GROUP> extends AbstractSCAObject implements AtomicComponent<T> {
     private final InstanceFactoryProvider<T> provider;
-    private final ScopeContainer scopeContainer;
+    private final ScopeContainer<GROUP, ?> scopeContainer;
+    private final GROUP groupId;
     private final int initLevel;
     private final long maxIdleTime;
     private final long maxAge;
@@ -63,13 +65,15 @@
 
     public PojoComponent(URI componentId,
                          InstanceFactoryProvider<T> provider,
-                         ScopeContainer scopeContainer,
+                         ScopeContainer<GROUP, ?> scopeContainer,
+                         GROUP groupId,
                          int initLevel,
                          long maxIdleTime,
                          long maxAge) {
         super(componentId);
         this.provider = provider;
         this.scopeContainer = scopeContainer;
+        this.groupId = groupId;
         this.initLevel = initLevel;
         this.maxIdleTime = maxIdleTime;
         this.maxAge = maxAge;
@@ -102,7 +106,7 @@
 
     public void start() {
         super.start();
-        scopeContainer.register(this, null);
+        scopeContainer.register(this, groupId);
         instanceFactory = provider.createFactory();
     }
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponent.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponent.java Sun Mar 18 11:06:51 2007
@@ -27,15 +27,17 @@
 /**
  * @version $Revision$ $Date$
  * @param <T> the implementation class for the defined component
+ * @param <GROUP> the component group id type
  */
-public class JavaComponent<T> extends PojoComponent<T> {
+public class JavaComponent<T,GROUP> extends PojoComponent<T,GROUP> {
     public JavaComponent(URI componentId,
                          InstanceFactoryProvider<T> instanceFactoryProvider,
-                         ScopeContainer scopeContainer,
+                         ScopeContainer<GROUP, ?> scopeContainer,
+                         GROUP groupId,
                          int initLevel,
                          long maxIdleTime,
                          long maxAge) {
-        super(componentId, instanceFactoryProvider, scopeContainer, initLevel, maxIdleTime, maxAge);
+        super(componentId, instanceFactoryProvider, scopeContainer, groupId, initLevel, maxIdleTime, maxAge);
     }
 
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java Sun Mar 18 11:06:51 2007
@@ -24,7 +24,6 @@
 import java.util.Map;
 
 import org.osoa.sca.annotations.Reference;
-import org.osoa.sca.annotations.Service;
 
 import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.builder.BuilderException;
@@ -61,10 +60,10 @@
  *
  * @version $Rev$ $Date$
  * @param <T> the implementation class for the defined component
+ * @param <GROUP> the component group id type
  */
-@Service(interfaces={PhysicalComponentBuilder.class, WireAttacher.class})
-public class JavaPhysicalComponentBuilder<T>
-    implements PhysicalComponentBuilder<JavaPhysicalComponentDefinition<T>, JavaComponent<T>>,
+public class JavaPhysicalComponentBuilder<T, GROUP>
+    implements PhysicalComponentBuilder<JavaPhysicalComponentDefinition<T, GROUP>, JavaComponent<T, GROUP>>,
     WireAttacher<JavaComponent, JavaPhysicalWireSourceDefinition, JavaPhysicalWireTargetDefinition> {
 
     // Classloader registry
@@ -105,11 +104,11 @@
      * @return A component instance that is ready to go live.
      * @throws BuilderException If unable to build the component.
      */
-    public JavaComponent<T> build(JavaPhysicalComponentDefinition<T> componentDefinition) throws BuilderException {
+    public JavaComponent<T, GROUP> build(JavaPhysicalComponentDefinition<T, GROUP> componentDefinition) throws BuilderException {
 
         URI componentId = componentDefinition.getComponentId();
         InstanceFactoryProvider<T> provider = componentDefinition.getProvider();
-        JavaComponent<T> component = new JavaComponent<T>(componentId, provider, null, 0, -1, -1);
+        JavaComponent<T, GROUP> component = new JavaComponent<T, GROUP>(componentId, provider, null, null, 0, -1, -1);
 
         setScopeContainer(componentDefinition, component);
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java Sun Mar 18 11:06:51 2007
@@ -21,6 +21,8 @@
 import java.net.URI;
 
 import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.EagerInit;
 
 import org.apache.tuscany.core.component.InstanceFactoryProvider;
 import org.apache.tuscany.core.implementation.system.component.SystemComponent;
@@ -28,27 +30,37 @@
 import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilder;
 import org.apache.tuscany.spi.builder.physical.PhysicalComponentBuilderRegistry;
 import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.ScopeRegistry;
 
 /**
  * @version $Rev$ $Date$
  */
-public class SystemPhysicalComponentBuilder<T>
-    implements PhysicalComponentBuilder<SystemPhysicalComponentDefinition<T>, SystemComponent<T>> {
+@EagerInit
+public class SystemPhysicalComponentBuilder<T, GROUP>
+    implements PhysicalComponentBuilder<SystemPhysicalComponentDefinition<T, GROUP>, SystemComponent<T, GROUP>> {
 
-    /**
-     * Injects builder registry.
-     * @param registry PhysicalComponentBuilder registry.
-     */
-    @Reference
-    public void setBuilderRegistry(PhysicalComponentBuilderRegistry registry) {
-        registry.register(SystemPhysicalComponentDefinition.class, this);
+    private final PhysicalComponentBuilderRegistry builderRegistry;
+    private final ScopeRegistry scopeRegistry;
+
+
+    public SystemPhysicalComponentBuilder(
+        @Reference(name = "builderRegistry")PhysicalComponentBuilderRegistry builderRegistry,
+        @Reference(name = "scopeRegistry")ScopeRegistry scopeRegistry) {
+        this.builderRegistry = builderRegistry;
+        this.scopeRegistry = scopeRegistry;
+    }
+
+    @Init
+    void init() {
+        builderRegistry.register(SystemPhysicalComponentDefinition.class, this);
     }
 
-    public SystemComponent<T> build(SystemPhysicalComponentDefinition<T> definition) {
+    public SystemComponent<T, GROUP> build(SystemPhysicalComponentDefinition<T, GROUP> definition) {
         URI componentId = definition.getComponentId();
         int initLevel = definition.getInitLevel();
-        ScopeContainer scopeContainer = null;
+        GROUP groupId = definition.getGroupId();
+        ScopeContainer<GROUP, ?> scopeContainer = null;
         InstanceFactoryProvider<T> provider = definition.getProvider();
-        return new SystemComponent<T>(componentId, provider, scopeContainer, initLevel, -1, -1);
+        return new SystemComponent<T, GROUP>(componentId, provider, scopeContainer, groupId, initLevel, -1, -1);
     }
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemComponent.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/component/SystemComponent.java Sun Mar 18 11:06:51 2007
@@ -27,15 +27,17 @@
 /**
  * @version $Rev$ $Date$
  * @param <T> the implementation class for the defined component
+ * @param <GROUP> the component group id type
  */
-public class SystemComponent<T> extends PojoComponent<T> {
+public class SystemComponent<T, GROUP> extends PojoComponent<T, GROUP> {
     public SystemComponent(URI componentId,
                            InstanceFactoryProvider<T> provider,
-                           ScopeContainer scopeContainer,
+                           ScopeContainer<GROUP, ?> scopeContainer,
+                           GROUP groupId,
                            int initLevel,
                            int maxIdleTime,
                            int maxAge) {
-        super(componentId, provider, scopeContainer, initLevel, maxIdleTime, maxAge);
+        super(componentId, provider, scopeContainer, groupId, initLevel, maxIdleTime, maxAge);
     }
 
 }

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/model/SystemPhysicalComponentDefinition.java Sun Mar 18 11:06:51 2007
@@ -24,8 +24,9 @@
 /**
  * @version $Rev$ $Date$
  * @param <T> the implementation class for the defined component
+ * @param <GROUP> the component group id type
  */
-public class SystemPhysicalComponentDefinition<T> extends PhysicalComponentDefinition {
+public class SystemPhysicalComponentDefinition<T, GROUP> extends PhysicalComponentDefinition<GROUP> {
     private int initLevel;
     private InstanceFactoryProvider<T> provider;
 

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/physical/java/JavaPhysicalComponentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/physical/java/JavaPhysicalComponentDefinition.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/physical/java/JavaPhysicalComponentDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/model/physical/java/JavaPhysicalComponentDefinition.java Sun Mar 18 11:06:51 2007
@@ -21,7 +21,6 @@
 import java.net.URI;
 
 import org.apache.tuscany.core.component.InstanceFactoryProvider;
-import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.model.physical.PhysicalComponentDefinition;
 
 /**
@@ -29,14 +28,12 @@
  *
  * @version $Rev$ $Date$
  * @param <T> the implementation class (if known)
+ * @param <GROUP> the component group id type
  */
-public class JavaPhysicalComponentDefinition<T> extends PhysicalComponentDefinition {
+public class JavaPhysicalComponentDefinition<T, GROUP> extends PhysicalComponentDefinition<GROUP> {
 
     private InstanceFactoryProvider<T> provider;
 
-    // Scope
-    private Scope scope;
-
     // Class loader id
     private URI classLoaderId;
 
@@ -56,24 +53,6 @@
      */
     public void setClassLoaderId(URI classLoaderId) {
         this.classLoaderId = classLoaderId;
-    }
-
-    /**
-     * Gets the scope for the component.
-     *
-     * @return The scope for the component.
-     */
-    public Scope getScope() {
-        return scope;
-    }
-
-    /**
-     * Sets the scope for the component.
-     *
-     * @param scope The scope for the component.
-     */
-    public void setScope(Scope scope) {
-        this.scope = scope;
     }
 
     /**

Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoComponentTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoComponentTestCase.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoComponentTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/PojoComponentTestCase.java Sun Mar 18 11:06:51 2007
@@ -124,7 +124,7 @@
         component = new TestComponent<T>(componentId, provider, scopeContainer, 0, -1, -1);
     }
 
-    public static class TestComponent<T> extends PojoComponent<T> {
+    public static class TestComponent<T> extends PojoComponent<T, Object> {
 
         public TestComponent(URI componentId,
                              InstanceFactoryProvider<T> instanceFactoryProvider,
@@ -132,7 +132,7 @@
                              int initLevel,
                              long maxIdleTime,
                              long maxAge) {
-            super(componentId, instanceFactoryProvider, scopeContainer, initLevel, maxIdleTime, maxAge);
+            super(componentId, instanceFactoryProvider, scopeContainer, null, initLevel, maxIdleTime, maxAge);
         }
     }
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalComponentDefinition.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalComponentDefinition.java?view=diff&rev=519655&r1=519654&r2=519655
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalComponentDefinition.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/PhysicalComponentDefinition.java Sun Mar 18 11:06:51 2007
@@ -21,19 +21,23 @@
 import java.net.URI;
 
 import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.spi.model.Scope;
 
 /**
  * Represents a physical component model.
  *
  * @version $Rev$ $Date$
+ * @param <GROUP> the component group id type
  */
-public abstract class PhysicalComponentDefinition extends ModelObject {
+public abstract class PhysicalComponentDefinition<GROUP> extends ModelObject {
 
     // Component Id.
     private URI componentId;
-    
+    private Scope scope;
+    private GROUP groupId;
+
     // Instance factory provider
-    private InstanceFactoryProviderDefinition instanceFactoryProviderDefinition;
+    private InstanceFactoryProviderDefinition instanceFactoryProviderDefinition;// Scope
 
     /**
      * Gets the component id.
@@ -47,13 +51,29 @@
     /**
      * Sets the component id.
      *
-     * @param componentId
+     * @param componentId the component id
      */
     public void setComponentId(URI componentId) {
         this.componentId = componentId;
     }
 
     /**
+     * Returns the id of the component group this component belongs to.
+     * @return the id of the component group this component belongs to
+     */
+    public GROUP getGroupId() {
+        return groupId;
+    }
+
+    /**
+     * Sets the id of the component group this component belongs to.
+     * @param groupId the id of the component group this component belongs to
+     */
+    public void setGroupId(GROUP groupId) {
+        this.groupId = groupId;
+    }
+
+    /**
      * Gets the instance factory provider definition.
      * @return Instance factory provider definition.
      */
@@ -69,4 +89,23 @@
         this.instanceFactoryProviderDefinition = instanceFactoryProviderDefinition;
     }
 
+    /**
+     * Gets the scope for the component.
+     *
+     * @return The scope for the component.
+     */
+    @Deprecated
+    public Scope getScope() {
+        return scope;
+    }
+
+    /**
+     * Sets the scope for the component.
+     *
+     * @param scope The scope for the component.
+     */
+    @Deprecated
+    public void setScope(Scope scope) {
+        this.scope = scope;
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org