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/17 22:38:06 UTC

svn commit: r519446 [3/3] - in /incubator/tuscany/java/sca: kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/ kernel/core/src/main/java/org/apache/tuscany/core/component/scope/ kernel/core/src/main/java/org/apache/tuscany/core/deployer/ kern...

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeContainer.java Sat Mar 17 14:38:00 2007
@@ -56,33 +56,35 @@
     void removeGroup(GROUP groupId);
 
     /**
-     * Start a new context with the supplied ID.
+     * Registers a component with the scope.
      *
-     * @param contextId an ID that uniquely identifies the context.
+     * @param component the component to register
+     * @param groupId the id of the group to associate this component with
      */
-    void startContext(KEY contextId);
+    <T> void register(AtomicComponent<T> component, GROUP groupId);
 
     /**
-     * Stop the context with the supplied ID.
+     * Unregisters a component with the scope.
      *
-     * @param contextId an ID that uniquely identifies the context.
+     * @param component the component to unregister
      */
-    void stopContext(KEY contextId);
+    <T> void unregister(AtomicComponent<T> component);
 
     /**
-     * Registers a component with the scope.
+     * Start a new context with the supplied ID.
      *
-     * @param groupId the id for the group that this component is associated with
-     * @param component the component to register
+     * @param contextId an ID that uniquely identifies the context.
+     * @param groupId the group of components to associate with this context
+     * @throws GroupInitializationException if an exception was thrown by any eagerInit component
      */
-    void register(GROUP groupId, AtomicComponent component);
+    void startContext(KEY contextId, GROUP groupId) throws GroupInitializationException;
 
     /**
-     * Unregisters a component with the scope.
+     * Stop the context with the supplied ID.
      *
-     * @param component the component to unregister
+     * @param contextId an ID that uniquely identifies the context.
      */
-    void unregister(AtomicComponent component);
+    void stopContext(KEY contextId);
 
     /**
      * Returns an instance wrapper associated with the current scope context, creating one if necessary
@@ -93,7 +95,7 @@
      * @return the wrapper for the target instance
      * @throws TargetResolutionException if there was a problem instantiating the target instance
      */
-    <T> InstanceWrapper<T> getWrapper(AtomicComponent component, KEY contextId) throws TargetResolutionException;
+    <T> InstanceWrapper<T> getWrapper(AtomicComponent<T> component, KEY contextId) throws TargetResolutionException;
 
     /**
      * Returns an implementation instance associated with the current scope context.
@@ -105,7 +107,7 @@
      * @return the wrapper for the target instance
      * @throws TargetResolutionException if there was a problem instantiating the target instance
      */
-    <T> InstanceWrapper<T> getAssociatedWrapper(AtomicComponent component, KEY contextId)
+    <T> InstanceWrapper<T> getAssociatedWrapper(AtomicComponent<T> component, KEY contextId)
         throws TargetResolutionException;
 
     /**
@@ -117,7 +119,7 @@
      * @param wrapper the wrapper for the target instance being returned
      * @throws TargetDestructionException if there was a problem returning the target instance
      */
-    <T> void returnWrapper(AtomicComponent component, InstanceWrapper<T> wrapper, KEY contextId)
+    <T> void returnWrapper(AtomicComponent<T> component, InstanceWrapper<T> wrapper, KEY contextId)
         throws TargetDestructionException;
 
     /**
@@ -160,5 +162,5 @@
      * @param component the owning component
      * @throws PersistenceException if there was a problem removing the instance
      */
-    void remove(AtomicComponent component) throws PersistenceException;
+    <T> void remove(AtomicComponent<T> component) throws PersistenceException;
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/ScopeRegistry.java Sat Mar 17 14:38:00 2007
@@ -18,7 +18,6 @@
  */
 package org.apache.tuscany.spi.component;
 
-import org.apache.tuscany.spi.ObjectFactory;
 import org.apache.tuscany.spi.model.Scope;
 
 /**
@@ -36,8 +35,5 @@
      */
     ScopeContainer getScopeContainer(Scope scope);
 
-    <T extends ScopeContainer> void registerFactory(Scope scope, ObjectFactory<T> factory);
-
-    void deregisterFactory(Scope scope);
-
+    void register(ScopeContainer container);
 }

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/DeploymentContext.java Sat Mar 17 14:38:00 2007
@@ -59,7 +59,14 @@
      *
      * @return the ScopeContainer for the COMPOSITE scope that will be associated with this deployment unit
      */
+    @Deprecated
     ScopeContainer getCompositeScope();
