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 2007/05/08 03:30:42 UTC

svn commit: r536038 - in /incubator/tuscany/java/sca/modules: core-spi/src/main/java/org/apache/tuscany/core/ core/src/main/java/org/apache/tuscany/core/runtime/ host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/

Author: rfeng
Date: Mon May  7 18:30:41 2007
New Revision: 536038

URL: http://svn.apache.org/viewvc?view=rev&rev=536038
Log:
Use the RuntimeComponent to hold ScopeContainer

Modified:
    incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponent.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
    incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentImpl.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java
    incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java

Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponent.java?view=diff&rev=536038&r1=536037&r2=536038
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponent.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/core/RuntimeComponent.java Mon May  7 18:30:41 2007
@@ -20,6 +20,7 @@
 package org.apache.tuscany.core;
 
 import org.apache.tuscany.assembly.Component;
+import org.apache.tuscany.scope.ScopeContainer;
 import org.osoa.sca.ComponentContext;
 
 /**
@@ -28,11 +29,24 @@
  */
 public interface RuntimeComponent extends Component, ComponentContext {
     /**
+     * Set the implementation-specific configuration for this component
      * @param configuration
      */
     void setImplementationConfiguration(Object configuration);
     /**
+     * Get the implementation-specific configuation for this component
      * @return
      */
     Object getImplementationConfiguration();
+    
+    /**
+     * Set the associated scope container
+     * @param scopeContainer
+     */
+    void setScopeContainer(ScopeContainer scopeContainer);
+    /**
+     * Get the assoicated scope container
+     * @return
+     */
+    ScopeContainer getScopeContainer();
 }

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java?view=diff&rev=536038&r1=536037&r2=536038
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/DefaultCompositeActivator.java Mon May  7 18:30:41 2007
@@ -52,6 +52,7 @@
 import org.apache.tuscany.invocation.Interceptor;
 import org.apache.tuscany.invocation.InvocationChain;
 import org.apache.tuscany.scope.Scope;
+import org.apache.tuscany.scope.ScopeRegistry;
 import org.apache.tuscany.spi.component.WorkContext;
 import org.apache.tuscany.work.WorkScheduler;
 
@@ -62,6 +63,7 @@
 
     private final AssemblyFactory assemblyFactory;
     private final InterfaceContractMapper interfaceContractMapper;
+    private final ScopeRegistry scopeRegistry;
     private final WorkContext workContext;
     private final WorkScheduler workScheduler;
     private final RuntimeWireProcessor wireProcessor;
@@ -75,12 +77,14 @@
      */
     public DefaultCompositeActivator(AssemblyFactory assemblyFactory,
                                      InterfaceContractMapper interfaceContractMapper,
+                                     ScopeRegistry scopeRegistry,
                                      WorkContext workContext,
                                      WorkScheduler workScheduler,
                                      RuntimeWireProcessor wireProcessor) {
         super();
         this.assemblyFactory = assemblyFactory;
         this.interfaceContractMapper = interfaceContractMapper;
+        this.scopeRegistry = scopeRegistry;
         this.workContext = workContext;
         this.workScheduler = workScheduler;
         this.wireProcessor = wireProcessor;
@@ -493,7 +497,22 @@
         }
         return Scope.STATELESS;
     }
