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/23 18:18:31 UTC

svn commit: r408955 - in /incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src: main/java/org/apache/tuscany/container/groovy/ test/java/org/apache/tuscany/container/groovy/

Author: jmarino
Date: Tue May 23 09:18:30 2006
New Revision: 408955

URL: http://svn.apache.org/viewvc?rev=408955&view=rev
Log:
support for target wires in Groovy

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/PropertyTestCase.java
    incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/WireTestCase.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=408955&r1=408954&r2=408955&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 23 09:18:30 2006
@@ -31,6 +31,7 @@
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.SourceWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.TargetWire;
 import org.codehaus.groovy.control.CompilationFailedException;
 
 /**
@@ -88,23 +89,31 @@
     }
 
     @SuppressWarnings("unchecked")
-    public GroovyObject getTargetInstance
-            () throws TargetException {
+    public GroovyObject getTargetInstance() throws TargetException {
         return (GroovyObject) scopeContext.getInstance(this);
     }
 
     @SuppressWarnings("unchecked")
     public T getService() throws TargetException {
+        //TODO this should return a default service from a wire
         return (T) getTargetInstance();
     }
 
-    public Object getService(String s) throws TargetException {
-        return getTargetInstance();
+    public Object getService(String service) throws TargetException {
+        TargetWire<?> wire = getTargetWire(service);
+        if (wire == null) {
+            TargetException e =  new TargetException("Service not found"); // TODO better error message
+            e.setIdentifier(service);
+            throw e;
+        }
+        return wire.getTargetService();
     }
 
     public void init(Object instance) throws TargetException {
+        //TODO implement - this should call some kind of init method
     }
 
     public void destroy(Object instance) throws TargetException {
+        //TODO implement - this should call some kind of destroy method
     }
 }

Modified: incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java?rev=408955&r1=408954&r2=408955&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/containers/container.groovy/src/test/java/org/apache/tuscany/container/groovy/PropertyTestCase.java Tue May 23 09:18:30 2006
@@ -3,12 +3,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.tuscany.container.groovy.mock.Greeting;
 import org.apache.tuscany.container.groovy.injectors.SingletonInjector;
+import org.apache.tuscany.container.groovy.mock.Greeting;
 import org.apache.tuscany.core.context.scope.ModuleScopeContext;
 import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.wire.SourceWire;
-import org.jmock.Mock;
 import org.jmock.MockObjectTestCase;
 
 /**
@@ -24,7 +22,6 @@
             "   }" +
             "}";
 
-
     /**
      * Tests a basic invocation down a source wire
      */
@@ -34,7 +31,7 @@
         List<Class<?>> services = new ArrayList<Class<?>>();
         services.add(Greeting.class);
         List<PropertyInjector> injectors = new ArrayList<PropertyInjector>();
-        injectors.add(new SingletonInjector("property","bar"));
+        injectors.add(new SingletonInjector("property", "bar"));
         GroovyAtomicContext<Greeting> context = new GroovyAtomicContext<Greeting>("source", PropertyTestCase.SCRIPT,
                 services, Scope.MODULE, injectors, null);
         context.setScopeContext(scope);

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=408955&r1=408954&r2=408955&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 23 09:18:30 2006
@@ -8,8 +8,11 @@
 import org.apache.tuscany.spi.model.Scope;
 import org.apache.tuscany.spi.wire.SourceWire;
 import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.TargetWire;
 import org.jmock.Mock;
 import org.jmock.MockObjectTestCase;
+import org.jmock.core.Stub;
+import org.jmock.core.Invocation;
 
 /**
  *
@@ -71,6 +74,38 @@
         context.setScopeContext(scope);
         TargetInvoker invoker = context.createTargetInvoker("greeting",Greeting.class.getMethod("greet", String.class));
         assertEquals("foo", invoker.invokeTarget(new String[]{"foo"}));
+        scope.stop();
+    }
+
+
+
+    /**
+     * Tests a basic invocation down a source wire
+     */
+    public void testTargetWireInvocation() throws Exception {
+        ModuleScopeContext scope = new ModuleScopeContext(null);
+        scope.start();
+        List<Class<?>> services = new ArrayList<Class<?>>();
+        services.add(Greeting.class);
+        final GroovyAtomicContext<Greeting> context = new GroovyAtomicContext<Greeting>("source", SCRIPT2, services, Scope.MODULE,null, null);
+        context.setScopeContext(scope);
+        Mock mock = mock(TargetWire.class);
+        mock.stubs().method("getServiceName").will(returnValue("Greeting"));
+        mock.expects(atLeastOnce()).method("getTargetService").will(
+                new Stub() {
+                    public Object invoke(Invocation invocation) throws Throwable {
+                        return context.getTargetInstance();
+                    }
+
+                    public StringBuffer describeTo(StringBuffer buff) {
+                        return buff.append("returns the target instance");
+                    }
+                });
+
+        TargetWire<Greeting> wire = (TargetWire<Greeting>) mock.proxy();
+        context.addTargetWire(wire);
+        Greeting greeting = (Greeting)context.getService("Greeting");
+        assertEquals("foo", greeting.greet("foo"));
         scope.stop();
     }
 



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