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/30 19:37:46 UTC
svn commit: r410323 [1/2] - in /incubator/tuscany/sandbox/jboynes/sca:
containers/container.groovy/src/main/java/org/apache/tuscany/container/groovy/
containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/
containers/container.ja...
Author: jmarino
Date: Tue May 30 10:37:42 2006
New Revision: 410323
URL: http://svn.apache.org/viewvc?rev=410323&view=rev
Log:
more inbound/outbound wire changes; refactoring/cleanup to come
Added:
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/wire/PojoTargetInvoker.java
- copied, changed from r410163, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/PojoTargetInvoker.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/StaticPojoTargetInvoker.java (contents, props changed)
- copied, changed from r410163, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/StaticPojoTargetInvoker.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
- copied, changed from r410164, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/ReferenceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/SystemServiceContextWireTestCase.java
- copied, changed from r410164, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/SystemServiceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/StaticPojoInvokerTestCase.java
- copied, changed from r410163, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/StaticPojoInvokerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/WireOptimizationTestCase.java
- copied, changed from r410164, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireOptimizationTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/ReferenceInvocationHandlerTestCase.java
- copied, changed from r410164, incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKSourceInvocationHandlerTestCase.java
Removed:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/wire/SystemInboundAutowire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/PojoTargetInvoker.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/StaticPojoTargetInvoker.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/builder/ReferenceToReferenceConnectTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/builder/ServiceToServiceConnectTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/mock/context/
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/ReferenceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/ServiceContextToAtomicContextTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/system/wire/SystemServiceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKSourceInvocationHandlerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/JDKWireOptimizationTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/StaticPojoInvokerTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/wire/jdk/WireTestCase.java
Modified:
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/test/java/org/apache/tuscany/container/groovy/WireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaTargetInvoker.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/JavaReferenceWireTestCase.java
incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ServiceToJavaTestCase.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/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/builder/Connector.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.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/SystemServiceContextImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.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/jdk/JDKInboundWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundWire.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/integration/system/builder/SystemBuildersTestCase.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/context/AutowireTestCase.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/wire/jdk/MediationTestCase.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ServiceContext.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/CompositeContextExtension.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/InboundWire.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/OutboundWire.java
incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/wire/RuntimeWire.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/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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -76,7 +76,7 @@
injector.inject(object);
}
// inject wires
- for (List<OutboundWire> referenceWires : getReferenceWires().values()) {
+ for (List<OutboundWire> referenceWires : getOutboundWires().values()) {
for (OutboundWire<?> wire : referenceWires) {
object.setProperty(wire.getReferenceName(), wire.getTargetService());
}
@@ -103,7 +103,7 @@
}
public Object getService(String service) throws TargetException {
- InboundWire<?> wire = getServiceWire(service);
+ InboundWire<?> wire = getInboundWire(service);
if (wire == null) {
TargetException e = new TargetException("Service not found"); // TODO better error message
e.setIdentifier(service);
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -54,7 +54,7 @@
}));
mock.expects(atLeastOnce()).method("getReferenceName").will(returnValue("wire"));
OutboundWire<Greeting> wire = (OutboundWire<Greeting>) mock.proxy();
- context.addReferenceWire(wire);
+ context.addOutboundWire(wire);
Greeting greeting = context.getService();
assertEquals("foo", greeting.greet("foo"));
scope.stop();
@@ -103,7 +103,7 @@
});
InboundWire<Greeting> wire = (InboundWire<Greeting>) mock.proxy();
- context.addServiceWire(wire);
+ context.addInboundWire(wire);
Greeting greeting = (Greeting) context.getService("Greeting");
assertEquals("foo", greeting.greet("foo"));
scope.stop();
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaTargetInvoker.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaTargetInvoker.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/JavaTargetInvoker.java Tue May 30 10:37:42 2006
@@ -18,7 +18,7 @@
import java.lang.reflect.Method;
-import org.apache.tuscany.core.wire.jdk.PojoTargetInvoker;
+import org.apache.tuscany.core.wire.PojoTargetInvoker;
import org.apache.tuscany.spi.context.TargetException;
/**
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -27,7 +27,7 @@
mock.stubs().method("getInvocationChains").will(returnValue(Collections.emptyMap()));
InboundWire<Target> wire = (InboundWire<Target>) mock.proxy();
- context.addServiceWire(wire);
+ context.addInboundWire(wire);
context.prepare();
context.start();
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -35,7 +35,7 @@
mock.expects(atLeastOnce()).method("getTargetService").will(returnValue(target));
mock.expects(atLeastOnce()).method("getReferenceName").will(returnValue("target"));
OutboundWire<Target> wire = (OutboundWire<Target>) mock.proxy();
- sourceContext.addReferenceWire(wire);
+ sourceContext.addOutboundWire(wire);
sourceContext.start();
Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ServiceToJavaTestCase.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/ServiceToJavaTestCase.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ServiceToJavaTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.java/src/test/java/org/apache/tuscany/container/java/integration/context/ServiceToJavaTestCase.java Tue May 30 10:37:42 2006
@@ -23,18 +23,16 @@
import org.apache.tuscany.core.context.scope.ModuleScopeContext;
import org.apache.tuscany.core.context.scope.RequestScopeContext;
import org.apache.tuscany.core.context.scope.StatelessScopeContext;
-import org.apache.tuscany.core.system.context.SystemCompositeContext;
-import org.apache.tuscany.core.system.context.SystemCompositeContextImpl;
import org.apache.tuscany.core.util.MethodHashMap;
-import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.jdk.JDKInboundWire;
+import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
+import org.apache.tuscany.core.wire.jdk.JDKOutboundWire;
+import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.context.AtomicContext;
-import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.WorkContext;
-import org.apache.tuscany.spi.extension.ServiceContextExtension;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
+import org.apache.tuscany.spi.wire.OutboundWire;
/**
* Validates wiring from a service context to Java atomic contexts by scope
@@ -43,34 +41,29 @@
*/
public class ServiceToJavaTestCase extends TestCase {
private WorkContext workContext;
- private SystemCompositeContext parent;
+ //private SystemCompositeContext parent;
public void testToStatelessScope() throws Exception {
StatelessScopeContext scope = new StatelessScopeContext(workContext);
scope.start();
- setupComposite(parent, scope);
- parent.start();
- Target service = (Target) parent.getContext("service").getService();
+ final OutboundWire wire = getWire(scope);
+ Target service = (Target) wire.getTargetService();
assertNotNull(service);
- Target target = (Target) parent.getContext("target").getService();
service.setString("foo");
assertEquals(null, service.getString());
- assertEquals(null, target.getString());
- parent.stop();
scope.stop();
}
public void testToRequestScope() throws Exception {
final RequestScopeContext scope = new RequestScopeContext(workContext);
scope.start();
- setupComposite(parent, scope);
- parent.start();
scope.onEvent(new RequestStart(this));
- Target service = (Target) parent.getContext("service").getService();
+
+ final OutboundWire wire = getWire(scope);
+ Target service = (Target) wire.getTargetService();
assertNotNull(service);
- Target target = (Target) parent.getContext("target").getService();
service.setString("foo");
// another request
@@ -78,8 +71,8 @@
FutureTask<Void> future = new FutureTask<Void>(new Runnable() {
public void run() {
scope.onEvent(new RequestStart(this));
- Target service2 = (Target) parent.getContext("service").getService();
- Target target2 = (Target) parent.getContext("target").getService();
+ Target service2 = (Target) wire.getTargetService();
+ Target target2 = (Target) wire.getTargetService();
assertEquals(null, service2.getString());
service2.setString("bar");
assertEquals("bar", service2.getString());
@@ -91,24 +84,21 @@
future.get();
assertEquals("foo", service.getString());
- assertEquals("foo", target.getString());
scope.onEvent(new RequestEnd(this));
- parent.stop();
scope.stop();
}
public void testToSessionScope() throws Exception {
HttpSessionScopeContext scope = new HttpSessionScopeContext(workContext);
scope.start();
- setupComposite(parent, scope);
- parent.start();
Object session1 = new Object();
workContext.setIdentifier(HttpSessionScopeContext.HTTP_IDENTIFIER, session1);
scope.onEvent(new HttpSessionStart(this, session1));
- Target service = (Target) parent.getContext("service").getService();
+ final OutboundWire wire = getWire(scope);
+ Target service = (Target) wire.getTargetService();
+ Target target = (Target) wire.getTargetService();
assertNotNull(service);
- Target target = (Target) parent.getContext("target").getService();
service.setString("foo");
assertEquals("foo", service.getString());
assertEquals("foo", target.getString());
@@ -120,10 +110,10 @@
workContext.setIdentifier(HttpSessionScopeContext.HTTP_IDENTIFIER, session2);
scope.onEvent(new HttpSessionStart(this, session2));
- Target service2 = (Target) parent.getContext("service").getService();
+ Target service2 = (Target) wire.getTargetService();
assertNotNull(service2);
assertNull(service2.getString());
- Target target2 = (Target) parent.getContext("target").getService();
+ Target target2 = (Target) wire.getTargetService();
service2.setString("bar");
assertEquals("bar", service2.getString());
assertEquals("bar", target2.getString());
@@ -136,7 +126,6 @@
scope.onEvent(new HttpSessionEnd(this, session1));
- parent.stop();
scope.stop();
}
@@ -144,53 +133,51 @@
ModuleScopeContext scope = new ModuleScopeContext(workContext);
scope.start();
- setupComposite(parent, scope);
- parent.start();
- scope.onEvent(new ModuleStart(this, parent));
- Target service = (Target) parent.getContext("service").getService();
+ final OutboundWire wire = getWire(scope);
+ scope.onEvent(new ModuleStart(this, null));
+ Target service = (Target) wire.getTargetService();
+ Target target = (Target) wire.getTargetService();
+
assertNotNull(service);
- Target target = (Target) parent.getContext("target").getService();
service.setString("foo");
assertEquals("foo", service.getString());
assertEquals("foo", target.getString());
- scope.onEvent(new ModuleStop(this, parent));
- parent.stop();
+ scope.onEvent(new ModuleStop(this, null));
scope.stop();
}
@SuppressWarnings("unchecked")
- private void setupComposite(CompositeContext<?> parent, ScopeContext scope) throws NoSuchMethodException {
+ private OutboundWire getWire(ScopeContext scope) throws NoSuchMethodException {
Connector connector = new ConnectorImpl();
- InboundWire<Target> sourceWire = createServiceWire("target", Target.class);
- sourceWire.setServiceName("Target");
- ServiceContextExtension<Target> serviceContext = new ServiceContextExtension<Target>("service", sourceWire, parent);
+ OutboundWire<Target> wire = createOutboundWire(new QualifiedName("target/Target"), Target.class);
+
AtomicContext<?> atomicContext = MockContextFactory.createJavaAtomicContext("target", scope, TargetImpl.class, Target.class, scope.getScope());
InboundWire targetWire = MockContextFactory.createTargetWire("Target", Target.class);
- atomicContext.addServiceWire(targetWire);
- parent.registerContext(serviceContext);
- parent.registerContext(atomicContext);
- connector.connect(serviceContext.getInboundWire(), atomicContext);
+ atomicContext.addInboundWire(targetWire);
+ connector.connect(wire, atomicContext.getInboundWire("Target"), atomicContext, false);
+ atomicContext.start();
+ return wire;
}
protected void setUp() throws Exception {
super.setUp();
workContext = new WorkContextImpl();
- parent = new SystemCompositeContextImpl(null, null, null);
+ //parent = new SystemCompositeContextImpl(null, null, null);
}
- public static <T> InboundWire<T> createServiceWire(String serviceName, Class<T> interfaze) {
- InboundWire<T> wire = new JDKInboundWire<T>();
+ public static <T> OutboundWire<T> createOutboundWire(QualifiedName targetName, Class<T> interfaze) {
+ OutboundWire<T> wire = new JDKOutboundWire<T>();
wire.setBusinessInterface(interfaze);
- wire.setServiceName(serviceName);
- wire.addInvocationChains(createServiceInvocationChains(interfaze));
+ wire.setTargetName(targetName);
+ wire.addInvocationChains(createInvocationChains(interfaze));
return wire;
}
- private static Map<Method, InboundInvocationChain> createServiceInvocationChains(Class<?> interfaze) {
- Map<Method, InboundInvocationChain> invocations = new MethodHashMap<InboundInvocationChain>();
+ private static Map<Method, OutboundInvocationChain> createInvocationChains(Class<?> interfaze) {
+ Map<Method, OutboundInvocationChain> invocations = new MethodHashMap<OutboundInvocationChain>();
Method[] methods = interfaze.getMethods();
for (Method method : methods) {
- InboundInvocationChain chain = new InboundInvocationChainImpl(method);
+ OutboundInvocationChain chain = new OutboundInvocationChainImpl(method);
invocations.put(method, chain);
}
return invocations;
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -14,25 +14,25 @@
import org.apache.tuscany.core.injection.Injector;
import org.apache.tuscany.core.injection.PojoObjectFactory;
import org.apache.tuscany.core.util.MethodHashMap;
+import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.MessageChannelImpl;
import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
-import org.apache.tuscany.core.wire.jdk.JDKOutboundWire;
import org.apache.tuscany.core.wire.jdk.JDKInboundWire;
-import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.core.wire.jdk.JDKOutboundWire;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.context.AtomicContext;
-import org.apache.tuscany.spi.context.ScopeContext;
import org.apache.tuscany.spi.context.CompositeContext;
+import org.apache.tuscany.spi.context.ScopeContext;
+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.Interceptor;
import org.apache.tuscany.spi.wire.MessageHandler;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.TargetInvoker;
-import org.apache.tuscany.spi.wire.InboundWire;
/**
* @version $$Rev$$ $$Date$$
@@ -114,12 +114,12 @@
JavaAtomicContext targetContext = createJavaAtomicContext(targetName, targetScope, targetClass, targetScope.getScope());
InboundWire inboundWire = createServiceWire(targetService.getName().substring(
targetService.getName().lastIndexOf('.') + 1), targetService, targetHeadInterceptor, targetRequestHeadHandler, targetResponseHeadHandler);
- targetContext.addServiceWire(inboundWire);
+ targetContext.addInboundWire(inboundWire);
JavaAtomicContext sourceContext = createJavaAtomicContext(sourceName, null, sourceScope, sourceClass, sourceClass, sourceScope.getScope(), false, null, null, null, members);
OutboundWire outboundWire = createReferenceWire(targetName, sourceReferenceClass, sourceHeadInterceptor,
sourceHeadRequestHandler, sourceHeadResponseHandler);
- sourceContext.addReferenceWire(outboundWire);
+ sourceContext.addOutboundWire(outboundWire);
targetScope.register(targetContext);
sourceScope.register(sourceContext);
connect(outboundWire, inboundWire, targetContext, false);
@@ -152,13 +152,13 @@
JavaAtomicContext targetContext = createJavaAtomicContext(targetName, targetScope, targetClass, targetScope.getScope());
InboundWire inboundWire = createServiceWire(targetService.getName().substring(
targetService.getName().lastIndexOf('.') + 1), targetService, null, null, null);
- targetContext.addServiceWire(inboundWire);
+ targetContext.addInboundWire(inboundWire);
JavaAtomicContext sourceContext = createJavaAtomicContext(sourceName, null, sourceScope, sourceClass, sourceClass, sourceScope.getScope(), false, null, null, null, members);
OutboundWire outboundWire = createReferenceWire(targetName, sourceReferenceClass, null, null, null);
List<OutboundWire> factories = new ArrayList<OutboundWire>();
factories.add(outboundWire);
- sourceContext.addReferenceWires(sourceReferenceClass, factories);
+ sourceContext.addOutboundWires(sourceReferenceClass, factories);
targetScope.register(targetContext);
sourceScope.register(sourceContext);
connect(outboundWire, inboundWire, targetContext, false);
@@ -185,9 +185,9 @@
}
public static <T> OutboundWire<T> createReferenceWire(String refName, Class<T> interfaze,
- Interceptor headInterceptor,
- MessageHandler headRequestHandler,
- MessageHandler headResponseHandler) {
+ Interceptor headInterceptor,
+ MessageHandler headRequestHandler,
+ MessageHandler headResponseHandler) {
OutboundWire<T> wire = new JDKOutboundWire<T>();
wire.setReferenceName(refName);
@@ -216,7 +216,8 @@
if (inboundWire != null) {
// if null, the target side has no interceptors or handlers
Map<Method, InboundInvocationChain> targetInvocationConfigs = inboundWire.getInvocationChains();
- for (OutboundInvocationChain outboundInvocationConfig : outboundWire.getInvocationChains().values()) {
+ for (OutboundInvocationChain outboundInvocationConfig : outboundWire.getInvocationChains().values())
+ {
// match wire chains
InboundInvocationChain inboundInvocationConfig = targetInvocationConfigs.get(outboundInvocationConfig.getMethod());
if (inboundInvocationConfig == null) {
@@ -260,8 +261,8 @@
}
private static Map<Method, OutboundInvocationChain> createReferenceInvocationChains(Class<?> interfaze,
- Interceptor headInterceptor, MessageHandler headRequestHandler,
- MessageHandler headResponseHandler) {
+ Interceptor headInterceptor, MessageHandler headRequestHandler,
+ MessageHandler headResponseHandler) {
Map<Method, OutboundInvocationChain> invocations = new HashMap<Method, OutboundInvocationChain>();
Method[] methods = interfaze.getMethods();
for (Method method : methods) {
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -14,8 +14,11 @@
import org.apache.tuscany.spi.model.Reference;
import org.apache.tuscany.spi.model.ReferenceTarget;
import org.apache.tuscany.spi.model.Service;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
+import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.InboundInvocationChain;
+import org.apache.tuscany.spi.QualifiedName;
import org.springframework.context.support.GenericApplicationContext;
/**
@@ -35,15 +38,21 @@
for (Service service : componentType.getServices().values()) {
if (service instanceof BoundService) {
// call back into deployment context to handle building of services
+ BoundService<? extends Binding> boundService = (BoundService<? extends Binding>) service;
ServiceContext<?> childContext = (ServiceContext) builderRegistry.build(parent,
- (BoundService<? extends Binding>) service,
+ boundService,
deploymentContext);
// wire service to bean invokers
InboundWire<?> wire = childContext.getInboundWire();
+ //FIXME ME
+ QualifiedName targetName = new QualifiedName(boundService.getTarget().getPath());
for (InboundInvocationChain chain : wire.getInvocationChains().values()) {
- String beanName = wire.getTargetName().getPartName();
- chain.setTargetInvoker(context.createTargetInvoker(beanName, chain.getMethod()));
+ chain.setTargetInvoker(context.createTargetInvoker(targetName.getPartName(), chain.getMethod()));
}
+// for (OutboundInvocationChain chain : wire.getInvocationChains().values()) {
+// String beanName = wire.getTargetName().getPartName();
+// chain.setTargetInvoker(context.createTargetInvoker(beanName, chain.getMethod()));
+// }
context.registerContext(childContext);
}
}
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -3,10 +3,12 @@
import junit.framework.TestCase;
import org.apache.tuscany.container.spring.mock.TestBean;
import org.apache.tuscany.container.spring.mock.TestBeanImpl;
+import org.apache.tuscany.core.builder.Connector;
import org.apache.tuscany.spi.context.ServiceContext;
import org.apache.tuscany.spi.extension.ServiceContextExtension;
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.test.ArtifactFactory;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.RootBeanDefinition;
@@ -23,12 +25,18 @@
public void testInvocation() {
SpringCompositeContext context = new SpringCompositeContext("parent", createSpringContext(), null);
context.start();
- InboundWire<TestBean> wire = ArtifactFactory.createTargetWire("fooService", TestBean.class);
- for (InboundInvocationChain chain : wire.getInvocationChains().values()) {
+ 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.setInboundWire(inboundWire);
+ serviceContext.setOutboundWire(outboundWire);
+ Connector conntector = ArtifactFactory.createConnector();
+ conntector.connect(inboundWire, outboundWire, true);
+ // TODO fix below
+ for (InboundInvocationChain chain : inboundWire.getInvocationChains().values()) {
chain.setTargetInvoker(context.createTargetInvoker("foo", chain.getMethod()));
}
- ServiceContext<TestBean> serviceContext = new ServiceContextExtension<TestBean>("fooService", wire, context);
- serviceContext.setInboundWire(wire);
context.registerContext(serviceContext);
assertEquals("bar", ((TestBean) context.getContext("fooService").getService()).echo("bar"));
}
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -14,8 +14,10 @@
import org.apache.tuscany.spi.model.Component;
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.test.ArtifactFactory;
+import org.apache.tuscany.core.builder.Connector;
import org.jmock.Mock;
import org.jmock.MockObjectTestCase;
import org.springframework.beans.factory.config.BeanDefinition;
@@ -35,10 +37,15 @@
impl.setApplicationContext(createSpringContext());
Component<SpringImplementation> component = new Component<SpringImplementation>("spring", impl);
Mock mock = mock(BuilderRegistry.class);
- ServiceContextExtension<TestBean> serviceContext = new ServiceContextExtension<TestBean>("fooService", null, null);
- InboundWire<TestBean> wire = ArtifactFactory.createTargetWire("foo", TestBean.class);
- wire.setTargetName(new QualifiedName("foo"));
- serviceContext.setInboundWire(wire);
+ ServiceContextExtension<TestBean> serviceContext = new ServiceContextExtension<TestBean>("fooService", null);
+ 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);
+ ArtifactFactory.terminateWire(inboundWire);
mock.expects(atLeastOnce()).method("build").will(returnValue(serviceContext));
builder.setBuilderRegistry((BuilderRegistry) mock.proxy());
CompositeContext context = (CompositeContext) builder.build(null, component, null);
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/Connector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/Connector.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/Connector.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/Connector.java Tue May 30 10:37:42 2006
@@ -2,7 +2,10 @@
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.context.Context;
+import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundWire;
+import org.apache.tuscany.spi.model.Scope;
/**
* Implementations are responsible for bridging invocation chains as an assembly is converted to runtime
@@ -14,7 +17,9 @@
<T> void connect(Context<T> source);
- public <T> void connect(InboundWire<T> sourceWire, Context<?> targetContext) throws BuilderConfigException;
+ public <T> void connect(InboundWire<T> inboundWire, OutboundWire<T> outboundWire, boolean optimizable) throws BuilderConfigException;
+ public <T> void connect(OutboundWire<T> outboundWire, CompositeContext<?> parent, Scope sourceScope) throws BuilderConfigException;
+ public <T> void connect(OutboundWire<T> sourceWire, InboundWire<T> targetWire, Context<?> context, boolean optimizable);
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Tue May 30 10:37:42 2006
@@ -5,13 +5,11 @@
import java.util.List;
import java.util.Map;
-import org.apache.tuscany.core.wire.BridgingHandler;
import org.apache.tuscany.core.wire.BridgingInterceptor;
import org.apache.tuscany.core.wire.InvokerInterceptor;
import org.apache.tuscany.core.wire.MessageChannelImpl;
import org.apache.tuscany.core.wire.MessageDispatcher;
import org.apache.tuscany.core.wire.OutboundAutowire;
-import org.apache.tuscany.core.wire.RequestResponseInterceptor;
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.builder.BuilderConfigException;
import org.apache.tuscany.spi.context.AtomicContext;
@@ -40,7 +38,7 @@
Scope scope = source.getScope();
if (source instanceof AtomicContext) {
AtomicContext<T> sourceContext = (AtomicContext<T>) source;
- for (List<OutboundWire> referenceWires : sourceContext.getReferenceWires().values()) {
+ for (List<OutboundWire> referenceWires : sourceContext.getOutboundWires().values()) {
for (OutboundWire<T> outboundWire : referenceWires) {
if (outboundWire instanceof OutboundAutowire) {
continue;
@@ -63,7 +61,7 @@
}
@SuppressWarnings("unchecked")
- private <T> void connect(OutboundWire<T> sourceWire, CompositeContext<?> parent, Scope sourceScope) throws BuilderConfigException {
+ public <T> void connect(OutboundWire<T> sourceWire, CompositeContext<?> parent, Scope sourceScope) throws BuilderConfigException {
assert(sourceScope != null): "Source scope was null";
assert(sourceWire.getTargetName() != null): "Wire target name was null";
QualifiedName targetName = sourceWire.getTargetName();
@@ -76,7 +74,7 @@
if (target instanceof AtomicContext) {
AtomicContext<?> targetContext = (AtomicContext<?>) target;
- InboundWire<?> targetWire = targetContext.getServiceWire(targetName.getPortName());
+ InboundWire<T> targetWire = targetContext.getInboundWire(targetName.getPortName());
if (targetWire == null) {
BuilderConfigException e = new BuilderConfigException("Target service not found for reference " + sourceWire.getReferenceName());
e.setIdentifier(targetName.getPortName());
@@ -85,7 +83,7 @@
if (!sourceWire.getBusinessInterface().isAssignableFrom(targetWire.getBusinessInterface())) {
throw new BuilderConfigException("Incompatible source and target interfaces");
}
- connect(sourceWire, (InboundWire<T>) targetWire, target, isOptimizable(sourceScope, targetContext.getScope()));
+ connect(sourceWire, targetWire, target, isOptimizable(sourceScope, target.getScope()));
} else if (target instanceof ReferenceContext) {
InboundWire<T> targetWire = ((ReferenceContext) target).getInboundWire();
assert(targetWire != null);
@@ -99,120 +97,45 @@
}
}
- @SuppressWarnings("unchecked")
- public <T> void connect(InboundWire<T> sourceWire, Context<?> targetContext) throws BuilderConfigException {
- if (targetContext instanceof ComponentContext) {
- InboundWire<T> targetWire = ((ComponentContext) targetContext).getServiceWire(sourceWire.getServiceName());
- // perform optimization, if possible
- if (sourceWire.getInvocationChains().isEmpty() && targetWire.getInvocationChains().isEmpty()) {
- sourceWire.setTargetWire(targetWire);
- return;
- }
- for (InboundInvocationChain sourceChain : sourceWire.getInvocationChains().values()) {
- if (targetWire.getInvocationChains() != null || targetWire.getInvocationChains().isEmpty()) {
- if (sourceChain.getTailInterceptor() != null &&
- !(sourceChain.getTailInterceptor() instanceof InvokerInterceptor)) {
- sourceChain.getTailInterceptor().setNext(new InvokerInterceptor());
- } else {
- // special case where we need to attach the invoker of the second chain
- if (targetContext instanceof ComponentContext) {
- sourceChain.setTargetInvoker(((ComponentContext) targetContext).createTargetInvoker(
- sourceWire.getServiceName(), sourceChain.getMethod()));
- } else if (targetContext instanceof ReferenceContext) {
- sourceChain.setTargetInvoker(((ReferenceContext) targetContext).createTargetInvoker(
- sourceWire.getServiceName(), sourceChain.getMethod()));
- }
- }
- }
- InboundInvocationChain targetChain = targetWire.getInvocationChains().get(sourceChain.getMethod());
- connect(sourceChain, targetChain);
- }
- } else if (targetContext instanceof ReferenceContext) {
- InboundWire<T> targetWire = ((ReferenceContext) targetContext).getInboundWire();
- // perform optimization, if possible
- if (sourceWire.getInvocationChains().isEmpty() && targetWire.getInvocationChains().isEmpty()) {
- sourceWire.setTargetWire(targetWire);
- return;
- }
- for (InboundInvocationChain sourceChain : sourceWire.getInvocationChains().values()) {
- if (targetWire.getInvocationChains() != null || targetWire.getInvocationChains().isEmpty()) {
- if (sourceChain.getTailInterceptor() != null &&
- !(sourceChain.getTailInterceptor() instanceof InvokerInterceptor)) {
- sourceChain.getTailInterceptor().setNext(new InvokerInterceptor());
- } else {
- // special case where we need to attach the invoker of the second chain
- if (targetContext instanceof ComponentContext) {
- sourceChain.setTargetInvoker(((ComponentContext) targetContext).createTargetInvoker(
- sourceWire.getServiceName(), sourceChain.getMethod()));
- } else if (targetContext instanceof ReferenceContext) {
- sourceChain.setTargetInvoker(((ReferenceContext) targetContext).createTargetInvoker(
- sourceWire.getServiceName(), sourceChain.getMethod()));
- }
- }
- }
- InboundInvocationChain targetChain = targetWire.getInvocationChains().get(sourceChain.getMethod());
- connect(sourceChain, targetChain);
- }
- } else {
- BuilderConfigException e = new BuilderConfigException("Invalid target context type");
- e.setIdentifier(targetContext.getName());
- throw e;
- }
- }
-
- public <T> void connect(OutboundWire<T> sourceWire, InboundWire<T> targetWire, Context<?> target, boolean optimizable) {
- Map<Method, InboundInvocationChain> targetChains = targetWire.getInvocationChains();
+ public <T> void connect(InboundWire<T> sourceWire, OutboundWire<T> targetWire, boolean optimizable) throws BuilderConfigException {
+ Map<Method, OutboundInvocationChain> targetChains = targetWire.getInvocationChains();
// perform optimization, if possible
if (optimizable && sourceWire.getInvocationChains().isEmpty() && targetChains.isEmpty()) {
sourceWire.setTargetWire(targetWire);
return;
}
- String serviceName = targetWire.getServiceName();
- for (OutboundInvocationChain outboundChain : sourceWire.getInvocationChains().values()) {
+ //String serviceName = targetWire.getTargetName();
+ for (InboundInvocationChain inboundChain : sourceWire.getInvocationChains().values()) {
// match wire chains
- InboundInvocationChain inboundChain = targetChains.get(outboundChain.getMethod());
- if (inboundChain == null) {
- BuilderConfigException e = new BuilderConfigException("Incompatible sourceWire and target chain interfaces for reference");
- e.setIdentifier(sourceWire.getReferenceName());
+ OutboundInvocationChain outboundChain = targetChains.get(inboundChain.getMethod());
+ if (outboundChain == null) {
+ BuilderConfigException e = new BuilderConfigException("Incompatible source and target wire interfaces");
+ e.setIdentifier(sourceWire.getServiceName());
throw e;
}
- if (target instanceof ReferenceContext) {
- ReferenceContext referenceContext = (ReferenceContext) target;
- TargetInvoker invoker = referenceContext.createTargetInvoker(serviceName, outboundChain.getMethod());
- connect(outboundChain, inboundChain, invoker);
- } else {
- ComponentContext componentContext = (ComponentContext) target;
- TargetInvoker invoker = componentContext.createTargetInvoker(serviceName, outboundChain.getMethod());
- connect(outboundChain, inboundChain, invoker);
- }
+ connect(inboundChain, outboundChain);
}
}
- public <T> void connect(OutboundWire<T> sourceWire, OutboundWire<T> targetWire, Context<?> target, boolean optimizable) {
- //xcv
- Map<Method, OutboundInvocationChain> targetChains = targetWire.getInvocationChains();
+ public <T> void connect(OutboundWire<T> sourceWire, InboundWire<T> targetWire, Context<?> context, boolean optimizable) {
+ Map<Method, InboundInvocationChain> targetChains = targetWire.getInvocationChains();
// perform optimization, if possible
if (optimizable && sourceWire.getInvocationChains().isEmpty() && targetChains.isEmpty()) {
sourceWire.setTargetWire(targetWire);
return;
}
- String serviceName = targetWire.getTargetName().getPortName();
for (OutboundInvocationChain outboundChain : sourceWire.getInvocationChains().values()) {
// match wire chains
- OutboundInvocationChain serviceChain = targetChains.get(outboundChain.getMethod());
- if (serviceChain == null) {
+ InboundInvocationChain inboundChain = targetChains.get(outboundChain.getMethod());
+ if (inboundChain == null) {
BuilderConfigException e = new BuilderConfigException("Incompatible sourceWire and target chain interfaces for reference");
e.setIdentifier(sourceWire.getReferenceName());
throw e;
}
- if (target instanceof ReferenceContext) {
- ReferenceContext referenceContext = (ReferenceContext) target;
- TargetInvoker invoker = referenceContext.createTargetInvoker(serviceName, outboundChain.getMethod());
- connect(outboundChain, serviceChain, invoker);
- } else {
- ComponentContext componentContext = (ComponentContext) target;
- TargetInvoker invoker = componentContext.createTargetInvoker(serviceName, outboundChain.getMethod());
- connect(outboundChain, serviceChain, invoker);
+ if (context instanceof ComponentContext) {
+ connect(outboundChain, inboundChain, ((ComponentContext) context).createTargetInvoker(targetWire.getServiceName(), inboundChain.getMethod()));
+ } else if (context instanceof ReferenceContext) {
+ connect(outboundChain, inboundChain, ((ReferenceContext) context).createTargetInvoker(targetWire.getServiceName(), inboundChain.getMethod()));
}
}
}
@@ -253,79 +176,6 @@
sourceChain.setTargetInvoker(invoker);
}
- public void connect(InboundInvocationChain sourceChain, InboundInvocationChain targetChain) {
- if (sourceChain.getTailInterceptor() != null) {
- // connect the tail interceptor to a target request channel or target interceptor
- if (targetChain.getRequestHandlers() != null) {
- MessageChannel targetRequestChannel = targetChain.getRequestChannel();
- MessageChannel targetResponseChannel = targetChain.getResponseChannel();
- sourceChain.setTargetRequestChannel(targetRequestChannel);
- sourceChain.setTargetResponseChannel(targetResponseChannel);
- sourceChain.getTailInterceptor().setNext(new RequestResponseInterceptor(null, targetRequestChannel,
- null, targetResponseChannel));
- } else {
- // connect to target interceptor
- if (targetChain.getHeadInterceptor() == null) {
- BuilderConfigException e = new BuilderConfigException("Service chain must have an interceptor");
- e.setIdentifier(targetChain.getMethod().getName());
- throw e;
- }
- sourceChain.getTailInterceptor().setNext(new BridgingInterceptor(targetChain.getHeadInterceptor()));
- }
- } else {
- // no source interceptor
- List<MessageHandler> sourceRequestHandlers = sourceChain.getRequestHandlers();
- List<MessageHandler> targetRequestHandlers = targetChain.getRequestHandlers();
- List<MessageHandler> targetResponseHandlers = targetChain.getResponseHandlers();
- List<MessageHandler> sourceResponseHandlers = sourceChain.getResponseHandlers();
- if (sourceRequestHandlers != null && !sourceRequestHandlers.isEmpty()) {
- // connect source and target side request handlers
- if (targetRequestHandlers != null && !targetRequestHandlers.isEmpty()) {
- sourceRequestHandlers.add(new BridgingHandler(targetRequestHandlers.get(0)));
- } else {
- sourceRequestHandlers.add(new MessageDispatcher(targetChain.getHeadInterceptor()));
- }
- } else {
- // no source interceptor or request handlers
- MessageChannel targetRequestChannel = targetChain.getRequestChannel();
- MessageChannel targetResponseChannel = targetChain.getResponseChannel();
- if ((targetRequestHandlers == null || targetRequestHandlers.isEmpty())
- && (targetResponseHandlers == null || targetResponseHandlers.isEmpty())) {
- // no handlers on target, connect directly to head target interceptor (there must be at least one)
- if (targetChain.getHeadInterceptor() == null) {
- BuilderConfigException e = new BuilderConfigException("Service chain must have an interceptor");
- e.setIdentifier(targetChain.getMethod().getName());
- throw e;
- }
- sourceChain.setTargetInterceptor(targetChain.getHeadInterceptor());
- } else {
- if (targetRequestChannel == null) {
- sourceChain.setTargetInterceptor(new BridgingInterceptor(targetChain.getHeadInterceptor()));
-
- } else {
- sourceChain.setTargetRequestChannel(targetRequestChannel);
- sourceChain.addInterceptor(new RequestResponseInterceptor(null, targetRequestChannel, null, targetResponseChannel));
- }
- sourceChain.setTargetResponseChannel(targetResponseChannel);
- }
- }
- // bridge response handlers
- if (sourceResponseHandlers != null && !sourceResponseHandlers.isEmpty()) {
- if (targetResponseHandlers != null && !targetResponseHandlers.isEmpty()) {
- sourceResponseHandlers.add(new BridgingHandler(targetResponseHandlers.get(0)));
- }
- }
- }
- }
-
- public void connect(OutboundInvocationChain sourceChain, OutboundInvocationChain targetChain, TargetInvoker invoker) {
- if (sourceChain.getRequestChannel() != null) {
- sourceChain.addRequestHandler(new MessageDispatcher(targetChain.getHeadInterceptor()));
- } else {
- sourceChain.setTargetInterceptor(targetChain.getHeadInterceptor());
- }
- sourceChain.setTargetInvoker(invoker);
- }
public void connect(InboundInvocationChain sourceChain, OutboundInvocationChain targetChain) {
sourceChain.addInterceptor(new BridgingInterceptor(targetChain.getHeadInterceptor()));
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -2,10 +2,12 @@
import org.apache.tuscany.core.context.AutowireContext;
import org.apache.tuscany.core.system.context.SystemReferenceContextImpl;
+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.SystemInboundAutowire;
import org.apache.tuscany.core.system.wire.SystemInboundWire;
+import org.apache.tuscany.core.system.wire.SystemOutboundAutowire;
+import org.apache.tuscany.core.system.wire.SystemOutboundWire;
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.builder.BindingBuilder;
import org.apache.tuscany.spi.context.ComponentContext;
@@ -14,7 +16,7 @@
import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.model.BoundReference;
import org.apache.tuscany.spi.model.BoundService;
-import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundWire;
/**
* @version $$Rev$$ $$Date$$
@@ -25,8 +27,12 @@
Class<?> interfaze = boundService.getServiceContract().getInterfaceClass();
QualifiedName targetName = new QualifiedName(boundService.getTarget().getPath());
ComponentContext target = (ComponentContext) parent.getContext(targetName.getPartName());
- SystemInboundWire<?> wire = new SystemInboundWire(targetName.getPortName(), interfaze, target);
- return new SystemServiceContextImpl(boundService.getName(), wire, parent);
+ SystemInboundWire<?> inboundWire = new SystemInboundWire(boundService.getName(), interfaze, target);
+ SystemOutboundWire<?> outboundWire = new SystemOutboundWire(boundService.getName(), targetName, interfaze);
+ SystemServiceContext context = new SystemServiceContextImpl(boundService.getName(), parent);
+ context.setInboundWire(inboundWire);
+ context.setOutboundWire(outboundWire);
+ return context;
}
public Context build(CompositeContext parent, BoundReference<SystemBinding> boundReference, DeploymentContext deploymentContext) {
@@ -34,8 +40,10 @@
AutowireContext autowireContext = (AutowireContext) parent.getParent();
Class<?> interfaze = boundReference.getServiceContract().getInterfaceClass();
SystemReferenceContextImpl ctx = new SystemReferenceContextImpl(boundReference.getName(), interfaze, parent);
- InboundWire<?> wire = new SystemInboundAutowire(interfaze, autowireContext);
- ctx.setInboundWire(wire);
+ SystemInboundWire<?> inboundWire = new SystemInboundWire(boundReference.getName(), interfaze);
+ OutboundWire<?> outboundWire = new SystemOutboundAutowire(boundReference.getName(), interfaze, autowireContext);
+ ctx.setInboundWire(inboundWire);
+ ctx.setOutboundWire(outboundWire);
return ctx;
}
}
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -6,7 +6,6 @@
import java.util.List;
import java.util.Map;
-import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.core.context.AutowireContext;
import org.apache.tuscany.core.injection.ContextInjector;
import org.apache.tuscany.core.injection.Injector;
@@ -15,20 +14,21 @@
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.SystemOutboundAutowire;
import org.apache.tuscany.core.system.wire.SystemOutboundWire;
-import org.apache.tuscany.core.system.wire.SystemInboundWire;
import org.apache.tuscany.core.util.JavaIntrospectionHelper;
-import org.apache.tuscany.spi.model.Component;
-import org.apache.tuscany.spi.model.ReferenceTarget;
-import org.apache.tuscany.spi.model.Service;
+import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.QualifiedName;
-import org.apache.tuscany.spi.deployer.DeploymentContext;
import org.apache.tuscany.spi.builder.BuilderConfigException;
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.ScopeContext;
+import org.apache.tuscany.spi.deployer.DeploymentContext;
+import org.apache.tuscany.spi.model.Component;
+import org.apache.tuscany.spi.model.ReferenceTarget;
+import org.apache.tuscany.spi.model.Service;
import org.apache.tuscany.spi.wire.OutboundWire;
/**
@@ -85,8 +85,8 @@
for (Service service : component.getImplementation().getComponentType().getServices().values()) {
Class interfaze = service.getServiceContract().getInterfaceClass();
- SystemInboundWire wire = new SystemInboundWire(service.getName(), interfaze, systemContext);
- systemContext.addServiceWire(wire);
+ SystemInboundWire<?> wire = new SystemInboundWire(service.getName(), interfaze, systemContext);
+ systemContext.addInboundWire(wire);
}
for (ReferenceTarget target : component.getReferenceTargets().values()) {
String referenceName = target.getReferenceName();
@@ -108,7 +108,7 @@
QualifiedName targetName = new QualifiedName(target.getTargets().get(0).getPath());
wire = new SystemOutboundWire(referenceName, targetName, interfaze);
}
- systemContext.addReferenceWire(wire);
+ systemContext.addOutboundWire(wire);
}
return systemContext;
}
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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -3,7 +3,6 @@
import org.apache.tuscany.spi.CoreRuntimeException;
import org.apache.tuscany.spi.context.CompositeContext;
import org.apache.tuscany.spi.extension.ServiceContextExtension;
-import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.WireInvocationHandler;
/**
@@ -13,11 +12,12 @@
*/
public class SystemServiceContextImpl<T> extends ServiceContextExtension<T> implements SystemServiceContext<T> {
- public SystemServiceContextImpl(String name, InboundWire<T> wire, CompositeContext parent) throws CoreRuntimeException {
- super(name, wire, parent);
+ public SystemServiceContextImpl(String name, CompositeContext parent) throws CoreRuntimeException {
+ super(name, parent);
}
public WireInvocationHandler getHandler() {
+ // system services do not proxy
throw new UnsupportedOperationException();
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/system/context/SystemSingletonAtomicContext.java Tue May 30 10:37:42 2006
@@ -72,23 +72,23 @@
throw new UnsupportedOperationException();
}
- public void addServiceWire(InboundWire wire) {
+ public void addInboundWire(InboundWire wire) {
throw new UnsupportedOperationException();
}
- public InboundWire getServiceWire(String serviceName) {
+ public InboundWire getInboundWire(String serviceName) {
throw new UnsupportedOperationException();
}
- public void addReferenceWire(OutboundWire wire) {
+ public void addOutboundWire(OutboundWire wire) {
throw new UnsupportedOperationException();
}
- public void addReferenceWires(Class<?> multiplicityClass, List<OutboundWire> wires) {
+ public void addOutboundWires(Class<?> multiplicityClass, List<OutboundWire> wires) {
throw new UnsupportedOperationException();
}
- public Map<String,List<OutboundWire>> getReferenceWires() {
+ public Map<String,List<OutboundWire>> getOutboundWires() {
throw new UnsupportedOperationException();
}
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=410323&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 Tue May 30 10:37:42 2006
@@ -0,0 +1,94 @@
+package org.apache.tuscany.core.system.wire;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Map;
+
+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;
+
+/**
+ * An inbound wire configured to use the {@link org.apache.tuscany.core.system.model.SystemBinding}. System
+ * wires bind directly to their targets without proxying or interposing invocation chains.
+ *
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemInboundWire<T> implements InboundWire<T> {
+ private String serviceName;
+ private Class<T> businessInterface;
+ private ComponentContext<?> componentContext;
+ private OutboundWire<T> wire;
+
+ /**
+ * Constructs a new inbound wire
+ * @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
+ */
+ public SystemInboundWire(String serviceName, Class<T> businessInterface, ComponentContext<?> target) {
+ this.serviceName = serviceName;
+ this.businessInterface = businessInterface;
+ this.componentContext = target;
+ }
+
+ public SystemInboundWire(String serviceName, Class<T> businessInterface) {
+ this.serviceName = serviceName;
+ this.businessInterface = businessInterface;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName) {
+ throw new UnsupportedOperationException();
+ }
+
+ @SuppressWarnings("unchecked")
+ public T getTargetService() throws TargetException {
+ if (wire != null) {
+ return wire.getTargetService();
+ }
+ return (T) componentContext.getService(serviceName);
+ }
+
+ public Class<T> getBusinessInterface() {
+ return businessInterface;
+ }
+
+ public void setBusinessInterface(Class<T> businessInterface) {
+ this.businessInterface = businessInterface;
+ }
+
+ public Class[] getImplementedInterfaces() {
+ return new Class[0];
+ }
+
+ public Map<Method, InboundInvocationChain> getInvocationChains() {
+ return Collections.emptyMap();
+ }
+
+ public void addInvocationChain(Method method, InboundInvocationChain chain) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInvocationChains(Map chains) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInterface(Class claz) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isOptimizable() {
+ return true; // system wires are always optimizable
+ }
+
+ public void setTargetWire(OutboundWire<T> wire) {
+ this.wire = 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=410323&r1=410322&r2=410323&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 Tue May 30 10:37:42 2006
@@ -10,10 +10,9 @@
import org.apache.tuscany.spi.context.TargetException;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.RuntimeWire;
/**
- * The source side of an wire configured to autowire
+ * An outbound wire that relies on the runtime autowire algorithm to resolve a target instance
*
* @version $$Rev$$ $$Date$$
*/
@@ -59,7 +58,7 @@
return new Class[0];
}
- public void setTargetWire(RuntimeWire<T> wire) {
+ public void setTargetWire(InboundWire<T> wire) {
throw new UnsupportedOperationException();
}
@@ -77,9 +76,6 @@
public void addInterface(Class claz) {
throw new UnsupportedOperationException();
- }
-
- public void setTargetWire(InboundWire<T> wire) {
}
public boolean isOptimizable() {
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=410323&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 Tue May 30 10:37:42 2006
@@ -0,0 +1,91 @@
+package org.apache.tuscany.core.system.wire;
+
+import java.lang.reflect.Method;
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.tuscany.spi.QualifiedName;
+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
+ * wires bind directly to their targets without prxying or interposing invocation chains.
+ *
+ * @version $$Rev$$ $$Date$$
+ */
+public class SystemOutboundWire<T> implements OutboundWire<T> {
+ private String referenceName;
+ private QualifiedName targetName;
+ private Class<T> businessInterface;
+ private InboundWire<T> targetWire;
+
+ public SystemOutboundWire(String referenceName, QualifiedName targetName, Class<T> businessInterface) {
+ this.referenceName = referenceName;
+ this.targetName = targetName;
+ this.businessInterface = businessInterface;
+ }
+
+ 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 T getTargetService() throws TargetException {
+ if (targetWire == null) {
+ throw new TargetException("No target wire connected to source wire");
+ }
+ return targetWire.getTargetService();
+ }
+
+ public Class<T> getBusinessInterface() {
+ return businessInterface;
+ }
+
+ public void setBusinessInterface(Class<T> businessInterface) {
+ this.businessInterface = businessInterface;
+ }
+
+ public Class[] getImplementedInterfaces() {
+ return new Class[0];
+ }
+
+
+ public Map<Method, OutboundInvocationChain> getInvocationChains() {
+ return Collections.emptyMap();
+ }
+
+ public void addInvocationChain(Method method, OutboundInvocationChain chains) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInvocationChains(Map chains) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addInterface(Class claz) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setTargetWire(InboundWire<T> wire) {
+ targetWire = wire;
+ }
+
+ public boolean isOptimizable() {
+ return true;
+ }
+
+}
Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/PojoTargetInvoker.java (from r410163, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/PojoTargetInvoker.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/PojoTargetInvoker.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/PojoTargetInvoker.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/PojoTargetInvoker.java&r1=410163&r2=410323&rev=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/PojoTargetInvoker.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/PojoTargetInvoker.java Tue May 30 10:37:42 2006
@@ -1,4 +1,4 @@
-package org.apache.tuscany.core.wire.jdk;
+package org.apache.tuscany.core.wire;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
Copied: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/StaticPojoTargetInvoker.java (from r410163, incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/StaticPojoTargetInvoker.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/StaticPojoTargetInvoker.java?p2=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/StaticPojoTargetInvoker.java&p1=incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/StaticPojoTargetInvoker.java&r1=410163&r2=410323&rev=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/StaticPojoTargetInvoker.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/StaticPojoTargetInvoker.java Tue May 30 10:37:42 2006
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.tuscany.core.wire.jdk;
+package org.apache.tuscany.core.wire;
import java.lang.reflect.Method;
Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/StaticPojoTargetInvoker.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/StaticPojoTargetInvoker.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundWire.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKInboundWire.java Tue May 30 10:37:42 2006
@@ -6,13 +6,12 @@
import org.apache.tuscany.core.util.MethodHashMap;
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.Interceptor;
import org.apache.tuscany.spi.wire.MessageHandler;
-import org.apache.tuscany.spi.wire.InboundInvocationChain;
+import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.ServiceInvocationHandler;
-import org.apache.tuscany.spi.wire.InboundWire;
-import org.apache.tuscany.spi.wire.RuntimeWire;
-import org.apache.tuscany.spi.QualifiedName;
/**
* Creates proxies that are returned to non-SCA clients using JDK dynamic proxy facilities and front a wire.
@@ -23,10 +22,9 @@
*/
public class JDKInboundWire<T> implements InboundWire<T> {
+ private String serviceName;
private Class[] businessInterfaces;
private Map<Method, InboundInvocationChain> invocationChains = new MethodHashMap<InboundInvocationChain>();
- private String serviceName;
- private QualifiedName targetName;
@SuppressWarnings("unchecked")
public T getTargetService() throws TargetException {
@@ -59,14 +57,6 @@
this.serviceName = serviceName;
}
- public QualifiedName getTargetName() {
- return targetName;
- }
-
- public void setTargetName(QualifiedName targetName) {
- this.targetName = targetName;
- }
-
public Map<Method, InboundInvocationChain> getInvocationChains() {
return invocationChains;
}
@@ -79,7 +69,7 @@
invocationChains.put(method, chain);
}
- public void setTargetWire(RuntimeWire<T> wire) {
+ public void setTargetWire(OutboundWire<T> wire) {
throw new UnsupportedOperationException("not yet implemented"); // FIXME
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundWire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundWire.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundWire.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/jdk/JDKOutboundWire.java Tue May 30 10:37:42 2006
@@ -20,12 +20,12 @@
import org.apache.tuscany.core.util.MethodHashMap;
import org.apache.tuscany.spi.QualifiedName;
import org.apache.tuscany.spi.context.TargetException;
+import org.apache.tuscany.spi.wire.InboundWire;
import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.MessageHandler;
import org.apache.tuscany.spi.wire.OutboundInvocationChain;
import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.ReferenceInvocationHandler;
-import org.apache.tuscany.spi.wire.RuntimeWire;
/**
* Creates proxies that are injected on references using JDK dynamic proxy facilities and front a wire. The
@@ -39,7 +39,7 @@
private Map<Method, OutboundInvocationChain> invocationChains = new MethodHashMap<OutboundInvocationChain>();
private String referenceName;
private QualifiedName targetName;
- private RuntimeWire<T> targetWire;
+ private InboundWire<T> targetWire;
@SuppressWarnings("unchecked")
public T getTargetService() throws TargetException {
@@ -68,8 +68,8 @@
return businessInterfaces;
}
- public void setTargetWire(RuntimeWire<T> wire) {
- this.targetWire = wire;
+ public void setTargetWire(InboundWire<T> wire) {
+ this.targetWire = wire;
}
public Map<Method, OutboundInvocationChain> getInvocationChains() {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java?rev=410323&r1=410322&r2=410323&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/wire/system/WireServiceImpl.java Tue May 30 10:37:42 2006
@@ -4,17 +4,17 @@
import java.util.Set;
import org.apache.tuscany.core.util.JavaIntrospectionHelper;
-import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
import org.apache.tuscany.core.wire.InboundInvocationChainImpl;
-import org.apache.tuscany.spi.model.Reference;
-import org.apache.tuscany.spi.model.Service;
+import org.apache.tuscany.core.wire.OutboundInvocationChainImpl;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.builder.BuilderConfigException;
+import org.apache.tuscany.spi.model.Reference;
+import org.apache.tuscany.spi.model.Service;
import org.apache.tuscany.spi.policy.PolicyBuilderRegistry;
-import org.apache.tuscany.spi.wire.OutboundInvocationChain;
-import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.InboundInvocationChain;
import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.OutboundInvocationChain;
+import org.apache.tuscany.spi.wire.OutboundWire;
import org.apache.tuscany.spi.wire.WireFactoryService;
import org.apache.tuscany.spi.wire.WireService;
import org.osoa.sca.annotations.Init;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org