+
+    /**
+     * Returns the URI of the composite scope group.
+     * @return the URI of the composite scope group
+     */
+    URI getGroupId();
 
     /**
      * Returns the location of the SCDL definition being deployed.

Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java Sat Mar 17 14:38:00 2007
@@ -38,24 +38,32 @@
     protected Scope scope;
     protected ProxyService proxyService;
     protected WorkContext workContext;
+    protected final URI groupId;
     private final int initLevel;
     private final long maxIdleTime;
     private final long maxAge;
 
-    protected AtomicComponentExtension(URI name, ProxyService proxyService, WorkContext workContext, int initLevel) {
-        this(name, proxyService, workContext, initLevel, -1, -1);
+    protected AtomicComponentExtension(URI name,
+                                       ProxyService proxyService,
+                                       WorkContext workContext,
+                                       URI groupId,
+                                       int initLevel) {
+        this(name, proxyService, workContext, groupId, initLevel, -1, -1);
     }
 
     protected AtomicComponentExtension(URI name,
                                        ProxyService proxyService,
                                        WorkContext workContext,
+                                       URI groupId,
                                        int initLevel,
                                        long maxIdleTime,
                                        long maxAge) {
         super(name);
+        assert groupId != null;
         assert !(maxIdleTime > 0 && maxAge > 0);
         this.proxyService = proxyService;
         this.workContext = workContext;
+        this.groupId = groupId;
         this.initLevel = initLevel;
         this.maxIdleTime = maxIdleTime;
         this.maxAge = maxAge;
@@ -88,7 +96,7 @@
 
     public void start() throws CoreRuntimeException {
         super.start();
-        scopeContainer.register(null, this);
+        scopeContainer.register(this, groupId);
     }
 
     public void stop() {

Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java Sat Mar 17 14:38:00 2007
@@ -66,7 +66,7 @@
     private static class TestExtension extends AtomicComponentExtension {
 
         public TestExtension(URI uri) {
-            super(uri, null, null, 0, -1, -1);
+            super(uri, null, null, URI.create("composite"), 0, -1, -1);
         }
 
         public TargetInvoker createTargetInvoker(String targetName, Operation operation)

Modified: incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java (original)
+++ incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/MavenEmbeddedRuntime.java Sat Mar 17 14:38:00 2007
@@ -22,10 +22,12 @@
 import java.util.Collection;
 
 import org.apache.tuscany.spi.component.Component;
+import org.apache.tuscany.spi.component.GroupInitializationException;
 import org.apache.tuscany.spi.deployer.Deployer;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.CompositeImplementation;
 import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.services.artifact.ArtifactRepository;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
@@ -63,9 +65,18 @@
         return deployer.deploy(null, definition);
     }
 
-    public void executeTest(URI componentId, Operation<?> operation) throws Exception {
+    public void startContext(URI compositeId) throws GroupInitializationException {
+        getScopeRegistry().getScopeContainer(Scope.COMPOSITE).startContext(compositeId, compositeId);
+    }
+
+    public void executeTest(URI contextId, URI componentId, Operation<?> operation) throws Exception {
         Component testComponent = getComponentManager().getComponent(componentId);
         TargetInvoker targetInvoker = testComponent.createTargetInvoker("testService", operation);
-        targetInvoker.invokeTarget(null, TargetInvoker.NONE);
+        getWorkContext().setIdentifier(Scope.COMPOSITE, contextId);
+        try {
+            targetInvoker.invokeTarget(null, TargetInvoker.NONE);
+        } finally {
+            getWorkContext().setIdentifier(Scope.COMPOSITE, null);
+        }
     }
 }

Modified: incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/SCATestSet.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/SCATestSet.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/SCATestSet.java (original)
+++ incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/SCATestSet.java Sat Mar 17 14:38:00 2007
@@ -36,13 +36,19 @@
 public class SCATestSet implements SurefireTestSet {
     private final MavenEmbeddedRuntime runtime;
     private final String name;
-    private final URI uri;
+    private final URI contextId;
+    private final URI componentId;
     private final Collection<? extends Operation<?>> operations;
 
-    public SCATestSet(MavenEmbeddedRuntime runtime, String name, URI uri, Collection<? extends Operation<?>> operations) {
+    public SCATestSet(MavenEmbeddedRuntime runtime, 
+                      String name,
+                      URI contextId,
+                      URI uri,
+                      Collection<? extends Operation<?>> operations) {
         this.runtime = runtime;
         this.name = name;
-        this.uri = uri;
+        this.contextId = contextId;
+        this.componentId = uri;
         this.operations = operations;
     }
 
@@ -51,7 +57,7 @@
             String operationName = operation.getName();
             reporterManager.testStarting(new ReportEntry(this, operationName, name));
             try {
-                runtime.executeTest(uri, operation);
+                runtime.executeTest(contextId, componentId, operation);
                 reporterManager.testSucceeded(new ReportEntry(this, operationName, name));
             } catch (Exception e) {
                 StackTraceWriter stw = new PojoStackTraceWriter(name, operationName, e);

Modified: incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/TuscanyITestMojo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/TuscanyITestMojo.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/TuscanyITestMojo.java (original)
+++ incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/TuscanyITestMojo.java Sat Mar 17 14:38:00 2007
@@ -235,6 +235,8 @@
                 for (Component component : testComponent) {
                     component.start();
                 }
+
+                runtime.startContext(componentName);
             } catch (Exception e) {
                 monitor.runError(e);
                 throw new MojoExecutionException("Error deploying test component " + testScdl, e);
@@ -386,6 +388,7 @@
                                                 URI uriBase) throws MojoExecutionException {
         SCATestSuite suite = new SCATestSuite();
 
+        URI contextId = definition.getUri();
         CompositeImplementation impl = definition.getImplementation();
         CompositeComponentType<?,?,?> componentType = impl.getComponentType();
         Map<String, ComponentDefinition<? extends Implementation<?>>> components = componentType.getComponents();
@@ -395,7 +398,7 @@
             Implementation<?> implementation = junitDefinition.getImplementation();
             if (ImplementationJUnit.class.isAssignableFrom(implementation.getClass())) {
                 URI uri = uriBase.resolve(name);
-                SCATestSet testSet = createTestSet(runtime, name, uri, junitDefinition);
+                SCATestSet testSet = createTestSet(runtime, name, contextId, uri, junitDefinition);
                 suite.add(testSet);
             }
         }
@@ -404,6 +407,7 @@
 
     protected SCATestSet createTestSet(MavenEmbeddedRuntime runtime,
                                        String name,
+                                       URI contextId,
                                        URI uri,
                                        ComponentDefinition definition) throws MojoExecutionException {
         ImplementationJUnit impl = (ImplementationJUnit) definition.getImplementation();
@@ -414,7 +418,7 @@
             throw new MojoExecutionException("No testService defined on component: " + definition.getUri());
         }
         Map<String, ? extends Operation<?>> operations = testService.getServiceContract().getOperations();
-        return new SCATestSet(runtime, name, uri, operations.values());
+        return new SCATestSet(runtime, name, contextId, uri, operations.values());
     }
 
     public interface MojoMonitor {

Modified: incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/implementation/junit/JUnitComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/implementation/junit/JUnitComponentBuilder.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/implementation/junit/JUnitComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/runtime/itest/plugin/src/main/java/org/apache/tuscany/sca/plugin/itest/implementation/junit/JUnitComponentBuilder.java Sat Mar 17 14:38:00 2007
@@ -89,6 +89,7 @@
         configuration.setProxyService(proxyService);
         configuration.setWorkContext(workContext);
         configuration.setImplementationClass(implClass);
+        configuration.setGroupId(deployment.getGroupId());
 
         // setup property injection sites
         for (JavaMappedProperty<?> property : componentType.getProperties().values()) {

Modified: incubator/tuscany/java/sca/runtime/itest/plugin/src/main/resources/META-INF/tuscany/embeddedMaven.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/itest/plugin/src/main/resources/META-INF/tuscany/embeddedMaven.scdl?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/itest/plugin/src/main/resources/META-INF/tuscany/embeddedMaven.scdl (original)
+++ incubator/tuscany/java/sca/runtime/itest/plugin/src/main/resources/META-INF/tuscany/embeddedMaven.scdl Sat Mar 17 14:38:00 2007
@@ -33,7 +33,7 @@
     </component>
 
     <!-- Work management -->
-    <component name="workContext">
+    <component name="WorkContext">
         <system:implementation.system class="org.apache.tuscany.core.component.WorkContextImpl"/>
     </component>
 
@@ -42,11 +42,6 @@
         <system:implementation.system class="org.apache.tuscany.core.wire.jdk.JDKProxyService"/>
     </component>
 
-    <!-- Scope infrastructure -->
-    <component name="scopeRegistry">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.ScopeRegistryImpl"/>
-    </component>
-
     <!-- Builder and BuilderRegistry -->
     <component name="builder">
         <system:implementation.system class="org.apache.tuscany.core.builder.BuilderRegistryImpl"/>
@@ -87,19 +82,21 @@
     </component>
 
     <!-- Default scopes -->
-    <component name="scope.module">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.CompositeScopeObjectFactory"/>
-    </component>
+<!--
     <component name="scope.stateless">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeContainer"/>
     </component>
+-->
+<!--
     <component name="scope.request">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeContainer"/>
     </component>
-
+-->
+<!--
     <component name="scope.conversational">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeContainer"/>
     </component>
+-->
 
     <!-- include loader configuration -->
     <include name="org.apache.tuscany.core.Loader" scdlResource="org/apache/tuscany/core/loader.scdl"/>

Modified: incubator/tuscany/java/sca/runtime/itest/smoketest/src/main/java/org/apache/tuscany/sca/runtime/itest/smoketest/HelloServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/itest/smoketest/src/main/java/org/apache/tuscany/sca/runtime/itest/smoketest/HelloServiceImpl.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/itest/smoketest/src/main/java/org/apache/tuscany/sca/runtime/itest/smoketest/HelloServiceImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/itest/smoketest/src/main/java/org/apache/tuscany/sca/runtime/itest/smoketest/HelloServiceImpl.java Sat Mar 17 14:38:00 2007
@@ -19,10 +19,12 @@
 package org.apache.tuscany.sca.runtime.itest.smoketest;
 
 import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Scope;
 
 /**
  * @version $Rev$ $Date$
  */
