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 2007/03/06 23:23:57 UTC
svn commit: r515324 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/builder/
core/src/main/java/org/apache/tuscany/core/wire/
spi/src/main/java/org/apache/tuscany/spi/model/physical/
spi/src/main/java/org/apache/tusc...
Author: jmarino
Date: Tue Mar 6 14:23:55 2007
New Revision: 515324
URL: http://svn.apache.org/viewvc?view=rev&rev=515324
Log:
start to implement ConnectorImpl.connect(PhysicalWireDefinition)
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/wire/InvocationChainImpl.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/Operations.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.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=515324&r1=515323&r2=515324
==============================================================================
--- 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 Tue Mar 6 14:23:55 2007
@@ -26,6 +26,7 @@
import org.osoa.sca.annotations.Constructor;
+import org.apache.tuscany.spi.builder.BuilderException;
import org.apache.tuscany.spi.builder.Connector;
import org.apache.tuscany.spi.builder.WiringException;
import org.apache.tuscany.spi.builder.interceptor.InterceptorBuilderRegistry;
@@ -48,9 +49,12 @@
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.ServiceDefinition;
+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.services.work.WorkScheduler;
import org.apache.tuscany.spi.util.UriHelper;
+import org.apache.tuscany.spi.wire.Interceptor;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.Wire;
import org.apache.tuscany.spi.wire.WirePostProcessorRegistry;
@@ -270,8 +274,29 @@
}
}
- protected Wire createWire(URI sourceURI, URI targetUri, PhysicalWireDefinition definition) {
- throw new UnsupportedOperationException();
+ protected Wire createWire(URI sourceURI, URI targetUri, PhysicalWireDefinition definition) throws BuilderException {
+ Wire wire = new WireImpl();
+ wire.setSourceUri(sourceURI);
+ wire.setTargetUri(targetUri);
+ for (PhysicalOperationDefinition operation : definition.getOperations()) {
+ InvocationChain chain = new InvocationChainImpl();
+ for (PhysicalInterceptorDefinition interceptorDefinition : operation.getInterceptors()) {
+ Interceptor interceptor = interceptorBuilderRegistry.build(interceptorDefinition);
+ chain.addInterceptor(interceptor);
+ }
+ chain.addInterceptor(new InvokerInterceptor());
+ wire.addInvocationChain(operation, chain);
+ }
+ for (PhysicalOperationDefinition operation : definition.getCallbackOperations()) {
+ InvocationChain chain = new InvocationChainImpl();
+ for (PhysicalInterceptorDefinition interceptorDefinition : operation.getInterceptors()) {
+ Interceptor interceptor = interceptorBuilderRegistry.build(interceptorDefinition);
+ chain.addInterceptor(interceptor);
+ }
+ chain.addInterceptor(new InvokerInterceptor());
+ wire.addInvocationChain(operation, chain);
+ }
+ return wire;
}
protected Wire createWire(URI sourceURI, URI targetUri, ServiceContract<?> contract, QName bindingType) {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java?view=diff&rev=515324&r1=515323&r2=515324
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/InvocationChainImpl.java Tue Mar 6 14:23:55 2007
@@ -34,6 +34,9 @@
protected Interceptor interceptorChainHead;
protected Interceptor interceptorChainTail;
+ public InvocationChainImpl() {
+ }
+
public InvocationChainImpl(Operation operation) {
assert operation != null;
this.operation = operation;
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java?view=diff&rev=515324&r1=515323&r2=515324
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/wire/WireImpl.java Tue Mar 6 14:23:55 2007
@@ -28,6 +28,7 @@
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
import org.apache.tuscany.spi.wire.InvocationChain;
import org.apache.tuscany.spi.wire.Wire;
@@ -45,6 +46,10 @@
private boolean optimizable;
private Map<Operation<?>, InvocationChain> chains = new HashMap<Operation<?>, InvocationChain>();
private Map<Operation<?>, InvocationChain> callbackChains = new HashMap<Operation<?>, InvocationChain>();
+ private Map<PhysicalOperationDefinition, InvocationChain> pchains =
+ new HashMap<PhysicalOperationDefinition, InvocationChain>();
+ private Map<PhysicalOperationDefinition, InvocationChain> pcallbackChains =
+ new HashMap<PhysicalOperationDefinition, InvocationChain>();
private AtomicComponent target;
/**
@@ -127,6 +132,10 @@
chains.put(operation, chain);
}
+ public void addInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain) {
+ pchains.put(operation, chain);
+ }
+
public Map<Operation<?>, InvocationChain> getCallbackInvocationChains() {
return Collections.unmodifiableMap(callbackChains);
}
@@ -134,4 +143,9 @@
public void addCallbackInvocationChain(Operation<?> operation, InvocationChain chain) {
callbackChains.put(operation, chain);
}
+
+ public void addCallbackInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain) {
+ pcallbackChains.put(operation, chain);
+ }
+
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/Operations.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/Operations.java?view=diff&rev=515324&r1=515323&r2=515324
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/Operations.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/model/physical/Operations.java Tue Mar 6 14:23:55 2007
@@ -26,17 +26,18 @@
/**
* Aggregates a collection of operations.
- *
- * @version $Revison$ $Date$
*
+ * @version $Revison$ $Date$
*/
public class Operations extends ModelObject {
-
+
// Collection of operations
private Set<PhysicalOperationDefinition> operations = new HashSet<PhysicalOperationDefinition>();
+ private Set<PhysicalOperationDefinition> callbackOperations = new HashSet<PhysicalOperationDefinition>();
/**
* Returns a read-only view of the available operations.
+ *
* @return Collection of operations.
*/
public Set<PhysicalOperationDefinition> getOperations() {
@@ -45,10 +46,30 @@
/**
* Adds an operation definition.
+ *
* @param operation Operation to be added.
*/
public void addOperation(PhysicalOperationDefinition operation) {
operations.add(operation);
+ }
+
+
+ /**
+ * Returns a read-only view of the available callback operations.
+ *
+ * @return Collection of callback operations.
+ */
+ public Set<PhysicalOperationDefinition> getCallbackOperations() {
+ return callbackOperations;
+ }
+
+ /**
+ * Adds an callback operation definition.
+ *
+ * @param operation Operation to be added.
+ */
+ public void addCallbackOperation(PhysicalOperationDefinition operation) {
+ callbackOperations.add(operation);
}
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java?view=diff&rev=515324&r1=515323&r2=515324
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/Wire.java Tue Mar 6 14:23:55 2007
@@ -26,6 +26,7 @@
import org.apache.tuscany.spi.component.TargetResolutionException;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
/**
* The base wire type used to connect references and serviceBindings
@@ -142,6 +143,14 @@
void addInvocationChain(Operation<?> operation, InvocationChain chain);
/**
+ * Adds the invocation chain associated with the given operation
+ *
+ * @param operation the service operation
+ * @param chain the invocation chain
+ */
+ void addInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain);
+
+ /**
* Returns the invocation chains for callback service operations associated with the wire
*
* @return the invocation chains for callback service operations associated with the wire
@@ -155,6 +164,8 @@
* @param chain the invocation chain
*/
void addCallbackInvocationChain(Operation<?> operation, InvocationChain chain);
+
+ void addCallbackInvocationChain(PhysicalOperationDefinition operation, InvocationChain chain);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org