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 2006/08/06 20:53:38 UTC
svn commit: r429173 - in /incubator/tuscany/java/sca:
containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/
containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/
containers/container.javascript/src/main...
Author: jmarino
Date: Sun Aug 6 11:53:36 2006
New Revision: 429173
URL: http://svn.apache.org/viewvc?rev=429173&view=rev
Log:
start to add non-blocking callback support to Groovy; refactor Groovy to beging using new property injection framework; cleanup to extension APIs related to adding callback support in Groovy
Added:
incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java (with props)
Modified:
incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentType.java
incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java
incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/ImplementationLoader.java
incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java
incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManager.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderTestCase.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaReferenceWireTestCase.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java
incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicComponent.java Sun Aug 6 11:53:36 2006
@@ -18,17 +18,17 @@
import java.lang.reflect.Method;
import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.component.CompositeComponent;
-import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.WireService;
import groovy.lang.GroovyObject;
@@ -38,25 +38,21 @@
public class GroovyAtomicComponent<T> extends AtomicComponentExtension<T> {
private final Class<? extends GroovyObject> groovyClass;
private final List<Class<?>> services;
- private final List<PropertyInjector> injectors;
-
- public GroovyAtomicComponent(String name,
- Class<? extends GroovyObject> groovyClass,
- List<Class<?>>services,
- List<PropertyInjector> injectors,
- CompositeComponent parent,
- ScopeContainer scopeContainer,
- WireService wireService) {
- super(name, parent, scopeContainer, wireService, null, 0);
- this.scope = scopeContainer.getScope();
+ //FIXME properties should move up to AtomicComponentExtension
+ private final Map<String, ObjectFactory> properties;
+ public GroovyAtomicComponent(GroovyConfiguration configuration) {
+ super(configuration.getName(),
+ configuration.getParent(),
+ configuration.getScopeContainer(),
+ configuration.getWireService(),
+ configuration.getWorkContext(),
+ null, configuration.getInitLevel());
+
+ this.groovyClass = configuration.getGroovyClass();
+ this.services = Collections.unmodifiableList(configuration.getServices());
+ this.properties = new HashMap<String, ObjectFactory>();
assert groovyClass != null;
- assert services != null;
- assert injectors != null;
-
- this.groovyClass = groovyClass;
- this.services = Collections.unmodifiableList(services);
- this.injectors = injectors;
}
public List<Class<?>> getServiceInterfaces() {
@@ -78,11 +74,11 @@
}
// inject properties
- for (PropertyInjector injector : injectors) {
- injector.inject(instance);
+ for (Map.Entry<String, ObjectFactory> property : properties.entrySet()) {
+ instance.setProperty(property.getKey(), property.getValue().getInstance());
}
- // inject wires
+ // inject references
for (List<OutboundWire> referenceWires : getOutboundWires().values()) {
for (OutboundWire<?> wire : referenceWires) {
instance.setProperty(wire.getReferenceName(), wireService.createProxy(wire));
@@ -108,5 +104,9 @@
throw e;
}
return wireService.createProxy(wire);
+ }
+
+ public void addPropertyFactory(String name, ObjectFactory<?> factory) {
+ properties.put(name, factory);
}
}
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java Sun Aug 6 11:53:36 2006
@@ -1,14 +1,13 @@
package org.apache.tuscany.container.groovy;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
+import java.util.Map;
-import groovy.lang.GroovyClassLoader;
-import groovy.lang.GroovyObject;
-import org.codehaus.groovy.control.CompilationFailedException;
-
+import org.apache.tuscany.spi.ObjectFactory;
+import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.CompositeComponent;
@@ -16,7 +15,19 @@
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.extension.ComponentBuilderExtension;
import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.Property;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.wire.InboundInvocationChain;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
+import org.apache.tuscany.spi.wire.OutboundWire;
+
+import groovy.lang.GroovyClassLoader;
+import groovy.lang.GroovyObject;
+import org.apache.tuscany.core.wire.InvokerInterceptor;
+import org.codehaus.groovy.control.CompilationFailedException;
/**
* Extension point for creating {@link GroovyAtomicComponent}s from an assembly configuration
@@ -32,12 +43,14 @@
public Component<?> build(CompositeComponent<?> parent,
ComponentDefinition<GroovyImplementation> componentDefinition,
DeploymentContext deploymentContext)
- throws BuilderConfigException {
+ throws BuilderConfigException {
String name = componentDefinition.getName();
GroovyImplementation implementation = componentDefinition.getImplementation();
GroovyComponentType componentType = implementation.getComponentType();
+ int initLevel = componentType.getInitLevel();
+
// get list of services provided by this component
Collection<ServiceDefinition> collection = componentType.getServices().values();
List<Class<?>> services = new ArrayList<Class<?>>(collection.size());
@@ -59,18 +72,112 @@
Class<? extends GroovyObject> groovyClass;
try {
String script = implementation.getScript();
+ // REVIEW JFM can we cache the class?
groovyClass = groovyClassLoader.parseClass(script);
} catch (CompilationFailedException e) {
BuilderConfigException bce = new BuilderConfigException(e);
bce.setIdentifier(name);
throw bce;
}
+ // TODO deal with init and destroy
+
+ // TODO set up injectors
+ //List<PropertyInjector> injectors = Collections.emptyList();
+
+ GroovyConfiguration configuration = new GroovyConfiguration();
+ configuration.setName(name);
+ configuration.setGroovyClass(groovyClass);
+ configuration.setParent(parent);
+ configuration.setScopeContainer(scopeContainer);
+ configuration.setWireService(wireService);
+ configuration.setWorkContext(workContext);
+ configuration.setInitLevel(initLevel);
+ configuration.setServices(services);
+ GroovyAtomicComponent component = new GroovyAtomicComponent(configuration);
+
+ // handle properties
+ for (Property<?> property : componentType.getProperties().values()) {
+ ObjectFactory<?> factory = property.getDefaultValueFactory();
+ if (factory != null) {
+ component.addPropertyFactory(property.getName(), factory);
+ }
+ }
+
+// for (ServiceDefinition service : componentType.getServices().values()) {
+// // TODO handle callbacks
+// Callback callback = service. getCallbackReference();
+// if (callback != null) {
+// // Only if there is a callback reference in the service
+// configuration.addCallbackSite(callback.getName(), callback.getMember());
+// }
+// component.addInboundWire(createWire(service));
+// }
+
+ // handle references
+ for (ReferenceTarget referenceTarget : componentDefinition.getReferenceTargets().values()) {
+ Map<String, ReferenceDefinition> references = componentType.getReferences();
+ ReferenceDefinition referenceDefinition = references.get(referenceTarget.getReferenceName());
+ OutboundWire wire = createWire(referenceTarget, referenceDefinition);
+ component.addOutboundWire(wire);
+ }
+ return component;
+ }
- // todo set up injectors
- List<PropertyInjector> injectors = Collections.emptyList();
+ @SuppressWarnings("unchecked")
+ private OutboundWire createWire(ReferenceTarget reference, ReferenceDefinition def) {
+ //TODO multiplicity
+ if (reference.getTargets().size() != 1) {
+ throw new UnsupportedOperationException();
+ }
+ Class<?> interfaze = def.getServiceContract().getInterfaceClass();
+ OutboundWire wire = wireService.createOutboundWire();
+ wire.setTargetName(new QualifiedName(reference.getTargets().get(0).toString()));
+ wire.setBusinessInterface(interfaze);
+ wire.setReferenceName(reference.getReferenceName());
+ for (Method method : interfaze.getMethods()) {
+ //TODO handle policy
+ OutboundInvocationChain chain = wireService.createOutboundChain(method);
+ wire.addInvocationChain(method, chain);
+ }
+ // TODO handle callback
+// ServiceContract contract = def.getServiceContract();
+// Class<?> callbackInterface = contract.getCallbackClass();
+// if (callbackInterface != null) {
+// wire.setCallbackInterface(callbackInterface);
+// for (Method callbackMethod : callbackInterface.getMethods()) {
+// InboundInvocationChain callbackTargetChain = wireService.createInboundChain(callbackMethod);
+// OutboundInvocationChain callbackSourceChain = wireService.createOutboundChain(callbackMethod);
+// // TODO handle policy
+// //TODO statement below could be cleaner
+// callbackTargetChain.addInterceptor(new InvokerInterceptor());
+// wire.addTargetCallbackInvocationChain(callbackMethod, callbackTargetChain);
+// wire.addSourceCallbackInvocationChain(callbackMethod, callbackSourceChain);
+// }
+// }
+ return wire;
+ }
- // create the actual component
- return new GroovyAtomicComponent(name, groovyClass, services, injectors, parent, scopeContainer, wireService);
+ @SuppressWarnings("unchecked")
+ private InboundWire createWire(ServiceDefinition service) {
+ Class<?> interfaze = service.getServiceContract().getInterfaceClass();
+ InboundWire wire = wireService.createInboundWire();
+ wire.setBusinessInterface(interfaze);
+ wire.setServiceName(service.getName());
+ for (Method method : interfaze.getMethods()) {
+ InboundInvocationChain chain = wireService.createInboundChain(method);
+ // TODO handle policy
+ //TODO statement below could be cleaner
+ chain.addInterceptor(new InvokerInterceptor());
+ wire.addInvocationChain(method, chain);
+ }
+ //TODO handle callback
+// ServiceContract contract = service.getServiceContract();
+// Class<?> callbackInterface = contract.getCallbackClass();
+// if (callbackInterface != null) {
+// wire.setCallbackReferenceName(service.getCallbackReference().getName());
+// }
+ return wire;
}
+
}
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentType.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentType.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentType.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentType.java Sun Aug 6 11:53:36 2006
@@ -1,15 +1,19 @@
package org.apache.tuscany.container.groovy;
import org.apache.tuscany.spi.model.ComponentType;
+import org.apache.tuscany.spi.model.Property;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.ServiceDefinition;
/**
* Model object representing a Groovy component type
+ *
* @version $$Rev$$ $$Date$$
*/
-public class GroovyComponentType extends ComponentType {
+public class GroovyComponentType extends ComponentType<ServiceDefinition, ReferenceDefinition, Property<?>> {
private Scope lifecycleScope;
-
+
public Scope getLifecycleScope() {
return lifecycleScope;
}
Added: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java?rev=429173&view=auto
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java (added)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java Sun Aug 6 11:53:36 2006
@@ -0,0 +1,132 @@
+package org.apache.tuscany.container.groovy;
+
+import java.lang.reflect.Member;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.wire.WireService;
+
+import groovy.lang.GroovyObject;
+
+/**
+ * Encapsulates confuration for a Groovy-based atomic component
+ *
+ * @version $Rev$ $Date$
+ */
+public class GroovyConfiguration {
+
+ private CompositeComponent<?> parent;
+ private ScopeContainer scopeContainer;
+ private int initLevel;
+ private Map<String, Member> referenceSites = new HashMap<String, Member>();
+ private Map<String, Member> propertySites = new HashMap<String, Member>();
+ private Map<String, Member> callbackSites = new HashMap<String, Member>();
+ private List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
+ private WireService wireService;
+ private WorkContext workContext;
+ private String name;
+ private Class<? extends GroovyObject> groovyClass;
+ private List<Class<?>> services;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Class<? extends GroovyObject> getGroovyClass() {
+ return groovyClass;
+ }
+
+ public void setGroovyClass(Class<? extends GroovyObject> groovyClass) {
+ this.groovyClass = groovyClass;
+ }
+
+ public CompositeComponent<?> getParent() {
+ return parent;
+ }
+
+ public void setParent(CompositeComponent<?> parent) {
+ this.parent = parent;
+ }
+
+ public ScopeContainer getScopeContainer() {
+ return scopeContainer;
+ }
+
+ public void setScopeContainer(ScopeContainer scopeContainer) {
+ this.scopeContainer = scopeContainer;
+ }
+
+ public List<Class<?>> getServiceInterfaces() {
+ return serviceInterfaces;
+ }
+
+ public void addServiceInterface(Class<?> serviceInterface) {
+ serviceInterfaces.add(serviceInterface);
+ }
+
+ public int getInitLevel() {
+ return initLevel;
+ }
+
+ public void setInitLevel(int initLevel) {
+ this.initLevel = initLevel;
+ }
+
+ public List<Class<?>> getServices() {
+ return services;
+ }
+
+ public void setServices(List<Class<?>> services) {
+ this.services = services;
+ }
+
+ public Map<String, Member> getReferenceSite() {
+ return referenceSites;
+ }
+
+ public void addReferenceSite(String name, Member member) {
+ referenceSites.put(name, member);
+ }
+
+ public Map<String, Member> getCallbackSite() {
+ return callbackSites;
+ }
+
+ public void addCallbackSite(String name, Member member) {
+ callbackSites.put(name, member);
+ }
+
+ public Map<String, Member> getPropertySites() {
+ return propertySites;
+ }
+
+ public void addPropertySite(String name, Member member) {
+ propertySites.put(name, member);
+ }
+
+ public WireService getWireService() {
+ return wireService;
+ }
+
+ public void setWireService(WireService wireService) {
+ this.wireService = wireService;
+ }
+
+ public WorkContext getWorkContext() {
+ return workContext;
+ }
+
+ public void setWorkContext(WorkContext workContext) {
+ this.workContext = workContext;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyConfiguration.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyInvoker.java Sun Aug 6 11:53:36 2006
@@ -18,10 +18,11 @@
import java.lang.reflect.InvocationTargetException;
-import groovy.lang.GroovyObject;
-import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.Message;
import org.apache.tuscany.spi.wire.InvocationRuntimeException;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+
+import groovy.lang.GroovyObject;
/**
* Dispatches to a Groovy implementation instance
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/ImplementationLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/ImplementationLoader.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/ImplementationLoader.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/ImplementationLoader.java Sun Aug 6 11:53:36 2006
@@ -40,7 +40,7 @@
*/
public class ImplementationLoader extends LoaderExtension<GroovyImplementation> {
private static final QName IMPLEMENTATION_GROOVY =
- new QName("http://tuscany.apache.org/xmlns/groovy/1.0", "implementation");
+ new QName("http://tuscany.apache.org/xmlns/groovy/1.0", "implementation");
public ImplementationLoader(LoaderRegistry registry) {
super(registry);
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ImplementationLoaderTestCase.java Sun Aug 6 11:53:36 2006
@@ -16,17 +16,20 @@
*/
package org.apache.tuscany.container.groovy;
-import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
-import junit.framework.TestCase;
-import static org.easymock.classextension.EasyMock.*;
-
-import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.loader.LoaderException;
+import org.apache.tuscany.spi.loader.LoaderRegistry;
import org.apache.tuscany.spi.loader.MissingResourceException;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
-import org.apache.tuscany.spi.component.CompositeComponent;
+
+import junit.framework.TestCase;
+import static org.easymock.classextension.EasyMock.createMock;
+import static org.easymock.classextension.EasyMock.expect;
+import static org.easymock.classextension.EasyMock.replay;
+import static org.easymock.classextension.EasyMock.verify;
/**
* @version $Rev$ $Date$
@@ -80,7 +83,7 @@
public void testLoadScript() throws LoaderException {
String script = loader.loadSource(getClass().getClassLoader(),
- "org/apache/tuscany/container/groovy/mock/TestScript.groovy");
+ "org/apache/tuscany/container/groovy/mock/TestScript.groovy");
assertEquals("Test Script", script);
}
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java Sun Aug 6 11:53:36 2006
@@ -3,29 +3,36 @@
import java.util.ArrayList;
import java.util.List;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.container.groovy.injectors.SingletonInjector;
-import org.apache.tuscany.container.groovy.mock.Greeting;
-import org.apache.tuscany.core.component.scope.ModuleScopeContainer;
-import org.apache.tuscany.spi.wire.WireService;
-import org.apache.tuscany.test.ArtifactFactory;
+import org.apache.tuscany.spi.ObjectFactory;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ScopeContainer;
-import groovy.lang.GroovyObject;
import groovy.lang.GroovyClassLoader;
+import groovy.lang.GroovyObject;
+import junit.framework.TestCase;
+import org.apache.tuscany.container.groovy.mock.Greeting;
+import static org.apache.tuscany.test.ArtifactFactory.createWireService;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.getCurrentArguments;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import org.easymock.IAnswer;
/**
* @version $$Rev$$ $$Date$$
*/
public class PropertyTestCase extends TestCase {
+ private ScopeContainer scopeContainer;
+
private static final String SCRIPT = "import org.apache.tuscany.container.groovy.mock.Greeting;"
- + "class Foo implements Greeting{"
- + " String property;"
- + " public String greet(String name){"
- + " return property; "
- + " }"
- + "}";
+ + "class Foo implements Greeting{"
+ + " String property;"
+ + " public String greet(String name){"
+ + " return property; "
+ + " }"
+ + "}";
private Class<? extends GroovyObject> implClass;
@@ -33,29 +40,34 @@
* Tests injecting a simple property type on a Groovy implementation instance
*/
public void testPropertyInjection() throws Exception {
- ModuleScopeContainer scope = new ModuleScopeContainer(null);
- scope.start();
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
- List<PropertyInjector> injectors = new ArrayList<PropertyInjector>();
- injectors.add(new SingletonInjector("property", "bar"));
- WireService wireService = ArtifactFactory.createWireService();
- GroovyAtomicComponent<Greeting> context = new GroovyAtomicComponent<Greeting>("source",
- implClass,
- services,
- injectors,
- null,
- scope,
- wireService);
- scope.register(context);
- Greeting greeting = context.getServiceInstance();
+ GroovyConfiguration configuration = new GroovyConfiguration();
+ configuration.setName("source");
+ configuration.setGroovyClass(implClass);
+ configuration.setServices(services);
+ configuration.setScopeContainer(scopeContainer);
+ configuration.setWireService(createWireService());
+ GroovyAtomicComponent<Greeting> component = new GroovyAtomicComponent<Greeting>(configuration);
+ ObjectFactory<?> factory = createMock(ObjectFactory.class);
+ expect(factory.getInstance()).andReturn("bar");
+ replay(factory);
+ component.addPropertyFactory("property", factory);
+ Greeting greeting = component.getServiceInstance();
assertEquals("bar", greeting.greet("foo"));
- scope.stop();
}
+ @SuppressWarnings("unchecked")
protected void setUp() throws Exception {
super.setUp();
GroovyClassLoader cl = new GroovyClassLoader(getClass().getClassLoader());
implClass = cl.parseClass(SCRIPT);
+ scopeContainer = createMock(ScopeContainer.class);
+ expect(scopeContainer.getInstance(isA(AtomicComponent.class))).andStubAnswer(new IAnswer() {
+ public Object answer() throws Throwable {
+ return ((AtomicComponent) getCurrentArguments()[0]).createInstance();
+ }
+ });
+ replay(scopeContainer);
}
}
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java Sun Aug 6 11:53:36 2006
@@ -2,15 +2,21 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.Collections;
-import groovy.lang.GroovyObject;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ScopeContainer;
+
import groovy.lang.GroovyClassLoader;
+import groovy.lang.GroovyObject;
import junit.framework.TestCase;
-
import org.apache.tuscany.container.groovy.mock.Greeting;
-import org.apache.tuscany.core.component.scope.ModuleScopeContainer;
-import org.apache.tuscany.test.ArtifactFactory;
+import static org.apache.tuscany.test.ArtifactFactory.createWireService;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.getCurrentArguments;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import org.easymock.IAnswer;
/**
* @version $$Rev$$ $$Date$$
@@ -18,35 +24,38 @@
public class ScriptInvokeTestCase extends TestCase {
private static final String SCRIPT = "def greet(name) { return name }";
- private static final List<PropertyInjector> INJECTORS = Collections.emptyList();
private Class<? extends GroovyObject> implClass;
+ private ScopeContainer scopeContainer;
/**
* Tests the invocation of a Groovy "script" as opposed to a class
*/
public void testBasicScriptInvocation() throws Exception {
- ModuleScopeContainer scope = new ModuleScopeContainer(null);
- scope.start();
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
- GroovyAtomicComponent<GroovyObject> context =
- new GroovyAtomicComponent<GroovyObject>("source",
- implClass,
- services,
- INJECTORS,
- null,
- scope,
- ArtifactFactory.createWireService());
- scope.register(context);
+ GroovyConfiguration configuration = new GroovyConfiguration();
+ configuration.setName("source");
+ configuration.setGroovyClass(implClass);
+ configuration.setServices(services);
+ configuration.setScopeContainer(scopeContainer);
+ configuration.setWireService(createWireService());
+ GroovyAtomicComponent<GroovyObject> context = new GroovyAtomicComponent<GroovyObject>(configuration);
GroovyObject object = context.getServiceInstance();
assertEquals("foo", object.invokeMethod("greet", "foo"));
- scope.stop();
}
+ @SuppressWarnings("unchecked")
protected void setUp() throws Exception {
super.setUp();
GroovyClassLoader cl = new GroovyClassLoader(getClass().getClassLoader());
implClass = cl.parseClass(SCRIPT);
+ scopeContainer = createMock(ScopeContainer.class);
+ expect(scopeContainer.getInstance(isA(AtomicComponent.class))).andStubAnswer(new IAnswer() {
+ public Object answer() throws Throwable {
+ return ((AtomicComponent) getCurrentArguments()[0]).createInstance();
+ }
+ });
+ replay(scopeContainer);
}
}
Modified: incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java (original)
+++ incubator/tuscany/java/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java Sun Aug 6 11:53:36 2006
@@ -2,14 +2,9 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.Collections;
-import junit.framework.TestCase;
-import static org.easymock.EasyMock.*;
-import org.easymock.IArgumentMatcher;
-
-import org.apache.tuscany.container.groovy.mock.Greeting;
-import org.apache.tuscany.core.component.scope.ModuleScopeContainer;
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.Message;
@@ -17,59 +12,69 @@
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.test.ArtifactFactory;
import groovy.lang.GroovyClassLoader;
import groovy.lang.GroovyObject;
+import junit.framework.TestCase;
+import org.apache.tuscany.container.groovy.mock.Greeting;
+import static org.apache.tuscany.test.ArtifactFactory.createInboundWire;
+import static org.apache.tuscany.test.ArtifactFactory.createOutboundWire;
+import static org.apache.tuscany.test.ArtifactFactory.createWireService;
+import static org.apache.tuscany.test.ArtifactFactory.terminateWire;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.getCurrentArguments;
+import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.reportMatcher;
+import static org.easymock.EasyMock.verify;
+import org.easymock.IAnswer;
+import org.easymock.IArgumentMatcher;
/**
* @version $$Rev$$ $$Date$$
*/
public class WireTestCase extends TestCase {
- private static final List<PropertyInjector> INJECTORS = Collections.emptyList();
private static final String SCRIPT = "import org.apache.tuscany.container.groovy.mock.Greeting;"
- + "class Foo implements Greeting{"
- + " Greeting wire;"
- + " "
- + " void setWire(Greeting ref){"
- + " wire = ref;"
- + " };"
- + " "
- + " String greet(String name){"
- + " return wire.greet(name); "
- + " };"
- + "}";
+ + "class Foo implements Greeting{"
+ + " Greeting wire;"
+ + " "
+ + " void setWire(Greeting ref){"
+ + " wire = ref;"
+ + " };"
+ + " "
+ + " String greet(String name){"
+ + " return wire.greet(name); "
+ + " };"
+ + "}";
private static final String SCRIPT2 = "import org.apache.tuscany.container.groovy.mock.Greeting;"
- + "class Foo implements Greeting{"
- + " public String greet(String name){"
- + " return name; "
- + " }"
- + "}";
+ + "class Foo implements Greeting{"
+ + " public String greet(String name){"
+ + " return name; "
+ + " }"
+ + "}";
private Class<? extends GroovyObject> implClass1;
private Class<? extends GroovyObject> implClass2;
+ private ScopeContainer scopeContainer;
/**
* Tests a basic invocation down a source wire
*/
public void testReferenceWireInvocation() throws Exception {
- ModuleScopeContainer scope = new ModuleScopeContainer(null);
- scope.start();
-
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
- GroovyAtomicComponent<Greeting> context =
- new GroovyAtomicComponent<Greeting>("source",
- implClass1,
- services,
- INJECTORS,
- null,
- scope,
- ArtifactFactory.createWireService());
- OutboundWire<?> wire = ArtifactFactory.createOutboundWire("wire", Greeting.class);
- ArtifactFactory.terminateWire(wire);
+ GroovyConfiguration configuration = new GroovyConfiguration();
+ configuration.setName("source");
+ configuration.setGroovyClass(implClass1);
+ configuration.setServices(services);
+ configuration.setScopeContainer(scopeContainer);
+ configuration.setWireService(createWireService());
+ GroovyAtomicComponent<Greeting> component = new GroovyAtomicComponent<Greeting>(configuration);
+ OutboundWire<?> wire = createOutboundWire("wire", Greeting.class);
+ terminateWire(wire);
TargetInvoker invoker = createMock(TargetInvoker.class);
expect(invoker.isCacheable()).andReturn(false);
@@ -81,13 +86,10 @@
for (OutboundInvocationChain chain : wire.getInvocationChains().values()) {
chain.setTargetInvoker(invoker);
}
- scope.register(context);
- context.addOutboundWire(wire);
- Greeting greeting = context.getServiceInstance();
+ component.addOutboundWire(wire);
+ Greeting greeting = component.getServiceInstance();
assertEquals("foo", greeting.greet("foo"));
verify(invoker);
-
- scope.stop();
}
// todo this could be generalized and moved to test module
@@ -113,23 +115,18 @@
* Tests a basic invocation to a target
*/
public void testTargetInvocation() throws Exception {
- ModuleScopeContainer scope = new ModuleScopeContainer(null);
- scope.start();
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
- GroovyAtomicComponent<Greeting> context =
- new GroovyAtomicComponent<Greeting>("source",
- implClass2,
- services,
- INJECTORS,
- null,
- scope,
- ArtifactFactory.createWireService());
- scope.register(context);
+ GroovyConfiguration configuration = new GroovyConfiguration();
+ configuration.setName("source");
+ configuration.setGroovyClass(implClass2);
+ configuration.setServices(services);
+ configuration.setScopeContainer(scopeContainer);
+ configuration.setWireService(createWireService());
+ GroovyAtomicComponent<Greeting> component = new GroovyAtomicComponent<Greeting>(configuration);
TargetInvoker invoker =
- context.createTargetInvoker("greeting", Greeting.class.getMethod("greet", String.class));
+ component.createTargetInvoker("greeting", Greeting.class.getMethod("greet", String.class));
assertEquals("foo", invoker.invokeTarget(new String[]{"foo"}));
- scope.stop();
}
@@ -137,29 +134,23 @@
* Tests a basic invocation down a target wire
*/
public void testTargetWireInvocation() throws Exception {
- ModuleScopeContainer scope = new ModuleScopeContainer(null);
- scope.start();
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
- GroovyAtomicComponent<Greeting> context =
- new GroovyAtomicComponent<Greeting>("source",
- implClass2,
- services,
- INJECTORS,
- null,
- scope,
- ArtifactFactory.createWireService());
- scope.register(context);
-
- InboundWire<?> wire = ArtifactFactory.createInboundWire("Greeting", Greeting.class);
- ArtifactFactory.terminateWire(wire);
+ GroovyConfiguration configuration = new GroovyConfiguration();
+ configuration.setName("source");
+ configuration.setGroovyClass(implClass2);
+ configuration.setServices(services);
+ configuration.setScopeContainer(scopeContainer);
+ configuration.setWireService(createWireService());
+ GroovyAtomicComponent<Greeting> component = new GroovyAtomicComponent<Greeting>(configuration);
+ InboundWire<?> wire = createInboundWire("Greeting", Greeting.class);
+ terminateWire(wire);
for (InboundInvocationChain chain : wire.getInvocationChains().values()) {
- chain.setTargetInvoker(context.createTargetInvoker("Greeting", chain.getMethod()));
+ chain.setTargetInvoker(component.createTargetInvoker("Greeting", chain.getMethod()));
}
- context.addInboundWire(wire);
- Greeting greeting = (Greeting) context.getServiceInstance("Greeting");
+ component.addInboundWire(wire);
+ Greeting greeting = (Greeting) component.getServiceInstance("Greeting");
assertEquals("foo", greeting.greet("foo"));
- scope.stop();
}
protected void setUp() throws Exception {
@@ -167,5 +158,12 @@
GroovyClassLoader cl = new GroovyClassLoader(getClass().getClassLoader());
implClass1 = cl.parseClass(SCRIPT);
implClass2 = cl.parseClass(SCRIPT2);
+ scopeContainer = createMock(ScopeContainer.class);
+ expect(scopeContainer.getInstance(isA(AtomicComponent.class))).andStubAnswer(new IAnswer() {
+ public Object answer() throws Throwable {
+ return ((AtomicComponent) getCurrentArguments()[0]).createInstance();
+ }
+ });
+ replay(scopeContainer);
}
}
Modified: incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java (original)
+++ incubator/tuscany/java/sca/containers/container.javascript/src/main/java/org/apache/tuscany/container/javascript/JavaScriptComponent.java Sun Aug 6 11:53:36 2006
@@ -49,7 +49,7 @@
public JavaScriptComponent(String name, RhinoScript rhinoScript, List<Class<?>> services, Map<String, Object> properties,
CompositeComponent parent, ScopeContainer scopeContainer, WireService wireService, WorkContext workContext) {
- super(name, parent, scopeContainer, wireService, workContext, 0);
+ super(name, parent, scopeContainer, wireService, workContext, null, 0);
this.rhinoScript = rhinoScript;
this.services = services;
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java Sun Aug 6 11:53:36 2006
@@ -62,6 +62,7 @@
configuration.getScopeContainer(),
configuration.getWireService(),
configuration.getWorkContext(),
+ configuration.getScheduler(),
configuration.getInitLevel());
assert configuration.getInstanceFactory() != null : "Object factory was null";
initInvoker = configuration.getInitInvoker();
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/PojoConfiguration.java Sun Aug 6 11:53:36 2006
@@ -22,6 +22,7 @@
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.services.work.WorkScheduler;
import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.core.injection.EventInvoker;
@@ -49,6 +50,7 @@
private List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
private WireService wireService;
private WorkContext workContext;
+ private WorkScheduler scheduler;
public CompositeComponent<?> getParent() {
return parent;
@@ -164,6 +166,14 @@
public void setWorkContext(WorkContext workContext) {
this.workContext = workContext;
+ }
+
+ public WorkScheduler getScheduler() {
+ return scheduler;
+ }
+
+ public void setScheduler(WorkScheduler scheduler) {
+ this.scheduler = scheduler;
}
}
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaAtomicComponent.java Sun Aug 6 11:53:36 2006
@@ -23,7 +23,6 @@
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.TargetNotFoundException;
-import org.apache.tuscany.spi.services.work.WorkScheduler;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.RuntimeWire;
@@ -46,14 +45,13 @@
*/
public class JavaAtomicComponent<T> extends PojoAtomicComponent<T> {
- private WorkScheduler workScheduler;
private AsyncMonitor monitor;
- public JavaAtomicComponent(String name, PojoConfiguration configuration, WorkScheduler scheduler,
+ public JavaAtomicComponent(String name,
+ PojoConfiguration configuration,
AsyncMonitor monitor) {
super(name, configuration);
this.scope = configuration.getScopeContainer().getScope();
- this.workScheduler = scheduler;
this.monitor = monitor;
}
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilder.java Sun Aug 6 11:53:36 2006
@@ -45,10 +45,7 @@
import org.apache.tuscany.core.injection.MethodEventInvoker;
import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.core.policy.async.AsyncMonitor;
-import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.InboundWireImpl;
import org.apache.tuscany.core.wire.InvokerInterceptor;
-import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
/**
* Builds a Java-based atomic context from a component definition
@@ -96,6 +93,8 @@
configuration.setWireService(wireService);
configuration.setWorkContext(workContext);
+ configuration.setScheduler(workScheduler);
+
// setup property injection sites
for (JavaMappedProperty<?> property : componentType.getProperties().values()) {
configuration.addPropertySite(property.getName(), property.getMember());
@@ -117,7 +116,7 @@
configuration.getConstructorParamNames().addAll(ctorDef.getInjectionNames());
JavaAtomicComponent component =
- new JavaAtomicComponent(definition.getName(), configuration, workScheduler, monitor);
+ new JavaAtomicComponent(definition.getName(), configuration, monitor);
// handle properties
for (JavaMappedProperty<?> property : componentType.getProperties().values()) {
@@ -170,8 +169,8 @@
if (callbackInterface != null) {
wire.setCallbackInterface(callbackInterface);
for (Method callbackMethod : callbackInterface.getMethods()) {
- InboundInvocationChain callbackTargetChain = new InboundInvocationChainImpl(callbackMethod);
- OutboundInvocationChain callbackSourceChain = new OutboundInvocationChainImpl(callbackMethod);
+ InboundInvocationChain callbackTargetChain = wireService.createInboundChain(callbackMethod);
+ OutboundInvocationChain callbackSourceChain = wireService.createOutboundChain(callbackMethod);
// TODO handle policy
//TODO statement below could be cleaner
callbackTargetChain.addInterceptor(new InvokerInterceptor());
@@ -185,11 +184,11 @@
@SuppressWarnings("unchecked")
private InboundWire createWire(JavaMappedService service) {
Class<?> interfaze = service.getServiceContract().getInterfaceClass();
- InboundWire wire = new InboundWireImpl();
+ InboundWire wire = wireService.createInboundWire();
wire.setBusinessInterface(interfaze);
wire.setServiceName(service.getName());
for (Method method : interfaze.getMethods()) {
- InboundInvocationChain chain = new InboundInvocationChainImpl(method);
+ InboundInvocationChain chain = wireService.createInboundChain(method);
// TODO handle policy
//TODO statement below could be cleaner
chain.addInterceptor(new InvokerInterceptor());
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/processor/HeuristicPojoProcessor.java Sun Aug 6 11:53:36 2006
@@ -220,13 +220,10 @@
}
} else {
if (!areUnique(params)) {
- throw new AmbiguousConstructorException(
- "Unable to resolve parameter types as they are not unique, use @Constructor");
+ throw new AmbiguousConstructorException("Cannot resolve non-unique parameter types, use @Constructor");
}
if (!calcPropRefUniqueness(props.values(), refs.values())) {
- throw new AmbiguousConstructorException(
- "Unable to resolve parameter types as reference and property types are not unique, "
- + "use @Constructor");
+ throw new AmbiguousConstructorException("Cannot resolve non-unique parameter types, use @Constructor");
}
boolean empty = props.size() + refs.size() == 0;
if (!empty) {
@@ -289,7 +286,7 @@
if (property.getJavaType().equals(type)) {
if (name != null) {
AmbiguousConstructorException e = new AmbiguousConstructorException(
- "Cannot unambiguously determine property or reference for constructor type");
+ "Ambiguous property or reference for constructor type");
e.setIdentifier(type.getName());
throw e;
}
@@ -301,7 +298,7 @@
if (reference.getServiceContract().getInterfaceClass().equals(type)) {
if (name != null) {
AmbiguousConstructorException e = new AmbiguousConstructorException(
- "Cannot unambiguously determine property or reference for constructor type");
+ "Ambiguous property or reference for constructor type");
e.setIdentifier(type.getName());
throw e;
}
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemComponentBuilder.java Sun Aug 6 11:53:36 2006
@@ -108,8 +108,7 @@
// handle inbound wires
for (ServiceDefinition serviceDefinition : componentType.getServices().values()) {
Class interfaze = serviceDefinition.getServiceContract().getInterfaceClass();
- SystemInboundWire<?> wire =
- new SystemInboundWireImpl(serviceDefinition.getName(), interfaze, component);
+ SystemInboundWire<?> wire = new SystemInboundWireImpl(serviceDefinition.getName(), interfaze, component);
component.addInboundWire(wire);
}
// handle references directly with no proxies
Modified: incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManager.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManager.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManager.java (original)
+++ incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/services/work/jsr237/workmanager/ThreadPoolWorkManager.java Sun Aug 6 11:53:36 2006
@@ -199,7 +199,7 @@
* Overrides the run method.
*/
public void run() {
- workStarted(workItem, decoratedWork);
+ workStarted(workItem, decoratedWork);
try {
decoratedWork.run();
workCompleted(workItem, decoratedWork);
@@ -209,10 +209,10 @@
}
}
-
+
@Destroy
public void destroy() {
- executor.shutdown();
+ executor.shutdown();
}
}
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/GetServiceByNameTestCase.java Sun Aug 6 11:53:36 2006
@@ -32,7 +32,7 @@
configuration.setInstanceFactory(new PojoObjectFactory<TargetImpl>(TargetImpl.class.getConstructor()));
configuration.addServiceInterface(Target.class);
configuration.setWireService(new JDKWireService());
- final JavaAtomicComponent<?> component = new JavaAtomicComponent("target", configuration, null, null);
+ final JavaAtomicComponent<?> component = new JavaAtomicComponent("target", configuration, null);
InboundWire wire = createMock(InboundWire.class);
expect(wire.getBusinessInterface()).andReturn(Target.class);
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaComponentBuilderTestCase.java Sun Aug 6 11:53:36 2006
@@ -22,6 +22,7 @@
import org.apache.tuscany.core.implementation.java.mock.components.Source;
import org.apache.tuscany.core.implementation.java.mock.components.SourceImpl;
import org.apache.tuscany.core.implementation.java.mock.components.Target;
+import org.apache.tuscany.core.wire.jdk.JDKWireService;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.jmock.core.Invocation;
@@ -59,13 +60,14 @@
new ComponentDefinition<JavaImplementation>(sourceImpl);
JavaComponentBuilder builder = new JavaComponentBuilder();
- JavaAtomicComponent<Source> ctx =
+ builder.setWireService(new JDKWireService());
+ JavaAtomicComponent<Source> component =
(JavaAtomicComponent<Source>) builder.build(parent, sourceComponentDefinition, deploymentContext);
deploymentContext.getModuleScope().start();
- ctx.start();
- Source source = ctx.getServiceInstance();
+ component.start();
+ Source source = component.getServiceInstance();
assertNotNull(source);
- ctx.stop();
+ component.stop();
}
protected void setUp() throws Exception {
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaReferenceWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaReferenceWireTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaReferenceWireTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaReferenceWireTestCase.java Sun Aug 6 11:53:36 2006
@@ -5,17 +5,17 @@
import java.util.Map;
import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.core.implementation.PojoConfiguration;
import org.apache.tuscany.spi.component.ScopeContainer;
-import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.core.implementation.PojoConfiguration;
import org.apache.tuscany.core.implementation.java.mock.components.Source;
import org.apache.tuscany.core.implementation.java.mock.components.SourceImpl;
import org.apache.tuscany.core.implementation.java.mock.components.Target;
import org.apache.tuscany.core.implementation.java.mock.components.TargetImpl;
+import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.jmock.core.Invocation;
@@ -56,7 +56,7 @@
}
});
configuration.setWireService((WireService) mockService.proxy());
- JavaAtomicComponent sourceContext = new JavaAtomicComponent("source", configuration, null, null);
+ JavaAtomicComponent sourceContext = new JavaAtomicComponent("source", configuration, null);
sourceContext.addOutboundWire(wire);
sourceContext.start();
Source source = (Source) sourceContext.getServiceInstance();
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/integration/component/OutboundWireToJavaTestCase.java Sun Aug 6 11:53:36 2006
@@ -157,7 +157,7 @@
configuration.setScopeContainer(scope);
configuration.setInstanceFactory(new PojoObjectFactory<TargetImpl>(TargetImpl.class.getConstructor()));
configuration.addServiceInterface(Target.class);
- JavaAtomicComponent<?> atomicComponent = new JavaAtomicComponent("target", configuration, null, null);
+ JavaAtomicComponent<?> atomicComponent = new JavaAtomicComponent("target", configuration, null);
InboundWire targetWire = MockFactory.createTargetWire("Target", Target.class);
atomicComponent.addInboundWire(targetWire);
connector.connect(atomicComponent, atomicComponent, wire, atomicComponent.getInboundWire("Target"), false);
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/implementation/java/mock/MockFactory.java Sun Aug 6 11:53:36 2006
@@ -68,7 +68,7 @@
}
configuration.addServiceInterface(DummyImpl.class);
configuration.setWireService(WIRE_SERVICE);
- return new JavaAtomicComponent(instance.getClass().getName(), configuration, null, null);
+ return new JavaAtomicComponent(instance.getClass().getName(), configuration, null);
}
@SuppressWarnings("unchecked")
@@ -79,7 +79,7 @@
configuration.setInstanceFactory(new PojoObjectFactory(clazz.getConstructor()));
configuration.addServiceInterface(clazz);
configuration.setWireService(WIRE_SERVICE);
- return new JavaAtomicComponent(name, configuration, null, null);
+ return new JavaAtomicComponent(name, configuration, null);
}
@@ -94,7 +94,7 @@
configuration.setInstanceFactory(new PojoObjectFactory(clazz.getConstructor()));
configuration.addServiceInterface(clazz);
configuration.setWireService(WIRE_SERVICE);
- return new JavaAtomicComponent(name, configuration, scheduler, null);
+ return new JavaAtomicComponent(name, configuration, null);
}
@@ -171,7 +171,7 @@
for (Map.Entry<String, Member> entry : members.entrySet()) {
configuration.addReferenceSite(entry.getKey(), entry.getValue());
}
- JavaAtomicComponent sourceContext = new JavaAtomicComponent(sourceName, configuration, null, null);
+ JavaAtomicComponent sourceContext = new JavaAtomicComponent(sourceName, configuration, null);
OutboundWire outboundWire = createReferenceWire(targetName, sourceReferenceClass, sourceHeadInterceptor,
sourceHeadRequestHandler, sourceHeadResponseHandler);
sourceContext.addOutboundWire(outboundWire);
@@ -222,7 +222,7 @@
for (Map.Entry<String, Member> entry : members.entrySet()) {
configuration.addReferenceSite(entry.getKey(), entry.getValue());
}
- JavaAtomicComponent sourceContext = new JavaAtomicComponent(sourceName, configuration, null, null);
+ JavaAtomicComponent sourceContext = new JavaAtomicComponent(sourceName, configuration, null);
OutboundWire outboundWire = createReferenceWire(targetName, sourceReferenceClass, null, null, null);
List<OutboundWire> factories = new ArrayList<OutboundWire>();
factories.add(outboundWire);
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/SystemBuilderWireTestCase.java Sun Aug 6 11:53:36 2006
@@ -146,7 +146,10 @@
connector.connect(sourceComponent);
String serviceName = service.getOutboundWire().getTargetName().getPortName();
- connector.connect(sourceComponent, parent, service.getOutboundWire(), sourceComponent.getInboundWire(serviceName),
+ connector.connect(sourceComponent,
+ parent,
+ service.getOutboundWire(),
+ sourceComponent.getInboundWire(serviceName),
true);
parent.start();
scope.onEvent(new CompositeStart(this, parent));
Modified: incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ComponentLoaderTestCase.java Sun Aug 6 11:53:36 2006
@@ -29,16 +29,17 @@
import org.apache.tuscany.spi.model.ComponentDefinition;
import org.apache.tuscany.spi.model.Implementation;
import org.apache.tuscany.spi.model.Property;
-import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.ServiceDefinition;
-import org.apache.tuscany.core.implementation.java.JavaImplementation;
import org.apache.tuscany.core.implementation.PojoComponentType;
-
+import org.apache.tuscany.core.implementation.java.JavaImplementation;
+import org.easymock.EasyMock;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
-import static org.easymock.EasyMock.*;
-import org.easymock.EasyMock;
/**
* @version $Rev$ $Date$
@@ -82,7 +83,7 @@
}
public void testLoadPropertyWithSource() throws LoaderException, XMLStreamException {
- PojoComponentType<?,?,Property<?>> type =
+ PojoComponentType<?, ?, Property<?>> type =
new PojoComponentType<ServiceDefinition, ReferenceDefinition, Property<?>>();
Property property = new Property();
property.setName("name");
@@ -105,6 +106,6 @@
mockRegistry = mock(LoaderRegistry.class);
mockPropertyFactory = mock(StAXPropertyFactory.class);
loader = new ComponentLoader((LoaderRegistry) mockRegistry.proxy(),
- (StAXPropertyFactory) mockPropertyFactory.proxy());
+ (StAXPropertyFactory) mockPropertyFactory.proxy());
}
}
Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/component/Reference.java Sun Aug 6 11:53:36 2006
@@ -26,8 +26,14 @@
*/
WireInvocationHandler getHandler() throws TargetException;
+ /**
+ * Returns the inbound wire for flowing a request through the reference
+ */
InboundWire<T> getInboundWire();
+ /**
+ * Returns the outbound wire used by the reference to connect to a target
+ */
OutboundWire<T> getOutboundWire();
/**
Modified: incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java (original)
+++ incubator/tuscany/java/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicComponentExtension.java Sun Aug 6 11:53:36 2006
@@ -15,6 +15,7 @@
import org.apache.tuscany.spi.component.TargetException;
import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.services.work.WorkScheduler;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
@@ -33,6 +34,7 @@
protected Map<String, List<OutboundWire>> referenceWires = new HashMap<String, List<OutboundWire>>();
protected WireService wireService;
protected WorkContext workContext;
+ protected WorkScheduler workScheduler;
private final int initLevel;
protected AtomicComponentExtension(String name,
@@ -40,11 +42,13 @@
ScopeContainer scopeContainer,
WireService wireService,
WorkContext workContext,
+ WorkScheduler workScheduler,
int initLevel) {
super(name, parent);
this.scopeContainer = scopeContainer;
this.wireService = wireService;
this.workContext = workContext;
+ this.workScheduler = workScheduler;
this.initLevel = initLevel;
}
Modified: incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java?rev=429173&r1=429172&r2=429173&view=diff
==============================================================================
--- incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java Sun Aug 6 11:53:36 2006
@@ -41,7 +41,7 @@
private class TestExtension extends AtomicComponentExtension {
public TestExtension() {
- super(null, null, null, null, null, 0);
+ super(null, null, null, null, null, null, 0);
}
public Object getServiceInstance() throws TargetException {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org