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