+@Scope("COMPOSITE")
 public class HelloServiceImpl implements HelloService {
     private final String greeting;
 

Modified: incubator/tuscany/java/sca/runtime/itest/smoketest/src/test/java/org/apache/tuscany/sca/runtime/itest/smoketest/BasicTestComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/itest/smoketest/src/test/java/org/apache/tuscany/sca/runtime/itest/smoketest/BasicTestComponent.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/itest/smoketest/src/test/java/org/apache/tuscany/sca/runtime/itest/smoketest/BasicTestComponent.java (original)
+++ incubator/tuscany/java/sca/runtime/itest/smoketest/src/test/java/org/apache/tuscany/sca/runtime/itest/smoketest/BasicTestComponent.java Sat Mar 17 14:38:00 2007
@@ -20,10 +20,12 @@
 
 import junit.framework.TestCase;
 import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
 
 /**
  * @version $Rev$ $Date$
  */
+@Scope("COMPOSITE")
 public class BasicTestComponent extends TestCase {
     @Reference
     public HelloService hello;

Modified: incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/admin/system.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/admin/system.scdl?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/admin/system.scdl (original)
+++ incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/admin/system.scdl Sat Mar 17 14:38:00 2007
@@ -82,20 +82,24 @@
     </component>
     
     <!-- Default scopes -->
-    <component name="scope.module">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.CompositeScopeObjectFactory"/>
+    <component name="scope.composite">
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.CompositeScopeContainer"/>
     </component>
 
     <component name="scope.stateless">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeContainer"/>
     </component>
+<!--
     <component name="scope.request">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeContainer"/>
     </component>
+-->
 
+<!--
     <component name="scope.conversational">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeContainer"/>
     </component>
+-->
 
     <!-- include loader configuration -->
     <include name="org.apache.tuscany.core.Loader" scdlResource="org/apache/tuscany/core/loader.scdl"/>

Modified: incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl (original)
+++ incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl Sat Mar 17 14:38:00 2007
@@ -33,7 +33,7 @@
     </component>
 
     <!-- Work management -->
-    <component name="workContext">
+    <component name="WorkContext">
         <system:implementation.system class="org.apache.tuscany.core.component.WorkContextImpl"/>
     </component>
 
@@ -42,11 +42,6 @@
         <system:implementation.system class="org.apache.tuscany.core.wire.jdk.JDKProxyService"/>
     </component>
 
-    <!-- Scope infrastructure -->
-    <component name="scopeRegistry">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.ScopeRegistryImpl"/>
-    </component>
-
     <!-- Store infrastructure -->
     <component name="store">
         <system:implementation.system class="org.apache.tuscany.core.services.store.memory.MemoryStore"/>
@@ -82,20 +77,19 @@
     </component>
     
     <!-- Default scopes -->
-    <component name="scope.module">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.CompositeScopeObjectFactory"/>
-    </component>
-
     <component name="scope.stateless">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeContainer"/>
     </component>
+<!--
     <component name="scope.request">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeContainer"/>
     </component>
-
+-->
+<!--
     <component name="scope.conversational">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeContainer"/>
     </component>
+-->
 
     <!-- include loader configuration -->
     <include name="org.apache.tuscany.core.Loader" scdlResource="org/apache/tuscany/core/loader.scdl"/>

Modified: incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/HelloServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/HelloServiceImpl.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/HelloServiceImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/HelloServiceImpl.java Sat Mar 17 14:38:00 2007
@@ -19,10 +19,12 @@
 package org.apache.tuscany.sca.runtime.standalone.smoketest;
 
 import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Scope;
 
 /**
  * @version $Rev$ $Date$
  */
+@Scope("COMPOSITE")
 public class HelloServiceImpl implements HelloService {
     private final String greeting;
 

Modified: incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/Launched.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/Launched.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/Launched.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/smoketest/src/main/java/org/apache/tuscany/sca/runtime/standalone/smoketest/Launched.java Sat Mar 17 14:38:00 2007
@@ -19,10 +19,12 @@
 package org.apache.tuscany.sca.runtime.standalone.smoketest;
 
 import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Scope;
 
 /**
  * @version $Rev$ $Date$
  */
+@Scope("COMPOSITE")
 public class Launched {
     private HelloService hello;
 

Modified: incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java Sat Mar 17 14:38:00 2007
@@ -26,6 +26,8 @@
 
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.component.ScopeRegistry;
+import org.apache.tuscany.spi.component.ScopeContainer;
 import org.apache.tuscany.spi.implementation.java.JavaMappedService;
 import org.apache.tuscany.spi.implementation.java.PojoComponentType;
 import org.apache.tuscany.spi.model.ComponentDefinition;
@@ -33,6 +35,7 @@
 import org.apache.tuscany.spi.model.CompositeImplementation;
 import org.apache.tuscany.spi.model.Implementation;
 import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.TargetInvoker;
 
 import org.apache.tuscany.core.monitor.JavaLoggingMonitorFactory;
@@ -80,7 +83,16 @@
             for (Component component : components) {
                 component.start();
             }
-            return run(impl, args, compositeBase);
+            ScopeRegistry scopeRegistry = getScopeRegistry();
+            ScopeContainer<URI, URI> container = scopeRegistry.getScopeContainer(Scope.COMPOSITE);
+            container.startContext(compositeUri, compositeUri);
+            getWorkContext().setIdentifier(Scope.COMPOSITE, compositeUri);
+            try {
+                return run(impl, args, compositeBase);
+            } finally {
+                container.stopContext(compositeUri);
+                getWorkContext().setIdentifier(Scope.COMPOSITE, null);
+            }
         } catch (Exception e) {
             monitor.runError(e);
         }

Modified: incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedComponentBuilder.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedComponentBuilder.java Sat Mar 17 14:38:00 2007
@@ -94,6 +94,7 @@
         configuration.setProxyService(proxyService);
         configuration.setWorkContext(workContext);
         configuration.setImplementationClass(implClass);
+        configuration.setGroupId(deployment.getGroupId());
 
         // setup property injection sites
         for (JavaMappedProperty<?> property : componentType.getProperties().values()) {

Modified: incubator/tuscany/java/sca/runtime/webapp/smoketest/src/main/java/org/apache/tuscany/sca/runtime/webapp/smoketest/HelloServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp/smoketest/src/main/java/org/apache/tuscany/sca/runtime/webapp/smoketest/HelloServiceImpl.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp/smoketest/src/main/java/org/apache/tuscany/sca/runtime/webapp/smoketest/HelloServiceImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/webapp/smoketest/src/main/java/org/apache/tuscany/sca/runtime/webapp/smoketest/HelloServiceImpl.java Sat Mar 17 14:38:00 2007
@@ -19,10 +19,12 @@
 package org.apache.tuscany.sca.runtime.webapp.smoketest;
 
 import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Scope;
 
 /**
  * @version $Rev$ $Date$
  */
+@Scope("COMPOSITE")
 public class HelloServiceImpl implements HelloService {
     private final String greeting;
 

Modified: incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/WebappRuntimeImpl.java Sat Mar 17 14:38:00 2007
@@ -32,9 +32,13 @@
 import org.apache.tuscany.spi.builder.BuilderException;
 import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.ComponentException;
+import org.apache.tuscany.spi.component.ScopeRegistry;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.GroupInitializationException;
 import org.apache.tuscany.spi.loader.LoaderException;
 import org.apache.tuscany.spi.model.ComponentDefinition;
 import org.apache.tuscany.spi.model.CompositeImplementation;
+import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.resolver.ResolutionException;
 
 /**
@@ -132,8 +136,16 @@
             component.start();
         }
 
-        compositeId = URI.create(compositeId.toString()+'/');
-        componentId = compositeId.resolve(componentId);
+        try {
+            ScopeRegistry scopeRegistry = getScopeRegistry();
+            ScopeContainer<URI, URI> container = scopeRegistry.getScopeContainer(Scope.COMPOSITE);
+            container.startContext(compositeId, compositeId);
+            getWorkContext().setIdentifier(Scope.COMPOSITE, compositeId);
+        } catch (GroupInitializationException e) {
+            throw new InitializationException(e);
+        }
+
+        componentId = URI.create(compositeId.toString()+'/').resolve(componentId);
         Component component = getComponentManager().getComponent(componentId);
         if (component == null) {
             throw new TuscanyInitException("No component found with id " + componentId, componentId.toString());

Modified: incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappBuilder.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappBuilder.java (original)
+++ incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappBuilder.java Sat Mar 17 14:38:00 2007
@@ -60,6 +60,6 @@
             referenceTypes.put(name, type);
         }
 
-        return new WebappComponent(uri, proxyService, workContext, attributes, referenceTypes);
+        return new WebappComponent(uri, proxyService, workContext, context.getGroupId(), attributes, referenceTypes);
     }
 }

Modified: incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappComponent.java?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappComponent.java (original)
+++ incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/java/org/apache/tuscany/runtime/webapp/implementation/webapp/WebappComponent.java Sat Mar 17 14:38:00 2007
@@ -59,9 +59,10 @@
     public WebappComponent(URI name,
                            ProxyService proxyService,
                            WorkContext workContext,
+                           URI groupId,
                            Map<String, ObjectFactory<?>> attributes,
                            Map<String, Class<?>> referenceTypes) {
-        super(name, proxyService, workContext, 0, 0, 0);
+        super(name, proxyService, workContext, groupId, 0, 0, 0);
         this.propertyFactories = attributes;
         this.referenceTypes = referenceTypes;
         referenceFactories = new ConcurrentHashMap<String, Wire>(referenceTypes.size());

Modified: incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/resources/META-INF/tuscany/webapp.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/resources/META-INF/tuscany/webapp.scdl?view=diff&rev=519446&r1=519445&r2=519446
==============================================================================
--- incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/resources/META-INF/tuscany/webapp.scdl (original)
+++ incubator/tuscany/java/sca/runtime/webapp/webapp-host/src/main/resources/META-INF/tuscany/webapp.scdl Sat Mar 17 14:38:00 2007
@@ -33,7 +33,7 @@
     </component>
 
     <!-- Work management -->
-    <component name="workContext">
+    <component name="WorkContext">
         <system:implementation.system class="org.apache.tuscany.core.component.WorkContextImpl"/>
     </component>
 
@@ -42,11 +42,6 @@
         <system:implementation.system class="org.apache.tuscany.core.wire.jdk.JDKProxyService"/>
     </component>
 
-    <!-- Scope infrastructure -->
-    <component name="scopeRegistry">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.ScopeRegistryImpl"/>
-    </component>
-
     <!-- Builder and BuilderRegistry -->
     <component name="builder">
         <system:implementation.system class="org.apache.tuscany.core.builder.BuilderRegistryImpl"/>
@@ -87,25 +82,29 @@
     </component>
 
     <!-- Default scopes -->
-    <component name="scope.module">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.CompositeScopeObjectFactory"/>
-    </component>
-
+<!--
     <component name="scope.stateless">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.StatelessScopeContainer"/>
     </component>
+-->
 
+<!--
     <component name="scope.httpsession">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.HttpSessionScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.HttpSessionScopeContainer"/>
     </component>
+-->
 
+<!--
     <component name="scope.request">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.RequestScopeContainer"/>
     </component>
+-->
 
+<!--
     <component name="scope.conversational">
-        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeObjectFactory"/>
+        <system:implementation.system class="org.apache.tuscany.core.component.scope.ConversationalScopeContainer"/>
     </component>
+-->
 
     <!-- include loader configuration -->
     <include name="org.apache.tuscany.launcher.Loader" scdlResource="org/apache/tuscany/core/loader.scdl"/>



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