-
+    
+    private void setScopeContainer(Component component) {
+        if(!(component instanceof RuntimeComponent)) {
+            return;
+        }
+        RuntimeComponent runtimeComponent = (RuntimeComponent) component;
+        Implementation impl = component.getImplementation();
+        if (impl instanceof ScopedImplementationProvider) {
+            ScopedImplementationProvider provider = (ScopedImplementationProvider)impl;
+            Scope scope = provider.getScope();
+            if (scope == null) {
+                scope = Scope.STATELESS;
+            }
+            runtimeComponent.setScopeContainer(scopeRegistry.getScopeContainer(scope));
+        }
+    }    
     protected void buildComposite(Composite composite,
                                 AssemblyFactory assemblyFactory,
                                 InterfaceContractMapper interfaceContractMapper) throws CompositeBuilderException {

Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentImpl.java?view=diff&rev=536038&r1=536037&r2=536038
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/RuntimeComponentImpl.java Mon May  7 18:30:41 2007
@@ -30,6 +30,7 @@
 import org.apache.tuscany.core.component.ServiceReferenceImpl;
 import org.apache.tuscany.core.invocation.WireObjectFactory;
 import org.apache.tuscany.invocation.ProxyFactory;
+import org.apache.tuscany.scope.ScopeContainer;
 import org.osoa.sca.CallableReference;
 import org.osoa.sca.RequestContext;
 import org.osoa.sca.ServiceReference;
@@ -41,6 +42,7 @@
     public static final String SELF_REFERENCE_PREFIX = "$self$.";
     protected Object implementationConfiguration;
     protected ProxyFactory proxyService;
+    protected ScopeContainer scopeContainer;
 
     /**
      * @param proxyService
@@ -112,5 +114,13 @@
 
     public void setImplementationConfiguration(Object implementationConfiguration) {
         this.implementationConfiguration = implementationConfiguration;
+    }
+
+    public ScopeContainer getScopeContainer() {
+        return scopeContainer;
+    }
+
+    public void setScopeContainer(ScopeContainer scopeContainer) {
+        this.scopeContainer = scopeContainer;
     }
 }

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java?view=diff&rev=536038&r1=536037&r2=536038
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntime.java Mon May  7 18:30:41 2007
@@ -45,10 +45,10 @@
 import org.apache.tuscany.spi.component.WorkContextTunnel;
 
 public class ReallySmallRuntime {
-    
+
     private List<ModuleActivator> modules;
     private ExtensionPointRegistry registry;
-    
+
     private ClassLoader classLoader;
     private AssemblyFactory assemblyFactory;
     private ContributionService contributionService;
@@ -56,72 +56,82 @@
     private WorkContext workContext;
     private ThreadPoolWorkManager workManager;
     private ScopeRegistry scopeRegistry;
-    
+
     public ReallySmallRuntime(ClassLoader classLoader) {
         this.classLoader = classLoader;
     }
-    
+
     public void start() throws ActivationException {
 
         // Create our extension point registry
         registry = new DefaultExtensionPointRegistry();
-        
+
         // Create a work context
         workContext = ReallySmallRuntimeBuilder.createWorkContext(registry);
-        
+
         // Create a work manager
         workManager = new ThreadPoolWorkManager(10);
 
         // Create an interface contract mapper
         InterfaceContractMapper mapper = new DefaultInterfaceContractMapper();
-        
+
         // Create a proxy factory
         ProxyFactory proxyFactory = ReallySmallRuntimeBuilder.createProxyFactory(registry, workContext, mapper);
 
         // Create model factories
         assemblyFactory = new RuntimeAssemblyFactory(proxyFactory);
         PolicyFactory policyFactory = new DefaultPolicyFactory();
-        
+
         // Create a contribution service
-        contributionService = ReallySmallRuntimeBuilder.createContributionService(registry, assemblyFactory, policyFactory, mapper);
-        
-        // Create a composite activator
-        compositeActivator = ReallySmallRuntimeBuilder.createCompositeActivator(registry, assemblyFactory, mapper, workContext, workManager);
-        
+        contributionService = ReallySmallRuntimeBuilder.createContributionService(registry,
+                                                                                  assemblyFactory,
+                                                                                  policyFactory,
+                                                                                  mapper);
+
+        // Create the ScopeRegistry
         scopeRegistry = ReallySmallRuntimeBuilder.createScopeRegistry(registry);
-        
+
+        // Create a composite activator
+        compositeActivator = ReallySmallRuntimeBuilder.createCompositeActivator(registry,
+                                                                                assemblyFactory,
+                                                                                mapper,
+                                                                                scopeRegistry,
+                                                                                workContext,
+                                                                                workManager);
+
         // Start the runtime modules
         modules = startModules(registry, classLoader);
 
     }
-    
+
     public void stop() throws ActivationException {
 
-        //FIXME remove this
+        // FIXME remove this
         workContext.setIdentifier(Scope.COMPOSITE, null);
-        
+
         // Stop and destroy the work manager
         workManager.destroy();
-        
+
         // Stop the runtime modules
         stopModules(registry, modules);
     }
-    
+
     public ContributionService getContributionService() {
         return contributionService;
     }
-    
+
     public CompositeActivator getCompositeActivator() {
         return compositeActivator;
     }
-    
+
     public AssemblyFactory getAssemblyFactory() {
         return assemblyFactory;
     }
-    
+
     @SuppressWarnings("unchecked")
-    private List<ModuleActivator> startModules(ExtensionPointRegistry registry, ClassLoader classLoader) throws ActivationException {
-        
+    private List<ModuleActivator> startModules(ExtensionPointRegistry registry, ClassLoader classLoader)
+        throws ActivationException {
+
         // Load and instantiate the modules found on the classpath
         List<ModuleActivator> modules = ReallySmallRuntimeBuilder.getServices(classLoader, ModuleActivator.class);
         for (ModuleActivator module : modules) {
@@ -140,17 +150,17 @@
 
         return modules;
     }
-    
+
     private void stopModules(ExtensionPointRegistry registry, List<ModuleActivator> modules) {
-        for (ModuleActivator module: modules) {
+        for (ModuleActivator module : modules) {
             module.stop(registry);
         }
     }
 
-    //FIXME Remove this
+    // FIXME Remove this
     @SuppressWarnings("unchecked")
     public void startDomainWorkContext(Composite domain) {
-        workContext.setIdentifier(Scope.COMPOSITE, domain);        
+        workContext.setIdentifier(Scope.COMPOSITE, domain);
         WorkContextTunnel.setThreadWorkContext(workContext);
         try {
             scopeRegistry.getScopeContainer(Scope.COMPOSITE).startContext(domain, URI.create("/"));

Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=536038&r1=536037&r2=536038
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java Mon May  7 18:30:41 2007
@@ -87,59 +87,62 @@
 import commonj.work.WorkManager;
 
 public class ReallySmallRuntimeBuilder {
-    
+
     public static WorkContext createWorkContext(ExtensionPointRegistry registry) {
-        
+
         // Create a work context
         WorkContext workContext = new WorkContextImpl();
         registry.addExtensionPoint(WorkContext.class, workContext);
         WorkContextTunnel.setThreadWorkContext(workContext);
         return workContext;
     }
-    
+
     public static ProxyFactory createProxyFactory(ExtensionPointRegistry registry,
-                                            WorkContext workContext, InterfaceContractMapper mapper) {
+                                                  WorkContext workContext,
+                                                  InterfaceContractMapper mapper) {
 
         // Create a proxy factory
         ProxyFactory proxyFactory = new JDKProxyService(workContext, mapper);
 
-        //FIXME remove this
+        // FIXME remove this
         registry.addExtensionPoint(ProxyFactory.class, proxyFactory);
 
         return proxyFactory;
     }
-    
+
     public static CompositeActivator createCompositeActivator(ExtensionPointRegistry registry,
-                                                        AssemblyFactory assemblyFactory,
-                                                        InterfaceContractMapper mapper,
-                                                        WorkContext workContext,
-                                                        WorkManager workManager) {
+                                                              AssemblyFactory assemblyFactory,
+                                                              InterfaceContractMapper mapper,
+                                                              ScopeRegistry scopeRegistry,
+                                                              WorkContext workContext,
+                                                              WorkManager workManager) {
 
         // Create a work scheduler
         WorkScheduler workScheduler = new Jsr237WorkScheduler(workManager);
-        
+
         // Create a wire post processor extension point
         RuntimeWireProcessorExtensionPoint wireProcessors = new DefaultWireProcessorExtensionPoint();
         registry.addExtensionPoint(RuntimeWireProcessorExtensionPoint.class, wireProcessors);
         RuntimeWireProcessor wireProcessor = new ExtensibleWireProcessor(wireProcessors);
-        
+
         // Create the composite activator
-        CompositeActivator compositeActivator = new DefaultCompositeActivator(assemblyFactory, mapper, workContext,
-                                                           workScheduler, wireProcessor);
+        CompositeActivator compositeActivator = new DefaultCompositeActivator(assemblyFactory, mapper, scopeRegistry,
+                                                                              workContext, workScheduler, wireProcessor);
 
         return compositeActivator;
     }
-    
+
     /**
      * Create the contribution service used by this domain.
      * 
      * @throws ActivationException
      */
     public static ContributionService createContributionService(ExtensionPointRegistry registry,
-                                                          AssemblyFactory assemblyFactory,
-                                                          PolicyFactory policyFactory,
-                                                          InterfaceContractMapper mapper) throws ActivationException {
-        
+                                                                AssemblyFactory assemblyFactory,
+                                                                PolicyFactory policyFactory,
+                                                                InterfaceContractMapper mapper)
+        throws ActivationException {
+
         XMLInputFactory xmlFactory = XMLInputFactory.newInstance();
 
         // Create STAX artifact processor extension point
@@ -147,16 +150,20 @@
         registry.addExtensionPoint(StAXArtifactProcessorExtensionPoint.class, staxProcessors);
 
         // Create and register STAX processors for SCA assembly XML
-        ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory, XMLOutputFactory.newInstance());
-        staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper, staxProcessor));
+        ExtensibleStAXArtifactProcessor staxProcessor = new ExtensibleStAXArtifactProcessor(staxProcessors, xmlFactory,
+                                                                                            XMLOutputFactory
+                                                                                                .newInstance());
+        staxProcessors.addArtifactProcessor(new CompositeProcessor(assemblyFactory, policyFactory, mapper,
+                                                                   staxProcessor));
         staxProcessors.addArtifactProcessor(new ComponentTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
-        staxProcessors.addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
+        staxProcessors
+            .addArtifactProcessor(new ConstrainingTypeProcessor(assemblyFactory, policyFactory, staxProcessor));
 
         // Create URL artifact processor extension point
-        //FIXME use the interface instead of the class
+        // FIXME use the interface instead of the class
         DefaultURLArtifactProcessorExtensionPoint documentProcessors = new DefaultURLArtifactProcessorExtensionPoint();
         registry.addExtensionPoint(URLArtifactProcessorExtensionPoint.class, documentProcessors);
-        
+
         // Create and register document processors for SCA assembly XML
         XMLInputFactory inputFactory = XMLInputFactory.newInstance();
         documentProcessors.addArtifactProcessor(new CompositeDocumentProcessor(staxProcessor, inputFactory));
@@ -166,7 +173,7 @@
         // Create contribution package processor extension point
         PackageTypeDescriberImpl describer = new PackageTypeDescriberImpl();
         PackageProcessorExtensionPoint packageProcessors = new DefaultPackageProcessorExtensionPoint();
-        PackageProcessor packageProcessor = new ExtensiblePackageProcessor(packageProcessors ,describer);
+        PackageProcessor packageProcessor = new ExtensiblePackageProcessor(packageProcessors, describer);
         registry.addExtensionPoint(PackageProcessorExtensionPoint.class, packageProcessors);
 
         // Register base package processors
@@ -183,16 +190,12 @@
 
         ContributionFactory contributionFactory = new ContributionFactoryImpl();
         ExtensibleURLArtifactProcessor documentProcessor = new ExtensibleURLArtifactProcessor(documentProcessors);
-        ContributionService contributionService = new ContributionServiceImpl(
-                                                                              repository, packageProcessor,
-                                                                              documentProcessor,
-                                                                              assemblyFactory,
-                                                                              contributionFactory,
-                                                                              xmlFactory);
+        ContributionService contributionService = new ContributionServiceImpl(repository, packageProcessor,
+                                                                              documentProcessor, assemblyFactory,
+                                                                              contributionFactory, xmlFactory);
         return contributionService;
     }
 
-    
     public static ScopeRegistry createScopeRegistry(ExtensionPointRegistry registry) {
         ScopeRegistry scopeRegistry = new ScopeRegistryImpl();
         AbstractScopeContainer[] containers = new AbstractScopeContainer[] {new CompositeScopeContainer(),



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