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/21 09:58:36 UTC

svn commit: r408146 - in /incubator/tuscany/sandbox/jboynes/sca: core2/src/main/java/org/apache/tuscany/core/builder/ core2/src/main/java/org/apache/tuscany/core/system/context/ spi/src/main/java/org/apache/tuscany/spi/context/ spi/src/main/java/org/ap...

Author: jmarino
Date: Sun May 21 00:58:36 2006
New Revision: 408146

URL: http://svn.apache.org/viewvc?rev=408146&view=rev
Log:
make ServiceContextExtension concrete

Modified:
    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/context/SystemServiceContextImpl.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/Context.java
    incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java
    incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java

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=408146&r1=408145&r2=408146&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 Sun May 21 00:58:36 2006
@@ -2,6 +2,7 @@
 
 import java.lang.reflect.Method;
 import java.util.Map;
+import java.util.Collection;
 
 import org.apache.tuscany.core.wire.InvokerInterceptor;
 import org.apache.tuscany.core.wire.MessageChannelImpl;
@@ -132,14 +133,29 @@
             }
         }
 
-        for (SourceInvocationChain chain : source.getInvocationChains()
-                .values()) {
-            TargetInvoker invoker = target.createTargetInvoker(targetWire.getServiceName(), chain.getMethod());
+        if (target instanceof ReferenceContext){
+            attachInvoker(targetWire.getServiceName(),source.getInvocationChains().values(),(ReferenceContext)target);
+        }else{
+            attachInvoker(targetWire.getServiceName(),source.getInvocationChains().values(),(ComponentContext)target);
+        }
+    }
+
+    private void attachInvoker(String serviceName, Collection<SourceInvocationChain> chains, ComponentContext<?> target){
+        for (SourceInvocationChain chain : chains) {
+            TargetInvoker invoker = target.createTargetInvoker(serviceName, chain.getMethod());
             // TODO fix cacheable attrivute
             //invoker.setCacheable(cacheable);
             chain.setTargetInvoker(invoker);
         }
+    }
 
