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/06/01 07:32:29 UTC
svn commit: r410755 [1/2] - in /incubator/tuscany/sandbox/jboynes/sca:
containers/container.groovy/
containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/
containers/container.groovy/src/test/java/org/apache/tuscany/container/gr...
Author: jmarino
Date: Wed May 31 22:32:27 2006
New Revision: 410755
URL: http://svn.apache.org/viewvc?rev=410755&view=rev
Log:
removal of proxy creation from wires; removal of getTargetService from RuntimeWire and moved to system wires only
Added:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemWireObjectFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWireImpl.java
- copied, changed from r410546, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWireImpl.java
- copied, changed from r410546, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKWireService.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/ProxyCreationException.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/
Modified:
incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/pom.xml
incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/pom.xml
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaAtomicContext.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaComponentBuilder.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/GetServiceByNameTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaComponentBuilderTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaReferenceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/OutboundWireToJavaTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ReferenceInvocationTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/composite/builder/CompositeBuilder.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/CompositeContextImpl.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/injection/WireObjectFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.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/SystemAtomicContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundAutowire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/OutboundWireImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/factories/MockContextFactory.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/AtomicContextWireInvocationTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/SystemInboundtoOutboundTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/SystemOutboundToInboundTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/SystemServiceContextWireTestCase.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/BindingBuilderExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ComponentBuilderExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ReferenceContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RuntimeWire.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/WireService.java
incubator/tuscany/sandbox/jboynes/sca/test/src/main/java/org/apache/tuscany/test/ArtifactFactory.java
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/pom.xml?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/pom.xml (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/pom.xml Wed May 31 22:32:27 2006
@@ -54,6 +54,12 @@
<version>1.1.3.4-RC8</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-test</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>junit</groupId>
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicContext.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyAtomicContext.java Wed May 31 22:32:27 2006
@@ -33,6 +33,7 @@
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.WireService;
import org.codehaus.groovy.control.CompilationFailedException;
/**
@@ -44,9 +45,14 @@
private List<Class<?>> services;
private List<PropertyInjector> injectors;
- public GroovyAtomicContext(String name, String script, List<Class<?>>services, Scope scope,
- List<PropertyInjector> injectors, CompositeContext parent, ScopeContext scopeContext) {
- super(name, parent, scopeContext);
+ public GroovyAtomicContext(String name, String script,
+ List<Class<?>>services,
+ Scope scope,
+ List<PropertyInjector> injectors,
+ CompositeContext parent,
+ ScopeContext scopeContext,
+ WireService wireService) {
+ super(name, parent, scopeContext,wireService);
this.script = script;
this.services = services;
this.scope = scope;
@@ -78,7 +84,7 @@
// inject wires
for (List<OutboundWire> referenceWires : getOutboundWires().values()) {
for (OutboundWire<?> wire : referenceWires) {
- object.setProperty(wire.getReferenceName(), wire.getTargetService());
+ object.setProperty(wire.getReferenceName(), wireService.createProxy(wire));
}
}
return new GroovyInstanceWrapper(this, object);
@@ -109,7 +115,7 @@
e.setIdentifier(service);
throw e;
}
- return wire.getTargetService();
+ return wireService.createProxy(wire);
}
public void init(Object instance) throws TargetException {
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/GroovyComponentBuilder.java Wed May 31 22:32:27 2006
@@ -33,7 +33,7 @@
String script = component.getImplementation().getScript();
String name = component.getName();
Scope scope = component.getImplementation().getComponentType().getLifecycleScope();
- return new GroovyAtomicContext(name, script, services, scope, null,parent, deploymentContext.getModuleScope());
+ return new GroovyAtomicContext(name, script, services, scope, null,parent, deploymentContext.getModuleScope(),wireService);
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java Wed May 31 22:32:27 2006
@@ -7,6 +7,7 @@
import org.apache.tuscany.container.groovy.mock.Greeting;
import org.apache.tuscany.core.context.scope.ModuleScopeContext;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.test.ArtifactFactory;
import org.jmock.MockObjectTestCase;
/**
@@ -33,7 +34,7 @@
List<PropertyInjector> injectors = new ArrayList<PropertyInjector>();
injectors.add(new SingletonInjector("property", "bar"));
GroovyAtomicContext<Greeting> context = new GroovyAtomicContext<Greeting>("source", PropertyTestCase.SCRIPT,
- services, Scope.MODULE, injectors, null,scope);
+ services, Scope.MODULE, injectors, null, scope, ArtifactFactory.createWireService());
scope.register(context);
Greeting greeting = context.getService();
assertEquals("bar", greeting.greet("foo"));
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/ScriptInvokeTestCase.java Wed May 31 22:32:27 2006
@@ -7,6 +7,7 @@
import org.apache.tuscany.container.groovy.mock.Greeting;
import org.apache.tuscany.core.context.scope.ModuleScopeContext;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.test.ArtifactFactory;
import org.jmock.MockObjectTestCase;
/**
@@ -25,7 +26,7 @@
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
GroovyAtomicContext<GroovyObject> context = new GroovyAtomicContext<GroovyObject>("source", script2,
- services, Scope.MODULE, null, null,scope);
+ services, Scope.MODULE, null, null,scope, ArtifactFactory.createWireService());
scope.register(context);
GroovyObject object = context.getService();
assertEquals("foo", object.invokeMethod("greet", "foo"));
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.java Wed May 31 22:32:27 2006
@@ -9,6 +9,7 @@
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.test.ArtifactFactory;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.jmock.core.Invocation;
@@ -43,7 +44,7 @@
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
GroovyAtomicContext<Greeting> context = new GroovyAtomicContext<Greeting>("source", SCRIPT, services,
- Scope.MODULE, null, null, scope);
+ Scope.MODULE, null, null, scope, ArtifactFactory.createWireService());
scope.register(context);
Mock mock = mock(OutboundWire.class);
mock.expects(atLeastOnce()).method("getTargetService").will(
@@ -70,7 +71,7 @@
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
GroovyAtomicContext<Greeting> context = new GroovyAtomicContext<Greeting>("source", SCRIPT2, services,
- Scope.MODULE, null, null, scope);
+ Scope.MODULE, null, null, scope,ArtifactFactory.createWireService());
scope.register(context);
TargetInvoker invoker = context.createTargetInvoker("greeting", Greeting.class.getMethod("greet", String.class));
assertEquals("foo", invoker.invokeTarget(new String[]{"foo"}));
@@ -87,7 +88,7 @@
List<Class<?>> services = new ArrayList<Class<?>>();
services.add(Greeting.class);
final GroovyAtomicContext<Greeting> context = new GroovyAtomicContext<Greeting>("source", SCRIPT2,
- services, Scope.MODULE, null, null, scope);
+ services, Scope.MODULE, null, null, scope,ArtifactFactory.createWireService());
scope.register(context);
Mock mock = mock(InboundWire.class);
mock.stubs().method("getServiceName").will(returnValue("Greeting"));
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/pom.xml?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/pom.xml (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/pom.xml Wed May 31 22:32:27 2006
@@ -35,6 +35,12 @@
<version>${pom.version}</version>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-test</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>junit</groupId>
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaAtomicContext.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaAtomicContext.java Wed May 31 22:32:27 2006
@@ -32,6 +32,7 @@
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.WireService;
/**
* Provides a runtime context for Java component implementations
@@ -50,8 +51,9 @@
EventInvoker<Object> initInvoker,
EventInvoker<Object> destroyInvoker,
List<Injector> injectors,
- Map<String, Member> members) {
- super(name, parent, scopeContext, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members);
+ Map<String, Member> members,
+ WireService wireService) {
+ super(name, parent, scopeContext, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members, wireService);
this.scope = scope;
}
@@ -62,7 +64,7 @@
e.addContextName(getName());
throw e;
}
- return wire.getTargetService();
+ return wireService.createProxy(wire);
}
public T getService() throws TargetException {
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaComponentBuilder.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaComponentBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaComponentBuilder.java Wed May 31 22:32:27 2006
@@ -26,7 +26,7 @@
public JavaAtomicContext build(CompositeContext parent, Component<JavaImplementation> component, DeploymentContext deploymentContext)
throws BuilderConfigException {
- PojoComponentType<?,?,?> componentType = component.getImplementation().getComponentType();
+ PojoComponentType<?, ?, ?> componentType = component.getImplementation().getComponentType();
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
for (Service service : componentType.getServices().values()) {
@@ -75,7 +75,8 @@
componentType.getInitInvoker(),
componentType.getDestroyInvoker(),
injectors,
- componentType.getReferenceMembers());
+ componentType.getReferenceMembers(),
+ wireService);
}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/GetServiceByNameTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/GetServiceByNameTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/GetServiceByNameTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/GetServiceByNameTestCase.java Wed May 31 22:32:27 2006
@@ -23,19 +23,15 @@
MockContextFactory.createJavaAtomicContext("target", scope, TargetImpl.class, Target.class, Scope.MODULE);
Mock mock = mock(InboundWire.class);
+ mock.stubs().method("getBusinessInterface").will(returnValue(Target.class));
mock.stubs().method("getServiceName").will(returnValue("Target"));
- mock.stubs().method("getInvocationChains").will(returnValue(Collections.emptyMap()));
+ mock.expects(atLeastOnce()).method("getInvocationChains").will(returnValue(Collections.emptyMap()));
InboundWire<Target> wire = (InboundWire<Target>) mock.proxy();
context.addInboundWire(wire);
context.prepare();
context.start();
-
- mock.expects(once()).method("getTargetService").will(returnValue(context.getTargetInstance()));
-
- Target target = (Target) context.getService("Target");
- target.setString("foo");
- assertEquals("foo",target.getString());
+ assertTrue(context.getService("Target") instanceof Target);
}
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaComponentBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaComponentBuilderTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaComponentBuilderTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaComponentBuilderTestCase.java Wed May 31 22:32:27 2006
@@ -13,6 +13,7 @@
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.Service;
import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.test.ArtifactFactory;
import org.jmock.MockObjectTestCase;
/**
@@ -23,7 +24,7 @@
@SuppressWarnings("unchecked")
public void testBuild() throws Exception {
- CompositeContext parent = new CompositeContextImpl(null, null, null);
+ CompositeContext parent = new CompositeContextImpl(null, null, null, ArtifactFactory.createWireService());
ModuleScopeContext scope = new ModuleScopeContext(null);
scope.start();
PojoComponentType sourceType = new PojoComponentType();
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaReferenceWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaReferenceWireTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaReferenceWireTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/JavaReferenceWireTestCase.java Wed May 31 22:32:27 2006
@@ -1,21 +1,27 @@
package org.apache.tuscany.container.java;
+import java.lang.reflect.Constructor;
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.container.java.mock.MockContextFactory;
import org.apache.tuscany.container.java.mock.components.Source;
import org.apache.tuscany.container.java.mock.components.SourceImpl;
import org.apache.tuscany.container.java.mock.components.Target;
import org.apache.tuscany.container.java.mock.components.TargetImpl;
import org.apache.tuscany.core.context.scope.ModuleScopeContext;
+import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.WireService;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
+import org.jmock.core.Invocation;
+import org.jmock.core.Stub;
/**
- * Validates wiring from a Java atomic contexts by scope to a reference context
+ * Validates wiring from a Java atomic context
*
* @version $$Rev$$ $$Date$$
*/
@@ -24,21 +30,36 @@
public void testReferenceSet() throws Exception {
ModuleScopeContext scope = new ModuleScopeContext(null);
scope.start();
- Target target = new TargetImpl();
+ final Target target = new TargetImpl();
Map<String, Member> members = new HashMap<String, Member>();
members.put("target", SourceImpl.class.getMethod("setTarget", Target.class));
- JavaAtomicContext<?> sourceContext = MockContextFactory.createJavaAtomicContext("source", null, scope,
- SourceImpl.class, Source.class,
- scope.getScope(), false, null, null, null, members);
+ List<Class<?>> interfaces = new ArrayList<Class<?>>();
+ interfaces.add(Source.class);
+ Constructor<SourceImpl> ctr = SourceImpl.class.getConstructor();
Mock mock = mock(OutboundWire.class);
- mock.expects(atLeastOnce()).method("getTargetService").will(returnValue(target));
+ mock.expects(atLeastOnce()).method("getInvocationChains");
mock.expects(atLeastOnce()).method("getReferenceName").will(returnValue("target"));
OutboundWire<Target> wire = (OutboundWire<Target>) mock.proxy();
- sourceContext.addOutboundWire(wire);
- sourceContext.start();
+ Mock mockService = mock(WireService.class);
+ mockService.expects(atLeastOnce()).method("createProxy").with(eq(wire)).will(new Stub() {
+ public Object invoke(Invocation invocation) throws Throwable {
+ OutboundWire wire = (OutboundWire) invocation.parameterValues.get(0);
+ wire.getInvocationChains();
+ return target;
+ }
+
+ public StringBuffer describeTo(StringBuffer stringBuffer) {
+ return null;
+ }
+ });
+ WireService wireService = (WireService) mockService.proxy();
+ JavaAtomicContext sourceContext = new JavaAtomicContext("source", null, scope, interfaces,
+ new PojoObjectFactory<SourceImpl>(ctr), scope.getScope(), false, null, null, null, members, wireService);
+ sourceContext.addOutboundWire(wire);
+ sourceContext.start();
Source source = (Source) sourceContext.getService();
assertSame(target, source.getTarget());
scope.stop();
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/OutboundWireToJavaTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/OutboundWireToJavaTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/OutboundWireToJavaTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/OutboundWireToJavaTestCase.java Wed May 31 22:32:27 2006
@@ -33,6 +33,8 @@
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.WireService;
+import org.apache.tuscany.test.ArtifactFactory;
/**
* Validates wiring from a service context to Java atomic contexts by scope
@@ -41,12 +43,13 @@
*/
public class OutboundWireToJavaTestCase extends TestCase {
private WorkContext workContext;
+ private WireService wireService = ArtifactFactory.createWireService();
public void testToStatelessScope() throws Exception {
StatelessScopeContext scope = new StatelessScopeContext(workContext);
scope.start();
- final OutboundWire wire = getWire(scope);
- Target service = (Target) wire.getTargetService();
+ final OutboundWire<Target> wire = getWire(scope);
+ Target service = wireService.createProxy(wire);
assertNotNull(service);
service.setString("foo");
assertEquals(null, service.getString());
@@ -59,8 +62,8 @@
scope.onEvent(new RequestStart(this));
- final OutboundWire wire = getWire(scope);
- Target service = (Target) wire.getTargetService();
+ final OutboundWire<Target> wire = getWire(scope);
+ Target service = wireService.createProxy(wire);
assertNotNull(service);
service.setString("foo");
@@ -69,8 +72,8 @@
FutureTask<Void> future = new FutureTask<Void>(new Runnable() {
public void run() {
scope.onEvent(new RequestStart(this));
- Target service2 = (Target) wire.getTargetService();
- Target target2 = (Target) wire.getTargetService();
+ Target service2 = wireService.createProxy(wire);
+ Target target2 = wireService.createProxy(wire);
assertEquals(null, service2.getString());
service2.setString("bar");
assertEquals("bar", service2.getString());
@@ -93,9 +96,9 @@
workContext.setIdentifier(HttpSessionScopeContext.HTTP_IDENTIFIER, session1);
scope.onEvent(new HttpSessionStart(this, session1));
- final OutboundWire wire = getWire(scope);
- Target service = (Target) wire.getTargetService();
- Target target = (Target) wire.getTargetService();
+ final OutboundWire<Target> wire = getWire(scope);
+ Target service = wireService.createProxy(wire);
+ Target target = wireService.createProxy(wire);
assertNotNull(service);
service.setString("foo");
assertEquals("foo", service.getString());
@@ -108,10 +111,10 @@
workContext.setIdentifier(HttpSessionScopeContext.HTTP_IDENTIFIER, session2);
scope.onEvent(new HttpSessionStart(this, session2));
- Target service2 = (Target) wire.getTargetService();
+ Target service2 = wireService.createProxy(wire);
assertNotNull(service2);
assertNull(service2.getString());
- Target target2 = (Target) wire.getTargetService();
+ Target target2 = wireService.createProxy(wire);
service2.setString("bar");
assertEquals("bar", service2.getString());
assertEquals("bar", target2.getString());
@@ -131,11 +134,10 @@
ModuleScopeContext scope = new ModuleScopeContext(workContext);
scope.start();
- final OutboundWire wire = getWire(scope);
scope.onEvent(new ModuleStart(this, null));
- Target service = (Target) wire.getTargetService();
- Target target = (Target) wire.getTargetService();
-
+ final OutboundWire<Target> wire = getWire(scope);
+ Target service = wireService.createProxy(wire);
+ Target target = wireService.createProxy(wire);
assertNotNull(service);
service.setString("foo");
assertEquals("foo", service.getString());
@@ -145,7 +147,7 @@
}
@SuppressWarnings("unchecked")
- private OutboundWire getWire(ScopeContext scope) throws NoSuchMethodException {
+ private OutboundWire<Target> getWire(ScopeContext scope) throws NoSuchMethodException {
Connector connector = new ConnectorImpl();
OutboundWire<Target> wire = createOutboundWire(new QualifiedName("target/Target"), Target.class);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockContextFactory.java Wed May 31 22:32:27 2006
@@ -33,12 +33,16 @@
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.spi.wire.WireService;
+import org.apache.tuscany.test.ArtifactFactory;
/**
* @version $$Rev$$ $$Date$$
*/
public class MockContextFactory {
+ private static final WireService wireService = ArtifactFactory.createWireService();
+
public static JavaAtomicContext<?> createJavaAtomicContext(String name, ScopeContext scopeContext, Class<?> clazz, Scope scope) throws NoSuchMethodException {
return createJavaAtomicContext(name, null, scopeContext, clazz, clazz, scope, false, null, null, null, null);
@@ -63,7 +67,8 @@
throws NoSuchMethodException {
List<Class<?>> serviceInterfaces = new ArrayList<Class<?>>();
serviceInterfaces.add(service);
- return new JavaAtomicContext(name, parent, scopeContext, serviceInterfaces, createObjectFactory(clazz), scope, eagerInit, initInvoker, destroyInvoker, injectors, members);
+ return new JavaAtomicContext(name, parent, scopeContext, serviceInterfaces, createObjectFactory(clazz),
+ scope, eagerInit, initInvoker, destroyInvoker, injectors, members,wireService);
}
/**
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeBuilder.java Wed May 31 22:32:27 2006
@@ -31,7 +31,7 @@
DeploymentContext deploymentContext) throws BuilderConfigException {
String name = component.getName();
GenericApplicationContext applicationContext = component.getImplementation().getApplicationContext();
- SpringCompositeContext context = new SpringCompositeContext(name, applicationContext, parent);
+ SpringCompositeContext context = new SpringCompositeContext(name, applicationContext, parent,wireService);
CompositeComponentType<BoundService, BoundReference, ? extends Property> componentType = component.getImplementation().getComponentType();
for (BoundService service : componentType.getServices().values()) {
// call back into deployment context to handle building of services
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/main/java/org/apache/tuscany/container/spring/SpringCompositeContext.java Wed May 31 22:32:27 2006
@@ -12,6 +12,7 @@
import org.apache.tuscany.spi.context.ServiceContext;
import org.apache.tuscany.spi.extension.CompositeContextExtension;
import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.WireService;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanNotOfRequiredTypeException;
@@ -42,8 +43,8 @@
* @param springContext the pre-instantiated Spring applicaiton context
* @param parent the SCA composite parent
*/
- public SpringCompositeContext(String name, GenericApplicationContext springContext, CompositeContext parent) {
- super(name, parent);
+ public SpringCompositeContext(String name, GenericApplicationContext springContext, CompositeContext parent, WireService wireService) {
+ super(name, parent, wireService);
scaApplicationContext = new SCAApplicationContext();
springContext.setParent(scaApplicationContext);
this.springContext = springContext;
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ReferenceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ReferenceInvocationTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ReferenceInvocationTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ReferenceInvocationTestCase.java Wed May 31 22:32:27 2006
@@ -3,6 +3,7 @@
import org.apache.tuscany.container.spring.mock.TestBean;
import org.apache.tuscany.container.spring.mock.TestBeanImpl;
import org.apache.tuscany.spi.context.ReferenceContext;
+import org.apache.tuscany.test.ArtifactFactory;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.springframework.beans.PropertyValue;
@@ -21,7 +22,7 @@
public void testInvocation() throws Exception {
GenericApplicationContext ctx = createSpringContext();
- SpringCompositeContext parent = new SpringCompositeContext("spring", ctx, null);
+ SpringCompositeContext parent = new SpringCompositeContext("spring", ctx, null, ArtifactFactory.createWireService());
parent.start();
TestBean referenceTarget = new TestBeanImpl();
Mock mock = mock(ReferenceContext.class);
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/ServiceInvocationTestCase.java Wed May 31 22:32:27 2006
@@ -23,12 +23,12 @@
public class ServiceInvocationTestCase extends TestCase {
public void testInvocation() {
- SpringCompositeContext context = new SpringCompositeContext("parent", createSpringContext(), null);
+ SpringCompositeContext context = new SpringCompositeContext("parent", createSpringContext(), null,ArtifactFactory.createWireService());
context.start();
InboundWire<TestBean> inboundWire = ArtifactFactory.createInboundWire("fooService", TestBean.class);
OutboundWire<TestBean> outboundWire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
ArtifactFactory.terminateWire(outboundWire);
- ServiceContext<TestBean> serviceContext = new ServiceContextExtension<TestBean>("fooService", context);
+ ServiceContext<TestBean> serviceContext = new ServiceContextExtension<TestBean>("fooService", context, ArtifactFactory.createWireService());
serviceContext.setInboundWire(inboundWire);
serviceContext.setOutboundWire(outboundWire);
Connector conntector = ArtifactFactory.createConnector();
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.spring/src/test/java/org/apache/tuscany/container/spring/SpringCompositeBuilderTestCase.java Wed May 31 22:32:27 2006
@@ -6,6 +6,8 @@
import org.apache.tuscany.container.spring.mock.TestBean;
import org.apache.tuscany.container.spring.mock.TestBeanImpl;
import org.apache.tuscany.container.spring.mock.VMBinding;
+import org.apache.tuscany.core.builder.Connector;
+import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.builder.BuilderRegistry;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.context.ServiceContext;
@@ -15,9 +17,8 @@
import org.apache.tuscany.spi.model.CompositeComponentType;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.test.ArtifactFactory;
-import org.apache.tuscany.core.builder.Connector;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.springframework.beans.factory.config.BeanDefinition;
@@ -31,20 +32,22 @@
public class SpringCompositeBuilderTestCase extends MockObjectTestCase {
public void testBuild() throws Exception {
+ WireService wireService = ArtifactFactory.createWireService();
SpringCompositeBuilder builder = new SpringCompositeBuilder();
+ builder.setWireService(wireService);
SpringImplementation impl = new SpringImplementation();
impl.setComponentType(createComponentType());
impl.setApplicationContext(createSpringContext());
Component<SpringImplementation> component = new Component<SpringImplementation>("spring", impl);
Mock mock = mock(BuilderRegistry.class);
- ServiceContextExtension<TestBean> serviceContext = new ServiceContextExtension<TestBean>("fooService", null);
+ ServiceContextExtension<TestBean> serviceContext = new ServiceContextExtension<TestBean>("fooService", null, wireService);
InboundWire<TestBean> inboundWire = ArtifactFactory.createInboundWire("fooSerice", TestBean.class);
OutboundWire<TestBean> outboundwire = ArtifactFactory.createOutboundWire("fooService", TestBean.class);
outboundwire.setTargetName(new QualifiedName("foo"));
serviceContext.setInboundWire(inboundWire);
serviceContext.setOutboundWire(outboundwire);
Connector connector = ArtifactFactory.createConnector();
- connector.connect(inboundWire,outboundwire,true);
+ connector.connect(inboundWire, outboundwire, true);
ArtifactFactory.terminateWire(inboundWire);
mock.expects(atLeastOnce()).method("build").will(returnValue(serviceContext));
builder.setBuilderRegistry((BuilderRegistry) mock.proxy());
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/composite/builder/CompositeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/composite/builder/CompositeBuilder.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/composite/builder/CompositeBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/composite/builder/CompositeBuilder.java Wed May 31 22:32:27 2006
@@ -43,7 +43,7 @@
DeploymentContext deploymentContext) throws BuilderConfigException {
CompositeImplementation implementation = component.getImplementation();
CompositeComponentType<?,?,?> componentType = implementation.getComponentType();
- CompositeContextImpl<?> context = new CompositeContextImpl(component.getName(), parent, null);
+ CompositeContextImpl<?> context = new CompositeContextImpl(component.getName(), parent, null, wireService);
for (ReferenceTarget target : component.getReferenceTargets().values()) {
Reference reference = target.getReference();
if (reference instanceof BoundReference) {
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=410755&r1=410754&r2=410755&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 Wed May 31 22:32:27 2006
@@ -21,6 +21,7 @@
import org.apache.tuscany.spi.event.Event;
import org.apache.tuscany.spi.extension.CompositeContextExtension;
import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.WireService;
/**
* The base implementation of a composite context
@@ -48,8 +49,8 @@
protected ScopeContext scopeContext;
- public AbstractCompositeContext(String name, CompositeContext parent, AutowireContext autowireContext) {
- super(name, parent);
+ public AbstractCompositeContext(String name, CompositeContext parent, AutowireContext autowireContext, WireService wireService) {
+ super(name, parent, wireService);
this.autowireContext = autowireContext;
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/CompositeContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/CompositeContextImpl.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/CompositeContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/context/CompositeContextImpl.java Wed May 31 22:32:27 2006
@@ -1,6 +1,7 @@
package org.apache.tuscany.core.context;
import org.apache.tuscany.spi.QualifiedName;
+import org.apache.tuscany.spi.wire.WireService;
import org.apache.tuscany.spi.context.AtomicContext;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.context.Context;
@@ -17,8 +18,8 @@
*/
public class CompositeContextImpl<T> extends AbstractCompositeContext<T> {
- public CompositeContextImpl(String name, CompositeContext parent, AutowireContext autowireContext) {
- super(name, parent, autowireContext);
+ public CompositeContextImpl(String name, CompositeContext parent, AutowireContext autowireContext, WireService wireService) {
+ super(name, parent, autowireContext,wireService);
}
private String uri;
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=410755&r1=410754&r2=410755&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 Wed May 31 22:32:27 2006
@@ -8,8 +8,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.tuscany.spi.ObjectCreationException;
-import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.core.injection.ArrayMultiplicityObjectFactory;
import org.apache.tuscany.core.injection.EventInvoker;
import org.apache.tuscany.core.injection.FieldInjector;
@@ -17,15 +15,18 @@
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.WireObjectFactory;
import org.apache.tuscany.core.injection.NoAccessorException;
+import org.apache.tuscany.core.injection.WireObjectFactory;
+import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.context.AtomicContext;
-import org.apache.tuscany.spi.context.InstanceWrapper;
-import org.apache.tuscany.spi.context.TargetException;
import org.apache.tuscany.spi.context.CompositeContext;
+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.OutboundWire;
+import org.apache.tuscany.spi.wire.WireService;
/**
* Base implementation of an {@link AtomicContext} whose type is a Java class
@@ -51,8 +52,9 @@
EventInvoker<Object> initInvoker,
EventInvoker<Object> destroyInvoker,
List<Injector> injectors,
- Map<String, Member> members) {
- super(name, parent, scopeContext);
+ Map<String, Member> members,
+ WireService wireService) {
+ super(name, parent, scopeContext, wireService);
assert (objectFactory != null) : "Object factory was null";
if (eagerInit && initInvoker == null) {
throw new AssertionError("No intialization method found for eager init implementation");
@@ -78,8 +80,9 @@
EventInvoker<Object> initInvoker,
EventInvoker<Object> destroyInvoker,
List<Injector> injectors,
- Map<String, Member> members) {
- super(name, parent, scopeContext);
+ Map<String, Member> members,
+ WireService wireService) {
+ super(name, parent, scopeContext, wireService);
assert (objectFactory != null) : "Object factory was null";
if (eagerInit && initInvoker == null) {
throw new AssertionError("No intialization method found for eager init implementation");
@@ -149,7 +152,7 @@
}
protected Injector createInjector(Member member, OutboundWire wire) {
- ObjectFactory<?> factory = new WireObjectFactory(wire);
+ ObjectFactory<?> factory = new WireObjectFactory(wire, wireService);
if (member instanceof Field) {
return new FieldInjector(((Field) member), factory);
} else if (member instanceof Method) {
@@ -164,7 +167,7 @@
protected Injector createMultiplicityInjector(Member member, Class<?> interfaceType, List<OutboundWire> wireFactories) {
List<ObjectFactory<?>> factories = new ArrayList<ObjectFactory<?>>();
for (OutboundWire wire : wireFactories) {
- factories.add(new WireObjectFactory(wire));
+ factories.add(new WireObjectFactory(wire, wireService));
}
if (member instanceof Field) {
Field field = (Field) member;
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/WireObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/WireObjectFactory.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/WireObjectFactory.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/injection/WireObjectFactory.java Wed May 31 22:32:27 2006
@@ -3,6 +3,7 @@
import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.wire.WireService;
/**
* Uses a wire to return an object instance
@@ -11,14 +12,16 @@
*/
public class WireObjectFactory implements ObjectFactory {
- private OutboundWire factory;
+ private OutboundWire<?> wire;
+ private WireService wireService;
- public WireObjectFactory(OutboundWire factory) {
- this.factory = factory;
+ public WireObjectFactory(OutboundWire<?> factory, WireService wireService) {
+ this.wire = factory;
+ this.wireService = wireService;
}
public Object getInstance() throws ObjectCreationException {
- return factory.getTargetService();
+ return wireService.createProxy(wire);
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/builder/SystemBindingBuilder.java Wed May 31 22:32:27 2006
@@ -5,8 +5,10 @@
import org.apache.tuscany.core.system.context.SystemServiceContext;
import org.apache.tuscany.core.system.context.SystemServiceContextImpl;
import org.apache.tuscany.core.system.model.SystemBinding;
-import org.apache.tuscany.core.system.wire.SystemInboundWire;
+import org.apache.tuscany.core.system.wire.SystemInboundWireImpl;
import org.apache.tuscany.core.system.wire.SystemOutboundAutowire;
+import org.apache.tuscany.core.system.wire.SystemOutboundWireImpl;
+import org.apache.tuscany.core.system.wire.SystemInboundWire;
import org.apache.tuscany.core.system.wire.SystemOutboundWire;
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.builder.BindingBuilder;
@@ -27,8 +29,8 @@
Class<?> interfaze = boundService.getServiceContract().getInterfaceClass();
QualifiedName targetName = new QualifiedName(boundService.getTarget().getPath());
ComponentContext target = (ComponentContext) parent.getContext(targetName.getPartName());
- SystemInboundWire<?> inboundWire = new SystemInboundWire(boundService.getName(), interfaze, target);
- SystemOutboundWire<?> outboundWire = new SystemOutboundWire(boundService.getName(), targetName, interfaze);
+ SystemInboundWire<?> inboundWire = new SystemInboundWireImpl(boundService.getName(), interfaze, target);
+ SystemOutboundWire<?> outboundWire = new SystemOutboundWireImpl(boundService.getName(), targetName, interfaze);
SystemServiceContext context = new SystemServiceContextImpl(boundService.getName(), parent);
context.setInboundWire(inboundWire);
context.setOutboundWire(outboundWire);
@@ -40,7 +42,7 @@
AutowireContext autowireContext = (AutowireContext) parent.getParent();
Class<?> interfaze = boundReference.getServiceContract().getInterfaceClass();
SystemReferenceContextImpl ctx = new SystemReferenceContextImpl(boundReference.getName(), interfaze, parent);
- SystemInboundWire<?> inboundWire = new SystemInboundWire(boundReference.getName(), interfaze);
+ SystemInboundWire<?> inboundWire = new SystemInboundWireImpl(boundReference.getName(), interfaze);
OutboundWire<?> outboundWire = new SystemOutboundAutowire(boundReference.getName(), interfaze, autowireContext);
ctx.setInboundWire(inboundWire);
ctx.setOutboundWire(outboundWire);
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=410755&r1=410754&r2=410755&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 Wed May 31 22:32:27 2006
@@ -14,9 +14,10 @@
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.SystemInboundWire;
+import org.apache.tuscany.core.system.wire.SystemInboundWireImpl;
import org.apache.tuscany.core.system.wire.SystemOutboundAutowire;
-import org.apache.tuscany.core.system.wire.SystemOutboundWire;
+import org.apache.tuscany.core.system.wire.SystemOutboundWireImpl;
+import org.apache.tuscany.core.system.wire.SystemInboundWire;
import org.apache.tuscany.core.util.JavaIntrospectionHelper;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.QualifiedName;
@@ -85,7 +86,7 @@
for (Service service : componentType.getServices().values()) {
Class interfaze = service.getServiceContract().getInterfaceClass();
- SystemInboundWire<?> wire = new SystemInboundWire(service.getName(), interfaze, systemContext);
+ SystemInboundWire<?> wire = new SystemInboundWireImpl(service.getName(), interfaze, systemContext);
systemContext.addInboundWire(wire);
}
for (ReferenceTarget target : component.getReferenceTargets().values()) {
@@ -106,7 +107,7 @@
//FIXME support multiplicity!
assert(target.getTargets().size() == 1): "Multiplicity not yet implemented";
QualifiedName targetName = new QualifiedName(target.getTargets().get(0).getPath());
- wire = new SystemOutboundWire(referenceName, targetName, interfaze);
+ wire = new SystemOutboundWireImpl(referenceName, targetName, interfaze);
}
systemContext.addOutboundWire(wire);
}
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=410755&r1=410754&r2=410755&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 Wed May 31 22:32:27 2006
@@ -1,18 +1,27 @@
package org.apache.tuscany.core.system.context;
+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.core.context.PojoAtomicContext;
+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.core.injection.InvalidAccessorException;
+import org.apache.tuscany.core.injection.ListMultiplicityObjectFactory;
+import org.apache.tuscany.core.injection.MethodInjector;
+import org.apache.tuscany.core.system.wire.SystemOutboundWire;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.TargetException;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.TargetInvoker;
/**
@@ -33,7 +42,7 @@
EventInvoker<Object> destroyInvoker,
List<Injector> injectors,
Map<String, Member> members) {
- super(name, parent, scopeContext, serviceInterface, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members);
+ super(name, parent, scopeContext, serviceInterface, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members, null);
scope = Scope.MODULE;
}
@@ -47,7 +56,7 @@
EventInvoker<Object> destroyInvoker,
List<Injector> injectors,
Map<String, Member> members) {
- super(name, parent, scopeContext, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members);
+ super(name, parent, scopeContext, serviceInterfaces, objectFactory, eagerInit, initInvoker, destroyInvoker, injectors, members, null);
scope = Scope.MODULE;
}
@@ -67,6 +76,50 @@
public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
throw new UnsupportedOperationException();
}
+
+ protected Injector createInjector(Member member, OutboundWire wire) {
+ assert(wire instanceof SystemOutboundWire): "wire must be an instance of " + SystemOutboundWire.class.getName();
+ SystemOutboundWire systemWire = (SystemOutboundWire) wire;
+ ObjectFactory<?> factory = new SystemWireObjectFactory(systemWire);
+ 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<OutboundWire> wireFactories) {
+ List<ObjectFactory<?>> factories = new ArrayList<ObjectFactory<?>>();
+ for (OutboundWire wire : wireFactories) {
+ assert(wire instanceof SystemOutboundWire): "wire must be an instance of " + SystemOutboundWire.class.getName();
+ SystemOutboundWire systemWire = (SystemOutboundWire) wire;
+ factories.add(new SystemWireObjectFactory(systemWire));
+ }
+ 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;
+ }
+ }
+
public void prepare() {
// override and do nothing since system services do not proxy
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemCompositeContextImpl.java Wed May 31 22:32:27 2006
@@ -16,7 +16,7 @@
public class SystemCompositeContextImpl<S> extends AbstractCompositeContext<S> implements SystemCompositeContext<S> {
public SystemCompositeContextImpl(String name, CompositeContext parent, AutowireContext autowireContext) {
- super(name, parent, autowireContext);
+ super(name, parent, autowireContext,null);
}
public <S, I extends S> void registerJavaObject(String name, Class<S> service, I instance) throws ObjectRegistrationException {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContextImpl.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemReferenceContextImpl.java Wed May 31 22:32:27 2006
@@ -2,9 +2,15 @@
import java.lang.reflect.Method;
+import org.apache.tuscany.core.system.wire.SystemInboundWire;
+import org.apache.tuscany.core.system.wire.SystemOutboundWire;
+import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.extension.ReferenceContextExtension;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.wire.InboundInvocationChain;
+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.WireInvocationHandler;
@@ -14,12 +20,54 @@
*
* @version $Rev: 399991 $ $Date: 2006-05-04 23:44:07 -0700 (Thu, 04 May 2006) $
*/
-public class SystemReferenceContextImpl<T> extends ReferenceContextExtension<T> implements SystemReferenceContext<T> {
+public class SystemReferenceContextImpl<T> extends AbstractContext<T> implements SystemReferenceContext<T> {
+
+ protected SystemInboundWire<T> inboundWire;
+ protected SystemOutboundWire<T> outboundWire;
+ protected Class<T> referenceInterface;
+
public SystemReferenceContextImpl(String name, Class<T> referenceInterface, CompositeContext parent) {
super(name, parent);
assert (referenceInterface != null) : "Reference interface was null";
this.referenceInterface = referenceInterface;
+ }
+
+ public Scope getScope() {
+ return Scope.COMPOSITE;
+ }
+
+ public void setInboundWire(InboundWire<T> wire) {
+ assert(wire instanceof SystemInboundWire): "wire must be a " + SystemInboundWire.class.getName();
+ this.inboundWire = (SystemInboundWire<T>) wire;
+ }
+
+ public InboundWire<T> getInboundWire() {
+ return inboundWire;
+ }
+
+ public OutboundWire<T> getOutboundWire() {
+ return outboundWire;
+ }
+
+ public void setOutboundWire(OutboundWire<T> wire) {
+ assert(wire instanceof SystemOutboundWire): "wire must be a " + SystemOutboundWire.class.getName();
+ this.outboundWire = (SystemOutboundWire<T>) wire;
+ }
+
+ public Class<T> getInterface() {
+ return referenceInterface;
+ }
+
+ public void setInterface(Class<T> referenceInterface) {
+ this.referenceInterface = referenceInterface;
+ }
+
+ public void prepare() {
+ for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
+ chain.setTargetInvoker(createTargetInvoker(outboundWire.getTargetName().getQualifiedName(), chain.getMethod()));
+ chain.build();
+ }
}
public T getService() throws TargetException {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemServiceContextImpl.java Wed May 31 22:32:27 2006
@@ -1,8 +1,14 @@
package org.apache.tuscany.core.system.context;
+import org.apache.tuscany.core.system.wire.SystemInboundWire;
+import org.apache.tuscany.core.system.wire.SystemOutboundWire;
import org.apache.tuscany.spi.CoreRuntimeException;
+import org.apache.tuscany.spi.context.AbstractContext;
import org.apache.tuscany.spi.context.CompositeContext;
-import org.apache.tuscany.spi.extension.ServiceContextExtension;
+import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.WireInvocationHandler;
/**
@@ -10,15 +16,48 @@
*
* @version $$Rev$$ $$Date$$
*/
-public class SystemServiceContextImpl<T> extends ServiceContextExtension<T> implements SystemServiceContext<T> {
+public class SystemServiceContextImpl<T> extends AbstractContext<T> implements SystemServiceContext<T> {
+
+ protected SystemInboundWire<T> inboundWire;
+ protected SystemOutboundWire<T> outboundWire;
public SystemServiceContextImpl(String name, CompositeContext parent) throws CoreRuntimeException {
super(name, parent);
}
+ public Scope getScope() {
+ return Scope.COMPOSITE;
+ }
+
+ public InboundWire<T> getInboundWire() {
+ return inboundWire;
+ }
+
+ public void setInboundWire(InboundWire<T> wire) {
+ assert(wire instanceof SystemInboundWire): "wire must be a " + SystemInboundWire.class.getName();
+ this.inboundWire = (SystemInboundWire<T>) wire;
+ }
+
+ public OutboundWire<T> getOutboundWire() {
+ return outboundWire;
+ }
+
+ public void setOutboundWire(OutboundWire<T> wire) {
+ assert(wire instanceof SystemOutboundWire): "wire must be a " + SystemOutboundWire.class.getName();
+ this.outboundWire = (SystemOutboundWire<T>) wire;
+ }
+
+ public Class<T> getInterface() {
+ return inboundWire.getBusinessInterface();
+ }
+
public WireInvocationHandler getHandler() {
// system services do not proxy
throw new UnsupportedOperationException();
+ }
+
+ public T getService() throws TargetException {
+ return inboundWire.getTargetService();
}
}
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemWireObjectFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemWireObjectFactory.java?rev=410755&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemWireObjectFactory.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemWireObjectFactory.java Wed May 31 22:32:27 2006
@@ -0,0 +1,24 @@
+package org.apache.tuscany.core.system.context;
+
+import org.apache.tuscany.core.system.wire.SystemOutboundWire;
+import org.apache.tuscany.spi.ObjectCreationException;
+import org.apache.tuscany.spi.ObjectFactory;
+
+/**
+ * Uses a system wire to return an object instance
+ *
+ * @version $Rev$ $Date$
+ */
+public class SystemWireObjectFactory implements ObjectFactory {
+
+ private SystemOutboundWire<?> wire;
+
+ public SystemWireObjectFactory(SystemOutboundWire<?> factory) {
+ this.wire = factory;
+ }
+
+ public Object getInstance() throws ObjectCreationException {
+ return wire.getTargetService();
+ }
+
+}
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java?rev=410755&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java Wed May 31 22:32:27 2006
@@ -0,0 +1,16 @@
+package org.apache.tuscany.core.system.wire;
+
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.context.TargetException;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public interface SystemInboundWire<T> extends InboundWire<T> {
+
+ /**
+ * Returns the target instance for this wire
+ */
+ T getTargetService() throws TargetException;
+
+}
Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWireImpl.java (from r410546, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWireImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWireImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java&r1=410546&r2=410755&rev=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundWireImpl.java Wed May 31 22:32:27 2006
@@ -7,7 +7,6 @@
import org.apache.tuscany.spi.context.ComponentContext;
import org.apache.tuscany.spi.context.TargetException;
import org.apache.tuscany.spi.wire.InboundInvocationChain;
-import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundWire;
/**
@@ -16,25 +15,26 @@
*
* @version $$Rev$$ $$Date$$
*/
-public class SystemInboundWire<T> implements InboundWire<T> {
+public class SystemInboundWireImpl<T> implements SystemInboundWire<T> {
private String serviceName;
private Class<T> businessInterface;
private ComponentContext<?> componentContext;
- private OutboundWire<T> wire;
+ private SystemOutboundWire<T> wire;
/**
* Constructs a new inbound wire
- * @param serviceName the name of the service the inbound wire represents
+ *
+ * @param serviceName the name of the service the inbound wire represents
* @param businessInterface the service interface
- * @param target the target context the wire is connected to
+ * @param target the target context the wire is connected to
*/
- public SystemInboundWire(String serviceName, Class<T> businessInterface, ComponentContext<?> target) {
+ public SystemInboundWireImpl(String serviceName, Class<T> businessInterface, ComponentContext<?> target) {
this.serviceName = serviceName;
this.businessInterface = businessInterface;
this.componentContext = target;
}
- public SystemInboundWire(String serviceName, Class<T> businessInterface) {
+ public SystemInboundWireImpl(String serviceName, Class<T> businessInterface) {
this.serviceName = serviceName;
this.businessInterface = businessInterface;
}
@@ -88,7 +88,8 @@
}
public void setTargetWire(OutboundWire<T> wire) {
- this.wire = wire;
+ assert(wire instanceof SystemOutboundWire): "wire must be a " + SystemOutboundWireImpl.class.getName();
+ this.wire = (SystemOutboundWire<T>) wire;
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundAutowire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundAutowire.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundAutowire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundAutowire.java Wed May 31 22:32:27 2006
@@ -16,7 +16,7 @@
*
* @version $$Rev$$ $$Date$$
*/
-public class SystemOutboundAutowire<T> implements OutboundAutowire<T> {
+public class SystemOutboundAutowire<T> implements OutboundAutowire<T>, SystemOutboundWire<T> {
private String referenceName;
private Class<T> businessInterface;
private AutowireContext<?> context;
Added: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java?rev=410755&view=auto
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java (added)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java Wed May 31 22:32:27 2006
@@ -0,0 +1,17 @@
+package org.apache.tuscany.core.system.wire;
+
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.context.TargetException;
+
+/**
+ * @version $$Rev$$ $$Date$$
+ */
+public interface SystemOutboundWire<T> extends OutboundWire<T> {
+
+ /**
+ * Returns the target instance for this wire
+ */
+ T getTargetService() throws TargetException;
+
+}
Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWireImpl.java (from r410546, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWireImpl.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWireImpl.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java&r1=410546&r2=410755&rev=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemOutboundWireImpl.java Wed May 31 22:32:27 2006
@@ -8,7 +8,6 @@
import org.apache.tuscany.spi.context.TargetException;
import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
-import org.apache.tuscany.spi.wire.OutboundWire;
/**
* An outbound wire configured to use the {@link org.apache.tuscany.core.system.model.SystemBinding}. System
@@ -16,13 +15,13 @@
*
* @version $$Rev$$ $$Date$$
*/
-public class SystemOutboundWire<T> implements OutboundWire<T> {
+public class SystemOutboundWireImpl<T> implements SystemOutboundWire<T> {
private String referenceName;
private QualifiedName targetName;
private Class<T> businessInterface;
- private InboundWire<T> targetWire;
+ private SystemInboundWire<T> targetWire;
- public SystemOutboundWire(String referenceName, QualifiedName targetName, Class<T> businessInterface) {
+ public SystemOutboundWireImpl(String referenceName, QualifiedName targetName, Class<T> businessInterface) {
this.referenceName = referenceName;
this.targetName = targetName;
this.businessInterface = businessInterface;
@@ -81,7 +80,8 @@
}
public void setTargetWire(InboundWire<T> wire) {
- targetWire = wire;
+ assert(wire instanceof SystemInboundWire): "wire must be a " + SystemInboundWire.class.getName();
+ this.targetWire = (SystemInboundWire<T>) wire;
}
public boolean isOptimizable() {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java?rev=410755&r1=410754&r2=410755&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/InboundWireImpl.java Wed May 31 22:32:27 2006
@@ -26,8 +26,9 @@
@SuppressWarnings("unchecked")
public T getTargetService() throws TargetException {
- JDKInboundInvocationHandler handler = new JDKInboundInvocationHandler(invocationChains);
- return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), businessInterfaces, handler);
+ throw new UnsupportedOperationException();
+// JDKInboundInvocationHandler handler = new JDKInboundInvocationHandler(invocationChains);
+// return (T) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), businessInterfaces, handler);
}
public void setBusinessInterface(Class interfaze) {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org