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/13 08:31:15 UTC
svn commit: r517573 - in /incubator/tuscany/java/sca/kernel:
core/src/main/java/org/apache/tuscany/core/builder/
core/src/main/java/org/apache/tuscany/core/component/
core/src/main/java/org/apache/tuscany/core/deployer/federation/
core/src/main/java/or...
Author: jmarino
Date: Tue Mar 13 00:31:12 2007
New Revision: 517573
URL: http://svn.apache.org/viewvc?view=rev&rev=517573
Log:
initial work to start transition away from TargetInvokers
Added:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptor.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorBasicTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorSequenceTestCase.java (with props)
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorStatelessDestroyTestCase.java (with props)
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/component/SystemSingletonAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplWireTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/PassByValueWirePostProcessorTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerBasicInvocationTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AbstractComponentExtensionTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/CompositeComponentExtensionTestCase.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=517573&r1=517572&r2=517573
==============================================================================
--- 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 13 00:31:12 2007
@@ -126,7 +126,7 @@
} catch (TargetInvokerCreationException e) {
throw new WireCreationException("Error creating invoker", sourceUri, targetUri, e);
}
- source.attachWire(wire);
+ source.attachWire(wire, definition.getSource());
}
public void connect(ComponentDefinition<? extends Implementation<?>> definition) throws WiringException {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/component/SystemSingletonAtomicComponent.java Tue Mar 13 00:31:12 2007
@@ -33,6 +33,8 @@
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.ServiceContract;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
@@ -112,6 +114,13 @@
throw new UnsupportedOperationException();
}
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
+ throw new UnsupportedOperationException();
+ }
public List<Wire> getWires(String name) {
throw new UnsupportedOperationException();
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/deployer/federation/FederatedDeployer.java Tue Mar 13 00:31:12 2007
@@ -76,7 +76,6 @@
try {
final PhysicalChangeSet changeSet = (PhysicalChangeSet) marshallerRegistry.unmarshall(content);
-
for (PhysicalComponentDefinition pcd : changeSet.getComponentDefinitions()) {
final Component component = builderRegistry.build(pcd);
componentManager.register(component);
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoAtomicComponent.java Tue Mar 13 00:31:12 2007
@@ -39,6 +39,8 @@
import org.apache.tuscany.spi.component.InstanceWrapper;
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.Wire;
import org.apache.tuscany.core.component.ComponentContextImpl;
@@ -225,6 +227,14 @@
callBackwires.put(callbackName, wireList);
}
wireList.add(wire);
+ }
+
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
+ throw new UnsupportedOperationException();
}
public void start() throws CoreRuntimeException {
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/PojoComponent.java Tue Mar 13 00:31:12 2007
@@ -24,25 +24,28 @@
import org.osoa.sca.ComponentContext;
-import org.apache.tuscany.core.component.InstanceFactory;
-import org.apache.tuscany.core.component.InstanceFactoryProvider;
+import org.apache.tuscany.spi.ObjectCreationException;
import org.apache.tuscany.spi.component.AbstractSCAObject;
import org.apache.tuscany.spi.component.AtomicComponent;
-import org.apache.tuscany.spi.component.InstanceWrapper;
-import org.apache.tuscany.spi.component.TargetInvokerCreationException;
import org.apache.tuscany.spi.component.ComponentException;
-import org.apache.tuscany.spi.component.TargetResolutionException;
+import org.apache.tuscany.spi.component.InstanceWrapper;
+import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.RegistrationException;
import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.Service;
-import org.apache.tuscany.spi.component.RegistrationException;
-import org.apache.tuscany.spi.component.Reference;
+import org.apache.tuscany.spi.component.TargetInvokerCreationException;
+import org.apache.tuscany.spi.component.TargetResolutionException;
+import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.PropertyValue;
import org.apache.tuscany.spi.model.Scope;
-import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
-import org.apache.tuscany.spi.ObjectCreationException;
+
+import org.apache.tuscany.core.component.InstanceFactory;
+import org.apache.tuscany.core.component.InstanceFactoryProvider;
/**
* Base class for Component implementations based on Java objects.
@@ -97,6 +100,12 @@
public void attachCallbackWire(Wire wire) {
}
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
+ }
+
public void start() {
super.start();
scopeContainer.register(this);
@@ -189,7 +198,7 @@
}
@Deprecated
- public TargetInvoker createTargetInvoker(String targetName, Operation operation)
+ public TargetInvoker createTargetInvoker(String targetName, Operation operation)
throws TargetInvokerCreationException {
throw new UnsupportedOperationException();
}
Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/composite/CompositeComponentImpl.java Tue Mar 13 00:31:12 2007
@@ -26,6 +26,8 @@
import org.apache.tuscany.spi.event.Event;
import org.apache.tuscany.spi.extension.CompositeComponentExtension;
import org.apache.tuscany.spi.wire.Wire;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.core.component.event.ComponentStop;
@@ -56,6 +58,14 @@
}
public void attachWires(List<Wire> wires) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
throw new UnsupportedOperationException();
}
Added: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptor.java?view=auto&rev=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptor.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptor.java Tue Mar 13 00:31:12 2007
@@ -0,0 +1,150 @@
+/*
+ * 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.core.implementation.java;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.URI;
+import java.util.LinkedList;
+
+import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.ComponentException;
+import org.apache.tuscany.spi.component.InstanceWrapper;
+import org.apache.tuscany.spi.component.InvalidConversationSequenceException;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.TargetException;
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.wire.Interceptor;
+import org.apache.tuscany.spi.wire.Message;
+
+/**
+ * Responsible for dispatching an invocation to a Java component implementation instance.
+ *
+ * @version $Rev$ $Date$
+ */
+public class JavaInvokerInterceptor implements Interceptor {
+ /* indicates that no conversational sequence is associated with the message */
+ public final static short NONE = 0;
+ /* indicates that the message initiates a conversation */
+ public final static short START = 1;
+ /* indicates that the message continues a conversation */
+ public final static short CONTINUE = 2;
+ /* indicates that the message ends a conversation */
+ public final static short END = 3;
+
+ private Method operation;
+ private AtomicComponent component;
+ private WorkContext workContext;
+ private ScopeContainer scopeContainer;
+
+ /**
+ * Creates a new interceptor instance.
+ *
+ * @param operation the method to invoke on the target instance
+ * @param component the target component
+ * @param workContext the work context
+ * @param scopeContainer the ScopeContainer that manages implementation instances for the target component
+ */
+ public JavaInvokerInterceptor(Method operation,
+ AtomicComponent component,
+ ScopeContainer scopeContainer,
+ WorkContext workContext) {
+ this.operation = operation;
+ this.component = component;
+ this.workContext = workContext;
+ this.scopeContainer = scopeContainer;
+ }
+
+ public void setNext(Interceptor next) {
+ throw new IllegalStateException("This interceptor must be the last one in an target interceptor chain");
+ }
+
+ public Interceptor getNext() {
+ return null;
+ }
+
+ public boolean isOptimizable() {
+ return true;
+ }
+
+ public Message invoke(Message msg) {
+ try {
+ Object messageId = msg.getMessageId();
+ if (messageId != null) {
+ workContext.setCorrelationId(messageId);
+ }
+ LinkedList<URI> callbackRoutingChain = msg.getCallbackUris();
+ if (callbackRoutingChain != null) {
+ workContext.setCallbackUris(callbackRoutingChain);
+ }
+ Object resp = invokeTarget(msg.getBody(), msg.getConversationSequence());
+ msg.setBody(resp);
+ } catch (InvocationTargetException e) {
+ msg.setBodyWithFault(e.getCause());
+ }
+ return msg;
+ }
+
+ @SuppressWarnings({"unchecked"})
+ private Object invokeTarget(final Object payload, final short sequence) throws InvocationTargetException {
+ try {
+ InstanceWrapper<?> wrapper = getInstance(sequence);
+ Object instance = wrapper.getInstance();
+ Object ret;
+ if (payload != null && !payload.getClass().isArray()) {
+ ret = operation.invoke(instance, payload);
+ } else {
+ ret = operation.invoke(instance, (Object[]) payload);
+ }
+ scopeContainer.returnWrapper(component, wrapper);
+ if (sequence == END) {
+ // if end conversation, remove resource
+ scopeContainer.remove(component);
+ }
+ return ret;
+ } catch (IllegalAccessException e) {
+ throw new InvocationTargetException(e);
+ } catch (ComponentException e) {
+ throw new InvocationTargetException(e);
+ }
+ }
+
+ /**
+ * Resolves the target service instance or returns a cached one
+ *
+ * @param sequence the conversational sequence
+ * @return the InstanceWrapper
+ * @throws TargetException if an exception getting the wrapper is encountered
+ */
+ private InstanceWrapper<?> getInstance(short sequence) throws TargetException {
+ switch (sequence) {
+ case NONE:
+ return scopeContainer.getWrapper(component);
+ case START:
+ return scopeContainer.getWrapper(component);
+ case CONTINUE:
+ case END:
+ return scopeContainer.getAssociatedWrapper(component);
+ default:
+ throw new InvalidConversationSequenceException("Unknown sequence type", String.valueOf(sequence));
+ }
+ }
+
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptor.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplWireTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplWireTestCase.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplWireTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/builder/ConnectorImplWireTestCase.java Tue Mar 13 00:31:12 2007
@@ -50,13 +50,11 @@
AtomicComponent source = EasyMock.createMock(AtomicComponent.class);
EasyMock.expect(source.getUri()).andReturn(SOURCE_URI).atLeastOnce();
- source.attachWire(EasyMock.isA(Wire.class));
+ source.attachWire(EasyMock.isA(Wire.class), (PhysicalWireSourceDefinition)EasyMock.anyObject());
EasyMock.replay(source);
manager.register(source);
AtomicComponent target = EasyMock.createMock(AtomicComponent.class);
- //EasyMock.expect(target.getScope()).andReturn(Scope.COMPOSITE);
- //EasyMock.expect(target.isOptimizable()).andReturn(false);
EasyMock.expect(target.getUri()).andReturn(TARGET_URI).atLeastOnce();
target.createTargetInvoker((String) EasyMock.isNull(), EasyMock.isA(PhysicalOperationDefinition.class));
EasyMock.expectLastCall().andReturn(null);
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/PassByValueWirePostProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/PassByValueWirePostProcessorTestCase.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/PassByValueWirePostProcessorTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/databinding/impl/PassByValueWirePostProcessorTestCase.java Tue Mar 13 00:31:12 2007
@@ -30,6 +30,8 @@
import org.apache.tuscany.spi.extension.AtomicComponentExtension;
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
@@ -159,6 +161,14 @@
public void attachWires(List<Wire> wires) {
+ }
+
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
+ throw new UnsupportedOperationException();
}
public Object createInstance() throws ObjectCreationException {
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorBasicTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorBasicTestCase.java?view=auto&rev=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorBasicTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorBasicTestCase.java Tue Mar 13 00:31:12 2007
@@ -0,0 +1,171 @@
+/*
+ * 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.core.implementation.java;
+
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.spi.component.InstanceWrapper;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.WorkContext;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.MessageImpl;
+
+import junit.framework.TestCase;
+import org.easymock.classextension.EasyMock;
+
+public class JavaInvokerInterceptorBasicTestCase extends TestCase {
+ private Method echoMethod;
+ private Method arrayMethod;
+ private Method nullParamMethod;
+ private Method primitiveMethod;
+ private Method checkedMethod;
+ private Method runtimeMethod;
+ private WorkContext context;
+ private ScopeContainer scopeContainer;
+ private InstanceWrapper wrapper;
+ private TestBean bean;
+ private JavaAtomicComponent component;
+
+ public JavaInvokerInterceptorBasicTestCase(String arg0) {
+ super(arg0);
+ }
+
+ public void testObjectInvoke() throws Throwable {
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(echoMethod, component, scopeContainer, context);
+ Message message = new MessageImpl();
+ message.setBody("foo");
+ Message ret = invoker.invoke(message);
+ assertEquals("foo", ret.getBody());
+ }
+
+ public void testArrayInvoke() throws Throwable {
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(arrayMethod, component, scopeContainer, context);
+ String[] args = new String[]{"foo", "bar"};
+ Message message = new MessageImpl();
+ message.setBody(new Object[]{args});
+
+ Message ret = invoker.invoke(message);
+ String[] retA = (String[]) ret.getBody();
+ assertNotNull(retA);
+ assertEquals(2, retA.length);
+ assertEquals("foo", retA[0]);
+ assertEquals("bar", retA[1]);
+ }
+
+ public void testNullInvoke() throws Throwable {
+ JavaInvokerInterceptor invoker =
+ new JavaInvokerInterceptor(nullParamMethod, component, scopeContainer, context);
+ Message message = new MessageImpl();
+ Message ret = invoker.invoke(message);
+ String retS = (String) ret.getBody();
+ assertEquals("foo", retS);
+ }
+
+ public void testPrimitiveInvoke() throws Throwable {
+ JavaInvokerInterceptor invoker =
+ new JavaInvokerInterceptor(primitiveMethod, component, scopeContainer, context);
+ Message message = new MessageImpl();
+ message.setBody(new Integer[]{1});
+ Message ret = invoker.invoke(message);
+ Integer retI = (Integer) ret.getBody();
+ assertEquals(1, retI.intValue());
+ }
+
+ public void testInvokeCheckedException() throws Throwable {
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(checkedMethod, component, scopeContainer, context);
+ Message message = new MessageImpl();
+ Message ret = invoker.invoke(message);
+ assertTrue(ret.isFault());
+ }
+
+ public void testInvokeRuntimeException() throws Throwable {
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(runtimeMethod, component, scopeContainer, context);
+ Message message = new MessageImpl();
+ Message ret = invoker.invoke(message);
+ assertTrue(ret.isFault());
+ }
+
+ public void setUp() throws Exception {
+ echoMethod = TestBean.class.getDeclaredMethod("echo", String.class);
+ arrayMethod = TestBean.class.getDeclaredMethod("arrayEcho", String[].class);
+ nullParamMethod = TestBean.class.getDeclaredMethod("nullParam", (Class[]) null);
+ primitiveMethod = TestBean.class.getDeclaredMethod("primitiveEcho", Integer.TYPE);
+ checkedMethod = TestBean.class.getDeclaredMethod("checkedException", (Class[]) null);
+ runtimeMethod = TestBean.class.getDeclaredMethod("runtimeException", (Class[]) null);
+ assertNotNull(echoMethod);
+ assertNotNull(checkedMethod);
+ assertNotNull(runtimeMethod);
+
+ context = EasyMock.createNiceMock(WorkContext.class);
+ component = EasyMock.createMock(JavaAtomicComponent.class);
+ scopeContainer = EasyMock.createNiceMock(ScopeContainer.class);
+ wrapper = EasyMock.createNiceMock(InstanceWrapper.class);
+ bean = new TestBean();
+ EasyMock.replay(component);
+ EasyMock.expect(scopeContainer.getScope()).andReturn(Scope.COMPOSITE);
+ EasyMock.expect(scopeContainer.getWrapper(component)).andReturn(wrapper);
+ EasyMock.replay(scopeContainer);
+ EasyMock.expect(wrapper.getInstance()).andReturn(bean);
+ EasyMock.replay(wrapper);
+ }
+
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ private class TestBean {
+
+ public String echo(String msg) throws Exception {
+ assertEquals("foo", msg);
+ return msg;
+ }
+
+ public String[] arrayEcho(String[] msg) throws Exception {
+ assertNotNull(msg);
+ assertEquals(2, msg.length);
+ assertEquals("foo", msg[0]);
+ assertEquals("bar", msg[1]);
+ return msg;
+ }
+
+ public String nullParam() throws Exception {
+ return "foo";
+ }
+
+ public int primitiveEcho(int i) throws Exception {
+ return i;
+ }
+
+ public void checkedException() throws TestException {
+ throw new TestException();
+ }
+
+ public void runtimeException() throws TestRuntimeException {
+ throw new TestRuntimeException();
+ }
+ }
+
+ public class TestException extends Exception {
+ }
+
+ public class TestRuntimeException extends RuntimeException {
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorBasicTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorBasicTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorSequenceTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorSequenceTestCase.java?view=auto&rev=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorSequenceTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorSequenceTestCase.java Tue Mar 13 00:31:12 2007
@@ -0,0 +1,135 @@
+/*
+ * 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.core.implementation.java;
+
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.InstanceWrapper;
+import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.MessageImpl;
+import org.apache.tuscany.spi.wire.TargetInvoker;
+
+import junit.framework.TestCase;
+import org.easymock.classextension.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JavaInvokerInterceptorSequenceTestCase extends TestCase {
+ private Method method;
+ private Foo foo;
+ private JavaAtomicComponent component;
+ private ScopeContainer scopeContainer;
+ private InstanceWrapper wrapper;
+
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ method = Foo.class.getMethod("invoke");
+ foo = EasyMock.createMock(Foo.class);
+ foo.invoke();
+ EasyMock.replay(foo);
+
+ component = EasyMock.createMock(JavaAtomicComponent.class);
+ scopeContainer = EasyMock.createMock(ScopeContainer.class);
+ wrapper = EasyMock.createMock(InstanceWrapper.class);
+ EasyMock.expect(wrapper.getInstance()).andReturn(foo);
+ EasyMock.replay(wrapper);
+ }
+
+ /**
+ * Verifies an invocation marked as non-conversational has an existing or new instance returned
+ */
+ public void testNoSequence() throws Exception {
+ EasyMock.expect(scopeContainer.getWrapper(component)).andReturn(wrapper);
+ scopeContainer.returnWrapper(component, wrapper);
+ EasyMock.replay(component);
+ EasyMock.replay(scopeContainer);
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(method, component, scopeContainer, null);
+ Message msg = new MessageImpl();
+ msg.setConversationSequence(TargetInvoker.NONE);
+ invoker.invoke(msg);
+ EasyMock.verify(foo);
+ EasyMock.verify(component);
+ EasyMock.verify(wrapper);
+ }
+
+ /**
+ * Verifies that an invocation marked as starting a conversation has a new instance returned
+ */
+ public void testStartSequence() throws Exception {
+ EasyMock.replay(component);
+ EasyMock.expect(scopeContainer.getWrapper(component)).andReturn(wrapper);
+ scopeContainer.returnWrapper(component, wrapper);
+ EasyMock.replay(scopeContainer);
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(method, component, scopeContainer, null);
+ Message msg = new MessageImpl();
+ msg.setConversationSequence(TargetInvoker.START);
+ invoker.invoke(msg);
+ EasyMock.verify(foo);
+ EasyMock.verify(component);
+ EasyMock.verify(scopeContainer);
+ EasyMock.verify(wrapper);
+ }
+
+ /**
+ * Verifies that an invocation marked as continuing a conversation has an associated instance returned
+ */
+ public void testContinueSequence() throws Exception {
+ EasyMock.replay(component);
+ EasyMock.expect(scopeContainer.getAssociatedWrapper(component)).andReturn(wrapper);
+ scopeContainer.returnWrapper(component, wrapper);
+ EasyMock.replay(scopeContainer);
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(method, component, scopeContainer, null);
+ Message msg = new MessageImpl();
+ msg.setConversationSequence(TargetInvoker.CONTINUE);
+ invoker.invoke(msg);
+ EasyMock.verify(foo);
+ EasyMock.verify(component);
+ EasyMock.verify(scopeContainer);
+ EasyMock.verify(wrapper);
+ }
+
+ /**
+ * Verifies that an invocation marked as ending a conversation has an associated instance returned and it is removed
+ * following the dispatch to the instance
+ */
+ public void testEndSequence() throws Exception {
+ EasyMock.replay(component);
+ EasyMock.expect(scopeContainer.getAssociatedWrapper(component)).andReturn(wrapper);
+ scopeContainer.returnWrapper(component, wrapper);
+ scopeContainer.remove(component);
+ EasyMock.replay(scopeContainer);
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(method, component, scopeContainer, null);
+ Message msg = new MessageImpl();
+ msg.setConversationSequence(TargetInvoker.END);
+ invoker.invoke(msg);
+ EasyMock.verify(foo);
+ EasyMock.verify(component);
+ EasyMock.verify(scopeContainer);
+ EasyMock.verify(wrapper);
+ }
+
+
+ private interface Foo {
+ void invoke();
+ }
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorSequenceTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorSequenceTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorStatelessDestroyTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorStatelessDestroyTestCase.java?view=auto&rev=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorStatelessDestroyTestCase.java (added)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorStatelessDestroyTestCase.java Tue Mar 13 00:31:12 2007
@@ -0,0 +1,70 @@
+/*
+ * 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.core.implementation.java;
+
+import java.lang.reflect.Method;
+
+import org.apache.tuscany.spi.component.InstanceWrapper;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.wire.Message;
+import org.apache.tuscany.spi.wire.MessageImpl;
+
+import junit.framework.TestCase;
+import org.easymock.classextension.EasyMock;
+
+public class JavaInvokerInterceptorStatelessDestroyTestCase extends TestCase {
+ private JavaAtomicComponent component;
+ private ScopeContainer scopeContainer;
+ private InstanceWrapper wrapper;
+ private Method echoMethod;
+
+ @SuppressWarnings({"unchecked"})
+ public void testDestroy() throws Exception {
+ EasyMock.expect(scopeContainer.getWrapper(component)).andReturn(wrapper);
+ EasyMock.expect(wrapper.getInstance()).andReturn(new Echo());
+ scopeContainer.returnWrapper(component, wrapper);
+ EasyMock.replay(component);
+ EasyMock.replay(scopeContainer);
+ EasyMock.replay(wrapper);
+ JavaInvokerInterceptor invoker = new JavaInvokerInterceptor(echoMethod, component, scopeContainer, null);
+ Message message = new MessageImpl();
+ message.setBody("foo");
+ Message ret = invoker.invoke(message);
+ assertEquals("foo", ret.getBody());
+ EasyMock.verify(component);
+ EasyMock.verify(scopeContainer);
+ EasyMock.verify(wrapper);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ echoMethod = Echo.class.getDeclaredMethod("echo", String.class);
+ component = EasyMock.createMock(JavaAtomicComponent.class);
+ scopeContainer = EasyMock.createNiceMock(ScopeContainer.class);
+ wrapper = EasyMock.createNiceMock(InstanceWrapper.class);
+ }
+
+ public static class Echo {
+ public String echo(String message) throws Exception {
+ return message;
+ }
+
+ }
+
+}
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorStatelessDestroyTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaInvokerInterceptorStatelessDestroyTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerBasicInvocationTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerBasicInvocationTestCase.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerBasicInvocationTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/implementation/java/JavaTargetInvokerBasicInvocationTestCase.java Tue Mar 13 00:31:12 2007
@@ -21,10 +21,9 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import org.apache.tuscany.spi.component.WorkContext;
-import org.apache.tuscany.spi.component.ScopeContainer;
import org.apache.tuscany.spi.component.InstanceWrapper;
-import org.apache.tuscany.spi.extension.ExecutionMonitor;
+import org.apache.tuscany.spi.component.ScopeContainer;
+import org.apache.tuscany.spi.component.WorkContext;
import org.apache.tuscany.spi.model.Scope;
import static org.apache.tuscany.spi.wire.TargetInvoker.NONE;
import org.apache.tuscany.spi.wire.Wire;
Modified: incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/component/Component.java Tue Mar 13 00:31:12 2007
@@ -25,6 +25,8 @@
import org.apache.tuscany.spi.model.PropertyValue;
import org.apache.tuscany.spi.model.Scope;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.Wire;
/**
@@ -143,5 +145,21 @@
* @param wires the wire to attach
*/
void attachWires(List<Wire> wires);
+
+ /**
+ * Attaches a wire to the component acting as a source
+ *
+ * @param wire the wire to attach
+ * @param defintion metadata for attaching the wire
+ */
+ void attachWire(Wire wire, PhysicalWireSourceDefinition defintion);
+
+ /**
+ * Attaches a wire to the component acting as a target
+ *
+ * @param wire the wire to attach
+ * @param defintion metadata for attaching the wire
+ */
+ void attachWire(Wire wire, PhysicalWireTargetDefinition defintion);
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AbstractComponentExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AbstractComponentExtensionTestCase.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AbstractComponentExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AbstractComponentExtensionTestCase.java Tue Mar 13 00:31:12 2007
@@ -28,6 +28,8 @@
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
@@ -89,6 +91,14 @@
}
public void attachWires(List<Wire> wires) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
throw new UnsupportedOperationException();
}
Modified: incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java?view=diff&rev=517573&r1=517572&r2=517573
==============================================================================
--- incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java (original)
+++ incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/extension/AtomicComponentExtensionTestCase.java Tue Mar 13 00:31:12 2007
@@ -29,6 +29,8 @@
import org.apache.tuscany.spi.model.Operation;
import org.apache.tuscany.spi.model.Scope;
import org.apache.tuscany.spi.model.physical.PhysicalOperationDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.tuscany.spi.wire.Wire;
@@ -92,6 +94,14 @@
}
public void attachCallbackWire(Wire wire) {
+ throw new AssertionFailedError();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ throw new AssertionFailedError();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
throw new AssertionFailedError();
}
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=517573&r1=517572&r2=517573
==============================================================================
--- 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 Tue Mar 13 00:31:12 2007
@@ -23,10 +23,12 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.component.Service;
import org.apache.tuscany.spi.component.ServiceBinding;
-import org.apache.tuscany.spi.component.Component;
import org.apache.tuscany.spi.model.Operation;
+import org.apache.tuscany.spi.model.physical.PhysicalWireSourceDefinition;
+import org.apache.tuscany.spi.model.physical.PhysicalWireTargetDefinition;
import org.apache.tuscany.spi.wire.Wire;
import junit.framework.TestCase;
@@ -74,6 +76,14 @@
}
public void attachCallbackWire(Wire wire) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireSourceDefinition defintion) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void attachWire(Wire wire, PhysicalWireTargetDefinition defintion) {
throw new UnsupportedOperationException();
}
};
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org