+    private void attachInvoker(String serviceName, Collection<SourceInvocationChain> chains, ReferenceContext<?> target){
+        for (SourceInvocationChain chain : chains) {
+            TargetInvoker invoker = target.createTargetInvoker(serviceName, chain.getMethod());
+            // TODO fix cacheable attrivute
+            //invoker.setCacheable(cacheable);
+            chain.setTargetInvoker(invoker);
+        }
     }
 
     private boolean isOptimizable(Scope pReferrer, Scope pReferee) {

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=408146&r1=408145&r2=408146&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 Sun May 21 00:58:36 2006
@@ -1,13 +1,11 @@
 package org.apache.tuscany.core.system.context;
 
 import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
 
 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.SourceWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
 
 /**
  * @version $$Rev$$ $$Date$$
@@ -15,21 +13,11 @@
 public class SystemServiceContextImpl<T> extends ServiceContextExtension<T> implements SystemServiceContext<T> {
 
     public SystemServiceContextImpl(String name, SourceWire<T> wire, CompositeContext parent) throws CoreRuntimeException {
-        this.name = name;
-        this.parentContext = parent;
-        this.sourceWire = wire;
+        super(name,wire,parent);
     }
 
     public InvocationHandler getHandler() {
         throw new UnsupportedOperationException();
     }
-
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void prepare() {
-        // override and do nothing since system services do not proxy
-    }    
 
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ComponentContext.java Sun May 21 00:58:36 2006
@@ -2,9 +2,11 @@
 
 import java.util.List;
 import java.util.Map;
+import java.lang.reflect.Method;
 
 import org.apache.tuscany.spi.wire.SourceWire;
 import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.TargetInvoker;
 
 /**
  * Provides a runtime context for application artifacts configured as components
@@ -60,5 +62,15 @@
      * Returns a collection of target-side wires keyed by service name
      */
     Map<String, TargetWire> getTargetWires();
+
+    /**
+     * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service
+     * contained by the context
+     *
+     * @param serviceName the name of the service
+     * @param operation the operation to invoke
+     */
+    TargetInvoker createTargetInvoker(String serviceName, Method operation);
+
 
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/Context.java Sun May 21 00:58:36 2006
@@ -55,22 +55,13 @@
     void setParent(CompositeContext parent);
 
     Scope getScope();
-    
+
     /**
      * Returns an instance associated with the default service for the context
      *
      * @throws TargetException if an error occurs retrieving the instance
      */
     T getService() throws TargetException;
-
-    /**
-     * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service
-     * contained by the context
-     * 
-     * @param serviceName the name of the service
-     * @param operation the operation to invoke
-     */
-    TargetInvoker createTargetInvoker(String serviceName, Method operation);
 
     /**
      * Called to signal to the configuration that its parent context has been activated and that it shoud

Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/context/ReferenceContext.java Sun May 21 00:58:36 2006
@@ -1,8 +1,10 @@
 package org.apache.tuscany.spi.context;
 
 import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
 
 import org.apache.tuscany.spi.wire.TargetWire;
+import org.apache.tuscany.spi.wire.TargetInvoker;
 
 /**
  * Manages a reference configured for a binding
@@ -26,4 +28,14 @@
 
     public TargetWire<T> getTargetWire();
 
+    /**
+     * Callback to create a {@link org.apache.tuscany.spi.wire.TargetInvoker} which dispatches to a service
+     * contained by the context
+     *
+     * @param serviceName the name of the service
+     * @param operation the operation to invoke
+     */
+    TargetInvoker createTargetInvoker(String serviceName, Method operation);
+
+    
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java?rev=408146&r1=408145&r2=408146&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/spi/src/main/java/org/apache/tuscany/spi/extension/ServiceContextExtension.java Sun May 21 00:58:36 2006
@@ -1,7 +1,6 @@
 package org.apache.tuscany.spi.extension;
 
 import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
 
 import org.apache.tuscany.common.ObjectFactory;
 import org.apache.tuscany.model.Scope;
@@ -9,9 +8,8 @@
 import org.apache.tuscany.spi.context.AbstractContext;
 import org.apache.tuscany.spi.context.ServiceContext;
 import org.apache.tuscany.spi.context.TargetException;
-import org.apache.tuscany.spi.wire.SourceInvocationChain;
+import org.apache.tuscany.spi.context.CompositeContext;
 import org.apache.tuscany.spi.wire.SourceWire;
-import org.apache.tuscany.spi.wire.TargetInvoker;
 import org.apache.tuscany.spi.wire.WireInvocationHandler;
 
 /**
@@ -19,12 +17,18 @@
  *
  * @version $Rev: 399161 $ $Date: 2006-05-02 23:09:37 -0700 (Tue, 02 May 2006) $
  */
-public abstract class ServiceContextExtension<T> extends AbstractContext<T> implements ServiceContext<T> {
+public class ServiceContextExtension<T> extends AbstractContext<T> implements ServiceContext<T> {
 
     protected SourceWire<T> sourceWire;
     protected ObjectFactory<WireInvocationHandler> handlerFactory;
     private T target;
 
+    public ServiceContextExtension(String name, SourceWire<T> wire, CompositeContext parent) throws CoreRuntimeException {
+        this.name = name;
+        this.parentContext = parent;
+        this.sourceWire = wire;
+    }
+
     /**
      * Creates a new service context
      */
@@ -64,16 +68,6 @@
 
     public Class<T> getInterface() {
         return sourceWire.getBusinessInterface();
-    }
-
-    public void prepare() {
-        for (SourceInvocationChain chain : sourceWire.getInvocationChains().values()) {
-            chain.setTargetInvoker(createTargetInvoker(sourceWire.getReferenceName(), chain.getMethod()));
-        }
-    }
-
-    public TargetInvoker createTargetInvoker(String serviceName, Method operation) {
-        throw new UnsupportedOperationException();
     }
 
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org