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/05/19 22:50:12 UTC
svn commit: r407909 - in /incubator/tuscany/sandbox/jboynes/sca:
containers/container.java/src/main/java/org/apache/tuscany/container/java/context/
containers/container.java/src/test/java/org/apache/tuscany/container/java/context/
core/src/main/java/or...
Author: jmarino
Date: Fri May 19 13:50:11 2006
New Revision: 407909
URL: http://svn.apache.org/viewvc?rev=407909&view=rev
Log:
initial system wire refactors; more to come
Added:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/InvalidServiceTypeException.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/AutowireResolver.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/InterCompositeResolver.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java
- copied, changed from r407028, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/LazyIntraCompositeResolver.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/core/src/main/java/org/apache/tuscany/core/injection/PojoObjectFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/LazyIntraCompositeResolver.java
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/HttpSessionScopeRestartTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ModuleScopeRestartTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/RequestScopeRestartTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/CompositePropagationTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/context/JavaAtomicContext.java Fri May 19 13:50:11 2006
@@ -16,97 +16,35 @@
*/
package org.apache.tuscany.container.java.context;
-import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.tuscany.common.ObjectCreationException;
import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.container.java.invocation.JavaTargetInvoker;
-import org.apache.tuscany.core.context.PojoInstanceWrapper;
-import org.apache.tuscany.core.injection.ArrayMultiplicityObjectFactory;
+import org.apache.tuscany.core.context.PojoAtomicContext;
import org.apache.tuscany.core.injection.EventInvoker;
-import org.apache.tuscany.core.injection.FieldInjector;
import org.apache.tuscany.core.injection.Injector;
-import org.apache.tuscany.core.injection.InvalidAccessorException;
-import org.apache.tuscany.core.injection.ListMultiplicityObjectFactory;
-import org.apache.tuscany.core.injection.MethodInjector;
-import org.apache.tuscany.core.injection.NoAccessorException;
-import org.apache.tuscany.core.injection.ProxyObjectFactory;
import org.apache.tuscany.model.Scope;
-import org.apache.tuscany.spi.context.InstanceWrapper;
import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.extension.AtomicContextExtension;
-import org.apache.tuscany.spi.wire.SourceWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.TargetWire;
/**
* Provides a runtime context for Java component implementations
*
* @version $Rev$ $Date$
*/
-public class JavaAtomicContext<T> extends AtomicContextExtension<T> {
-
- private List<Injector> injectors;
- private Map<String, Member> members;
-
- protected boolean eagerInit;
- protected EventInvoker<Object> initInvoker;
- protected EventInvoker<Object> destroyInvoker;
- protected ObjectFactory<?> objectFactory;
- protected List<Class<?>> serviceInterfaces;
- protected Scope scope;
+public class JavaAtomicContext<T> extends PojoAtomicContext<T> {
public JavaAtomicContext(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, Scope scope, boolean eagerInit, EventInvoker<Object> initInvoker,
EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) {
- this.name = name;
- this.injectors = injectors != null ? injectors : new ArrayList<Injector>();
- this.members = members != null ? members : new HashMap<String, Member>();
- this.objectFactory = objectFactory;
- this.eagerInit = eagerInit;
- this.initInvoker = initInvoker;
- this.destroyInvoker = destroyInvoker;
- this.serviceInterfaces = serviceInterfaces;
+ super(name, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members);
this.scope = scope;
}
- public List<Class<?>> getServiceInterfaces() {
- return serviceInterfaces;
- }
-
- public Scope getScope() {
- return scope;
- }
-
- public boolean isEagerInit() {
- return eagerInit;
- }
-
- public void init(Object instance) throws TargetException {
- if (initInvoker != null) {
- initInvoker.invokeEvent(instance);
- }
- }
-
- public void destroy(Object instance) throws TargetException {
- if (destroyInvoker != null) {
- destroyInvoker.invokeEvent(instance);
- }
- }
-
- @SuppressWarnings("unchecked")
- public T getTargetInstance() throws TargetException {
- return (T) scopeContext.getInstance(this);
- }
-
-
public Object getService(String name) throws TargetException {
- // TODO implement proxying
+ // FIXME implement
return getTargetInstance();
}
@@ -118,85 +56,9 @@
}
}
- public InstanceWrapper createInstance() throws ObjectCreationException {
- Object instance = objectFactory.getInstance();
- // inject the instance with properties and references
- for (Injector<Object> injector : injectors) {
- injector.inject(instance);
- }
- InstanceWrapper ctx = new PojoInstanceWrapper(this, instance);
- ctx.start();
- return ctx;
- }
-
- public void onSourceWire(SourceWire wire) {
- String referenceName = wire.getReferenceName();
- Member member = members.get(referenceName);
- if (member == null) {
- throw new NoAccessorException(referenceName);
- }
- injectors.add(createInjector(member, wire));
- }
-
- public void onSourceWires(Class<?> multiplicityClass, List<SourceWire> wires) {
- assert(wires.size() > 0): "Wire wires was empty";
- String referenceName = wires.get(0).getReferenceName();
- Member member = members.get(referenceName);
- if (member == null) {
- throw new NoAccessorException(referenceName);
- }
- injectors.add(createMultiplicityInjector(member, multiplicityClass, wires));
- }
-
-
- public void onTargetWire(TargetWire wire) {
-
- }
-
public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
return new JavaTargetInvoker(operation, this);
}
- public void prepare() {
- }
-
- private Injector createInjector(Member member, SourceWire wire) {
- ObjectFactory<?> factory = new ProxyObjectFactory(wire);
- if (member instanceof Field) {
- return new FieldInjector(((Field) member), factory);
- } else if (member instanceof Method) {
- return new MethodInjector(((Method) member), factory);
- } else {
- InvalidAccessorException e = new InvalidAccessorException("Member must be a field or method");
- e.setIdentifier(member.getName());
- throw e;
- }
- }
-
- private Injector createMultiplicityInjector(Member member, Class<?> interfaceType, List<SourceWire> wireFactories) {
- List<ObjectFactory<?>> factories = new ArrayList<ObjectFactory<?>>();
- for (SourceWire wire : wireFactories) {
- factories.add(new ProxyObjectFactory(wire));
- }
- if (member instanceof Field) {
- Field field = (Field) member;
- if (field.getType().isArray()) {
- return new FieldInjector(field, new ArrayMultiplicityObjectFactory(interfaceType, factories));
- } else {
- return new FieldInjector(field, new ListMultiplicityObjectFactory(factories));
- }
- } else if (member instanceof Method) {
- Method method = (Method) member;
- if (method.getParameterTypes()[0].isArray()) {
- return new MethodInjector(method, new ArrayMultiplicityObjectFactory(interfaceType, factories));
- } else {
- return new MethodInjector(method, new ListMultiplicityObjectFactory(factories));
- }
- } else {
- InvalidAccessorException e = new InvalidAccessorException("Member must be a field or method");
- e.setIdentifier(member.getName());
- throw e;
- }
- }
}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/context/DifferentInterfaceWireTestCase.java Fri May 19 13:50:11 2006
@@ -44,8 +44,7 @@
public void testDifferentInterfaceInjection() throws Exception {
- Map<String, Member> members;
- members = new HashMap<String, Member>();
+ Map<String, Member> members = new HashMap<String, Member>();
Method m = SourceImpl.class.getMethod("setTarget", Target.class);
members.put("target", m);
WorkContext ctx = new WorkContextImpl();
@@ -62,8 +61,7 @@
}
public void testDifferentInterfaceMultiplicityInjection() throws Exception {
- Map<String, Member> members;
- members = new HashMap<String, Member>();
+ Map<String, Member> members = new HashMap<String, Member>();
Method m = SourceImpl.class.getMethod("setTargets", List.class);
members.put("target", m);
WorkContext ctx = new WorkContextImpl();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/AbstractCompositeContext.java Fri May 19 13:50:11 2006
@@ -11,8 +11,8 @@
import org.apache.tuscany.core.system.context.SystemServiceContext;
import org.apache.tuscany.spi.CoreRuntimeException;
-import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.spi.annotation.Autowire;
+import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.context.Context;
@@ -190,6 +190,29 @@
assert (componentName != null) : "Name was null";
return children.get(componentName);
}
+
+// public <T> T resolve(QualifiedName name, Class<T> serviceType) {
+// Context context = children.get(name.getPartName());
+// if (context instanceof ComponentContext) {
+// return serviceType.cast(((ComponentContext) context).getService(name.getPortName()));
+// } else {
+// Object o = context.getService();
+// if (o == null) {
+// CompositeContext<?> parent = getParent();
+// if (parent == null){
+// throw new TargetNotFoundException(name.getQualifiedName());
+// }
+// return parent.resolve(name,serviceType);
+// } else if (!(serviceType.isAssignableFrom(o.getClass()))) {
+// InvalidServiceTypeException e = new InvalidServiceTypeException("Service implements a different interface");
+// e.setIdentifier(serviceType.getName());
+// e.addContextName(context.getName());
+// e.addContextName(getName());
+// throw e;
+// }
+// return serviceType.cast(o);
+// }
+// }
public <T> T resolveInstance(Class<T> instanceInterface) throws AutowireResolutionException {
if (AutowireContext.class.equals(instanceInterface)) {
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/InvalidServiceTypeException.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/InvalidServiceTypeException.java?rev=407909&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/InvalidServiceTypeException.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/InvalidServiceTypeException.java Fri May 19 13:50:11 2006
@@ -0,0 +1,23 @@
+package org.apache.tuscany.core.context;
+
+import org.apache.tuscany.spi.context.TargetException;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class InvalidServiceTypeException extends TargetException {
+ public InvalidServiceTypeException() {
+ }
+
+ public InvalidServiceTypeException(String message) {
+ super(message);
+ }
+
+ public InvalidServiceTypeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public InvalidServiceTypeException(Throwable cause) {
+ super(cause);
+ }
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/PojoAtomicContext.java Fri May 19 13:50:11 2006
@@ -1,82 +1,85 @@
package org.apache.tuscany.core.context;
+import java.lang.reflect.Field;
+import java.lang.reflect.Member;
+import java.lang.reflect.Method;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.tuscany.common.ObjectCreationException;
import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.core.injection.ArrayMultiplicityObjectFactory;
import org.apache.tuscany.core.injection.EventInvoker;
+import org.apache.tuscany.core.injection.FieldInjector;
import org.apache.tuscany.core.injection.Injector;
-import org.apache.tuscany.model.Scope;
-import org.apache.tuscany.spi.context.AbstractContext;
+import org.apache.tuscany.core.injection.InvalidAccessorException;
+import org.apache.tuscany.core.injection.ListMultiplicityObjectFactory;
+import org.apache.tuscany.core.injection.MethodInjector;
+import org.apache.tuscany.core.injection.ProxyObjectFactory;
+import org.apache.tuscany.core.injection.NoAccessorException;
import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.InstanceWrapper;
-import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.extension.AtomicContextExtension;
+import org.apache.tuscany.spi.wire.SourceWire;
/**
* Base implementation of an {@link AtomicContext} whose implementation type is a Java class
*
* @version $$Rev$$ $$Date$$
*/
-public abstract class PojoAtomicContext<T> extends AbstractContext<T> implements AtomicContext<T> {
+public abstract class PojoAtomicContext<T> extends AtomicContextExtension<T> {
- protected ScopeContext<AtomicContext> scopeContext;
protected boolean eagerInit;
protected EventInvoker<Object> initInvoker;
protected EventInvoker<Object> destroyInvoker;
protected ObjectFactory<?> objectFactory;
protected List<Class<?>> serviceInterfaces;
protected List<Injector> injectors;
+ protected Map<String, Member> members;
+
public PojoAtomicContext(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
- EventInvoker<Object> destroyInvoker, List<Injector> injectors) {
- super(name);
- List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
- serviceInterfaces.add(serviceInterface);
+ EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) {
assert (objectFactory != null) : "Object factory was null";
if (eagerInit && initInvoker == null) {
throw new AssertionError("No intialization method found for eager init implementation");
}
+ this.name = name;
+ List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
+ serviceInterfaces.add(serviceInterface);
this.objectFactory = objectFactory;
this.eagerInit = eagerInit;
this.initInvoker = initInvoker;
this.destroyInvoker = destroyInvoker;
this.serviceInterfaces = serviceInterfaces;
this.injectors = (injectors == null) ? new ArrayList<Injector>() : injectors;
+ this.members = members != null ? members : new HashMap<String, Member>();
+
}
public PojoAtomicContext(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
- EventInvoker<Object> destroyInvoker,List<Injector> injectors) {
- super(name);
+ EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) {
assert (objectFactory != null) : "Object factory was null";
if (eagerInit && initInvoker == null) {
throw new AssertionError("No intialization method found for eager init implementation");
}
+ this.name = name;
this.objectFactory = objectFactory;
this.eagerInit = eagerInit;
this.initInvoker = initInvoker;
this.destroyInvoker = destroyInvoker;
this.serviceInterfaces = serviceInterfaces;
this.injectors = (injectors == null) ? new ArrayList<Injector>() : injectors;
+ this.members = members != null ? members : new HashMap<String, Member>();
}
public List<Class<?>> getServiceInterfaces() {
return serviceInterfaces;
}
- public Scope getScope() {
- if (scopeContext == null) {
- return null;
- }
- return scopeContext.getScope();
- }
-
- public void setScopeContext(ScopeContext<AtomicContext> scopeContext) {
- this.scopeContext = scopeContext;
- scopeContext.register(this);
- }
-
public boolean isEagerInit() {
return eagerInit;
}
@@ -107,6 +110,64 @@
}
ctx.start();
return ctx;
+ }
+
+ public void onSourceWire(SourceWire wire) {
+ String referenceName = wire.getReferenceName();
+ Member member = members.get(referenceName);
+ if (member == null) {
+ throw new NoAccessorException(referenceName);
+ }
+ injectors.add(createInjector(member, wire));
+ }
+
+ public void onSourceWires(Class<?> multiplicityClass, List<SourceWire> wires) {
+ assert(wires.size() > 0): "Wire wires was empty";
+ String referenceName = wires.get(0).getReferenceName();
+ Member member = members.get(referenceName);
+ if (member == null) {
+ throw new NoAccessorException(referenceName);
+ }
+ injectors.add(createMultiplicityInjector(member, multiplicityClass, wires));
+ }
+
+ protected Injector createInjector(Member member, SourceWire wire) {
+ ObjectFactory<?> factory = new ProxyObjectFactory(wire);
+ if (member instanceof Field) {
+ return new FieldInjector(((Field) member), factory);
+ } else if (member instanceof Method) {
+ return new MethodInjector(((Method) member), factory);
+ } else {
+ InvalidAccessorException e = new InvalidAccessorException("Member must be a field or method");
+ e.setIdentifier(member.getName());
+ throw e;
+ }
+ }
+
+ protected Injector createMultiplicityInjector(Member member, Class<?> interfaceType, List<SourceWire> wireFactories) {
+ List<ObjectFactory<?>> factories = new ArrayList<ObjectFactory<?>>();
+ for (SourceWire wire : wireFactories) {
+ factories.add(new ProxyObjectFactory(wire));
+ }
+ if (member instanceof Field) {
+ Field field = (Field) member;
+ if (field.getType().isArray()) {
+ return new FieldInjector(field, new ArrayMultiplicityObjectFactory(interfaceType, factories));
+ } else {
+ return new FieldInjector(field, new ListMultiplicityObjectFactory(factories));
+ }
+ } else if (member instanceof Method) {
+ Method method = (Method) member;
+ if (method.getParameterTypes()[0].isArray()) {
+ return new MethodInjector(method, new ArrayMultiplicityObjectFactory(interfaceType, factories));
+ } else {
+ return new MethodInjector(method, new ListMultiplicityObjectFactory(factories));
+ }
+ } else {
+ InvalidAccessorException e = new InvalidAccessorException("Member must be a field or method");
+ e.setIdentifier(member.getName());
+ throw e;
+ }
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/scope/HttpSessionScopeContext.java Fri May 19 13:50:11 2006
@@ -83,11 +83,11 @@
}
private InstanceWrapper getInstance(AtomicContext context, Object key) {
- Map<Object, InstanceWrapper> contextMap = contexts.get(context);
- InstanceWrapper ctx = contextMap.get(key);
+ Map<Object, InstanceWrapper> wrappers = contexts.get(context);
+ InstanceWrapper ctx = wrappers.get(key);
if (ctx == null) {
ctx = context.createInstance();
- contextMap.put(key, ctx);
+ wrappers.put(key, ctx);
List<InstanceWrapper> destroyQueue = destroyQueues.get(key);
if (destroyQueue == null) {
destroyQueue = new ArrayList<InstanceWrapper>();
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/AutowireResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/AutowireResolver.java?rev=407909&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/AutowireResolver.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/AutowireResolver.java Fri May 19 13:50:11 2006
@@ -0,0 +1,26 @@
+package org.apache.tuscany.core.injection;
+
+import org.apache.tuscany.common.ObjectCreationException;
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.core.context.AutowireContext;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class AutowireResolver<T> implements ObjectFactory<T> {
+
+ private AutowireContext<?> parent;
+
+ private Class<T> autowireType;
+
+ public AutowireResolver(Class<T> autowireType, AutowireContext parent) {
+ assert (autowireType != null) : "Autwire type was null";
+ this.autowireType = autowireType;
+ this.parent = parent;
+ }
+
+ public T getInstance() throws ObjectCreationException {
+ return parent.resolveInstance(autowireType);
+ }
+
+}
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/InterCompositeResolver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/InterCompositeResolver.java?rev=407909&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/InterCompositeResolver.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/InterCompositeResolver.java Fri May 19 13:50:11 2006
@@ -0,0 +1,47 @@
+package org.apache.tuscany.core.injection;
+
+import org.apache.tuscany.common.ObjectCreationException;
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.core.context.InvalidServiceTypeException;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.context.ComponentContext;
+import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.context.TargetNotFoundException;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class InterCompositeResolver<T> implements ObjectFactory<T> {
+
+ private CompositeContext parent;
+ private QualifiedName name;
+ private Class<T> serviceType;
+
+ public InterCompositeResolver(CompositeContext parent, QualifiedName name, Class<T> serviceType) {
+ assert(parent != null): "Parent context was null";
+ assert(name != null): "Qualified name was null";
+ this.parent = parent;
+ this.name = name;
+ this.serviceType = serviceType;
+ }
+
+ @SuppressWarnings("unchecked")
+ public T getInstance() throws ObjectCreationException {
+ Context context = parent.getContext(name.getPartName());
+ if (context instanceof ComponentContext) {
+ return serviceType.cast(((ComponentContext) context).getService(name.getPortName()));
+ } else {
+ Object o = context.getService();
+ if (o == null) {
+ throw new TargetNotFoundException(name.getQualifiedName());
+ } else if (!(serviceType.isAssignableFrom(o.getClass()))) {
+ InvalidServiceTypeException e = new InvalidServiceTypeException("Service implements a different interface");
+ e.setIdentifier(serviceType.getName());
+ e.addContextName(context.getName());
+ throw e;
+ }
+ return serviceType.cast(o);
+ }
+ }
+}
Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java (from r407028, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/LazyIntraCompositeResolver.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/LazyIntraCompositeResolver.java&r1=407028&r2=407909&rev=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/LazyIntraCompositeResolver.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/IntraCompositeResolver.java Fri May 19 13:50:11 2006
@@ -2,46 +2,37 @@
import org.apache.tuscany.common.ObjectCreationException;
import org.apache.tuscany.common.ObjectFactory;
-import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.context.ComponentContext;
-import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.context.IllegalTargetException;
import org.apache.tuscany.spi.context.ReferenceContext;
/**
* @version $$Rev$$ $$Date$$
*/
-public class LazyIntraCompositeResolver<T> implements ObjectFactory<T> {
+public class IntraCompositeResolver<T> implements ObjectFactory<T> {
- private CompositeContext parent;
- private QualifiedName name;
- private Context context;
+ private Context target;
+ private String name;
- public LazyIntraCompositeResolver(CompositeContext parent, QualifiedName name) {
- assert(parent != null): "Parent context was null";
- assert(name != null): "Qualified name was null";
- this.parent = parent;
- this.name = name;
+ public IntraCompositeResolver(Context target, String serviceName) {
+ assert(target != null): "Target was null";
+ if (!(target instanceof ComponentContext) && !(target instanceof ReferenceContext)) {
+ IllegalTargetException e = new IllegalTargetException("Invalid target type");
+ e.setIdentifier(target.getName());
+ throw e;
+
+ }
+ name = serviceName;
+ this.target = target;
}
@SuppressWarnings("unchecked")
public T getInstance() throws ObjectCreationException {
- if (context == null) {
- context = parent.getContext(name.getPartName());
- if (context == null) {
- ObjectCreationException e = new ObjectCreationException("Target not found");
- e.setIdentifier(name.getQualifiedName());
- throw e;
- }
- }
- if (context instanceof ComponentContext) {
- return (T) ((CompositeContext) context).getService(name.getPortName());
- } else if (context instanceof ReferenceContext) {
- return (T) context.getService();
+ if (target instanceof ComponentContext) {
+ return (T) ((ComponentContext) target).getService(name);
} else {
- ObjectCreationException e = new ObjectCreationException("Invalid target type");
- e.setIdentifier(context.getName());
- throw e;
+ return (T) target.getService();
}
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemComponentBuilder.java Fri May 19 13:50:11 2006
@@ -1,22 +1,21 @@
package org.apache.tuscany.core.system.builder;
import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
import java.lang.reflect.Member;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.core.injection.ContextInjector;
-import org.apache.tuscany.core.injection.FieldInjector;
import org.apache.tuscany.core.injection.Injector;
-import org.apache.tuscany.core.injection.LazyIntraCompositeResolver;
-import org.apache.tuscany.core.injection.MethodInjector;
+import org.apache.tuscany.core.injection.IntraCompositeResolver;
import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.core.model.PojoComponentType;
+import org.apache.tuscany.core.system.context.SystemAtomicContext;
import org.apache.tuscany.core.system.context.SystemAtomicContextImpl;
import org.apache.tuscany.core.system.model.SystemImplementation;
+import org.apache.tuscany.core.system.wire.SystemSourceWire;
import org.apache.tuscany.core.util.JavaIntrospectionHelper;
import org.apache.tuscany.model.Component;
import org.apache.tuscany.model.ReferenceTarget;
@@ -26,6 +25,7 @@
import org.apache.tuscany.spi.builder.ComponentBuilder;
import org.apache.tuscany.spi.context.ComponentContext;
import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.Context;
/**
* @version $$Rev$$ $$Date$$
@@ -52,6 +52,7 @@
ObjectFactory<?> factory = new PojoObjectFactory(constr);
List<Injector> injectors = new ArrayList<Injector>();
injectors.addAll(componentType.getInjectors());
+ Map<String, Member> members = componentType.getReferenceMembers();
for (Injector injector : injectors) {
if (injector instanceof ContextInjector) {
// a context injector is found; iterate and determine if the parent context
@@ -66,24 +67,28 @@
}
}
}
+ SystemAtomicContext systemContext = new SystemAtomicContextImpl(component.getName(), serviceInterfaces, factory,
+ componentType.isEagerInit(), componentType.getInitInvoker(), componentType.getDestroyInvoker(), injectors, members);
+
for (ReferenceTarget target : component.getReferenceTargets().values()) {
- //FIXME support multiplicity!
- assert(target.getTargets().size() == 1): "Multiplicity not yet implemented";
- LazyIntraCompositeResolver resolver = new LazyIntraCompositeResolver(parent, new QualifiedName(target.getTargets().get(0).getPath()));
- Member member = componentType.getReferenceMember(target.getReferenceName());
+ String referenceName = target.getReferenceName();
+ Class interfaze = target.getReference().getServiceContract().getInteface();
+ Member member = componentType.getReferenceMember(referenceName);
if (member == null) {
BuilderConfigException e = new BuilderConfigException("Reference not found");
e.setIdentifier(target.getReferenceName());
e.addContextName(component.getName());
e.addContextName(parent.getName());
throw e;
- } else if (member instanceof Field) {
- injectors.add(new FieldInjector((Field) member, resolver));
- } else if (member instanceof Method) {
- injectors.add(new MethodInjector((Method) member, resolver));
}
+ //FIXME support multiplicity!
+ assert(target.getTargets().size() == 1): "Multiplicity not yet implemented";
+ QualifiedName targetName = new QualifiedName(target.getTargets().get(0).getPath());
+ Context targetContext = parent.getContext(targetName.getPartName());
+ IntraCompositeResolver resolver = new IntraCompositeResolver(targetContext, targetName.getPortName());
+ SystemSourceWire wire = new SystemSourceWire(referenceName, targetName, interfaze, resolver);
+ systemContext.addSourceWire(wire);
}
- return new SystemAtomicContextImpl(component.getName(), serviceInterfaces, factory,
- componentType.isEagerInit(), componentType.getInitInvoker(), componentType.getDestroyInvoker(), injectors);
+ return systemContext;
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/AutowireSystemReferenceContext.java Fri May 19 13:50:11 2006
@@ -47,7 +47,7 @@
return referenceInterface;
}
- public TargetWire getTargetWire() {
+ public TargetWire<T> getTargetWire() {
throw new UnsupportedOperationException();
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemAtomicContextImpl.java Fri May 19 13:50:11 2006
@@ -1,6 +1,7 @@
package org.apache.tuscany.core.system.context;
import java.lang.reflect.Method;
+import java.lang.reflect.Member;
import java.util.List;
import java.util.Map;
@@ -9,27 +10,22 @@
import org.apache.tuscany.core.injection.EventInvoker;
import org.apache.tuscany.core.injection.Injector;
import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.wire.SourceWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.TargetWire;
/**
* @version $$Rev$$ $$Date$$
*/
public class SystemAtomicContextImpl<T> extends PojoAtomicContext<T> implements SystemAtomicContext<T> {
- public SystemAtomicContextImpl(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory, List<Injector> injectors) {
- super(name, serviceInterface, objectFactory, false, null, null, injectors);
- }
public SystemAtomicContextImpl(String name, Class<?> serviceInterface, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
- EventInvoker<Object> destroyInvoker, List<Injector> injectors) {
- super(name, serviceInterface, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors);
+ EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) {
+ super(name, serviceInterface, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members);
}
public SystemAtomicContextImpl(String name, List<Class<?>> serviceInterfaces, ObjectFactory<?> objectFactory, boolean eagerInit, EventInvoker<Object> initInvoker,
- EventInvoker<Object> destroyInvoker, List<Injector> injectors) {
- super(name, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors);
+ EventInvoker<Object> destroyInvoker, List<Injector> injectors,Map<String, Member> members) {
+ super(name, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members);
}
@SuppressWarnings("unchecked")
@@ -46,30 +42,6 @@
public T getService() throws TargetException {
return getTargetInstance();
- }
-
- public void addTargetWire(TargetWire wire) {
- throw new UnsupportedOperationException();
- }
-
- public TargetWire getTargetWire(String serviceName) {
- throw new UnsupportedOperationException();
- }
-
- public Map<String, TargetWire> getTargetWires() {
- throw new UnsupportedOperationException();
- }
-
- public void addSourceWire(SourceWire wire) {
- throw new UnsupportedOperationException();
- }
-
- public void addSourceWires(Class<?> multiplicityClass, List<SourceWire> wires) {
- throw new UnsupportedOperationException();
- }
-
- public List<SourceWire> getSourceWires() {
- throw new UnsupportedOperationException();
}
public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java?rev=407909&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemSourceWire.java Fri May 19 13:50:11 2006
@@ -0,0 +1,77 @@
+package org.apache.tuscany.core.system.wire;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.tuscany.common.ObjectFactory;
+import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.wire.ProxyCreationException;
+import org.apache.tuscany.spi.wire.SourceInvocationChain;
+import org.apache.tuscany.spi.wire.SourceWire;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemSourceWire implements SourceWire {
+ private String referenceName;
+ private QualifiedName targetName;
+ private Class businessInterface;
+ private ObjectFactory factory;
+
+ public SystemSourceWire(String referenceName, QualifiedName targetName, Class businessInterface, ObjectFactory factory) {
+ this.referenceName = referenceName;
+ this.targetName = targetName;
+ this.businessInterface = businessInterface;
+ this.factory = factory;
+ }
+
+ public String getReferenceName() {
+ return referenceName;
+ }
+
+ public void setReferenceName(String referenceName) {
+ this.referenceName = referenceName;
+ }
+
+ public QualifiedName getTargetName() {
+ return targetName;
+ }
+
+ public void setTargetName(QualifiedName targetName) {
+ this.targetName = targetName;
+ }
+
+ public Object createProxy() throws ProxyCreationException {
+ return factory.getInstance();
+ }
+
+ public Class getBusinessInterface() {
+ return businessInterface;
+ }
+
+ public void setBusinessInterface(Class businessInterface) {
+ this.businessInterface = businessInterface;
+ }
+
+ public Class[] getImplementedInterfaces() {
+ return new Class[0];
+ }
+
+ public Map getInvocationChains() {
+ return Collections.emptyMap();
+ }
+
+ public void addInvocationChain(Method method, SourceInvocationChain chains) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInvocationChains(Map chains) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInterface(Class claz) {
+ throw new UnsupportedOperationException();
+ }
+
+}
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java?rev=407909&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemTargetWire.java Fri May 19 13:50:11 2006
@@ -0,0 +1,73 @@
+package org.apache.tuscany.core.system.wire;
+
+import java.util.Map;
+import java.util.Collections;
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.ProxyCreationException;
+import org.apache.tuscany.spi.wire.TargetInvocationChain;
+import org.apache.tuscany.spi.wire.SourceInvocationChain;
+import org.apache.tuscany.common.ObjectFactory;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemTargetWire implements TargetWire {
+ private String serviceName;
+ private Class businessInterface;
+ private ObjectFactory factory;
+
+ public SystemTargetWire(String serviceName, Class businessInterface, ObjectFactory factory) {
+ this.serviceName = serviceName;
+ this.businessInterface = businessInterface;
+ this.factory = factory;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+
+ public Object createProxy() throws ProxyCreationException {
+ return factory.getInstance();
+ }
+
+ public Class getBusinessInterface() {
+ return businessInterface;
+ }
+
+
+ public void setBusinessInterface(Class businessInterface) {
+ this.businessInterface = businessInterface;
+ }
+
+ public Class[] getImplementedInterfaces() {
+ return new Class[0];
+ }
+
+ public Map getInvocationChains() {
+ return Collections.emptyMap();
+ }
+
+ public void addInvocationChain(Method method, TargetInvocationChain chain) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInvocationChain(Method method, SourceInvocationChain chains) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInvocationChains(Map chains) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInterface(Class claz) {
+ throw new UnsupportedOperationException();
+ }
+
+
+}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKSourceWire.java Fri May 19 13:50:11 2006
@@ -56,7 +56,7 @@
throw new UnsupportedOperationException("Additional proxy interfaces not yet supported");
}
- public Class[] getImplementatedInterfaces() {
+ public Class[] getImplementedInterfaces() {
return businessInterfaces;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicHttpSessionScopeTestCase.java Fri May 19 13:50:11 2006
@@ -84,6 +84,6 @@
}
private SystemAtomicContext createContext() {
- return new SystemAtomicContextImpl("foo", SessionScopeInitDestroyComponent.class, factory, false, initInvoker, destroyInvoker, null);
+ return new SystemAtomicContextImpl("foo", SessionScopeInitDestroyComponent.class, factory, false, initInvoker, destroyInvoker, null,null);
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicModuleScopeTestCase.java Fri May 19 13:50:11 2006
@@ -77,6 +77,6 @@
}
private SystemAtomicContext createContext() {
- return new SystemAtomicContextImpl("foo", ModuleScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker, null);
+ return new SystemAtomicContextImpl("foo", ModuleScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker, null,null);
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/BasicRequestScopeTestCase.java Fri May 19 13:50:11 2006
@@ -76,6 +76,6 @@
}
private SystemAtomicContext createContext() {
- return new SystemAtomicContextImpl("foo", RequestScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker, null);
+ return new SystemAtomicContextImpl("foo", RequestScopeInitDestroyComponent.class,factory, false, initInvoker, destroyInvoker, null,null);
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/HttpSessionScopeRestartTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/HttpSessionScopeRestartTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/HttpSessionScopeRestartTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/HttpSessionScopeRestartTestCase.java Fri May 19 13:50:11 2006
@@ -26,7 +26,7 @@
List<Class<?>> interfaces = new ArrayList<Class<?>>();
interfaces.add(HttpSessionScopeRestartTestCase.InitDestroyOnce.class);
SystemAtomicContext context = MockContextFactory.createSystemAtomicContext("InitDestroy", interfaces,
- HttpSessionScopeRestartTestCase.InitDestroyOnce.class, false, initInvoker, destroyInvoker, null);
+ HttpSessionScopeRestartTestCase.InitDestroyOnce.class, false, initInvoker, destroyInvoker, null,null);
context.setScopeContext(scope);
context.start();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ModuleScopeRestartTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ModuleScopeRestartTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ModuleScopeRestartTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/ModuleScopeRestartTestCase.java Fri May 19 13:50:11 2006
@@ -26,7 +26,7 @@
List<Class<?>> interfaces = new ArrayList<Class<?>>();
interfaces.add(InitDestroyOnce.class);
SystemAtomicContext context = MockContextFactory.createSystemAtomicContext("InitDestroy", interfaces,
- InitDestroyOnce.class, false, initInvoker, destroyInvoker, null);
+ InitDestroyOnce.class, false, initInvoker, destroyInvoker, null,null);
context.setScopeContext(scope);
context.start();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/RequestScopeRestartTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/RequestScopeRestartTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/RequestScopeRestartTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/context/scope/RequestScopeRestartTestCase.java Fri May 19 13:50:11 2006
@@ -25,7 +25,7 @@
List<Class<?>> interfaces = new ArrayList<Class<?>>();
interfaces.add(RequestScopeRestartTestCase.InitDestroyOnce.class);
SystemAtomicContext context = MockContextFactory.createSystemAtomicContext("InitDestroy", interfaces,
- RequestScopeRestartTestCase.InitDestroyOnce.class, false, initInvoker, destroyInvoker, null);
+ RequestScopeRestartTestCase.InitDestroyOnce.class, false, initInvoker, destroyInvoker, null,null);
context.setScopeContext(scope);
context.start();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/AtomicContextToReferenceContextTestCase.java Fri May 19 13:50:11 2006
@@ -2,6 +2,9 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.lang.reflect.Member;
import junit.framework.TestCase;
import org.apache.tuscany.core.context.WorkContextImpl;
@@ -9,6 +12,7 @@
import org.apache.tuscany.core.injection.Injector;
import org.apache.tuscany.core.injection.MethodInjector;
import org.apache.tuscany.core.injection.TargetInstanceResolver;
+import org.apache.tuscany.core.injection.IntraCompositeResolver;
import org.apache.tuscany.core.mock.MockContextFactory;
import org.apache.tuscany.core.mock.component.Source;
import org.apache.tuscany.core.mock.component.SourceImpl;
@@ -18,8 +22,10 @@
import org.apache.tuscany.core.system.context.SystemAtomicContext;
import org.apache.tuscany.core.system.context.SystemCompositeContext;
import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
+import org.apache.tuscany.core.system.wire.SystemSourceWire;
import org.apache.tuscany.spi.context.ReferenceContext;
import org.apache.tuscany.spi.context.WorkContext;
+import org.apache.tuscany.spi.QualifiedName;
/**
* @version $$Rev$$ $$Date$$
@@ -33,12 +39,12 @@
scope.start();
ReferenceContext<Target> serviceContext = new MockReferenceContext<Target>("service", Target.class, new TargetImpl());
context.registerContext(serviceContext);
- List<Injector> injectors = new ArrayList<Injector>();
- MethodInjector injector = new MethodInjector(SourceImpl.class.getMethod("setTarget", Target.class), new TargetInstanceResolver<Target>(serviceContext));
- injectors.add(injector);
+ Map<String, Member> members = new HashMap<String,Member>();
+ members.put("setTarget",SourceImpl.class.getMethod("setTarget", Target.class));
List<Class<?>> interfaces = new ArrayList<Class<?>>();
interfaces.add(Source.class);
- SystemAtomicContext sourceContext = MockContextFactory.createSystemAtomicContext("source", interfaces, SourceImpl.class, injectors);
+ SystemAtomicContext sourceContext = MockContextFactory.createSystemAtomicContext("source", interfaces, SourceImpl.class, null,members);
+ sourceContext.addSourceWire(new SystemSourceWire("setTarget",new QualifiedName("service"),Target.class, new IntraCompositeResolver(serviceContext,"")));
context.registerContext(sourceContext);
sourceContext.setScopeContext(scope);
context.start();
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/MockContextFactory.java Fri May 19 13:50:11 2006
@@ -1,25 +1,27 @@
package org.apache.tuscany.core.mock;
import java.lang.reflect.Constructor;
+import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.tuscany.common.ObjectCreationException;
import org.apache.tuscany.common.ObjectFactory;
import org.apache.tuscany.core.injection.EventInvoker;
import org.apache.tuscany.core.injection.Injector;
+import org.apache.tuscany.core.injection.IntraCompositeResolver;
import org.apache.tuscany.core.injection.MethodEventInvoker;
-import org.apache.tuscany.core.injection.MethodInjector;
import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.core.system.context.SystemAtomicContext;
import org.apache.tuscany.core.system.context.SystemAtomicContextImpl;
+import org.apache.tuscany.core.system.wire.SystemSourceWire;
import org.apache.tuscany.core.util.MethodHashMap;
import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.TargetInvocationChainImpl;
import org.apache.tuscany.core.wire.jdk.JDKTargetWire;
+import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.wire.TargetInvocationChain;
@@ -73,10 +75,16 @@
if (setter == null) {
throw new IllegalArgumentException("No setter found on source for target");
}
- MethodInjector injector = new MethodInjector(setter, new AtomicContextInstanceFactory(targetCtx));
- List<Injector> injectors = new ArrayList<Injector>();
- injectors.add(injector);
- SystemAtomicContext sourceCtx = createSystemAtomicContext(source, sourceInterfaces, sourceClass, injectors);//, sourceEager, sourceInitInvoker, sourceDestroyInvoker, injectors);
+
+// MethodInjector injector = new MethodInjector(setter, new AtomicContextInstanceFactory(targetCtx));
+// List<Injector> injectors = new ArrayList<Injector>();
+// injectors.add(injector);
+ Map<String, Member> members = new HashMap<String, Member>();
+ members.put(setter.getName(), setter);
+ SystemAtomicContext sourceCtx = createSystemAtomicContext(source, sourceInterfaces, sourceClass, null, members);//, sourceEager, sourceInitInvoker, sourceDestroyInvoker, injectors);
+ QualifiedName targetName = new QualifiedName(target);
+ SystemSourceWire wire = new SystemSourceWire(setter.getName(), targetName, targetClass, new IntraCompositeResolver(targetCtx, targetName.getPortName()));
+ sourceCtx.addSourceWire(wire);
sourceCtx.setScopeContext(sourceScopeCtx);
contexts.put(source, sourceCtx);
contexts.put(target, targetCtx);
@@ -87,11 +95,11 @@
public static SystemAtomicContext createSystemAtomicContext(String name, Class<?> clazz) throws NoSuchMethodException {
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
serviceInterfaces.add(clazz);
- return createSystemAtomicContext(name, serviceInterfaces, clazz, null);
+ return createSystemAtomicContext(name, serviceInterfaces, clazz, null, null);
}
public static SystemAtomicContext createSystemAtomicContext(String name, List<Class<?>> serviceInterfaces,
- Class<?> clazz, List<Injector> injectors) throws NoSuchMethodException {
+ Class<?> clazz, List<Injector> injectors, Map<String, Member> members) throws NoSuchMethodException {
Method[] methods = clazz.getMethods();
EventInvoker<Object> initInvoker = null;
EventInvoker<Object> destroyInvoker = null;
@@ -106,7 +114,7 @@
destroyInvoker = new MethodEventInvoker<Object>(method);
}
}
- return createSystemAtomicContext(name, serviceInterfaces, clazz, eager, initInvoker, destroyInvoker, injectors);
+ return createSystemAtomicContext(name, serviceInterfaces, clazz, eager, initInvoker, destroyInvoker, injectors, members);
}
/**
@@ -121,8 +129,8 @@
* @throws NoSuchMethodException
*/
public static SystemAtomicContextImpl createSystemAtomicContext(String name, List<Class<?>> serviceInterfaces, Class<?> clazz, boolean eagerInit, EventInvoker<Object> initInvoker,
- EventInvoker<Object> destroyInvoker, List<Injector> injectors) throws NoSuchMethodException {
- return new SystemAtomicContextImpl(name, serviceInterfaces, createObjectFactory(clazz), eagerInit, initInvoker, destroyInvoker, injectors);
+ EventInvoker<Object> destroyInvoker, List<Injector> injectors, Map<String, Member> members) throws NoSuchMethodException {
+ return new SystemAtomicContextImpl(name, serviceInterfaces, createObjectFactory(clazz), eagerInit, initInvoker, destroyInvoker, injectors, members);
}
public static <T> TargetWire<T> createTargetWireFactory(String serviceName, Class<T> interfaze) {
@@ -151,20 +159,19 @@
return new PojoObjectFactory<T>(ctr);
}
-
- /**
- * Used for injecting references
- */
- private static class AtomicContextInstanceFactory implements ObjectFactory {
- private SystemAtomicContext ctx;
-
- public AtomicContextInstanceFactory(SystemAtomicContext ctx) {
- this.ctx = ctx;
- }
-
- public Object getInstance() throws ObjectCreationException {
- return ctx.getTargetInstance();
- }
- }
+// /**
+// * Used for injecting references
+// */
+// private static class AtomicContextInstanceFactory implements ObjectFactory {
+// private SystemAtomicContext ctx;
+//
+// public AtomicContextInstanceFactory(SystemAtomicContext ctx) {
+// this.ctx = ctx;
+// }
+//
+// public Object getInstance() throws ObjectCreationException {
+// return ctx.getTargetInstance();
+// }
+// }
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/AutowireTestCase.java Fri May 19 13:50:11 2006
@@ -27,7 +27,7 @@
interfaces.add(Source.class);
interfaces.add(Source2.class);
SystemAtomicContext context = MockContextFactory.createSystemAtomicContext("source", interfaces,
- SourceImpl.class, false, null, null, null);
+ SourceImpl.class, false, null, null, null,null);
scopeContext.register(context);
context.setScopeContext(scopeContext);
parent.registerContext(context);
@@ -49,7 +49,7 @@
interfaces.add(Source.class);
interfaces.add(Source2.class);
SystemAtomicContext context = MockContextFactory.createSystemAtomicContext("source", interfaces,
- SourceImpl.class, false, null, null, null);
+ SourceImpl.class, false, null, null, null,null);
scopeContext.register(context);
context.setScopeContext(scopeContext);
SystemServiceContext<Source> serviceContext = new SystemServiceContextImpl<Source>("sourceService", Source.class, "source", parent);
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/CompositePropagationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/CompositePropagationTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/CompositePropagationTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/CompositePropagationTestCase.java Fri May 19 13:50:11 2006
@@ -94,7 +94,7 @@
List<Class<?>> interfaces = new ArrayList<Class<?>>();
interfaces.add(ModuleScopeInitDestroyComponent.class);
SystemAtomicContext context = MockContextFactory.createSystemAtomicContext("source", interfaces,
- ModuleScopeInitDestroyComponent.class, false, initInvoker, destroyInvoker, null);
+ ModuleScopeInitDestroyComponent.class, false, initInvoker, destroyInvoker, null,null);
scopeContext.register(context);
context.setScopeContext(scopeContext);
child2.registerContext(context);
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/context/SystemAtomicContextTestCase.java Fri May 19 13:50:11 2006
@@ -19,7 +19,7 @@
public void testContextCreationAndInit() throws Exception {
ObjectFactory<Foo> factory = new PojoObjectFactory<Foo>(Foo.class.getConstructor((Class[]) null), null);
ScopeContext<AtomicContext> scopeContext = new MockScopeContext();
- SystemAtomicContext context = new SystemAtomicContextImpl("foo",Foo.class,factory,false,initInvoker,null, null);
+ SystemAtomicContext context = new SystemAtomicContextImpl("foo",Foo.class,factory,false,initInvoker,null, null,null);
context.setScopeContext(scopeContext);
Foo instance = (Foo) context.getService(null);
assertNotNull(instance);
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/CompositeContext.java Fri May 19 13:50:11 2006
@@ -19,6 +19,7 @@
import java.util.List;
import org.apache.tuscany.spi.event.RuntimeEventListener;
+import org.apache.tuscany.spi.QualifiedName;
/**
* A context which contains child component contexts.
@@ -55,6 +56,5 @@
* Returns the reference context contained by the composite
*/
List<ReferenceContext> getReferenceContexts();
-
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/AtomicContextExtension.java Fri May 19 13:50:11 2006
@@ -3,24 +3,34 @@
import org.apache.tuscany.model.Scope;
import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.ScopeContext;
+import org.apache.tuscany.spi.context.TargetException;
/**
* @version $$Rev$$ $$Date$$
*/
public abstract class AtomicContextExtension<T> extends ComponentContextExtension<T> implements AtomicContext<T> {
- protected ScopeContext scopeContext;
+ protected ScopeContext<AtomicContext> scopeContext;
+ protected Scope scope;
public Scope getScope() {
- if (scopeContext != null) {
- return scopeContext.getScope();
- } else {
- return null;
- }
+ return scope;
}
- public void setScopeContext(ScopeContext context) {
+ public void setScopeContext(ScopeContext<AtomicContext> context) {
scopeContext = context;
+ context.register(this);
}
+ public boolean isEagerInit() {
+ return false;
+ }
+
+ public void init(Object instance) throws TargetException {
+
+ }
+
+ public void destroy(Object instance) throws TargetException {
+
+ }
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentContextExtension.java Fri May 19 13:50:11 2006
@@ -54,10 +54,10 @@
}
}
- public abstract void onSourceWire(SourceWire wire);
+ public void onSourceWire(SourceWire wire){}
- public abstract void onSourceWires(Class<?> multiplicityClass, List<SourceWire> wires);
+ public void onSourceWires(Class<?> multiplicityClass, List<SourceWire> wires){}
- public abstract void onTargetWire(TargetWire wire);
+ public void onTargetWire(TargetWire wire){}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java?rev=407909&r1=407908&r2=407909&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/SourceWire.java Fri May 19 13:50:11 2006
@@ -69,7 +69,7 @@
/**
* Returns an array of all interfaces implemented by generated proxies
*/
- Class[] getImplementatedInterfaces();
+ Class[] getImplementedInterfaces();
/**
* Returns the invocation configuration for each operation on a service specified by a reference or a
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org