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