You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2007/05/12 05:18:07 UTC
svn commit: r537327 - in /incubator/tuscany/java/sca:
modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/
modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/
modules/contribution-impl/src/main/java/org/apache/tuscany/...
Author: jsdelfino
Date: Fri May 11 20:18:05 2007
New Revision: 537327
URL: http://svn.apache.org/viewvc?view=rev&rev=537327
Log:
Moved MessageImpl out of the invocation SPI package as it's not an SPI. Changed ConversationSequence to a clean enum.
Added:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java (with props)
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java (with props)
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java (with props)
Removed:
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageImpl.java
Modified:
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java
incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java
incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java
incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java
incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java
incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java
incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java
incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java
incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java
Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProvider.java Fri May 11 20:18:05 2007
@@ -42,7 +42,7 @@
import org.apache.tuscany.sca.core.RuntimeComponentService;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
@@ -56,6 +56,7 @@
private RuntimeComponentService service;
private RuntimeComponentReference reference;
private RMIBinding binding;
+ private MessageFactory messageFactory;
private RMIHost rmiHost;
// need this member to morph the service interface to extend from Remote if
@@ -70,11 +71,13 @@
public RMIBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
RMIBinding binding,
+ MessageFactory messageFactory,
RMIHost rmiHost) {
this.component = component;
this.service = service;
this.binding = binding;
this.rmiHost = rmiHost;
+ this.messageFactory = messageFactory;
}
public RMIBindingProvider(RuntimeComponent component,
@@ -198,7 +201,8 @@
}
public Object invokeTarget(Operation op, Object[] args) throws InvocationTargetException {
- Message requestMsg = new MessageImpl();
+
+ Message requestMsg = messageFactory.createMessage();
requestMsg.setWorkContext(WorkContextTunnel.getThreadWorkContext());
requestMsg.setBody(args);
Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIBindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -21,6 +21,7 @@
import org.apache.tuscany.sca.core.RuntimeComponent;
import org.apache.tuscany.sca.core.RuntimeComponentReference;
import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.BindingProviderFactory;
import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,9 +36,11 @@
public class RMIBindingProviderFactory implements BindingProviderFactory<RMIBinding> {
private RMIHost rmiHost;
+ private MessageFactory messageFactory;
- public RMIBindingProviderFactory(RMIHost rmiHost) {
+ public RMIBindingProviderFactory(MessageFactory messageFactory, RMIHost rmiHost) {
this.rmiHost = rmiHost;
+ this.messageFactory = messageFactory;
}
public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, RMIBinding binding) {
@@ -45,7 +48,7 @@
}
public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, RMIBinding binding) {
- return new RMIBindingProvider(component, service, binding, rmiHost);
+ return new RMIBindingProvider(component, service, binding, messageFactory, rmiHost);
}
public Class<RMIBinding> getModelType() {
Modified: incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/binding-rmi/src/main/java/org/apache/tuscany/binding/rmi/RMIModuleActivator.java Fri May 11 20:18:05 2007
@@ -30,6 +30,8 @@
import org.apache.tuscany.rmi.RMIHost;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
public class RMIModuleActivator implements ModuleActivator {
@@ -46,7 +48,8 @@
processors.addArtifactProcessor(new RMIBindingProcessor(assemblyFactory, policyFactory, rmiFactory));
ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
- providerFactories.addProviderFactory(new RMIBindingProviderFactory(rmiHost));
+ MessageFactory messageFactory = new MessageFactoryImpl();
+ providerFactories.addProviderFactory(new RMIBindingProviderFactory(messageFactory, rmiHost));
}
public void stop(ExtensionPointRegistry registry) {
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingInvoker.java Fri May 11 20:18:05 2007
@@ -36,6 +36,7 @@
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.wsdl.WSDLConstants;
import org.apache.tuscany.assembly.xml.Constants;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
import org.apache.tuscany.sca.scope.Scope;
@@ -84,7 +85,7 @@
return msg;
}
- protected Object invokeTarget(final Object payload, final short sequence, WorkContext workContext) throws InvocationTargetException {
+ protected Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext) throws InvocationTargetException {
try {
Object[] args = (Object[]) payload;
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -23,6 +23,7 @@
import org.apache.tuscany.sca.core.RuntimeComponent;
import org.apache.tuscany.sca.core.RuntimeComponentReference;
import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.BindingProviderFactory;
import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,18 +36,20 @@
public class Axis2BindingProviderFactory implements BindingProviderFactory<WebServiceBinding> {
+ private MessageFactory messageFactory;
private ServletHost servletHost;
- public Axis2BindingProviderFactory(ServletHost servletHost) {
+ public Axis2BindingProviderFactory(ServletHost servletHost, MessageFactory messageFactory) {
this.servletHost = servletHost;
+ this.messageFactory = messageFactory;
}
public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, WebServiceBinding binding) {
- return new Axis2ReferenceBindingProvider(component, reference, binding);
+ return new Axis2ReferenceBindingProvider(component, reference, binding, messageFactory);
}
public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, WebServiceBinding binding) {
- return new Axis2ServiceBindingProvider(component, service, binding, servletHost);
+ return new Axis2ServiceBindingProvider(component, service, binding, servletHost, messageFactory);
}
public Class<WebServiceBinding> getModelType() {
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2CallbackInvocationHandler.java Fri May 11 20:18:05 2007
@@ -24,12 +24,14 @@
import org.apache.tuscany.interfacedef.Operation;
import org.apache.tuscany.sca.core.RuntimeWire;
import org.apache.tuscany.sca.invocation.AbstractInvocationHandler;
+import org.apache.tuscany.sca.invocation.MessageFactory;
public class Axis2CallbackInvocationHandler extends AbstractInvocationHandler {
private RuntimeWire wire;
- public Axis2CallbackInvocationHandler(RuntimeWire wire) {
+ public Axis2CallbackInvocationHandler(MessageFactory messageFactory, RuntimeWire wire) {
+ super(messageFactory, false);
this.wire = wire;
}
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ModuleActivator.java Fri May 11 20:18:05 2007
@@ -36,6 +36,8 @@
import org.apache.tuscany.policy.PolicyFactory;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
public class Axis2ModuleActivator implements ModuleActivator {
@@ -46,6 +48,7 @@
PolicyFactory policyFactory = new DefaultPolicyFactory();
WebServiceBindingFactory wsFactory = new DefaultWebServiceBindingFactory();
WSDLFactory wsdlFactory = new DefaultWSDLFactory();
+ MessageFactory messageFactory = new MessageFactoryImpl();
StAXArtifactProcessorExtensionPoint processors = registry.getExtensionPoint(StAXArtifactProcessorExtensionPoint.class);
WSDLInterfaceIntrospector introspector = new DefaultWSDLInterfaceIntrospector(wsdlFactory);
@@ -55,7 +58,7 @@
ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
ServletHost servletHost = registry.getExtensionPoint(ServletHost.class);
- Axis2BindingProviderFactory providerFactory = new Axis2BindingProviderFactory(servletHost);
+ Axis2BindingProviderFactory providerFactory = new Axis2BindingProviderFactory(servletHost, messageFactory);
providerFactories.addProviderFactory(providerFactory);
}
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceBindingProvider.java Fri May 11 20:18:05 2007
@@ -45,10 +45,12 @@
import org.apache.tuscany.sca.core.RuntimeComponentReference;
import org.apache.tuscany.sca.core.RuntimeWire;
import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
public class Axis2ReferenceBindingProvider implements ReferenceBindingProvider {
+ private MessageFactory messageFactory;
private RuntimeComponent component;
private RuntimeComponentReference reference;
private WebServiceBinding wsBinding;
@@ -57,15 +59,13 @@
public Axis2ReferenceBindingProvider(RuntimeComponent component,
RuntimeComponentReference reference,
- WebServiceBinding wsBinding) {
-
- // TODO: before the SPI changes, a composite reference was passed to the
- // builder.
- // Is the change to a component reference OK?
+ WebServiceBinding wsBinding,
+ MessageFactory messageFactory) {
this.component = component;
this.reference = reference;
this.wsBinding = wsBinding;
+ this.messageFactory = messageFactory;
try {
TuscanyAxisConfigurator tuscanyAxisConfigurator = new TuscanyAxisConfigurator();
@@ -168,7 +168,7 @@
RuntimeWire wire = reference.getRuntimeWire(wsBinding);
Operation callbackOperation = findCallbackOperation(wire);
- Axis2CallbackInvocationHandler invocationHandler = new Axis2CallbackInvocationHandler(wire);
+ Axis2CallbackInvocationHandler invocationHandler = new Axis2CallbackInvocationHandler(messageFactory, wire);
Axis2ReferenceCallbackTargetInvoker callbackInvoker = new Axis2ReferenceCallbackTargetInvoker(
callbackOperation,
wire,
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallback.java Fri May 11 20:18:05 2007
@@ -38,7 +38,7 @@
MessageContext responseMC = result.getResponseMessageContext();
OMElement responseOM = responseMC.getEnvelope().getBody().getFirstElement();
try {
- targetInvoker.invokeTarget(new Object[] {responseOM}, ConversationSequence.NONE, null);
+ targetInvoker.invokeTarget(new Object[] {responseOM}, null, null);
} catch (InvocationTargetException e) {
// FIXME what is the appropriate exception here?
throw new RuntimeException(e);
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ReferenceCallbackTargetInvoker.java Fri May 11 20:18:05 2007
@@ -48,7 +48,7 @@
this.invocationHandler = invocationHandler;
}
- public Object invokeTarget(final Object payload, final short sequence, WorkContext workContext) throws InvocationTargetException {
+ public Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext) throws InvocationTargetException {
Object[] args;
if (payload != null && !payload.getClass().isArray()) {
args = new Object[]{payload};
@@ -70,7 +70,7 @@
public Message invoke(Message msg) {
try {
- Object resp = invokeTarget(msg.getBody(), ConversationSequence.NONE, null);
+ Object resp = invokeTarget(msg.getBody(), null, null);
msg.setBody(resp);
} catch (InvocationTargetException e) {
msg.setFaultBody(e.getCause());
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2ServiceBindingProvider.java Fri May 11 20:18:05 2007
@@ -54,7 +54,7 @@
import org.apache.tuscany.sca.core.RuntimeComponentService;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
import org.apache.tuscany.sca.scope.Scope;
import org.apache.tuscany.sca.spi.component.WorkContext;
@@ -67,6 +67,7 @@
private WebServiceBinding wsBinding;
private ServletHost servletHost;
private ConfigurationContext configContext;
+ private MessageFactory messageFactory;
// TODO: what to do about the base URI?
private static final String BASE_URI = "http://localhost:8080/";
@@ -74,12 +75,14 @@
public Axis2ServiceBindingProvider(RuntimeComponent component,
RuntimeComponentService service,
WebServiceBinding wsBinding,
- ServletHost servletHost) {
+ ServletHost servletHost,
+ MessageFactory messageFactory) {
this.component = component;
this.service = service;
this.wsBinding = wsBinding;
this.servletHost = servletHost;
+ this.messageFactory = messageFactory;
try {
TuscanyAxisConfigurator tuscanyAxisConfigurator = new TuscanyAxisConfigurator();
@@ -365,7 +368,7 @@
public Object invokeTarget(Operation op, Object[] args, Object messageId, String conversationID)
throws InvocationTargetException {
- Message requestMsg = new MessageImpl();
+ Message requestMsg = messageFactory.createMessage();
if (messageId != null) {
requestMsg.setMessageID(messageId);
Modified: incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/contribution-impl/src/main/java/org/apache/tuscany/contribution/service/impl/ContributionServiceImpl.java Fri May 11 20:18:05 2007
@@ -25,9 +25,9 @@
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
@@ -79,9 +79,9 @@
private ContributionMetadataLoaderImpl contributionLoader;
/**
- * Contribution registry This is a registry of processed Contributios index by URI
+ * Contribution registry This is a registry of processed Contributions indexed by URI
*/
- private Map<String, Contribution> contributionRegistry = new HashMap<String, Contribution>();
+ private Map<String, Contribution> contributionRegistry = new ConcurrentHashMap<String, Contribution>();
/**
* Contribution model facotry
@@ -174,7 +174,6 @@
}
public void remove(String contribution) throws ContributionException {
- // remove from repository
this.contributionRegistry.remove(contribution);
}
@@ -186,14 +185,6 @@
contribution.getArtifacts().add(artifact);
contribution.getDeployables().add(composite);
- }
-
- public <M> M resolve(Class modelClass,
- Class<M> elementClass,
- Object modelKey,
- Object elementKey,
- Map<String, Object> attributes) {
- return null;
}
/**
Modified: incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java (original)
+++ incubator/tuscany/java/sca/modules/contribution/src/main/java/org/apache/tuscany/contribution/service/ContributionService.java Fri May 11 20:18:05 2007
@@ -21,7 +21,6 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import java.util.Map;
import org.apache.tuscany.assembly.Composite;
import org.apache.tuscany.contribution.Contribution;
@@ -99,16 +98,4 @@
*/
void remove(String contribution) throws ContributionException;
- /**
- * Resolve an artifact by QName within the contribution
- *
- * @param <T> The java type of the artifact such as javax.wsdl.Definition
- * @param contribution The URI of the contribution
- * @param definitionType The java type of the artifact
- * @param namespace The namespace of the artifact
- * @param name The name of the artifact
- * @return The resolved artifact
- */
- <M> M resolve(Class modelClass, Class<M> elementClass, Object modelKey, Object elementKey, Map<String, Object> attributes);
-
}
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/AbstractInvocationHandler.java Fri May 11 20:18:05 2007
@@ -34,12 +34,11 @@
public abstract class AbstractInvocationHandler {
protected boolean conversational;
private boolean conversationStarted;
+ private MessageFactory messageFactory;
- protected AbstractInvocationHandler(boolean conversational) {
+ protected AbstractInvocationHandler(MessageFactory messageFactory, boolean conversational) {
this.conversational = conversational;
- }
-
- public AbstractInvocationHandler() {
+ this.messageFactory = messageFactory;
}
protected Object invoke(InvocationChain chain,
@@ -48,7 +47,7 @@
LinkedList<URI> callbackUris, WorkContext workContext)
throws Throwable {
Invoker headInvoker = chain.getHeadInvoker();
- Message msg = new MessageImpl();
+ Message msg = messageFactory.createMessage();
msg.setWorkContext(workContext);
msg.setCorrelationID(workContext.getCorrelationId());
Operation operation = chain.getTargetOperation();
@@ -56,14 +55,14 @@
if (contract != null && contract.isConversational()) {
Operation.ConversationSequence sequence = chain.getTargetOperation().getConversationSequence();
if (sequence == Operation.ConversationSequence.CONVERSATION_END) {
- msg.setConversationSequence(ConversationSequence.END);
+ msg.setConversationSequence(ConversationSequence.CONVERSATION_END);
conversationStarted = false;
} else if (sequence == Operation.ConversationSequence.CONVERSATION_CONTINUE) {
if (conversationStarted) {
- msg.setConversationSequence(ConversationSequence.CONTINUE);
+ msg.setConversationSequence(ConversationSequence.CONVERSATION_CONTINUE);
} else {
conversationStarted = true;
- msg.setConversationSequence(ConversationSequence.START);
+ msg.setConversationSequence(ConversationSequence.CONVERSATION_START);
}
}
}
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/ConversationSequence.java Fri May 11 20:18:05 2007
@@ -19,14 +19,6 @@
package org.apache.tuscany.sca.invocation;
-//FIXME remove this
-public interface ConversationSequence {
- /* indicates that no conversational sequence is associated with the message */
- short NONE = 0;
- /* indicates that the message initiates a conversation */
- short START = 1;
- /* indicates that the message continues a conversation */
- short CONTINUE = 2;
- /* indicates that the message ends a conversation */
- short END = 3;
+public enum ConversationSequence {
+ CONVERSATION_START, CONVERSATION_CONTINUE, CONVERSATION_END
}
Modified: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java (original)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/Message.java Fri May 11 20:18:05 2007
@@ -114,14 +114,13 @@
*
* @return the conversational sequence the message is associated with
*/
- short getConversationSequence();
+ ConversationSequence getConversationSequence();
/**
- * Returns the conversational sequence the message is associated with, NONE, START, CONTINUE, or END on {@link
- * TargetInvoker}
+ * Returns the conversational sequence the message is associated with, NONE, START, CONTINUE, or END
*
* @param sequence the conversational sequence
*/
- void setConversationSequence(short sequence);
+ void setConversationSequence(ConversationSequence sequence);
}
Added: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java?view=auto&rev=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java (added)
+++ incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java Fri May 11 20:18:05 2007
@@ -0,0 +1,36 @@
+/*
+ * 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.sca.invocation;
+
+
+/**
+ * A factory for messages
+ *
+ * @version $Rev $Date
+ */
+public interface MessageFactory {
+
+ /**
+ * Creates a new message.
+ *
+ * @return
+ */
+ Message createMessage();
+
+}
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/MessageFactory.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKCallbackInvocationHandler.java Fri May 11 20:18:05 2007
@@ -34,6 +34,7 @@
import org.apache.tuscany.sca.core.RuntimeWire;
import org.apache.tuscany.sca.invocation.AbstractInvocationHandler;
import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.spi.component.WorkContext;
import org.osoa.sca.NoRegisteredCallbackException;
@@ -52,12 +53,14 @@
/**
* Constructor used for deserialization only
*/
- public JDKCallbackInvocationHandler() {
+ public JDKCallbackInvocationHandler(MessageFactory messageFactory) {
+ super(messageFactory, false);
sourceWireNames = new ArrayList<String>();
wires = new HashMap<URI, RuntimeWire>();
}
- public JDKCallbackInvocationHandler(List<RuntimeWire> wireList, WorkContext context) {
+ public JDKCallbackInvocationHandler(MessageFactory messageFactory, List<RuntimeWire> wireList, WorkContext context) {
+ super(messageFactory, false);
this.context = context;
this.wires = new HashMap<URI, RuntimeWire>();
for (RuntimeWire wire : wireList) {
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKInvocationHandler.java Fri May 11 20:18:05 2007
@@ -33,6 +33,7 @@
import org.apache.tuscany.sca.core.RuntimeWire;
import org.apache.tuscany.sca.invocation.AbstractInvocationHandler;
import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.scope.Scope;
import org.apache.tuscany.sca.spi.component.WorkContext;
import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
@@ -53,8 +54,8 @@
// if the associated wire is conversational
private transient boolean conversational;
- public JDKInvocationHandler(Class<?> proxyInterface, RuntimeWire wire, WorkContext workContext) {
- super();
+ public JDKInvocationHandler(MessageFactory messageFactory, Class<?> proxyInterface, RuntimeWire wire, WorkContext workContext) {
+ super(messageFactory, false);
this.proxyInterface = proxyInterface;
this.wire = wire;
this.workContext = workContext;
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/JDKProxyService.java Fri May 11 20:18:05 2007
@@ -23,6 +23,7 @@
import org.apache.tuscany.interfacedef.InterfaceContractMapper;
import org.apache.tuscany.sca.core.RuntimeWire;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.invocation.ProxyCreationException;
import org.apache.tuscany.sca.invocation.ProxyFactory;
import org.apache.tuscany.sca.spi.component.WorkContext;
@@ -37,27 +38,25 @@
public class JDKProxyService implements ProxyFactory {
protected WorkContext context;
protected InterfaceContractMapper contractMapper;
+ private MessageFactory messageFactory;
- public JDKProxyService() {
- this(null, null);
- }
-
- public JDKProxyService(WorkContext context, InterfaceContractMapper mapper) {
+ public JDKProxyService(MessageFactory messageFactory, WorkContext context, InterfaceContractMapper mapper) {
this.context = context;
this.contractMapper = mapper;
+ this.messageFactory = messageFactory;
}
public <T> T createProxy(Class<T> interfaze, RuntimeWire wire) throws ProxyCreationException {
assert interfaze != null;
assert wire != null;
- JDKInvocationHandler handler = new JDKInvocationHandler(interfaze, wire, context);
+ JDKInvocationHandler handler = new JDKInvocationHandler(messageFactory, interfaze, wire, context);
ClassLoader cl = interfaze.getClassLoader();
return interfaze.cast(Proxy.newProxyInstance(cl, new Class[] {interfaze}, handler));
}
public Object createCallbackProxy(Class<?> interfaze, List<RuntimeWire> wires) throws ProxyCreationException {
ClassLoader cl = interfaze.getClassLoader();
- JDKCallbackInvocationHandler handler = new JDKCallbackInvocationHandler(wires, context);
+ JDKCallbackInvocationHandler handler = new JDKCallbackInvocationHandler(messageFactory, wires, context);
return interfaze.cast(Proxy.newProxyInstance(cl, new Class[] {interfaze}, handler));
}
Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java?view=auto&rev=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java Fri May 11 20:18:05 2007
@@ -0,0 +1,36 @@
+/*
+ * 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.sca.core.invocation;
+
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.invocation.MessageFactory;
+
+/**
+ * Implementation of MessageFactory.
+ *
+ * @version $Rev$ $Date$
+ */
+public class MessageFactoryImpl implements MessageFactory {
+
+ public Message createMessage() {
+ return new MessageImpl();
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageFactoryImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java?view=auto&rev=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java (added)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java Fri May 11 20:18:05 2007
@@ -0,0 +1,111 @@
+/*
+ * 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.sca.core.invocation;
+
+import java.util.LinkedList;
+
+import org.apache.tuscany.sca.core.RuntimeWire;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.spi.component.WorkContext;
+
+/**
+ * The default implementation of a message flowed through a wire during an invocation
+ *
+ * @version $Rev $Date
+ */
+public class MessageImpl implements Message {
+ private Object body;
+ private LinkedList<RuntimeWire> callbackWires;
+ private Object messageID;
+ private Object correlationID;
+ private boolean isFault;
+ private ConversationSequence conversationSequence;
+ private WorkContext workContext;
+
+ protected MessageImpl() {
+ }
+
+ @SuppressWarnings("unchecked")
+ public Object getBody() {
+ return body;
+ }
+
+ public void setBody(Object body) {
+ this.isFault = false;
+ this.body = body;
+ }
+
+ public WorkContext getWorkContext() {
+ return workContext;
+ }
+
+ public void setWorkContext(WorkContext workContext) {
+ this.workContext = workContext;
+ }
+
+ public ConversationSequence getConversationSequence() {
+ return conversationSequence;
+ }
+
+ public void setConversationSequence(ConversationSequence conversationSequence) {
+ this.conversationSequence = conversationSequence;
+ }
+
+ public void pushCallbackWire(RuntimeWire wire) {
+ if (callbackWires == null) {
+ callbackWires = new LinkedList<RuntimeWire>();
+ }
+ callbackWires.add(wire);
+ }
+
+ public LinkedList<RuntimeWire> getCallbackWires() {
+ return callbackWires;
+ }
+
+ public void setCallbackWires(LinkedList<RuntimeWire> wires) {
+ this.callbackWires = wires;
+ }
+
+ public Object getMessageID() {
+ return messageID;
+ }
+
+ public void setMessageID(Object messageId) {
+ this.messageID = messageId;
+ }
+
+ public Object getCorrelationID() {
+ return correlationID;
+ }
+
+ public void setCorrelationID(Object correlationId) {
+ this.correlationID = correlationId;
+ }
+
+ public boolean isFault() {
+ return isFault;
+ }
+
+ public void setFaultBody(Object fault) {
+ this.isFault = true;
+ this.body = fault;
+ }
+
+}
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/MessageImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/NonBlockingInterceptor.java Fri May 11 20:18:05 2007
@@ -143,12 +143,12 @@
throw new UnsupportedOperationException();
}
- public short getConversationSequence() {
- return ConversationSequence.NONE;
+ public void setConversationSequence(ConversationSequence sequence) {
+ throw new UnsupportedOperationException();
}
-
- public void setConversationSequence(short sequence) {
-
+
+ public ConversationSequence getConversationSequence() {
+ return null;
}
}
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/CallbackInterfaceInterceptorTestCase.java Fri May 11 20:18:05 2007
@@ -18,15 +18,14 @@
*/
package org.apache.tuscany.sca.core.wire;
-import org.osoa.sca.NoRegisteredCallbackException;
+import junit.framework.TestCase;
import org.apache.tuscany.sca.core.invocation.CallbackInterfaceInterceptor;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
import org.apache.tuscany.sca.invocation.Interceptor;
import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
-
-import junit.framework.TestCase;
import org.easymock.EasyMock;
+import org.osoa.sca.NoRegisteredCallbackException;
/**
* @version $Rev$ $Date$
@@ -39,14 +38,14 @@
EasyMock.expect(next.invoke(EasyMock.isA(Message.class))).andReturn(null);
EasyMock.replay(next);
interceptor.setNext(next);
- interceptor.invoke(new MessageImpl());
+ interceptor.invoke(new MessageFactoryImpl().createMessage());
EasyMock.verify(next);
}
public void testDoesNotImplement() {
CallbackInterfaceInterceptor interceptor = new CallbackInterfaceInterceptor(false);
try {
- interceptor.invoke(new MessageImpl());
+ interceptor.invoke(new MessageFactoryImpl().createMessage());
fail();
} catch (NoRegisteredCallbackException e) {
// expected
Modified: incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/wire/NonBlockingInterceptorTestCase.java Fri May 11 20:18:05 2007
@@ -26,10 +26,10 @@
import static org.easymock.EasyMock.verify;
import junit.framework.TestCase;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
import org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor;
import org.apache.tuscany.sca.invocation.Interceptor;
import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
import org.apache.tuscany.sca.scope.Scope;
import org.apache.tuscany.sca.spi.component.WorkContext;
import org.apache.tuscany.sca.work.WorkScheduler;
@@ -58,7 +58,7 @@
context.setCorrelationId(null);
context.setIdentifier(Scope.CONVERSATION, convID);
EasyMock.replay(context);
- Message msg = new MessageImpl();
+ Message msg = new MessageFactoryImpl().createMessage();
Interceptor next = EasyMock.createMock(Interceptor.class);
EasyMock.expect(next.invoke(EasyMock.eq(msg))).andReturn(msg);
EasyMock.replay(next);
Modified: incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java (original)
+++ incubator/tuscany/java/sca/modules/host-embedded/src/main/java/org/apache/tuscany/host/embedded/impl/ReallySmallRuntimeBuilder.java Fri May 11 20:18:05 2007
@@ -67,6 +67,7 @@
import org.apache.tuscany.sca.core.invocation.DefaultWireProcessorExtensionPoint;
import org.apache.tuscany.sca.core.invocation.ExtensibleWireProcessor;
import org.apache.tuscany.sca.core.invocation.JDKProxyService;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
import org.apache.tuscany.sca.core.runtime.ActivationException;
import org.apache.tuscany.sca.core.runtime.CompositeActivator;
import org.apache.tuscany.sca.core.runtime.DefaultCompositeActivator;
@@ -77,6 +78,7 @@
import org.apache.tuscany.sca.core.scope.StatelessScopeContainerFactory;
import org.apache.tuscany.sca.core.util.IOHelper;
import org.apache.tuscany.sca.core.work.Jsr237WorkScheduler;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.invocation.ProxyFactory;
import org.apache.tuscany.sca.provider.DefaultProviderFactoryExtensionPoint;
import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
@@ -105,7 +107,8 @@
InterfaceContractMapper mapper) {
// Create a proxy factory
- ProxyFactory proxyFactory = new JDKProxyService(workContext, mapper);
+ MessageFactory messageFactory = new MessageFactoryImpl();
+ ProxyFactory proxyFactory = new JDKProxyService(messageFactory, workContext, mapper);
// FIXME remove this
registry.addExtensionPoint(ProxyFactory.class, proxyFactory);
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/JavaTargetInvoker.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
import java.lang.reflect.Method;
import org.apache.tuscany.sca.core.RuntimeComponent;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
import org.apache.tuscany.sca.scope.InstanceWrapper;
import org.apache.tuscany.sca.scope.Scope;
import org.apache.tuscany.sca.scope.ScopeContainer;
@@ -65,30 +66,33 @@
/**
* Resolves the target service instance or returns a cached one
*/
- protected InstanceWrapper getInstance(short sequence, Object contextId) throws TargetException {
- switch (sequence) {
- case NONE:
- if (cacheable) {
- if (target == null) {
- target = scopeContainer.getWrapper(contextId);
- }
- return target;
- } else {
- return scopeContainer.getWrapper(contextId);
+ protected InstanceWrapper getInstance(ConversationSequence sequence, Object contextId) throws TargetException {
+ if (sequence == null) {
+ if (cacheable) {
+ if (target == null) {
+ target = scopeContainer.getWrapper(contextId);
}
- case START:
- assert !cacheable;
+ return target;
+ } else {
return scopeContainer.getWrapper(contextId);
- case CONTINUE:
- case END:
- assert !cacheable;
- return scopeContainer.getAssociatedWrapper(contextId);
- default:
- throw new InvalidConversationSequenceException("Unknown sequence type: " + String.valueOf(sequence));
+ }
+ }
+ else {
+ switch (sequence) {
+ case CONVERSATION_START:
+ assert !cacheable;
+ return scopeContainer.getWrapper(contextId);
+ case CONVERSATION_CONTINUE:
+ case CONVERSATION_END:
+ assert !cacheable;
+ return scopeContainer.getAssociatedWrapper(contextId);
+ default:
+ throw new InvalidConversationSequenceException("Unknown sequence type: " + String.valueOf(sequence));
+ }
}
}
- public Object invokeTarget(final Object payload, final short sequence, WorkContext workContext)
+ public Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext)
throws InvocationTargetException {
Object contextId = workContext.getIdentifier(scopeContainer.getScope());
try {
@@ -101,7 +105,7 @@
ret = operation.invoke(instance, (Object[])payload);
}
scopeContainer.returnWrapper(wrapper, contextId);
- if (sequence == END) {
+ if (sequence == ConversationSequence.CONVERSATION_END) {
// if end conversation, remove resource
scopeContainer.remove();
}
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/main/java/org/apache/tuscany/implementation/java/invocation/TargetInvoker.java Fri May 11 20:18:05 2007
@@ -20,6 +20,7 @@
import java.lang.reflect.InvocationTargetException;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
import org.apache.tuscany.sca.invocation.Message;
import org.apache.tuscany.sca.spi.component.WorkContext;
@@ -31,14 +32,6 @@
* @Deprecated
*/
public interface TargetInvoker extends Cloneable {
- /* indicates that no conversational sequence is associated with the message */
- short NONE = 0;
- /* indicates that the message initiates a conversation */
- short START = 1;
- /* indicates that the message continues a conversation */
- short CONTINUE = 2;
- /* indicates that the message ends a conversation */
- short END = 3;
/**
* Invokes an operation on a target with the given payload. Used in optmized cases where messages do not need to be
@@ -52,7 +45,7 @@
* @return the result of the invocation
* @throws InvocationTargetException if there was a problem invoking the target
*/
- Object invokeTarget(final Object payload, final short sequence, WorkContext workContext)
+ Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext)
throws InvocationTargetException;
/**
Modified: incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-java-runtime/src/test/java/org/apache/tuscany/implementation/java/mock/MockStaticInvoker.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
import java.lang.reflect.Method;
import org.apache.tuscany.implementation.java.invocation.TargetInvoker;
+import org.apache.tuscany.sca.invocation.ConversationSequence;
import org.apache.tuscany.sca.invocation.Interceptor;
import org.apache.tuscany.sca.invocation.Message;
import org.apache.tuscany.sca.spi.component.WorkContext;
@@ -53,7 +54,7 @@
this.cacheable = cacheable;
}
- public Object invokeTarget(final Object payload, final short sequence, WorkContext workContext) throws InvocationTargetException {
+ public Object invokeTarget(final Object payload, final ConversationSequence sequence, WorkContext workContext) throws InvocationTargetException {
try {
if (payload != null && !payload.getClass().isArray()) {
return operation.invoke(instance, payload);
@@ -67,7 +68,7 @@
public Message invoke(Message msg) {
try {
- Object resp = invokeTarget(msg.getBody(), TargetInvoker.NONE, null);
+ Object resp = invokeTarget(msg.getBody(), null, null);
msg.setBody(resp);
} catch (InvocationTargetException e) {
msg.setFaultBody(e.getCause());
Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/module/EchoModuleActivator.java Fri May 11 20:18:05 2007
@@ -24,6 +24,8 @@
import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
import echo.DefaultEchoBindingFactory;
@@ -55,7 +57,8 @@
processors.addArtifactProcessor(echoBindingProcessor);
ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
- providerFactories.addProviderFactory(new EchoBindingProviderFactory());
+ MessageFactory messageFactory = new MessageFactoryImpl();
+ providerFactories.addProviderFactory(new EchoBindingProviderFactory(messageFactory));
// Start the Echo server
EchoServer.start();
Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
import org.apache.tuscany.sca.core.RuntimeComponent;
import org.apache.tuscany.sca.core.RuntimeComponentReference;
import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.BindingProviderFactory;
import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,13 +36,19 @@
* @version $Rev$ $Date$
*/
public class EchoBindingProviderFactory implements BindingProviderFactory<EchoBinding> {
+
+ private MessageFactory messageFactory;
+
+ public EchoBindingProviderFactory(MessageFactory messageFactory) {
+ this.messageFactory = messageFactory;
+ }
public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, EchoBinding binding) {
return new EchoReferenceBindingProvider(component, reference, binding);
}
public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
- return new EchoServiceBindingProvider(component, service, binding);
+ return new EchoServiceBindingProvider(component, service, binding, messageFactory);
}
public Class<EchoBinding> getModelType() {
Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java Fri May 11 20:18:05 2007
@@ -24,6 +24,7 @@
import org.apache.tuscany.sca.core.RuntimeComponentService;
import org.apache.tuscany.sca.core.RuntimeWire;
import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
import echo.EchoBinding;
@@ -36,15 +37,18 @@
* @version $Rev$ $Date$
*/
public class EchoServiceBindingProvider implements ServiceBindingProvider {
-
+
private RuntimeComponent component;
- private RuntimeComponentService service;
+ private RuntimeComponentService service;
private EchoBinding binding;
-
- public EchoServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
+ private MessageFactory messageFactory;
+
+ public EchoServiceBindingProvider(RuntimeComponent component,
+ RuntimeComponentService service, EchoBinding binding, MessageFactory messageFactory) {
this.component = component;
this.service = service;
this.binding = binding;
+ this.messageFactory = messageFactory;
}
public InterfaceContract getBindingInterfaceContract() {
@@ -53,17 +57,17 @@
public void start() {
- RuntimeComponentService componentService = (RuntimeComponentService)service;
+ RuntimeComponentService componentService = (RuntimeComponentService) service;
RuntimeWire wire = componentService.getRuntimeWire(binding);
InvocationChain chain = wire.getInvocationChains().get(0);
-
+
// Register with the hosting server
String uri = component.getURI() + "/" + binding.getName();
- EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker()));
+ EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker(), messageFactory));
}
public void stop() {
-
+
// Unregister from the hosting server
String uri = component.getURI() + "/" + binding.getName();
EchoServer.getServer().unregister(uri);
Modified: incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java (original)
+++ incubator/tuscany/java/sca/samples/binding-echo/src/main/java/echo/server/EchoService.java Fri May 11 20:18:05 2007
@@ -22,7 +22,7 @@
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.spi.component.WorkContext;
import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
@@ -31,25 +31,26 @@
*/
public class EchoService {
private Invoker invoker;
+ private MessageFactory messageFactory;
- public EchoService(Invoker invoker) {
+ public EchoService(Invoker invoker, MessageFactory messageFactory) {
super();
this.invoker = invoker;
+ this.messageFactory = messageFactory;
}
public String sendReceive(String input) throws InvocationTargetException {
+ Message request = messageFactory.createMessage();
+ request.setBody(new Object[] {input});
WorkContext workContext = WorkContextTunnel.getThreadWorkContext();
-
- Message msg = new MessageImpl();
- msg.setBody(new Object[] {input});
- msg.setWorkContext(workContext);
- Message resp;
+ request.setWorkContext(workContext);
+ Message response;
// dispatch and get the response
- resp = invoker.invoke(msg);
- Object body = resp.getBody();
- if (resp.isFault()) {
+ response = invoker.invoke(request);
+ Object body = response.getBody();
+ if (response.isFault()) {
throw new InvocationTargetException((Throwable)body);
}
return (String)body;
Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/module/EchoModuleActivator.java Fri May 11 20:18:05 2007
@@ -24,6 +24,8 @@
import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.core.invocation.MessageFactoryImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ProviderFactoryExtensionPoint;
import echo.DefaultEchoBindingFactory;
@@ -55,7 +57,8 @@
processors.addArtifactProcessor(echoBindingProcessor);
ProviderFactoryExtensionPoint providerFactories = registry.getExtensionPoint(ProviderFactoryExtensionPoint.class);
- providerFactories.addProviderFactory(new EchoBindingProviderFactory());
+ MessageFactory messageFactory = new MessageFactoryImpl();
+ providerFactories.addProviderFactory(new EchoBindingProviderFactory(messageFactory));
// Start the Echo server
EchoServer.start();
Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoBindingProviderFactory.java Fri May 11 20:18:05 2007
@@ -22,6 +22,7 @@
import org.apache.tuscany.sca.core.RuntimeComponent;
import org.apache.tuscany.sca.core.RuntimeComponentReference;
import org.apache.tuscany.sca.core.RuntimeComponentService;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.BindingProviderFactory;
import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
@@ -35,13 +36,19 @@
* @version $Rev$ $Date$
*/
public class EchoBindingProviderFactory implements BindingProviderFactory<EchoBinding> {
+
+ private MessageFactory messageFactory;
+
+ public EchoBindingProviderFactory(MessageFactory messageFactory) {
+ this.messageFactory = messageFactory;
+ }
public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, RuntimeComponentReference reference, EchoBinding binding) {
return new EchoReferenceBindingProvider(component, reference, binding);
}
public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
- return new EchoServiceBindingProvider(component, service, binding);
+ return new EchoServiceBindingProvider(component, service, binding, messageFactory);
}
public Class<EchoBinding> getModelType() {
Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/provider/EchoServiceBindingProvider.java Fri May 11 20:18:05 2007
@@ -24,6 +24,7 @@
import org.apache.tuscany.sca.core.RuntimeComponentService;
import org.apache.tuscany.sca.core.RuntimeWire;
import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
import echo.EchoBinding;
@@ -40,11 +41,14 @@
private RuntimeComponent component;
private RuntimeComponentService service;
private EchoBinding binding;
+ private MessageFactory messageFactory;
- public EchoServiceBindingProvider(RuntimeComponent component, RuntimeComponentService service, EchoBinding binding) {
+ public EchoServiceBindingProvider(RuntimeComponent component,
+ RuntimeComponentService service, EchoBinding binding, MessageFactory messageFactory) {
this.component = component;
this.service = service;
this.binding = binding;
+ this.messageFactory = messageFactory;
}
public InterfaceContract getBindingInterfaceContract() {
@@ -59,7 +63,7 @@
// Register with the hosting server
String uri = component.getURI() + "/" + binding.getName();
- EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker()));
+ EchoServer.getServer().register(uri, new EchoService(chain.getHeadInvoker(), messageFactory));
}
public void stop() {
Modified: incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java?view=diff&rev=537327&r1=537326&r2=537327
==============================================================================
--- incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java (original)
+++ incubator/tuscany/java/sca/samples/databinding-echo/src/main/java/echo/server/EchoService.java Fri May 11 20:18:05 2007
@@ -22,7 +22,7 @@
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
-import org.apache.tuscany.sca.invocation.MessageImpl;
+import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.spi.component.WorkContext;
import org.apache.tuscany.sca.spi.component.WorkContextTunnel;
@@ -31,25 +31,26 @@
*/
public class EchoService {
private Invoker invoker;
+ private MessageFactory messageFactory;
- public EchoService(Invoker invoker) {
+ public EchoService(Invoker invoker, MessageFactory messageFactory) {
super();
this.invoker = invoker;
+ this.messageFactory = messageFactory;
}
public String sendReceive(String input) throws InvocationTargetException {
+ Message request = messageFactory.createMessage();
+ request.setBody(new Object[] {input});
WorkContext workContext = WorkContextTunnel.getThreadWorkContext();
-
- Message msg = new MessageImpl();
- msg.setBody(new Object[] {input});
- msg.setWorkContext(workContext);
- Message resp;
+ request.setWorkContext(workContext);
+ Message response;
// dispatch and get the response
- resp = invoker.invoke(msg);
- Object body = resp.getBody();
- if (resp.isFault()) {
+ response = invoker.invoke(request);
+ Object body = response.getBody();
+ if (response.isFault()) {
throw new InvocationTargetException((Throwable)body);
}
return (String)body;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org