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/04/07 01:29:59 UTC
svn commit: r526320 - in /incubator/tuscany/java/sca/modules:
core-spi/src/main/java/org/apache/tuscany/spi/deployer/ core/
core/src/main/java/org/apache/tuscany/core/bootstrap/
core/src/main/java/org/apache/tuscany/core/component/ core/src/main/java/o...
Author: rfeng
Date: Fri Apr 6 16:29:57 2007
New Revision: 526320
URL: http://svn.apache.org/viewvc?view=rev&rev=526320
Log:
[Work in progress] Integrate the core with Contribution Service
Added:
incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/PojoWorkContextTunnel.java (with props)
Removed:
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/resolver/
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/util/FileHelper.java
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/deployer/
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/integration/
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/launcher/
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/resolver/
incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDComponentTypeLoader.java
Modified:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
incubator/tuscany/java/sca/modules/core/pom.xml
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java
incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessor.java
incubator/tuscany/java/sca/modules/runtime-embedded/pom.xml
incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/DefaultSCARuntime.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeInfoImpl.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDAtomicComponent.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDComponentBuilder.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementationLoader.java
incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDTargetInvoker.java
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java Fri Apr 6 16:29:57 2007
@@ -20,6 +20,7 @@
import java.util.Collection;
+import org.apache.tuscany.assembly.Composite;
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentException;
@@ -44,6 +45,6 @@
* assembly
* @return the newly deployed component
*/
- Collection<Component> deploy(Component parent, org.apache.tuscany.assembly.Component componentDefinition)
+ Collection<Component> deploy(Component parent, Composite composite)
throws BuilderException, ComponentException, ResolutionException;
}
Modified: incubator/tuscany/java/sca/modules/core/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/pom.xml?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/core/pom.xml Fri Apr 6 16:29:57 2007
@@ -34,12 +34,20 @@
<artifactId>tuscany-core-spi</artifactId>
<version>${project.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-contribution</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-idl-java</artifactId>
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
+
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>wstx-asl</artifactId>
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java Fri Apr 6 16:29:57 2007
@@ -18,9 +18,8 @@
*/
package org.apache.tuscany.core.bootstrap;
-import org.apache.tuscany.core.resolver.AutowireResolver;
import org.apache.tuscany.host.MonitorFactory;
-import org.apache.tuscany.spi.builder.Connector;
+import org.apache.tuscany.services.spi.contribution.ContributionService;
import org.apache.tuscany.spi.component.ComponentManager;
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.deployer.Deployer;
@@ -47,7 +46,7 @@
*
* @return a new primordial Deployer
*/
- Deployer createDeployer();
+ Deployer createDeployer(ExtensionRegistry registry);
/**
* Create a ScopeRegistry that supports the Scopes supported for primordial components
@@ -56,21 +55,6 @@
*/
ScopeRegistry getScopeRegistry();
- /**
- * Create a Connector that can wire together primordial components.
- *
- * @return a new primordial Connector
- */
- Connector getConnector();
-
- /**
- * Returns the AutowireResolver that resolves autowire targets
- *
- * @return the AutowireResolver that resolves autowire targets
- */
- AutowireResolver getAutowireResolver();
-
ComponentManager getComponentManager();
- ExtensionRegistry getExtensionRegistry();
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java Fri Apr 6 16:29:57 2007
@@ -23,7 +23,6 @@
import org.apache.tuscany.core.binding.local.LocalBindingBuilder;
import org.apache.tuscany.core.binding.local.LocalBindingDefinition;
import org.apache.tuscany.core.builder.BuilderRegistryImpl;
-import org.apache.tuscany.core.builder.ConnectorImpl;
import org.apache.tuscany.core.component.ComponentManagerImpl;
import org.apache.tuscany.core.component.scope.AbstractScopeContainer;
import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
@@ -32,12 +31,9 @@
import org.apache.tuscany.core.component.scope.StatelessScopeContainer;
import org.apache.tuscany.core.deployer.DeployerImpl;
import org.apache.tuscany.core.implementation.composite.CompositeBuilder;
-import org.apache.tuscany.core.resolver.AutowireResolver;
-import org.apache.tuscany.core.resolver.DefaultAutowireResolver;
-import org.apache.tuscany.core.wire.IDLMappingService;
import org.apache.tuscany.host.MonitorFactory;
+import org.apache.tuscany.services.spi.contribution.ContributionService;
import org.apache.tuscany.spi.builder.BuilderRegistry;
-import org.apache.tuscany.spi.builder.Connector;
import org.apache.tuscany.spi.component.ComponentManager;
import org.apache.tuscany.spi.component.ScopeContainerMonitor;
import org.apache.tuscany.spi.component.ScopeRegistry;
@@ -53,11 +49,7 @@
private final MonitorFactory monitorFactory;
private final XMLInputFactory xmlFactory;
private final ComponentManager componentManager;
- private final AutowireResolver resolver;
- private final Connector connector;
private final ScopeRegistry scopeRegistry;
- private final ExtensionRegistry extensionRegistry;
-
/**
* Create a default bootstrapper.
*
@@ -71,26 +63,18 @@
*/
public DefaultBootstrapper(MonitorFactory monitorFactory,
XMLInputFactory xmlFactory,
- ComponentManager componentManager,
- AutowireResolver resolver,
- Connector connector) {
+ ComponentManager componentManager) {
this.monitorFactory = monitorFactory;
this.xmlFactory = xmlFactory;
this.componentManager = componentManager;
- this.resolver = resolver;
- this.connector = connector;
this.scopeRegistry = createScopeRegistry();
- this.extensionRegistry = new ExtensionRegistryImpl();
}
public DefaultBootstrapper(MonitorFactory monitorFactory) {
this.monitorFactory = monitorFactory;
this.xmlFactory = XMLInputFactory.newInstance("javax.xml.stream.XMLInputFactory", getClass().getClassLoader());
- this.resolver = new DefaultAutowireResolver(new IDLMappingService());
- this.componentManager = new ComponentManagerImpl(null, this.resolver);
- this.connector = new ConnectorImpl(componentManager);
+ this.componentManager = new ComponentManagerImpl(null);
this.scopeRegistry = createScopeRegistry();
- this.extensionRegistry = new ExtensionRegistryImpl();
}
/**
@@ -108,11 +92,10 @@
*
* @return the primordial deployer
*/
- public Deployer createDeployer() {
+ public Deployer createDeployer(ExtensionRegistry extensionRegistry) {
ScopeRegistry scopeRegistry = getScopeRegistry();
BuilderRegistry builder = createBuilder(scopeRegistry);
- DeployerImpl deployer = new DeployerImpl(xmlFactory, builder, componentManager, resolver, connector);
- deployer.setMonitor(getMonitorFactory().getMonitor(ScopeContainerMonitor.class));
+ DeployerImpl deployer = new DeployerImpl(xmlFactory, builder, componentManager);
deployer.setScopeRegistry(getScopeRegistry());
extensionRegistry.addExtension(ScopeRegistry.class, scopeRegistry);
extensionRegistry.addExtension(BuilderRegistry.class, builder);
@@ -146,21 +129,6 @@
}
/**
- * Create a new Connector that can be used to wire primordial components
- * together.
- *
- * @return a new Connector
- */
- public Connector getConnector() {
- return connector;
- }
-
- public AutowireResolver getAutowireResolver() {
- return resolver;
- }
-
-
- /**
* Create a Builder that can be used to build the components in the system
* definition. The default implementation only supports implementations from
* the system programming model.
@@ -193,13 +161,6 @@
*/
public ScopeRegistry getScopeRegistry() {
return scopeRegistry;
- }
-
- /**
- * @return the extensionRegistry
- */
- public ExtensionRegistry getExtensionRegistry() {
- return extensionRegistry;
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java Fri Apr 6 16:29:57 2007
@@ -24,8 +24,6 @@
import java.util.concurrent.ConcurrentHashMap;
import org.apache.tuscany.assembly.ComponentService;
-import org.apache.tuscany.assembly.Contract;
-import org.apache.tuscany.core.resolver.AutowireResolver;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentManager;
@@ -41,17 +39,15 @@
*/
public class ComponentManagerImpl implements ComponentManager {
private TuscanyManagementService managementService;
- private AutowireResolver resolver;
private Map<URI, Component> components;
public ComponentManagerImpl() {
components = new ConcurrentHashMap<URI, Component>();
}
- public ComponentManagerImpl(TuscanyManagementService managementService, AutowireResolver resolver) {
+ public ComponentManagerImpl(TuscanyManagementService managementService) {
this();
this.managementService = managementService;
- this.resolver = resolver;
}
public synchronized void register(Component component) throws RegistrationException {
@@ -73,19 +69,11 @@
public <I> void registerJavaObject(URI uri, ComponentService service, I instance) throws RegistrationException {
SingletonAtomicComponent<I> component = new SingletonAtomicComponent<I>(uri, service, instance);
register(component);
- if (resolver != null) {
- resolver.addPrimordialService(service, uri);
- }
}
public <I> void registerJavaObject(URI uri, List<ComponentService> services, I instance) throws RegistrationException {
SingletonAtomicComponent<I> component = new SingletonAtomicComponent<I>(uri, services, instance);
register(component);
- if (resolver != null) {
- for (ComponentService contract : services) {
- resolver.addPrimordialService(contract, uri);
- }
- }
}
public synchronized void unregister(Component component) throws RegistrationException {
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Fri Apr 6 16:29:57 2007
@@ -23,20 +23,18 @@
import javax.xml.stream.XMLInputFactory;
-import org.apache.tuscany.core.resolver.AutowireResolver;
-import org.apache.tuscany.spi.Monitor;
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
import org.apache.tuscany.spi.Scope;
import org.apache.tuscany.spi.builder.Builder;
import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.BuilderInstantiationException;
import org.apache.tuscany.spi.builder.BuilderRegistry;
-import org.apache.tuscany.spi.builder.Connector;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentManager;
import org.apache.tuscany.spi.component.RegistrationException;
import org.apache.tuscany.spi.component.SCAObject;
import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.spi.component.ScopeContainerMonitor;
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.deployer.DeploymentContext;
@@ -51,22 +49,15 @@
public class DeployerImpl implements Deployer {
private XMLInputFactory xmlFactory;
private Builder builder;
- private ScopeContainerMonitor monitor;
- private AutowireResolver resolver;
- private Connector connector;
private ComponentManager componentManager;
private ScopeRegistry scopeRegistry;
public DeployerImpl(XMLInputFactory xmlFactory,
Builder builder,
- ComponentManager componentManager,
- AutowireResolver resolver,
- Connector connector) {
+ ComponentManager componentManager) {
this.xmlFactory = xmlFactory;
this.builder = builder;
this.componentManager = componentManager;
- this.resolver = resolver;
- this.connector = connector;
}
public DeployerImpl() {
@@ -78,21 +69,6 @@
this.builder = builder;
}
- @Monitor
- public void setMonitor(ScopeContainerMonitor monitor) {
- this.monitor = monitor;
- }
-
- @Reference
- public void setResolver(AutowireResolver resolver) {
- this.resolver = resolver;
- }
-
- @Reference
- public void setConnector(Connector connector) {
- this.connector = connector;
- }
-
@Reference
public void setComponentManager(ComponentManager componentManager) {
this.componentManager = componentManager;
@@ -103,26 +79,20 @@
this.scopeRegistry = scopeRegistry;
}
- public Collection<Component> deploy(Component parent, org.apache.tuscany.assembly.Component componentDef)
+ public Collection<Component> deploy(Component parent, Composite composite)
throws BuilderException, ResolutionException {
@SuppressWarnings("unchecked")
ScopeContainer<URI> scopeContainer = scopeRegistry.getScopeContainer(Scope.COMPOSITE);
URI groupId = parent != null ? parent.getUri() : URI.create("/");
DeploymentContext deploymentContext = new RootDeploymentContext(null, null, groupId, xmlFactory,
scopeContainer, false);
- // load the model
- // load(parent, componentDefinition, deploymentContext);
- // resolve autowires
- resolver.resolve(null, componentDef);
+
+ org.apache.tuscany.assembly.Component componentDef = new DefaultAssemblyFactory().createComponent();
+ componentDef.setName(composite.getName().getLocalPart());
+ componentDef.setImplementation(composite);
+
// build runtime artifacts
build(parent, componentDef, deploymentContext);
- /*
- * // create a listener so the scope container is shutdown when the
- * top-level composite stops RuntimeEventListener listener = new
- * RuntimeEventListener() { public void onEvent(Event event) {
- * scopeContainer.onEvent(event); if (event instanceof ComponentStop) {
- * scopeContainer.stop(); } } }; component.addListener(listener);
- */
Collection<Component> components = deploymentContext.getComponents().values();
for (Component toRegister : components) {
@@ -132,7 +102,6 @@
throw new BuilderInstantiationException("Error registering component", e);
}
}
- connector.connect(groupId, componentDef);
return components;
}
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Fri Apr 6 16:29:57 2007
@@ -39,21 +39,17 @@
import org.apache.tuscany.assembly.AssemblyFactory;
import org.apache.tuscany.assembly.ComponentService;
-import org.apache.tuscany.assembly.Contract;
import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
import org.apache.tuscany.core.bootstrap.Bootstrapper;
import org.apache.tuscany.core.bootstrap.DefaultBootstrapper;
import org.apache.tuscany.core.bootstrap.ExtensionActivator;
import org.apache.tuscany.core.bootstrap.ExtensionRegistry;
-import org.apache.tuscany.core.builder.ConnectorImpl;
+import org.apache.tuscany.core.bootstrap.ExtensionRegistryImpl;
import org.apache.tuscany.core.component.ComponentManagerImpl;
import org.apache.tuscany.core.component.SimpleWorkContext;
import org.apache.tuscany.core.monitor.NullMonitorFactory;
-import org.apache.tuscany.core.resolver.AutowireResolver;
-import org.apache.tuscany.core.resolver.DefaultAutowireResolver;
import org.apache.tuscany.core.services.classloading.ClassLoaderRegistryImpl;
import org.apache.tuscany.core.util.IOHelper;
-import org.apache.tuscany.core.wire.IDLMappingService;
import org.apache.tuscany.host.MonitorFactory;
import org.apache.tuscany.host.RuntimeInfo;
import org.apache.tuscany.host.management.ManagementService;
@@ -62,7 +58,7 @@
import org.apache.tuscany.host.runtime.TuscanyRuntime;
import org.apache.tuscany.idl.java.JavaInterface;
import org.apache.tuscany.idl.java.impl.DefaultJavaFactory;
-import org.apache.tuscany.spi.builder.Connector;
+import org.apache.tuscany.services.spi.contribution.ContributionService;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.ComponentManager;
@@ -83,8 +79,6 @@
private static final URI COMPONENT_MGR_URI = TUSCANY_SYSTEM_ROOT.resolve("ComponentManager");
- private static final URI AUTOWIRE_RESOLVER_URI = TUSCANY_SYSTEM_ROOT.resolve("AutowireResolver");
-
private static final URI SCOPE_REGISTRY_URI = TUSCANY_SYSTEM_ROOT.resolve("ScopeRegistry");
private static final URI WORK_CONTEXT_URI = TUSCANY_SYSTEM.resolve("WorkContext");
@@ -127,11 +121,11 @@
*/
protected ClassLoaderRegistry classLoaderRegistry;
- protected AutowireResolver resolver;
-
protected Component systemComponent;
protected Component tuscanySystem;
+ protected ContributionService contributionService;
+
protected ScopeRegistry scopeRegistry;
protected Collection<ExtensionActivator> activators;
@@ -203,21 +197,25 @@
this.managementService = managementService;
}
- public void initialize() throws InitializationException {
- // URI name = TUSCANY_SYSTEM_ROOT.resolve("main");
+ public void initialize(ExtensionRegistry extensionRegistry, ContributionService contributionService)
+ throws InitializationException {
+ this.contributionService = contributionService;
+ this.extensionRegistry = extensionRegistry;
+
Bootstrapper bootstrapper = createBootstrapper();
- Deployer deployer = bootstrapper.createDeployer();
- this.extensionRegistry = bootstrapper.getExtensionRegistry();
-
+
+ Deployer deployer = bootstrapper.createDeployer(extensionRegistry);
+
+ extensionRegistry.addExtension(ContributionService.class, contributionService);
+
registerSystemComponent(TUSCANY_DEPLOYER, Deployer.class, deployer);
registerSystemComponent(WORK_CONTEXT_URI, WorkContext.class, new SimpleWorkContext());
this.scopeRegistry = bootstrapper.getScopeRegistry();
activators = getInstances(getHostClassLoader(), ExtensionActivator.class);
- ExtensionRegistry registry = bootstrapper.getExtensionRegistry();
for (ExtensionActivator activator : activators) {
- activator.start(registry);
+ activator.start(extensionRegistry);
}
registerBaselineSystemComponents();
@@ -244,10 +242,8 @@
protected Bootstrapper createBootstrapper() {
TuscanyManagementService tms = (TuscanyManagementService)getManagementService();
- resolver = new DefaultAutowireResolver(new IDLMappingService());
- componentManager = new ComponentManagerImpl(tms, resolver);
- Connector connector = new ConnectorImpl(componentManager);
- return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, componentManager, resolver, connector);
+ componentManager = new ComponentManagerImpl(tms);
+ return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, componentManager);
}
protected void registerBaselineSystemComponents() throws InitializationException {
@@ -266,9 +262,6 @@
// register the ComponentManager to that the fabric can wire to it
registerSystemComponent(COMPONENT_MGR_URI, ComponentManager.class, componentManager);
- // register the AutowireResolver
- registerSystemComponent(AUTOWIRE_RESOLVER_URI, AutowireResolver.class, resolver);
-
// register the ScopeRegistry
registerSystemComponent(SCOPE_REGISTRY_URI, ScopeRegistry.class, scopeRegistry);
}
@@ -390,5 +383,12 @@
throw new IllegalStateException(e);
}
return instances;
+ }
+
+ /**
+ * @return the contributionService
+ */
+ public ContributionService getContributionService() {
+ return contributionService;
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/core/wire/ContractCompatibilityTestCase.java Fri Apr 6 16:29:57 2007
@@ -35,8 +35,6 @@
import org.apache.tuscany.idl.impl.OperationImpl;
import org.apache.tuscany.idl.java.JavaInterface;
import org.apache.tuscany.idl.java.impl.JavaInterfaceImpl;
-import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.component.ReferenceBinding;
import org.apache.tuscany.spi.wire.ChainHolder;
import org.apache.tuscany.spi.wire.IncompatibleServiceContractException;
import org.apache.tuscany.spi.wire.InvocationChain;
@@ -410,10 +408,6 @@
}
public Object createCallbackProxy(Class<?> interfaze) throws ProxyCreationException {
- throw new UnsupportedOperationException();
- }
-
- public void createWires(ReferenceBinding referenceBinding, Contract contract, QualifiedName targetName) {
throw new UnsupportedOperationException();
}
Modified: incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessor.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessor.java (original)
+++ incubator/tuscany/java/sca/modules/databinding-jaxb/src/main/java/org/apache/tuscany/databinding/jaxb/JAXWSJavaInterfaceProcessor.java Fri Apr 6 16:29:57 2007
@@ -44,15 +44,15 @@
super();
}
- public void visitInterface(Class<?> clazz, Class<?> callbackClass, JavaServiceContract contract)
+ public void visitInterface(Class<?> clazz, Class<?> callbackClass, Contract contract)
throws InvalidServiceContractException {
if (!contract.isRemotable()) {
return;
}
- Map<String, Operation<Type>> operations = contract.getOperations();
+ Map<String, Operation> operations = contract.getOperations();
processInterface(clazz, contract, operations);
if (callbackClass != null) {
- Map<String, Operation<Type>> callbackOperations = contract.getCallbackOperations();
+ Map<String, Operation> callbackOperations = contract.getCallbackOperations();
processInterface(callbackClass, contract, callbackOperations);
}
}
@@ -61,7 +61,7 @@
return "".equals(value) ? defaultValue : value;
}
- private void processInterface(Class<?> clazz, JavaServiceContract contract, Map<String, Operation<Type>> operations) {
+ private void processInterface(Class<?> clazz, Contract contract, Map<String, Operation> operations) {
for (Method method : clazz.getMethods()) {
Operation<?> operation = operations.get(method.getName());
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/pom.xml?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/pom.xml (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/pom.xml Fri Apr 6 16:29:57 2007
@@ -34,5 +34,10 @@
<artifactId>tuscany-core</artifactId>
<version>1.0-incubating-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-contribution-impl</artifactId>
+ <version>1.0-incubating-SNAPSHOT</version>
+ </dependency>
</dependencies>
</project>
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/DefaultSCARuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/DefaultSCARuntime.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/DefaultSCARuntime.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/DefaultSCARuntime.java Fri Apr 6 16:29:57 2007
@@ -24,7 +24,6 @@
import java.util.List;
import org.apache.tuscany.api.SCARuntime;
-import org.apache.tuscany.api.TuscanyException;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.osoa.sca.ComponentContext;
import org.osoa.sca.ServiceUnavailableException;
@@ -49,7 +48,7 @@
try {
runtime.start();
- } catch (TuscanyException e) {
+ } catch (Exception e) {
throw e;
}
Added: incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/PojoWorkContextTunnel.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/PojoWorkContextTunnel.java?view=auto&rev=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/PojoWorkContextTunnel.java (added)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/PojoWorkContextTunnel.java Fri Apr 6 16:29:57 2007
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.runtime.embedded;
+
+import org.apache.tuscany.spi.component.WorkContext;
+
+/**
+ * Class for tunneling a WorkContext through the invocation of a user class.
+ *
+ * @version $Rev$ $Date$
+ */
+public final class PojoWorkContextTunnel {
+ private static final ThreadLocal<WorkContext> CONTEXT = new ThreadLocal<WorkContext>();
+
+ private PojoWorkContextTunnel() {
+ }
+
+ /**
+ * Set the WorkContext for the current thread.
+ * The current work context is returned and must be restored after the invocation is complete.
+ * Typical usage would be:
+ * <pre>
+ * WorkContext old = PojoWorkContextTunnel.setThreadWorkContext(newContext);
+ * try {
+ * ... invoke user code ...
+ * } finally {
+ * PojoWorkContextTunnel.setThreadWorkContext(old);
+ * }
+ * </pre>
+ * @param context
+ * @return the current work context for the thread; this must be restored after the invocation is made
+ */
+ public static WorkContext setThreadWorkContext(WorkContext context) {
+ WorkContext old = CONTEXT.get();
+ CONTEXT.set(context);
+ return old;
+ }
+
+ /**
+ * Returns the WorkContext for the current thread.
+ *
+ * @return the WorkContext for the current thread
+ */
+ public static WorkContext getThreadWorkContext() {
+ return CONTEXT.get();
+ }
+}
Propchange: incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/PojoWorkContextTunnel.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/PojoWorkContextTunnel.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeImpl.java Fri Apr 6 16:29:57 2007
@@ -20,13 +20,39 @@
import static org.apache.tuscany.runtime.embedded.SimpleRuntimeInfo.DEFAULT_COMPOSITE;
+import java.net.MalformedURLException;
import java.net.URI;
+import java.net.URL;
import java.util.Collection;
-import org.apache.tuscany.api.annotation.LogLevel;
+import org.apache.tuscany.assembly.Composite;
+import org.apache.tuscany.assembly.xml.impl.ComponentTypeProcessor;
+import org.apache.tuscany.assembly.xml.impl.CompositeDocumentProcessor;
+import org.apache.tuscany.assembly.xml.impl.CompositeProcessor;
+import org.apache.tuscany.assembly.xml.impl.ConstrainingTypeProcessor;
+import org.apache.tuscany.core.bootstrap.ExtensionRegistry;
+import org.apache.tuscany.core.bootstrap.ExtensionRegistryImpl;
import org.apache.tuscany.core.component.SimpleWorkContext;
-import org.apache.tuscany.core.implementation.PojoWorkContextTunnel;
import org.apache.tuscany.core.runtime.AbstractRuntime;
+import org.apache.tuscany.host.runtime.InitializationException;
+import org.apache.tuscany.services.contribution.ContributionPackageProcessorRegistryImpl;
+import org.apache.tuscany.services.contribution.ContributionRepositoryImpl;
+import org.apache.tuscany.services.contribution.ContributionServiceImpl;
+import org.apache.tuscany.services.contribution.PackageTypeDescriberImpl;
+import org.apache.tuscany.services.contribution.model.Contribution;
+import org.apache.tuscany.services.contribution.model.DeployedArtifact;
+import org.apache.tuscany.services.contribution.processor.FolderContributionProcessor;
+import org.apache.tuscany.services.contribution.processor.JarContributionProcessor;
+import org.apache.tuscany.services.contribution.util.FileHelper;
+import org.apache.tuscany.services.spi.contribution.ArtifactResolverRegistry;
+import org.apache.tuscany.services.spi.contribution.ContributionPackageProcessorRegistry;
+import org.apache.tuscany.services.spi.contribution.ContributionRepository;
+import org.apache.tuscany.services.spi.contribution.ContributionService;
+import org.apache.tuscany.services.spi.contribution.DefaultStAXArtifactProcessorRegistry;
+import org.apache.tuscany.services.spi.contribution.DefaultURLArtifactProcessorRegistry;
+import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessorRegistry;
+import org.apache.tuscany.services.spi.contribution.URLArtifactProcessorRegistry;
+import org.apache.tuscany.spi.Scope;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.SCAObject;
@@ -34,9 +60,6 @@
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.model.ComponentDefinition;
-import org.apache.tuscany.spi.model.CompositeImplementation;
-import org.apache.tuscany.spi.model.Scope;
/**
* @version $Rev$ $Date$
@@ -53,33 +76,78 @@
setRuntimeInfo(runtimeInfo);
}
- public interface SimpleMonitor {
- @LogLevel("SEVERE")
- void runError(Exception e);
+ public void initialize() throws InitializationException {
+ }
+
+ private static URL getContributionLocation(URL applicationSCDL, String compositePath) {
+ URL root = null;
+ // "jar:file://....../something.jar!/a/b/c/app.composite"
+ try {
+ String scdlUrl = applicationSCDL.toExternalForm();
+ String protocol = applicationSCDL.getProtocol();
+ if ("file".equals(protocol)) {
+ // directory contribution
+ if (scdlUrl.endsWith(compositePath)) {
+ String location = scdlUrl.substring(0, scdlUrl.lastIndexOf(compositePath));
+ // workaround from evil url/uri form maven
+ root = FileHelper.toFile(new URL(location)).toURI().toURL();
+ }
+
+ } else if ("jar".equals(protocol)) {
+ // jar contribution
+ String location = scdlUrl.substring(4, scdlUrl.lastIndexOf("!/"));
+ // workaround from evil url/uri form maven
+ root = FileHelper.toFile(new URL(location)).toURI().toURL();
+ }
+ } catch (MalformedURLException mfe) {
+ throw new IllegalArgumentException(mfe);
+ }
+
+ return root;
}
@SuppressWarnings("unchecked")
public Component start() throws Exception {
-
- initialize();
+ ExtensionRegistry extensionRegistry = new ExtensionRegistryImpl();
+ ContributionRepository repository = new ContributionRepositoryImpl("target");
+ DefaultStAXArtifactProcessorRegistry registry = new DefaultStAXArtifactProcessorRegistry();
+ registry.addArtifactProcessor(new CompositeProcessor(registry));
+ registry.addArtifactProcessor(new ComponentTypeProcessor(registry));
+ registry.addArtifactProcessor(new ConstrainingTypeProcessor(registry));
+
+ extensionRegistry.addExtension(StAXArtifactProcessorRegistry.class, registry);
+
+ DefaultURLArtifactProcessorRegistry registry2 = new DefaultURLArtifactProcessorRegistry();
+ CompositeDocumentProcessor compositeProcessor = new CompositeDocumentProcessor(registry);
+
+ registry2.addArtifactProcessor(compositeProcessor);
+
+ PackageTypeDescriberImpl describer = new PackageTypeDescriberImpl();
+ ContributionPackageProcessorRegistry pkgRegistry = new ContributionPackageProcessorRegistryImpl(describer);
+ new JarContributionProcessor(pkgRegistry);
+ new FolderContributionProcessor(pkgRegistry);
+
+ ArtifactResolverRegistry resolverRegistry = null;
+
+ ContributionService contributionService = new ContributionServiceImpl(repository, pkgRegistry, registry2,
+ resolverRegistry);
+
+ extensionRegistry.addExtension(ContributionService.class, contributionService);
+ initialize(extensionRegistry, contributionService);
ScopeRegistry scopeRegistry = getScopeRegistry();
container = scopeRegistry.getScopeContainer(Scope.COMPOSITE);
- // int i = 0;
- // for (URL ext : runtimeInfo.getExtensionSCDLs()) {
- // URI uri = URI.create("/extensions/extension" + (i++));
- // deployExtension(null, uri, ext, runtimeInfo.getClassLoader());
- // }
-
- CompositeImplementation impl = new CompositeImplementation();
- impl.setScdlLocation(getApplicationScdl());
- impl.setClassLoader(runtimeInfo.getClassLoader());
-
- ComponentDefinition<CompositeImplementation> definition = new ComponentDefinition<CompositeImplementation>(
- DEFAULT_COMPOSITE,
- impl);
- Collection<Component> components = getDeployer().deploy(null, definition);
+ URI uri = URI.create("sca://default/");
+ URL root = getContributionLocation(getApplicationScdl(), runtimeInfo.getCompositePath());
+ contributionService.contribute(uri, root, false);
+ Contribution contribution = contributionService.getContribution(uri);
+
+ // FIXME: Need to getDeployables() as list of Composites
+ DeployedArtifact artifact = contribution.getArtifact(URI.create(uri + runtimeInfo.getCompositePath()));
+ Composite composite = (Composite)artifact.getModelObjects(Composite.class).get(0);
+
+ Collection<Component> components = getDeployer().deploy(null, composite);
for (Component component : components) {
component.start();
}
@@ -88,7 +156,7 @@
WorkContext workContext = new SimpleWorkContext();
workContext.setIdentifier(Scope.COMPOSITE, DEFAULT_COMPOSITE);
PojoWorkContextTunnel.setThreadWorkContext(workContext);
- return getComponentManager().getComponent(definition.getUri());
+ return getComponentManager().getComponent(URI.create(composite.getName().getLocalPart()));
}
@SuppressWarnings("deprecation")
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeInfoImpl.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeInfoImpl.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/main/java/org/apache/tuscany/runtime/embedded/SimpleRuntimeInfoImpl.java Fri Apr 6 16:29:57 2007
@@ -28,8 +28,8 @@
import java.util.Enumeration;
import java.util.List;
-import org.apache.tuscany.core.util.FileHelper;
import org.apache.tuscany.host.AbstractRuntimeInfo;
+import org.apache.tuscany.services.contribution.util.FileHelper;
/**
* @version $Rev$ $Date$
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDAtomicComponent.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDAtomicComponent.java Fri Apr 6 16:29:57 2007
@@ -26,13 +26,12 @@
import org.apache.tuscany.core.component.ServiceReferenceImpl;
import org.apache.tuscany.core.component.scope.InstanceWrapperBase;
import org.apache.tuscany.core.injection.SingletonObjectFactory;
+import org.apache.tuscany.idl.Operation;
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.component.InstanceWrapper;
import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
-import org.apache.tuscany.spi.model.Operation;
-import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
import org.osoa.sca.CallableReference;
@@ -45,18 +44,18 @@
* @version $Rev$ $Date$
*/
public class CRUDAtomicComponent extends AtomicComponentExtension implements ComponentContextProvider {
- private String directory;
+ private CRUDImplementation impl;
private ComponentContext componentContext;
- public CRUDAtomicComponent(URI uri, URI groupId, String directory) {
+ public CRUDAtomicComponent(URI uri, URI groupId, CRUDImplementation impl) {
super(uri, null, null, groupId, 50);
- this.directory = directory;
+ this.impl = impl;
componentContext = new ComponentContextImpl(this);
}
public Object createInstance() throws ObjectCreationException {
- return new CRUDImpl(directory);
+ return new CRUDImpl(impl.getDirectory());
}
public InstanceWrapper createInstanceWrapper() throws ObjectCreationException {
@@ -64,7 +63,7 @@
}
public Object getTargetInstance() throws TargetResolutionException {
- return new CRUDImpl(directory);
+ return new CRUDImpl(impl.getDirectory());
}
public void attachCallbackWire(Wire arg0) {
@@ -80,15 +79,10 @@
return null;
}
- public TargetInvoker createTargetInvoker(String targetName, final Operation operation)
+ public TargetInvoker createTargetInvoker(String targetName, final Operation operation, boolean callback)
throws TargetInvokerCreationException {
- return new CRUDTargetInvoker(operation, directory);
+ return new CRUDTargetInvoker(operation, impl.getDirectory());
- }
-
- public TargetInvoker createTargetInvoker(String targetName, PhysicalOperationDefinition arg1)
- throws TargetInvokerCreationException {
- return null;
}
@Override
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDComponentBuilder.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDComponentBuilder.java Fri Apr 6 16:29:57 2007
@@ -18,11 +18,13 @@
*/
package org.apache.tuscany.container.crud;
+import java.net.URI;
+
+import org.apache.tuscany.assembly.Component;
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.component.AtomicComponent;
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
-import org.apache.tuscany.spi.model.ComponentDefinition;
/**
* Builds a Java-based atomic context from a component definition
@@ -33,10 +35,9 @@
public class CRUDComponentBuilder extends ComponentBuilderExtension<CRUDImplementation> {
@SuppressWarnings("unchecked")
- public AtomicComponent build(ComponentDefinition<CRUDImplementation> definition, DeploymentContext context)
- throws BuilderConfigException {
- CRUDAtomicComponent component = new CRUDAtomicComponent(definition.getUri(), context.getGroupId(), definition
- .getImplementation().getDirectory());
+ public AtomicComponent build(Component definition, DeploymentContext context) throws BuilderConfigException {
+ CRUDAtomicComponent component = new CRUDAtomicComponent(URI.create(definition.getName()), context.getGroupId(),
+ (CRUDImplementation)definition.getImplementation());
return component;
}
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDExtensionActivator.java Fri Apr 6 16:29:57 2007
@@ -21,25 +21,22 @@
import org.apache.tuscany.core.bootstrap.ExtensionActivator;
import org.apache.tuscany.core.bootstrap.ExtensionRegistry;
+import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessorRegistry;
import org.apache.tuscany.spi.builder.BuilderRegistry;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
/**
* @version $Rev$ $Date$
*/
public class CRUDExtensionActivator implements ExtensionActivator {
- private CRUDComponentTypeLoader componentTypeLoader;
private CRUDImplementationLoader implementationLoader;
private CRUDComponentBuilder builder;
public void start(ExtensionRegistry registry) {
- LoaderRegistry loaderRegistry = registry.getExtension(LoaderRegistry.class);
+ StAXArtifactProcessorRegistry processors = registry.getExtension(StAXArtifactProcessorRegistry.class);
BuilderRegistry builderRegistry = registry.getExtension(BuilderRegistry.class);
- componentTypeLoader = new CRUDComponentTypeLoader(loaderRegistry);
- componentTypeLoader.start();
- implementationLoader = new CRUDImplementationLoader(loaderRegistry);
- implementationLoader.start();
+ implementationLoader = new CRUDImplementationLoader();
+ processors.addArtifactProcessor(implementationLoader);
builder = new CRUDComponentBuilder();
builder.setBuilderRegistry(builderRegistry);
@@ -47,7 +44,5 @@
}
public void stop(ExtensionRegistry registry) {
- componentTypeLoader.stop();
- implementationLoader.stop();
}
}
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementation.java Fri Apr 6 16:29:57 2007
@@ -18,17 +18,34 @@
*/
package org.apache.tuscany.container.crud;
-import org.apache.tuscany.spi.model.AtomicImplementation;
-import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.assembly.ComponentService;
+import org.apache.tuscany.assembly.Implementation;
+import org.apache.tuscany.assembly.impl.ComponentTypeImpl;
+import org.apache.tuscany.assembly.impl.DefaultAssemblyFactory;
+import org.apache.tuscany.idl.java.JavaInterface;
+import org.apache.tuscany.idl.java.impl.DefaultJavaFactory;
+import org.apache.tuscany.idl.java.impl.JavaInterfaceImpl;
/**
- * @version $$Rev$$ $$Date$$
+ * @version $$Rev$$ $$Date: 2007-04-03 11:08:56 -0700 (Tue, 03 Apr
+ * 2007) $$
*/
-public class CRUDImplementation extends AtomicImplementation<ComponentType> {
+public class CRUDImplementation extends ComponentTypeImpl implements Implementation {
private String directory;
public CRUDImplementation(String directory) {
this.directory = directory;
+ ComponentService service = createService(CRUD.class);
+ getServices().add(service);
+ }
+
+ private ComponentService createService(Class<?> type) {
+ org.apache.tuscany.assembly.ComponentService service = new DefaultAssemblyFactory().createComponentService();
+ service.setName(type.getSimpleName());
+ JavaInterface i = new JavaInterfaceImpl();
+ i.setJavaClass(type);
+ service.setInterface(i);
+ return service;
}
/**
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementationLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementationLoader.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementationLoader.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDImplementationLoader.java Fri Apr 6 16:29:57 2007
@@ -18,42 +18,60 @@
*/
package org.apache.tuscany.container.crud;
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static org.osoa.sca.Constants.SCA_NS;
+
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
-import static org.osoa.sca.Constants.SCA_NS;
-import org.osoa.sca.annotations.Constructor;
-import org.osoa.sca.annotations.Reference;
-
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.extension.LoaderExtension;
-import org.apache.tuscany.spi.loader.LoaderException;
-import org.apache.tuscany.spi.loader.LoaderRegistry;
-import org.apache.tuscany.spi.loader.LoaderUtil;
-import org.apache.tuscany.spi.model.ModelObject;
+import org.apache.tuscany.services.spi.contribution.ArtifactResolver;
+import org.apache.tuscany.services.spi.contribution.ContributionException;
+import org.apache.tuscany.services.spi.contribution.ContributionReadException;
+import org.apache.tuscany.services.spi.contribution.ContributionResolveException;
+import org.apache.tuscany.services.spi.contribution.ContributionWireException;
+import org.apache.tuscany.services.spi.contribution.ContributionWriteException;
+import org.apache.tuscany.services.spi.contribution.StAXArtifactProcessor;
-public class CRUDImplementationLoader extends LoaderExtension {
+public class CRUDImplementationLoader implements StAXArtifactProcessor<CRUDImplementation> {
public static final QName IMPLEMENTATION_CRUD = new QName(SCA_NS, "implementation.crud");
- @Constructor
- public CRUDImplementationLoader(@Reference LoaderRegistry registry) {
- super(registry);
+ public QName getArtifactType() {
+ return IMPLEMENTATION_CRUD;
}
- @Override
- public QName getXMLType() {
- return IMPLEMENTATION_CRUD;
+ public Class<CRUDImplementation> getModelType() {
+ return CRUDImplementation.class;
}
- public ModelObject load(ModelObject object, XMLStreamReader reader, DeploymentContext deploymentContext)
- throws XMLStreamException, LoaderException {
+ public void optimize(CRUDImplementation impl) throws ContributionException {
+ }
+
+ public CRUDImplementation read(XMLStreamReader reader) throws ContributionReadException {
assert IMPLEMENTATION_CRUD.equals(reader.getName());
- String dir = reader.getAttributeValue(null, "directory");
+ try {
+ String dir = reader.getAttributeValue(null, "directory");
+
+ CRUDImplementation implementation = new CRUDImplementation(dir);
+ // Skip to end element
+ while (reader.hasNext()) {
+ if (reader.next() == END_ELEMENT && IMPLEMENTATION_CRUD.equals(reader.getName())) {
+ break;
+ }
+ }
+ return implementation;
+ } catch (XMLStreamException e) {
+ throw new ContributionReadException(e);
+ }
+ }
- CRUDImplementation implementation = new CRUDImplementation(dir);
- LoaderUtil.skipToEndElement(reader);
- return implementation;
+ public void resolve(CRUDImplementation impl, ArtifactResolver resolver) throws ContributionResolveException {
}
+ public void wire(CRUDImplementation model) throws ContributionWireException {
+ }
+
+ public void write(CRUDImplementation model, XMLStreamWriter outputSource) throws ContributionWriteException {
+ }
}
Modified: incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDTargetInvoker.java?view=diff&rev=526320&r1=526319&r2=526320
==============================================================================
--- incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/runtime-embedded/src/test/java/org/apache/tuscany/container/crud/CRUDTargetInvoker.java Fri Apr 6 16:29:57 2007
@@ -24,9 +24,9 @@
import java.util.HashMap;
import java.util.Map;
+import org.apache.tuscany.idl.Operation;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.extension.TargetInvokerExtension;
-import org.apache.tuscany.spi.model.Operation;
/**
* @version $Rev$ $Date$
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org