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/01/12 14:49:09 UTC
svn commit: r495573 - in /incubator/tuscany/java/sca/kernel/spi/src:
main/java/org/apache/tuscany/spi/component/
main/java/org/apache/tuscany/spi/extension/
test/java/org/apache/tuscany/spi/extension/
Author: jmarino
Date: Fri Jan 12 05:49:08 2007
New Revision: 495573
URL: http://svn.apache.org/viewvc?view=rev&rev=495573
Log:
fix autowire registration bug for composite services
Added:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java (with props)
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java?view=diff&rev=495573&r1=495572&r2=495573
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/CompositeComponent.java Fri Jan 12 05:49:08 2007
@@ -19,6 +19,7 @@
package org.apache.tuscany.spi.component;
import java.util.List;
+import java.util.Collection;
import org.w3c.dom.Document;
@@ -65,7 +66,15 @@
* @return the system wire or null if not found
*/
InboundWire getInboundSystemWire(String serviceName);
-
+
+ /**
+ * Returns a map of inbound system wires.
+ *
+ * @return a map of inbound system wires.
+ */
+ Collection<InboundWire> getInboundSystemWires();
+
+
/**
* Register a simple Java Object as a system component. This is primarily intended for use by bootstrap code to
* create the initial configuration components.
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java?view=diff&rev=495573&r1=495572&r2=495573
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/extension/CompositeComponentExtension.java Fri Jan 12 05:49:08 2007
@@ -35,7 +35,6 @@
import org.apache.tuscany.spi.component.ComponentRegistrationException;
import org.apache.tuscany.spi.component.CompositeComponent;
import org.apache.tuscany.spi.component.DuplicateNameException;
-import org.apache.tuscany.spi.component.IllegalTargetException;
import org.apache.tuscany.spi.component.InvalidAutowireInterface;
import org.apache.tuscany.spi.component.PrepareException;
import org.apache.tuscany.spi.component.Reference;
@@ -257,20 +256,26 @@
}
}
+ public Collection<InboundWire> getInboundSystemWires() {
+ synchronized (systemServices) {
+ List<InboundWire> map = new ArrayList<InboundWire>();
+ for (Service service : systemServices) {
+ for (ServiceBinding binding : service.getServiceBindings()) {
+ InboundWire wire = binding.getInboundWire();
+ if (Wire.LOCAL_BINDING.equals(wire.getBindingType())) {
+ map.add(wire);
+ }
+ }
+ }
+ return map;
+ }
+ }
+
public InboundWire resolveAutowire(Class<?> instanceInterface) throws TargetResolutionException {
// FIXME JNB make this faster and thread safe
for (Map.Entry<Class, InboundWire> service : autowireInternal.entrySet()) {
if (instanceInterface.isAssignableFrom(service.getKey())) {
- InboundWire wire = service.getValue();
- SCAObject parent = wire.getContainer();
-
- if (parent instanceof AtomicComponent
- || parent instanceof ReferenceBinding
- || parent instanceof ServiceBinding) {
- return wire;
- } else {
- throw new IllegalTargetException("Autowire target must be a system type", parent.getName());
- }
+ return service.getValue();
}
}
if (getParent() != null) {
@@ -406,13 +411,13 @@
}
}
- protected void registerAutowireInternal(Class<?> interfaze, InboundWire wire, boolean isSystem)
+ protected void registerAutowireInternal(Class<?> interfaze, InboundWire wire, boolean system)
throws InvalidAutowireInterface {
if (interfaze == null) {
// The ServiceContract is not from Java
return;
}
- if (isSystem()) {
+ if (system) {
if (systemAutowireInternal.containsKey(interfaze)) {
return;
}
@@ -500,15 +505,21 @@
}
protected void registerAutowire(CompositeComponent component) throws InvalidAutowireInterface {
- Collection<InboundWire> wires = component.getInboundWires();
- for (InboundWire wire : wires) {
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- registerAutowireInternal(clazz, wire, false);
- }
- wires = component.getInboundWires();
- for (InboundWire wire : wires) {
- Class<?> clazz = wire.getServiceContract().getInterfaceClass();
- registerAutowireInternal(clazz, wire, true);
+ if (component.isSystem()) {
+ // the composite is under the system hierarchy so only register its system services
+ Collection<InboundWire> wires = component.getInboundSystemWires();
+ for (InboundWire wire : wires) {
+ Class<?> clazz = wire.getServiceContract().getInterfaceClass();
+ registerAutowireInternal(clazz, wire, true);
+ }
+
+ } else {
+ // the composite is under the application hierarchy so only register its non-system services
+ Collection<InboundWire> wires = component.getInboundWires();
+ for (InboundWire wire : wires) {
+ Class<?> clazz = wire.getServiceContract().getInterfaceClass();
+ registerAutowireInternal(clazz, wire, false);
+ }
}
}
Added: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java?view=auto&rev=495573
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java Fri Jan 12 05:49:08 2007
@@ -0,0 +1,302 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tuscany.spi.extension;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.CompositeComponent;
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.ReferenceBinding;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.Service;
+import org.apache.tuscany.spi.component.ServiceBinding;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.ServiceContract;
+import org.apache.tuscany.spi.wire.InboundWire;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+import org.apache.tuscany.spi.wire.Wire;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class CompositeComponentExtensionAutowireTestCase extends TestCase {
+ private CompositeComponent composite;
+ private ServiceContract<?> contract;
+ private ServiceContract<?> contract2;
+
+ public void testAutowireAtomicComponent() throws Exception {
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ List<InboundWire> wires = new ArrayList<InboundWire>();
+ wires.add(wire);
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ EasyMock.expect(component.getInboundWires()).andReturn(wires).atLeastOnce();
+ EasyMock.expect(component.isSystem()).andReturn(false).atLeastOnce();
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.replay(component);
+ composite.register(component);
+ assertEquals(wire, composite.resolveAutowire(Foo.class));
+ }
+
+ public void testAutowireSystemAtomicComponent() throws Exception {
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ List<InboundWire> wires = new ArrayList<InboundWire>();
+ wires.add(wire);
+ AtomicComponent component = EasyMock.createMock(AtomicComponent.class);
+ EasyMock.expect(component.getInboundWires()).andReturn(wires).atLeastOnce();
+ EasyMock.expect(component.isSystem()).andReturn(true).atLeastOnce();
+ EasyMock.expect(component.getName()).andReturn("foo").atLeastOnce();
+ EasyMock.replay(component);
+ composite.register(component);
+ assertEquals(wire, composite.resolveSystemAutowire(Foo.class));
+ }
+
+ public void testAutowireSystemCompositeComponent() throws Exception {
+ // configure service
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ Service service = EasyMock.createMock(Service.class);
+ EasyMock.expect(service.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
+ service.getServiceBindings();
+ List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+ bindings.add(binding);
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(service);
+
+ // configure system service
+ InboundWire systemWire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(systemWire.getServiceContract()).andReturn(contract2).atLeastOnce();
+ EasyMock.expect(systemWire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(systemWire);
+ ServiceBinding systemBinding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(systemBinding.getInboundWire()).andReturn(systemWire).atLeastOnce();
+ EasyMock.replay(systemBinding);
+ Service systemService = EasyMock.createMock(Service.class);
+ EasyMock.expect(systemService.getName()).andReturn("systemService").atLeastOnce();
+ EasyMock.expect(systemService.isSystem()).andReturn(true).atLeastOnce();
+ systemService.getServiceBindings();
+ List<ServiceBinding> systemBindings = new ArrayList<ServiceBinding>();
+ systemBindings.add(systemBinding);
+ EasyMock.expectLastCall().andReturn(systemBindings).atLeastOnce();
+ EasyMock.replay(systemService);
+
+ CompositeComponent child = new MockComposite(true);
+ child.register(service);
+ child.register(systemService);
+ composite.register(child);
+ // since the child is registered under the system hierarchy, its services should not be visible from the
+ // applicaiton hierarchy
+ assertNull(composite.resolveAutowire(Foo.class));
+ assertEquals(systemWire, composite.resolveSystemAutowire(Bar.class));
+ }
+
+ public void testAutowireCompositeComponent() throws Exception {
+ // configure service
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ Service service = EasyMock.createMock(Service.class);
+ EasyMock.expect(service.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
+ service.getServiceBindings();
+ List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+ bindings.add(binding);
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(service);
+
+ // configure system service
+ InboundWire systemWire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(systemWire.getServiceContract()).andReturn(contract2).atLeastOnce();
+ EasyMock.expect(systemWire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(systemWire);
+ ServiceBinding systemBinding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(systemBinding.getInboundWire()).andReturn(systemWire).atLeastOnce();
+ EasyMock.replay(systemBinding);
+ Service systemService = EasyMock.createMock(Service.class);
+ EasyMock.expect(systemService.getName()).andReturn("systemService").atLeastOnce();
+ EasyMock.expect(systemService.isSystem()).andReturn(true).atLeastOnce();
+ systemService.getServiceBindings();
+ List<ServiceBinding> systemBindings = new ArrayList<ServiceBinding>();
+ systemBindings.add(systemBinding);
+ EasyMock.expectLastCall().andReturn(systemBindings).atLeastOnce();
+ EasyMock.replay(systemService);
+
+ CompositeComponent child = new MockComposite();
+ child.register(service);
+ child.register(systemService);
+ composite.register(child);
+ // since the child is registered under the application hierarchy, its services should not be visible from the
+ // system hierarchy
+ assertEquals(wire, composite.resolveAutowire(Foo.class));
+ assertNull(composite.resolveSystemAutowire(Bar.class));
+ }
+
+ public void testAutowireSystemService() throws Exception {
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ Service service = EasyMock.createMock(Service.class);
+ EasyMock.expect(service.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(service.isSystem()).andReturn(true).atLeastOnce();
+ service.getServiceBindings();
+ List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+ bindings.add(binding);
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(service);
+ composite.register(service);
+ assertEquals(wire, composite.resolveSystemExternalAutowire(Foo.class));
+ }
+
+ public void testAutowireService() throws Exception {
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ Service service = EasyMock.createMock(Service.class);
+ EasyMock.expect(service.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(service.isSystem()).andReturn(false).atLeastOnce();
+ service.getServiceBindings();
+ List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+ bindings.add(binding);
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(service);
+ composite.register(service);
+ assertEquals(wire, composite.resolveExternalAutowire(Foo.class));
+ }
+
+ public void testAutowireReference() throws Exception {
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ Reference reference = EasyMock.createMock(Reference.class);
+ EasyMock.expect(reference.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(reference.isSystem()).andReturn(false).atLeastOnce();
+ reference.getReferenceBindings();
+ List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
+ bindings.add(binding);
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(reference);
+ composite.register(reference);
+ assertEquals(wire, composite.resolveAutowire(Foo.class));
+ }
+
+ public void testAutowireSystemReference() throws Exception {
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getServiceContract()).andReturn(contract).atLeastOnce();
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING).atLeastOnce();
+ EasyMock.replay(wire);
+ ReferenceBinding binding = EasyMock.createMock(ReferenceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+ Reference reference = EasyMock.createMock(Reference.class);
+ EasyMock.expect(reference.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(reference.isSystem()).andReturn(true).atLeastOnce();
+ reference.getReferenceBindings();
+ List<ReferenceBinding> bindings = new ArrayList<ReferenceBinding>();
+ bindings.add(binding);
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(reference);
+ composite.register(reference);
+ assertEquals(wire, composite.resolveSystemAutowire(Foo.class));
+ }
+
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ contract = new ServiceContract<Object>(Foo.class) {
+
+ };
+ contract2 = new ServiceContract<Object>(Bar.class) {
+
+ };
+ composite = new MockComposite();
+ }
+
+ private interface Foo {
+
+ }
+
+ private interface Bar {
+
+ }
+
+ private static class MockComposite extends CompositeComponentExtension {
+ private boolean system;
+
+ public MockComposite() {
+ super("foo", null, null, null);
+ }
+
+ public MockComposite(boolean system) {
+ super("foo", null, null, null);
+ this.system = system;
+ }
+
+ public boolean isSystem() {
+ return system;
+ }
+
+ public TargetInvoker createTargetInvoker(String targetName, Operation operation, InboundWire callbackWire)
+ throws TargetInvokerCreationException {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setScopeContainer(ScopeContainer scopeContainer) {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionAutowireTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java?view=diff&rev=495573&r1=495572&r2=495573
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.java Fri Jan 12 05:49:08 2007
@@ -288,6 +288,30 @@
assertNotNull(composite.getInboundSystemWire("service"));
}
+ public void testInboundSystemWires() throws Exception {
+ ServiceContract<Object> contract = new ServiceContract<Object>(Object.class) {
+ };
+ InboundWire wire = EasyMock.createMock(InboundWire.class);
+ EasyMock.expect(wire.getBindingType()).andReturn(Wire.LOCAL_BINDING);
+ wire.getServiceContract();
+ EasyMock.expectLastCall().andReturn(contract).atLeastOnce();
+ EasyMock.replay(wire);
+ ServiceBinding binding = EasyMock.createMock(ServiceBinding.class);
+ EasyMock.expect(binding.getInboundWire()).andReturn(wire).atLeastOnce();
+ EasyMock.replay(binding);
+
+ Service service = EasyMock.createMock(Service.class);
+ EasyMock.expect(service.getName()).andReturn("service").atLeastOnce();
+ EasyMock.expect(service.isSystem()).andReturn(true).atLeastOnce();
+ List<ServiceBinding> bindings = new ArrayList<ServiceBinding>();
+ bindings.add(binding);
+ service.getServiceBindings();
+ EasyMock.expectLastCall().andReturn(bindings).atLeastOnce();
+ EasyMock.replay(service);
+ composite.register(service);
+ assertEquals(wire, composite.getInboundSystemWires().iterator().next());
+ }
+
protected void setUp() throws Exception {
super.setUp();
contract = new ServiceContract<Object>(Object.class) {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org