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