You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2007/02/10 08:36:20 UTC
svn commit: r505648 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/bootstrap/
core/src/main/java/org/apache/tuscany/core/component/
core/src/main/java/org/apache/tuscany/core/deployer/
core/src/main/java/org/apache/...
Author: jmarino
Date: Fri Feb 9 23:36:19 2007
New Revision: 505648
URL: http://svn.apache.org/viewvc?view=rev&rev=505648
Log:
integrate autowire resolver into kernel
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/Bootstrapper.java Fri Feb 9 23:36:19 2007
@@ -18,7 +18,6 @@
*/
package org.apache.tuscany.core.bootstrap;
-import org.apache.tuscany.host.MonitorFactory;
import org.apache.tuscany.spi.bootstrap.RuntimeComponent;
import org.apache.tuscany.spi.builder.Connector;
import org.apache.tuscany.spi.component.ScopeRegistry;
@@ -28,6 +27,9 @@
import org.apache.tuscany.spi.loader.Loader;
import org.apache.tuscany.spi.loader.PropertyObjectFactory;
+import org.apache.tuscany.core.resolver.AutowireResolver;
+import org.apache.tuscany.host.MonitorFactory;
+
/**
* Interface that abstracts the process used to create a running Tuscany system. Implementation of this may provide
* different mechanisms for creating the primoridal system components used to boot the core to the level where it can
@@ -85,4 +87,12 @@
* @return a new primordial Connector
*/
Connector createConnector();
+
+ /**
+ * Returns the AutowireResolver that resolves autowire targets
+ *
+ * @return the AutowireResolver that resolves autowire targets
+ */
+ AutowireResolver getAutowireResolver();
+
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/bootstrap/DefaultBootstrapper.java Fri Feb 9 23:36:19 2007
@@ -79,6 +79,7 @@
import org.apache.tuscany.core.loader.ReferenceLoader;
import org.apache.tuscany.core.loader.ServiceLoader;
import org.apache.tuscany.core.property.PropertyObjectFactoryImpl;
+import org.apache.tuscany.core.resolver.AutowireResolver;
import org.apache.tuscany.core.wire.jdk.JDKWireService;
import org.apache.tuscany.host.MonitorFactory;
@@ -93,23 +94,27 @@
private final XMLInputFactory xmlFactory;
private final ComponentManager componentManager;
private final TuscanyManagementService managementService;
+ private AutowireResolver resolver;
/**
* Create a default bootstrapper.
*
* @param monitorFactory the MonitorFactory to be used to create monitors for the primordial components
* @param xmlFactory the XMLInputFactory to be used by the components to load XML artifacts
- * @param componentManager the component manager for the runtime isntance
+ * @param componentManager the component manager for the runtime instance
+ * @param resolver the autowire resolver for the runtime instance
* @param managementService management service used by the runtime.
*/
public DefaultBootstrapper(MonitorFactory monitorFactory,
XMLInputFactory xmlFactory,
ComponentManager componentManager,
+ AutowireResolver resolver,
TuscanyManagementService managementService) {
this.monitorFactory = monitorFactory;
this.xmlFactory = xmlFactory;
this.componentManager = componentManager;
this.managementService = managementService;
+ this.resolver = resolver;
}
/**
@@ -149,7 +154,7 @@
JavaInterfaceProcessorRegistry interfaceIntrospector = new JavaInterfaceProcessorRegistryImpl();
Introspector introspector = createIntrospector(interfaceIntrospector);
LoaderRegistry loader = createLoader(new PropertyObjectFactoryImpl(), introspector);
- DeployerImpl deployer = new DeployerImpl(xmlFactory, loader, builder);
+ DeployerImpl deployer = new DeployerImpl(xmlFactory, loader, builder, resolver);
deployer.setMonitor(getMonitorFactory().getMonitor(ScopeContainerMonitor.class));
return deployer;
}
@@ -233,6 +238,11 @@
*/
public Connector createConnector() {
return new ConnectorImpl(componentManager);
+ }
+
+
+ public AutowireResolver getAutowireResolver() {
+ return resolver;
}
/**
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/ComponentManagerImpl.java Fri Feb 9 23:36:19 2007
@@ -30,12 +30,14 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.DuplicateNameException;
import org.apache.tuscany.spi.event.Event;
+import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.services.management.TuscanyManagementService;
import org.apache.tuscany.spi.util.UriHelper;
import org.apache.tuscany.core.component.event.ComponentStart;
import org.apache.tuscany.core.component.event.ComponentStop;
import org.apache.tuscany.core.implementation.composite.SystemSingletonAtomicComponent;
+import org.apache.tuscany.core.resolver.AutowireResolver;
/**
* Default implementation of the component manager
@@ -44,6 +46,7 @@
*/
public class ComponentManagerImpl implements ComponentManager {
private TuscanyManagementService managementService;
+ private AutowireResolver resolver;
private Map<URI, Component> components;
private Map<URI, List<URI>> parentToChildren;
@@ -52,9 +55,10 @@
parentToChildren = new ConcurrentHashMap<URI, List<URI>>();
}
- public ComponentManagerImpl(TuscanyManagementService managementService) {
+ public ComponentManagerImpl(TuscanyManagementService managementService, AutowireResolver resolver) {
this();
this.managementService = managementService;
+ this.resolver = resolver;
}
public void register(Component component) throws ComponentRegistrationException {
@@ -85,12 +89,26 @@
public <S, I extends S> void registerJavaObject(URI uri, Class<S> service, I instance)
throws ComponentRegistrationException {
- register(new SystemSingletonAtomicComponent<S, I>(uri, null, service, instance));
+ SystemSingletonAtomicComponent<S, I> component =
+ new SystemSingletonAtomicComponent<S, I>(uri, null, service, instance);
+ register(component);
+ if (resolver != null) {
+ for (ServiceContract contract : component.getServiceContracts()) {
+ resolver.addPrimordialUri(contract, uri);
+ }
+ }
}
public <S, I extends S> void registerJavaObject(URI uri, List<Class<?>> services, I instance)
throws ComponentRegistrationException {
- register(new SystemSingletonAtomicComponent<S, I>(uri, null, services, instance));
+ SystemSingletonAtomicComponent<S, I> component =
+ new SystemSingletonAtomicComponent<S, I>(uri, null, services, instance);
+ register(component);
+ if (resolver != null) {
+ for (ServiceContract contract : component.getServiceContracts()) {
+ resolver.addPrimordialUri(contract, uri);
+ }
+ }
}
public void unregister(Component component) throws ComponentRegistrationException {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/DeployerImpl.java Fri Feb 9 23:36:19 2007
@@ -41,10 +41,12 @@
import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.resolver.ResolutionException;
import org.apache.tuscany.api.annotation.Monitor;
import org.apache.tuscany.core.component.event.ComponentStop;
import org.apache.tuscany.core.component.scope.CompositeScopeContainer;
+import org.apache.tuscany.core.resolver.AutowireResolver;
/**
* Default implementation of Deployer.
@@ -52,15 +54,17 @@
* @version $Rev$ $Date$
*/
public class DeployerImpl implements Deployer {
- protected XMLInputFactory xmlFactory;
- protected Builder builder;
- protected ScopeContainerMonitor monitor;
+ private XMLInputFactory xmlFactory;
+ private Builder builder;
+ private ScopeContainerMonitor monitor;
private Loader loader;
+ private AutowireResolver resolver;
- public DeployerImpl(XMLInputFactory xmlFactory, Loader loader, Builder builder) {
+ public DeployerImpl(XMLInputFactory xmlFactory, Loader loader, Builder builder, AutowireResolver resolver) {
this.xmlFactory = xmlFactory;
this.loader = loader;
this.builder = builder;
+ this.resolver = resolver;
}
public DeployerImpl() {
@@ -82,19 +86,26 @@
this.monitor = monitor;
}
+ @Autowire
+ public void setResolver(AutowireResolver resolver) {
+ this.resolver = resolver;
+ }
+
public <I extends Implementation<?>> Component deploy(CompositeComponent parent,
ComponentDefinition<I> componentDefinition)
- throws LoaderException, BuilderException, PrepareException {
+ throws LoaderException, BuilderException, PrepareException, ResolutionException {
final ScopeContainer scopeContainer = new CompositeScopeContainer(monitor);
scopeContainer.start();
DeploymentContext deploymentContext = new RootDeploymentContext(null, xmlFactory, scopeContainer, null);
deploymentContext.getPathNames().add(componentDefinition.getUri().toString());
- try {
+ try {
load(parent, componentDefinition, deploymentContext);
} catch (LoaderException e) {
e.addContextName(componentDefinition.getUri().toString());
throw e;
}
+ // resolve autowires
+ resolver.resolve(null, componentDefinition);
Component component = (Component) build(parent, componentDefinition, deploymentContext);
// create a listener so the scope container is shutdown when the top-level composite stops
RuntimeEventListener listener = new RuntimeEventListener() {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/SystemSingletonAtomicComponent.java Fri Feb 9 23:36:19 2007
@@ -19,6 +19,7 @@
package org.apache.tuscany.core.implementation.composite;
import java.net.URI;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -35,6 +36,7 @@
import org.apache.tuscany.spi.idl.java.JavaServiceContract;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
@@ -53,6 +55,7 @@
private T instance;
private Map<String, InboundWire> inboundWires;
private WireService wireService = new JDKWireService();
+ private List<ServiceContract> serviceContracts = new ArrayList<ServiceContract>();
public SystemSingletonAtomicComponent(URI name, CompositeComponent parent, Class<S> interfaze, T instance) {
super(name, parent);
@@ -152,6 +155,10 @@
return null;
}
+ public List<ServiceContract> getServiceContracts() {
+ return serviceContracts;
+ }
+
private void initWire(Class<?> interfaze) {
JavaServiceContract serviceContract = new JavaServiceContract(interfaze);
// create a relative URI
@@ -160,6 +167,7 @@
InboundWire wire = wireService.createWire(def);
wire.setContainer(this);
inboundWires.put(wire.getUri().getFragment(), wire);
+ serviceContracts.add(serviceContract);
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/AutowireResolver.java Fri Feb 9 23:36:19 2007
@@ -18,9 +18,12 @@
*/
package org.apache.tuscany.core.resolver;
+import java.net.URI;
+
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.CompositeComponentType;
import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.resolver.ResolutionException;
/**
@@ -40,4 +43,12 @@
*/
void resolve(ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>> parentDefinition,
ComponentDefinition<? extends Implementation<?>> definition) throws ResolutionException;
+
+ /**
+ * Adds the uri of a primordial system service that can be an autowire target
+ *
+ * @param contract the service contract of the system service
+ * @param uri the component uri
+ */
+ void addPrimordialUri(ServiceContract contract, URI uri);
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/resolver/DefaultAutowireResolver.java Fri Feb 9 23:36:19 2007
@@ -19,6 +19,8 @@
package org.apache.tuscany.core.resolver;
import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.ComponentType;
@@ -36,6 +38,8 @@
* @version $Rev$ $Date$
*/
public class DefaultAutowireResolver implements AutowireResolver {
+ private Map<ServiceContract, URI> primordialAutowire = new HashMap<ServiceContract, URI>();
+
@SuppressWarnings({"unchecked"})
public void resolve(ComponentDefinition<Implementation<CompositeComponentType<?, ?, ?>>> parentDefinition,
@@ -77,6 +81,10 @@
}
}
+ public void addPrimordialUri(ServiceContract contract, URI uri) {
+ primordialAutowire.put(contract, uri);
+ }
+
/**
* Performs the actual resolution against a composite TODO this should be extensible allowing for path
* optimizations
@@ -117,12 +125,25 @@
}
if (targetUri == null) {
if (candidateUri == null) {
- String refName = target.getReferenceName().toString();
- throw new AutowireTargetNotFoundException("No matching target found", refName);
+ candidateUri = resolvePrimordial(requiredContract);
+ if (candidateUri == null) {
+ String refName = target.getReferenceName().toString();
+ throw new AutowireTargetNotFoundException("No matching target found", refName);
+ }
}
target.addTarget(candidateUri);
} else {
target.addTarget(targetUri);
}
+ }
+
+ private URI resolvePrimordial(ServiceContract contract) {
+ Class<?> requiredClass = contract.getInterfaceClass();
+ for (Map.Entry<ServiceContract, URI> entry : primordialAutowire.entrySet()) {
+ if (requiredClass.isAssignableFrom(contract.getInterfaceClass())) {
+ return entry.getValue();
+ }
+ }
+ return null;
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/runtime/AbstractRuntime.java Fri Feb 9 23:36:19 2007
@@ -34,6 +34,7 @@
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.resolver.ResolutionException;
import org.apache.tuscany.spi.services.management.TuscanyManagementService;
import org.apache.tuscany.core.bootstrap.Bootstrapper;
@@ -42,6 +43,8 @@
import org.apache.tuscany.core.component.ComponentManagerImpl;
import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
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.host.MonitorFactory;
import org.apache.tuscany.host.RuntimeInfo;
import org.apache.tuscany.host.management.ManagementService;
@@ -52,6 +55,14 @@
* @version $Rev$ $Date$
*/
public abstract class AbstractRuntime implements TuscanyRuntime {
+ private static final URI MONITOR_URI =
+ URI.create(ComponentNames.TUSCANY_SYSTEM_ROOT.toString() + "/MonitorFactory");
+ private static final URI COMPONENT_MGR_URI =
+ URI.create(ComponentNames.TUSCANY_SYSTEM_ROOT.toString() + "/ComponentManager");
+
+ private static final URI AUTOWIRE_RESOLVER_URI =
+ URI.create(ComponentNames.TUSCANY_SYSTEM_ROOT.toString() + "/AutowireResolver");
+
private final XMLInputFactory xmlFactory;
private URL systemScdl;
private String applicationName;
@@ -66,6 +77,7 @@
private RuntimeComponent runtime;
private CompositeComponent systemComponent;
private CompositeComponent tuscanySystem;
+ private AutowireResolver resolver;
protected AbstractRuntime() {
this(new NullMonitorFactory());
@@ -168,6 +180,8 @@
throw new InitializationException(e);
} catch (ComponentException e) {
throw new InitializationException(e);
+ } catch (ResolutionException e) {
+ throw new InitializationException(e);
}
tuscanySystem.start();
}
@@ -198,17 +212,18 @@
protected Bootstrapper createBootstrapper() {
TuscanyManagementService tms = (TuscanyManagementService) getManagementService();
- componentManager = new ComponentManagerImpl(tms);
- return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, componentManager, tms);
+ resolver = new DefaultAutowireResolver();
+ componentManager = new ComponentManagerImpl(tms, resolver);
+ return new DefaultBootstrapper(getMonitorFactory(), xmlFactory, componentManager, resolver, tms);
}
protected void registerSystemComponents() throws InitializationException {
try {
componentManager.registerJavaObject(RuntimeInfo.COMPONENT_URI, RuntimeInfo.class, runtimeInfo);
- URI uri = URI.create("MonitorFactory");
- componentManager.registerJavaObject(uri, MonitorFactory.class, getMonitorFactory());
- //JFM TODO need autowire to deal with returning a component manager
- //systemComponent.registerJavaObject("ComponentManager", ComponentManager.class, componentManager);
+ componentManager.registerJavaObject(MONITOR_URI, MonitorFactory.class, getMonitorFactory());
+ // register the component manager with itself so it can be autowired
+ componentManager.registerJavaObject(COMPONENT_MGR_URI, ComponentManager.class, componentManager);
+ componentManager.registerJavaObject(AUTOWIRE_RESOLVER_URI, AutowireResolver.class, resolver);
} catch (ComponentRegistrationException e) {
throw new InitializationException(e);
}
@@ -219,7 +234,7 @@
URI name,
URL systemScdl,
ClassLoader systemClassLoader)
- throws LoaderException, BuilderException, ComponentException {
+ throws LoaderException, BuilderException, ComponentException, ResolutionException {
SystemCompositeImplementation impl = new SystemCompositeImplementation();
impl.setScdlLocation(systemScdl);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/services/extension/AbstractExtensionDeployer.java Fri Feb 9 23:36:19 2007
@@ -34,6 +34,7 @@
import org.apache.tuscany.spi.deployer.Deployer;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.resolver.ResolutionException;
import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
@@ -115,6 +116,9 @@
// FIXME JFM handle the exception
e.printStackTrace();
} catch (ComponentException e) {
+ // FIXME handle the exception
+ e.printStackTrace();
+ } catch (ResolutionException e) {
// FIXME handle the exception
e.printStackTrace();
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/bootstrap/BootstrapperTestCase.java Fri Feb 9 23:36:19 2007
@@ -37,6 +37,6 @@
protected void setUp() throws Exception {
super.setUp();
- bootstrapper = new DefaultBootstrapper(new NullMonitorFactory(), null, null, null);
+ bootstrapper = new DefaultBootstrapper(new NullMonitorFactory(), null, null, null, null);
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/deployer/BootstrapDeployerTestCase.java Fri Feb 9 23:36:19 2007
@@ -49,6 +49,7 @@
import org.apache.tuscany.core.implementation.system.model.SystemCompositeImplementation;
import org.apache.tuscany.core.mock.component.BasicInterface;
import org.apache.tuscany.core.monitor.NullMonitorFactory;
+import org.apache.tuscany.core.resolver.DefaultAutowireResolver;
import org.easymock.EasyMock;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.isA;
@@ -151,8 +152,11 @@
protected void setUp() throws Exception {
super.setUp();
XMLInputFactory xmlFactory = XMLInputFactory.newInstance();
- ComponentManager manager = new ComponentManagerImpl();
- Bootstrapper bootstrapper = new DefaultBootstrapper(new NullMonitorFactory(), xmlFactory, manager, null);
+ DefaultAutowireResolver resolver = new DefaultAutowireResolver();
+ ComponentManager manager = new ComponentManagerImpl(null, resolver);
+ manager.registerJavaObject(URI.create("ComponentManager"), ComponentManager.class, manager);
+ NullMonitorFactory monitorFactory = new NullMonitorFactory();
+ Bootstrapper bootstrapper = new DefaultBootstrapper(monitorFactory, xmlFactory, manager, resolver, null);
deployer = (DeployerImpl) bootstrapper.createDeployer();
deploymentContext = new RootDeploymentContext(null, xmlFactory, null, null);
implementation = new SystemCompositeImplementation();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java Fri Feb 9 23:36:19 2007
@@ -19,9 +19,8 @@
package org.apache.tuscany.core.loader;
import java.net.URI;
-import java.util.Collections;
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
Modified: incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl Fri Feb 9 23:36:19 2007
@@ -26,7 +26,7 @@
name="boot2">
<!-- expose Deployer API as a service -->
- <service name="deployer" >
+ <service name="deployer">
<interface.java interface="org.apache.tuscany.spi.deployer.Deployer"/>
<reference>deployerImpl</reference>
</service>
@@ -36,11 +36,25 @@
<system:implementation.system class="org.apache.tuscany.core.deployer.DeployerImpl"/>
</component>
+ <!-- Component that provides the Autowire resolver service -->
+ <component name="autowireResolver">
+ <system:implementation.system class="org.apache.tuscany.core.resolver.DefaultAutowireResolver"/>
+ </component>
+
<!-- Work management -->
<component name="workContext">
<system:implementation.system class="org.apache.tuscany.core.component.WorkContextImpl"/>
</component>
+ <component name="workScheduler">
+ <system:implementation.system class="org.apache.tuscany.core.services.work.jsr237.Jsr237WorkScheduler"/>
+ </component>
+
+ <component name="workManager">
+ <system:implementation.system
+ class="org.apache.tuscany.core.services.work.jsr237.workmanager.ThreadPoolWorkManager"/>
+ </component>
+
<!-- Scope infrastructure -->
<component name="scopeRegistry">
<system:implementation.system class="org.apache.tuscany.core.component.scope.ScopeRegistryImpl"/>
@@ -66,11 +80,15 @@
<system:implementation.system class="org.apache.tuscany.core.builder.ConnectorImpl"/>
</component>
+ <component name="wirePostProcess">
+ <system:implementation.system class="org.apache.tuscany.core.builder.WirePostProcessorRegistryImpl"/>
+ </component>
+
<!-- Resource host registry -->
<component name="resourceHostRegistry">
<system:implementation.system class="org.apache.tuscany.core.services.host.DelegatingResourceHostRegistry"/>
</component>
-
+
<!-- Foundation element loader implementations -->
<component name="elementLoader.component">
<system:implementation.system class="org.apache.tuscany.core.loader.ComponentLoader"/>
@@ -92,7 +110,7 @@
</component>
<component name="wireService">
- <system:implementation.system class="org.apache.tuscany.core.wire.jdk.JDKWireService"/>
+ <system:implementation.system class="org.apache.tuscany.core.wire.jdk.JDKWireService"/>
</component>
<!-- Composite implementation type -->
@@ -111,17 +129,17 @@
<!-- DataBinding registry -->
<component name="databinding.registry">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingRegistryImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.DataBindingRegistryImpl"/>
</component>
<!-- DataBinding registry -->
<component name="databinding.mediator">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.MediatorImpl" />
- </component>
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.MediatorImpl"/>
+ </component>
<!-- Transformer registry -->
<component name="databinding.transformerRegistry" initLevel="90">
- <system:implementation.system class="org.apache.tuscany.core.databinding.impl.TransformerRegistryImpl" />
+ <system:implementation.system class="org.apache.tuscany.core.databinding.impl.TransformerRegistryImpl"/>
</component>
<component name="propertyFactory">
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java?view=diff&rev=505648&r1=505647&r2=505648
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/deployer/Deployer.java Fri Feb 9 23:36:19 2007
@@ -25,6 +25,7 @@
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Implementation;
+import org.apache.tuscany.spi.resolver.ResolutionException;
/**
* Interface that can be used to deploy SCA bundles to a runtime.
@@ -44,5 +45,5 @@
*/
<I extends Implementation<?>> Component deploy(CompositeComponent parent,
ComponentDefinition<I> componentDefinition)
- throws LoaderException, BuilderException, ComponentException;
+ throws LoaderException, BuilderException, ComponentException, ResolutionException;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org