You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jb...@apache.org on 2007/03/19 19:50:38 UTC
svn commit: r520043 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/builder/
core/src/main/java/org/apache/tuscany/core/builder/physical/
core/src/main/java/org/apache/tuscany/core/implementation/java/
core/src/main/...
Author: jboynes
Date: Mon Mar 19 11:50:37 2007
New Revision: 520043
URL: http://svn.apache.org/viewvc?view=rev&rev=520043
Log:
pass source and target definitions as well when attaching
have JavaPhysicalComponentBuilder handle target attach of optimized wires
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacher.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacherRegistry.java
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java Mon Mar 19 11:50:37 2007
@@ -54,6 +54,8 @@
import org.apache.tuscany.spi.model.physical.PhysicalInterceptorDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalWireDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.services.work.WorkScheduler;
import org.apache.tuscany.spi.util.UriHelper;
import org.apache.tuscany.spi.wire.Interceptor;
@@ -120,18 +122,20 @@
throw new ComponentNotFoundException("Wire source component not found", baseSourceUri);
}
Wire wire = createWire(definition);
+
+ PhysicalWireSourceDefinition sourceDefinition = definition.getSource();
+ PhysicalWireTargetDefinition targetDefinition = definition.getTarget();
+ Component target;
if (baseTargetUri != null) {
- Component target = componentManager.getComponent(baseTargetUri);
+ target = componentManager.getComponent(baseTargetUri);
if (target == null) {
throw new ComponentNotFoundException("Wire target component not found", baseTargetUri);
}
- attacherRegistry.attachToSource(source, target, wire, definition.getSource());
- attacherRegistry.attachToTarget(source, target, wire, definition.getTarget());
} else {
- // bindings do not have a target
- attacherRegistry.attachToSource(source, null, wire, definition.getSource());
- attacherRegistry.attachToTarget(source, null, wire, definition.getTarget());
+ target = null;
}
+ attacherRegistry.attachToSource(source, sourceDefinition, target, targetDefinition, wire);
+ attacherRegistry.attachToTarget(source, sourceDefinition, target, targetDefinition, wire);
}
public void connect(ComponentDefinition<? extends Implementation<?>> definition) throws WiringException {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryImpl.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryImpl.java Mon Mar 19 11:50:37 2007
@@ -50,23 +50,31 @@
@SuppressWarnings("unchecked")
public <C extends Component, PWSD extends PhysicalWireSourceDefinition>
- void attachToSource(C source, Component target, Wire wire, PWSD definition) throws WiringException {
- Class<?> type = definition.getClass();
+ void attachToSource(C source,
+ PWSD sourceDefinition,
+ Component target,
+ PhysicalWireTargetDefinition targetDefinition,
+ Wire wire) throws WiringException {
+ Class<?> type = sourceDefinition.getClass();
WireAttacher attacher = attachers.get(type);
if (attacher == null) {
throw new WireAttacherNotFound(type, source.getUri(), wire.getTargetUri());
}
- attacher.attachToSource(source, target, wire, definition);
+ attacher.attachToSource(source, sourceDefinition, target, targetDefinition, wire);
}
@SuppressWarnings("unchecked")
public <C extends Component, PWTD extends PhysicalWireTargetDefinition>
- void attachToTarget(Component source, C component, Wire wire, PWTD target) throws WiringException {
- Class<?> type = target.getClass();
+ void attachToTarget(Component source,
+ PhysicalWireSourceDefinition sourceDefinition,
+ C target,
+ PWTD targetDefinition,
+ Wire wire) throws WiringException {
+ Class<?> type = targetDefinition.getClass();
WireAttacher attacher = attachers.get(type);
if (attacher == null) {
- throw new WireAttacherNotFound(type, component.getUri(), target.getUri());
+ throw new WireAttacherNotFound(type, target.getUri(), targetDefinition.getUri());
}
- attacher.attachToTarget(source, component, wire, target);
+ attacher.attachToTarget(source, sourceDefinition, target, targetDefinition, wire);
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaPhysicalComponentBuilder.java Mon Mar 19 11:50:37 2007
@@ -51,6 +51,8 @@
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.physical.InstanceFactoryProviderDefinition;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
import org.apache.tuscany.spi.services.classloading.ClassLoaderRegistry;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.ProxyService;
@@ -101,31 +103,23 @@
return new JavaComponent<T>(componentId, provider, scopeContainer, groupId, initLevel, -1, -1);
}
- /**
- * Attaches the source to the component.
- *
- * @param source the source component to attach to
- * @param target the source component
- * @param wire the wire for the callback
- * @param definition the attach metadata
- */
@SuppressWarnings({"unchecked"})
public void attachToSource(JavaComponent source,
- Component target,
- Wire wire,
- JavaPhysicalWireSourceDefinition definition) {
- URI sourceUri = definition.getUri();
+ JavaPhysicalWireSourceDefinition sourceDefinition, Component target,
+ PhysicalWireTargetDefinition targetDefinition, Wire wire
+ ) {
+ URI sourceUri = sourceDefinition.getUri();
InjectionSource referenceSource = new InjectionSource(REFERENCE, sourceUri.getFragment());
Class<?> type = source.getMemberType(referenceSource);
- if (definition.isOptimizable()) {
+ if (sourceDefinition.isOptimizable()) {
assert target instanceof AtomicComponent;
ObjectFactory<?> factory = ((AtomicComponent<?>)target).createObjectFactory();
source.setObjectFactory(referenceSource, factory);
} else {
- ObjectFactory<?> factory = new WireObjectFactory2(type, definition.isConversational(), wire, proxyService);
+ ObjectFactory<?> factory = new WireObjectFactory2(type, sourceDefinition.isConversational(), wire, proxyService);
source.setObjectFactory(referenceSource, factory);
if (!wire.getCallbackInvocationChains().isEmpty()) {
- URI callbackUri = definition.getCallbackUri();
+ URI callbackUri = sourceDefinition.getCallbackUri();
InjectionSource callbackSource = new InjectionSource(CALLBACK, callbackUri.getFragment());
Class<?> callbackType = source.getMemberType(callbackSource);
ObjectFactory<?> callbackFactory = new CallbackWireObjectFactory2(callbackType, proxyService);
@@ -134,16 +128,15 @@
}
}
- /**
- * Attaches the target to the component.
- *
- * @param source
- * @param component Component.
- * @param wire the wire to attach
- * @param target Target.
- */
- public void attachToTarget(Component source, JavaComponent component, Wire wire, JavaPhysicalWireTargetDefinition target)
+ public void attachToTarget(Component source,
+ PhysicalWireSourceDefinition sourceDefinition, JavaComponent component,
+ JavaPhysicalWireTargetDefinition target, Wire wire
+ )
throws WireAttachException {
+ if (sourceDefinition.isOptimizable()) {
+ return;
+ }
+
ScopeContainer scopeContainer = component.getScopeContainer();
Class<?> implementationClass = component.getImplementationClass();
ClassLoader loader = implementationClass.getClassLoader();
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/system/builder/SystemPhysicalComponentBuilder.java Mon Mar 19 11:50:37 2007
@@ -45,6 +45,8 @@
import org.apache.tuscany.spi.component.ScopeRegistry;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.physical.InstanceFactoryProviderDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
import org.apache.tuscany.spi.services.classloading.ClassLoaderRegistry;
import org.apache.tuscany.spi.wire.Wire;
@@ -83,20 +85,20 @@
}
public void attachToSource(SystemComponent source,
- Component target,
- Wire wire,
- SystemPhysicalWireSourceDefinition definition) throws WiringException {
+ SystemPhysicalWireSourceDefinition sourceDefinition, Component target,
+ PhysicalWireTargetDefinition targetDefinition, Wire wire
+ ) throws WiringException {
assert target instanceof AtomicComponent;
AtomicComponent<?> targetComponent = (AtomicComponent<?>) target;
- URI sourceUri = definition.getUri();
+ URI sourceUri = sourceDefinition.getUri();
InjectionSource referenceSource = new InjectionSource(REFERENCE, sourceUri.getFragment());
ObjectFactory<?> factory = targetComponent.createObjectFactory();
source.setObjectFactory(referenceSource, factory);
}
- public void attachToTarget(Component source, SystemComponent component,
- Wire wire,
- SystemPhysicalWireTargetDefinition definition) throws WiringException {
+ public void attachToTarget(Component source, PhysicalWireSourceDefinition sourceDefinition, SystemComponent component,
+ SystemPhysicalWireTargetDefinition targetDefinition, Wire wire
+ ) throws WiringException {
// nothing to do here as the wire will always be optimized
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryTestCase.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/physical/WireAttacherRegistryTestCase.java Mon Mar 19 11:50:37 2007
@@ -36,26 +36,26 @@
private Component target;
private Wire wire;
private WireAttacher attacher;
+ private PhysicalWireSourceDefinition pwsd;
+ private PhysicalWireTargetDefinition pwtd;
@SuppressWarnings("unchecked")
public void testSourceAttachDispatch() throws Exception {
- PhysicalWireSourceDefinition pwsd = new PhysicalWireSourceDefinition();
- attacher.attachToSource(source, target, wire, pwsd);
+ attacher.attachToSource(source, pwsd, target, pwtd, wire);
EasyMock.replay(attacher);
registry.register(PhysicalWireSourceDefinition.class, attacher);
- registry.attachToSource(source, target, wire, pwsd);
+ registry.attachToSource(source, pwsd, target, pwtd, wire);
EasyMock.verify(attacher);
}
@SuppressWarnings("unchecked")
public void testTargetAttachDispatch() throws Exception {
- PhysicalWireTargetDefinition pwtd = new PhysicalWireTargetDefinition();
- attacher.attachToTarget(source, target, wire, pwtd);
+ attacher.attachToTarget(source, pwsd, target, pwtd, wire);
EasyMock.replay(attacher);
registry.register(PhysicalWireTargetDefinition.class, attacher);
- registry.attachToTarget(source, target, wire, pwtd);
+ registry.attachToTarget(source, pwsd, target, pwtd, wire);
EasyMock.verify(attacher);
}
@@ -69,6 +69,8 @@
EasyMock.replay(wire);
attacher = EasyMock.createMock(WireAttacher.class);
+ pwsd = new PhysicalWireSourceDefinition();
+ pwtd = new PhysicalWireTargetDefinition();
registry = new WireAttacherRegistryImpl();
}
}
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/java/PhysicalBuilderTestCase.java Mon Mar 19 11:50:37 2007
@@ -38,6 +38,7 @@
import org.apache.tuscany.core.model.physical.instancefactory.ReflectiveIFProviderDefinition;
import org.apache.tuscany.core.model.physical.java.JavaPhysicalComponentDefinition;
import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireSourceDefinition;
+import org.apache.tuscany.core.model.physical.java.JavaPhysicalWireTargetDefinition;
import org.apache.tuscany.spi.component.InstanceWrapper;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.ScopeRegistry;
@@ -66,13 +67,12 @@
JavaPhysicalWireSourceDefinition wireSource = new JavaPhysicalWireSourceDefinition();
wireSource.setUri(sourceId.resolve("#target"));
wireSource.setOptimizable(true);
-/*
JavaPhysicalWireTargetDefinition wireTarget = new JavaPhysicalWireTargetDefinition();
- builder.attach(targetComponent, null, wireTarget);
-*/
+
JavaComponent<?> sourceComponent = builder.build(source);
JavaComponent<?> targetComponent = builder.build(target);
- builder.attachToSource(sourceComponent, targetComponent, null, wireSource);
+ builder.attachToSource(sourceComponent, wireSource, targetComponent, wireTarget, null);
+ builder.attachToTarget(sourceComponent, wireSource, targetComponent, wireTarget, null);
sourceComponent.start();
targetComponent.start();
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/integration/implementation/system/builder/PhysicalBuilderTestCase.java Mon Mar 19 11:50:37 2007
@@ -70,8 +70,8 @@
SystemComponent<?> sourceComponent = builder.build(source);
SystemComponent<?> targetComponent = builder.build(target);
- builder.attachToSource(sourceComponent, targetComponent, null, wireSource);
- builder.attachToTarget(sourceComponent, targetComponent, null, wireTarget);
+ builder.attachToSource(sourceComponent, wireSource, targetComponent, wireTarget, null);
+ builder.attachToTarget(sourceComponent, wireSource, targetComponent, wireTarget, null);
sourceComponent.start();
targetComponent.start();
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacher.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacher.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacher.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacher.java Mon Mar 19 11:50:37 2007
@@ -38,23 +38,33 @@
/**
* Attaches a wire to a source component.
*
- * @param source the source component
- * @param target the target component
- * @param wire the wire
- * @param definition metadata for performing the attach.
+ * @param source the source component
+ * @param sourceDefinition metadata for performing the attach
+ * @param target the target component
+ * @param targetDefinition metadata for performing the attach
+ * @param wire the wire
* @throws WiringException if an exception occurs during the attach operation
*/
- void attachToSource(C source, Component target, Wire wire, PWSD definition) throws WiringException;
+ void attachToSource(C source,
+ PWSD sourceDefinition,
+ Component target,
+ PhysicalWireTargetDefinition targetDefinition,
+ Wire wire) throws WiringException;
/**
* Attaches a wire to a target component.
*
- * @param source the source component
- * @param target the target component
- * @param wire the wire
- * @param definition metadata for performing the attach.
+ * @param source the source component
+ * @param sourceDefinition metadata for performing the attach
+ * @param target the target component
+ * @param targetDefinition metadata for performing the attach
+ * @param wire the wire
* @throws WiringException if an exception occurs during the attach operation
*/
- void attachToTarget(Component source, C target, Wire wire, PWTD definition) throws WiringException;
+ void attachToTarget(Component source,
+ PhysicalWireSourceDefinition sourceDefinition,
+ C target,
+ PWTD targetDefinition,
+ Wire wire) throws WiringException;
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacherRegistry.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacherRegistry.java?view=diff&rev=520043&r1=520042&r2=520043
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacherRegistry.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/builder/physical/WireAttacherRegistry.java Mon Mar 19 11:50:37 2007
@@ -38,25 +38,36 @@
/**
* Attaches a wire to a source component.
*
- * @param source the source component
- * @param target the target component
- * @param wire the wire
- * @param definition metadata for performing the attach.
+ * @param source the source component
+ * @param sourceDefinition metadata for performing the attach
+ * @param target the target component
+ * @param targetDefinition metadata for performing the attach
+ * @param wire the wire
* @throws WiringException if an exception occurs during the attach operation
*/
<C extends Component, PWSD extends PhysicalWireSourceDefinition>
- void attachToSource(C source, Component target, Wire wire, PWSD definition) throws WiringException;
+ void attachToSource(C source,
+ PWSD sourceDefinition,
+ Component target,
+ PhysicalWireTargetDefinition targetDefinition,
+ Wire wire)
+ throws WiringException;
/**
* Attaches a wire to a target component.
*
- * @param source the source component
- * @param target the target component
- * @param wire the wire
- * @param definition metadata for performing the attach.
+ * @param source the source component
+ * @param sourceDefinition metadata for performing the attach
+ * @param target the target component
+ * @param targetDefinition metadata for performing the attach
+ * @param wire the wire
* @throws WiringException if an exception occurs during the attach operation
*/
<C extends Component, PWTD extends PhysicalWireTargetDefinition>
- void attachToTarget(Component source, C target, Wire wire, PWTD definition) throws WiringException;
+ void attachToTarget(Component source,
+ PhysicalWireSourceDefinition sourceDefinition,
+ C target,
+ PWTD targetDefinition,
+ Wire wire) throws WiringException;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org