diff --git a/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java b/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java index 42bd4ee2..79135d2c 100644 --- a/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java +++ b/core/src/main/java/org/springframework/ws/server/MessageDispatcher.java @@ -26,9 +26,9 @@ import org.springframework.beans.factory.BeanNameAware; import org.springframework.util.ObjectUtils; import org.springframework.ws.NoEndpointFoundException; import org.springframework.ws.context.MessageContext; -import org.springframework.ws.server.endpoint.MessageEndpoint; import org.springframework.ws.server.endpoint.MessageEndpointAdapter; import org.springframework.ws.server.endpoint.PayloadEndpointAdapter; +import org.springframework.ws.transport.WebServiceMessageReceiver; /** * Central dispatcher for use withing Spring-WS. Dispatches Web service messages to registered endoints. @@ -43,9 +43,6 @@ import org.springframework.ws.server.endpoint.PayloadEndpointAdapter; * endpointAdapters property.
  • Its exception resolution strategy can be specified via a * EndpointExceptionResolver, for example mapping certain exceptions to SOAP Faults. Default is none. * Additional exception resolvers can be added through the endpointExceptionResolvers property.
  • - * A web application can use any number of MessageDispatchers. Since a MessageDispatcher - * also implements MessageEndpoint, it is also possible to chain them: one dispatcher can be registered as - * the endpoint of another, though the MessageEndpointAdapter. * * @author Arjen Poutsma * @see EndpointMapping @@ -53,7 +50,7 @@ import org.springframework.ws.server.endpoint.PayloadEndpointAdapter; * @see EndpointExceptionResolver * @see org.springframework.web.servlet.DispatcherServlet */ -public class MessageDispatcher implements MessageEndpoint, BeanNameAware { +public class MessageDispatcher implements WebServiceMessageReceiver, BeanNameAware { /** * Log category to use when no mapped endpoint is found for a request. @@ -143,7 +140,7 @@ public class MessageDispatcher implements MessageEndpoint, BeanNameAware { this.beanName = beanName; } - public void invoke(MessageContext messageContext) throws Exception { + public void receive(MessageContext messageContext) throws Exception { if (logger.isDebugEnabled()) { logger.debug("MessageDispatcher with name '" + beanName + "' received request [" + messageContext.getRequest() + "]"); diff --git a/core/src/main/java/org/springframework/ws/transport/WebServiceMessageReceiver.java b/core/src/main/java/org/springframework/ws/transport/WebServiceMessageReceiver.java new file mode 100644 index 00000000..ab21c65f --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/WebServiceMessageReceiver.java @@ -0,0 +1,36 @@ +/* + * Copyright 2007 the original author or authors. + * + * Licensed 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.springframework.ws.transport; + +import org.springframework.ws.context.MessageContext; + +/** + * Defines the methods for classes capable of receiving {@link org.springframework.ws.WebServiceMessage} instances + * coming in on a transport. + * + * @author Arjen Poutsma + */ +public interface WebServiceMessageReceiver { + + /** + * Receives the given message context. The given message context can be used to create a response. + * + * @param messageContext the message context to be received + */ + void receive(MessageContext messageContext) throws Exception; + +} diff --git a/core/src/main/java/org/springframework/ws/transport/DefaultTransportContext.java b/core/src/main/java/org/springframework/ws/transport/context/DefaultTransportContext.java similarity index 89% rename from core/src/main/java/org/springframework/ws/transport/DefaultTransportContext.java rename to core/src/main/java/org/springframework/ws/transport/context/DefaultTransportContext.java index ac89c9ea..e84387ca 100644 --- a/core/src/main/java/org/springframework/ws/transport/DefaultTransportContext.java +++ b/core/src/main/java/org/springframework/ws/transport/context/DefaultTransportContext.java @@ -14,7 +14,10 @@ * limitations under the License. */ -package org.springframework.ws.transport; +package org.springframework.ws.transport.context; + +import org.springframework.ws.transport.TransportInputStream; +import org.springframework.ws.transport.TransportOutputStream; /** * Default implementation of the TransportContext interface. diff --git a/core/src/main/java/org/springframework/ws/transport/TransportContext.java b/core/src/main/java/org/springframework/ws/transport/context/TransportContext.java similarity index 55% rename from core/src/main/java/org/springframework/ws/transport/TransportContext.java rename to core/src/main/java/org/springframework/ws/transport/context/TransportContext.java index 06aa10ab..a7a06997 100644 --- a/core/src/main/java/org/springframework/ws/transport/TransportContext.java +++ b/core/src/main/java/org/springframework/ws/transport/context/TransportContext.java @@ -1,7 +1,11 @@ -package org.springframework.ws.transport; +package org.springframework.ws.transport.context; + +import org.springframework.ws.transport.TransportInputStream; +import org.springframework.ws.transport.TransportOutputStream; /** - * Strategy interface for determining the current {@link TransportInputStream} and {@link TransportOutputStream}. + * Strategy interface for determining the current {@link org.springframework.ws.transport.TransportInputStream} and + * {@link org.springframework.ws.transport.TransportOutputStream}. *

    * An instance of this class can be associated with a thread via the {@link TransportContextHolder} class. * diff --git a/core/src/main/java/org/springframework/ws/transport/TransportContextHolder.java b/core/src/main/java/org/springframework/ws/transport/context/TransportContextHolder.java similarity index 97% rename from core/src/main/java/org/springframework/ws/transport/TransportContextHolder.java rename to core/src/main/java/org/springframework/ws/transport/context/TransportContextHolder.java index efa540fa..3b55742f 100644 --- a/core/src/main/java/org/springframework/ws/transport/TransportContextHolder.java +++ b/core/src/main/java/org/springframework/ws/transport/context/TransportContextHolder.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.ws.transport; +package org.springframework.ws.transport.context; /** * Simple holder class that associates a TransportContext instance with the current thread. The diff --git a/core/src/main/java/org/springframework/ws/transport/context/package.html b/core/src/main/java/org/springframework/ws/transport/context/package.html new file mode 100644 index 00000000..6aa8da41 --- /dev/null +++ b/core/src/main/java/org/springframework/ws/transport/context/package.html @@ -0,0 +1,5 @@ + + +Abstraction for determining the current TransportInputStream and TransportOutputStream. + + diff --git a/core/src/main/java/org/springframework/ws/transport/http/MessageDispatcherServlet.java b/core/src/main/java/org/springframework/ws/transport/http/MessageDispatcherServlet.java index 4a317069..70f4fc3c 100644 --- a/core/src/main/java/org/springframework/ws/transport/http/MessageDispatcherServlet.java +++ b/core/src/main/java/org/springframework/ws/transport/http/MessageDispatcherServlet.java @@ -32,10 +32,10 @@ import org.springframework.ws.wsdl.WsdlDefinition; /** * Servlet for simplified dispatching of Web service messages. Delegates to a MessageDispatcher and a - * MessageEndpointHandlerAdapter. + * WebServiceMessageReceiverHandlerAdapter. *

    * This servlet is a convenient alternative for a standard Spring-MVC DispatcherServlet with a separate - * MessageEndpointHandlerAdapter and a MessageDispatcher. + * WebServiceMessageReceiverHandlerAdapter and a MessageDispatcher. *

    * This servlet automatically detects EndpointAdapters, EndpointMappings, and * EndpointExceptionResolvers, by type (when the corresponding detectAll* property is enabled) or by type @@ -47,7 +47,7 @@ import org.springframework.ws.wsdl.WsdlDefinition; * @author Arjen Poutsma * @see org.springframework.web.servlet.DispatcherServlet * @see org.springframework.ws.server.MessageDispatcher - * @see org.springframework.ws.transport.http.MessageEndpointHandlerAdapter + * @see org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter */ public class MessageDispatcherServlet extends FrameworkServlet { @@ -120,9 +120,10 @@ public class MessageDispatcherServlet extends FrameworkServlet { private boolean detectAllWsdlDefinitions = true; /** - * The MessageEndpointHandlerAdapter used by this servlet. + * The WebServiceMessageReceiverHandlerAdapter used by this servlet. */ - private MessageEndpointHandlerAdapter messageEndpointHandlerAdapter = new MessageEndpointHandlerAdapter(); + private WebServiceMessageReceiverHandlerAdapter messageReceiverHandlerAdapter = + new WebServiceMessageReceiverHandlerAdapter(); /** * The WsdlDefinitionHandlerAdapter used by this servlet. @@ -219,7 +220,7 @@ public class MessageDispatcherServlet extends FrameworkServlet { } protected long getLastModified(HttpServletRequest req) { - return messageEndpointHandlerAdapter.getLastModified(req, messageDispatcher); + return messageReceiverHandlerAdapter.getLastModified(req, messageDispatcher); } protected void initFrameworkServlet() throws ServletException, BeansException { @@ -235,7 +236,7 @@ public class MessageDispatcherServlet extends FrameworkServlet { wsdlDefinitionHandlerAdapter.handle(httpServletRequest, httpServletResponse, definition); } else { - messageEndpointHandlerAdapter.handle(httpServletRequest, httpServletResponse, messageDispatcher); + messageReceiverHandlerAdapter.handle(httpServletRequest, httpServletResponse, messageDispatcher); } } @@ -428,7 +429,7 @@ public class MessageDispatcherServlet extends FrameworkServlet { } } } - messageEndpointHandlerAdapter.setMessageFactory(messageFactory); + messageReceiverHandlerAdapter.setMessageFactory(messageFactory); } private void initMessageDispatcher() { diff --git a/core/src/main/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapter.java b/core/src/main/java/org/springframework/ws/transport/http/WebServiceMessageReceiverHandlerAdapter.java similarity index 76% rename from core/src/main/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapter.java rename to core/src/main/java/org/springframework/ws/transport/http/WebServiceMessageReceiverHandlerAdapter.java index 55215bd4..3e975326 100644 --- a/core/src/main/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapter.java +++ b/core/src/main/java/org/springframework/ws/transport/http/WebServiceMessageReceiverHandlerAdapter.java @@ -23,27 +23,29 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerAdapter; import org.springframework.web.servlet.ModelAndView; import org.springframework.ws.WebServiceMessage; -import org.springframework.ws.server.endpoint.MessageEndpoint; -import org.springframework.ws.transport.MessageReceiverObjectSupport; import org.springframework.ws.transport.TransportInputStream; import org.springframework.ws.transport.TransportOutputStream; +import org.springframework.ws.transport.WebServiceMessageReceiver; +import org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport; /** - * Adapter to use the MessageEndpoint interface with the generic DispatcherServlet. Requires a - * WebServiceMessageFactory which is used to convert the incoming HttpServletRequest into a - * WebServiceMessage, and passes that context to the mapped MessageEndpoint. If a response is - * created, that is sent via the HttpServletResponse. + * Adapter to use the {@link WebServiceMessageReceiver} interface with the generic {@link + * org.springframework.web.servlet.DispatcherServlet}. Requires a {@link org.springframework.ws.WebServiceMessageFactory} + * which is used to convert the incoming HttpServletRequest into a WebServiceMessage, and + * passes that context to the mapped WebServiceMessageReceiver. If a response is created, that is sent via + * the HttpServletResponse. *

    - * Note that the MessageDispatcher implements the MessageEndpoint interface, enabling this - * adapter to function as a gateway to further message handling logic. + * Note that the MessageDispatcher implements the WebServiceMessageReceiver interface, + * enabling this adapter to function as a gateway to further message handling logic. * * @author Arjen Poutsma * @see #setMessageFactory(org.springframework.ws.WebServiceMessageFactory) + * @see org.springframework.ws.transport.WebServiceMessageReceiver * @see org.springframework.ws.WebServiceMessageFactory - * @see org.springframework.ws.server.endpoint.MessageEndpoint * @see org.springframework.ws.server.MessageDispatcher */ -public class MessageEndpointHandlerAdapter extends MessageReceiverObjectSupport implements HandlerAdapter { +public class WebServiceMessageReceiverHandlerAdapter extends WebServiceMessageReceiverObjectSupport + implements HandlerAdapter { public long getLastModified(HttpServletRequest request, Object handler) { return -1L; @@ -55,7 +57,7 @@ public class MessageEndpointHandlerAdapter extends MessageReceiverObjectSupport if ("POST".equals(httpServletRequest.getMethod())) { TransportInputStream tis = new HttpServletTransportInputStream(httpServletRequest); TransportOutputStream tos = new HttpServletTransportOutputStream(httpServletResponse); - handle(tis, tos, (MessageEndpoint) handler); + handle(tis, tos, (WebServiceMessageReceiver) handler); return null; } else { @@ -64,7 +66,7 @@ public class MessageEndpointHandlerAdapter extends MessageReceiverObjectSupport } public boolean supports(Object handler) { - return handler instanceof MessageEndpoint; + return handler instanceof WebServiceMessageReceiver; } /** diff --git a/core/src/main/java/org/springframework/ws/transport/MessageReceiverObjectSupport.java b/core/src/main/java/org/springframework/ws/transport/support/WebServiceMessageReceiverObjectSupport.java similarity index 75% rename from core/src/main/java/org/springframework/ws/transport/MessageReceiverObjectSupport.java rename to core/src/main/java/org/springframework/ws/transport/support/WebServiceMessageReceiverObjectSupport.java index c81f72da..edee4e79 100644 --- a/core/src/main/java/org/springframework/ws/transport/MessageReceiverObjectSupport.java +++ b/core/src/main/java/org/springframework/ws/transport/support/WebServiceMessageReceiverObjectSupport.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ws.transport; +package org.springframework.ws.transport.support; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -25,16 +25,21 @@ import org.springframework.ws.WebServiceMessage; import org.springframework.ws.WebServiceMessageFactory; import org.springframework.ws.context.DefaultMessageContext; import org.springframework.ws.context.MessageContext; -import org.springframework.ws.server.endpoint.MessageEndpoint; +import org.springframework.ws.transport.TransportInputStream; +import org.springframework.ws.transport.TransportOutputStream; +import org.springframework.ws.transport.WebServiceMessageReceiver; +import org.springframework.ws.transport.context.DefaultTransportContext; +import org.springframework.ws.transport.context.TransportContext; +import org.springframework.ws.transport.context.TransportContextHolder; /** * Convenience base class for server-side transport objects. Contains a {@link WebServiceMessageFactory}, and has * methods for handling incoming WebServiceMessage requests. * * @author Arjen Poutsma - * @see #handle(TransportInputStream,TransportOutputStream,org.springframework.ws.server.endpoint.MessageEndpoint) + * @see #handle(org.springframework.ws.transport.TransportInputStream,org.springframework.ws.transport.TransportOutputStream,org.springframework.ws.transport.WebServiceMessageReceiver) */ -public abstract class MessageReceiverObjectSupport implements InitializingBean { +public abstract class WebServiceMessageReceiverObjectSupport implements InitializingBean { /** * Logger available to subclasses. @@ -62,7 +67,7 @@ public abstract class MessageReceiverObjectSupport implements InitializingBean { logger.info("Using message factory [" + messageFactory + "]"); } - protected final void handle(TransportInputStream tis, TransportOutputStream tos, MessageEndpoint endpoint) + protected final void handle(TransportInputStream tis, TransportOutputStream tos, WebServiceMessageReceiver receiver) throws Exception { TransportContext previousTransportContext = TransportContextHolder.getTransportContext(); TransportContextHolder.setTransportContext(new DefaultTransportContext(tis, tos)); @@ -70,7 +75,7 @@ public abstract class MessageReceiverObjectSupport implements InitializingBean { try { WebServiceMessage messageRequest = getMessageFactory().createWebServiceMessage(tis); MessageContext messageContext = new DefaultMessageContext(messageRequest, getMessageFactory()); - endpoint.invoke(messageContext); + receiver.receive(messageContext); if (!messageContext.hasResponse()) { handleNoResponse(tis, tos); } @@ -87,7 +92,7 @@ public abstract class MessageReceiverObjectSupport implements InitializingBean { } /** - * Invoked from {@link #handle(TransportInputStream,TransportOutputStream,org.springframework.ws.server.endpoint.MessageEndpoint)} + * Invoked from {@link #handle(org.springframework.ws.transport.TransportInputStream,org.springframework.ws.transport.TransportOutputStream,org.springframework.ws.transport.WebServiceMessageReceiver)} * when no response is given. Default implementation does nothing. Can be overriden to set certain * transport-specific response headers. * @@ -98,7 +103,7 @@ public abstract class MessageReceiverObjectSupport implements InitializingBean { } /** - * Handles the sending of the response. Invoked from {@link #handle(TransportInputStream,TransportOutputStream,org.springframework.ws.server.endpoint.MessageEndpoint)}. + * Handles the sending of the response. Invoked from {@link #handle(org.springframework.ws.transport.TransportInputStream,org.springframework.ws.transport.TransportOutputStream,org.springframework.ws.transport.WebServiceMessageReceiver)}. * Default implementation writes the given response to the given TransportOutputStream. Can be * overriden to set certain transport-specific headers. * @@ -113,7 +118,7 @@ public abstract class MessageReceiverObjectSupport implements InitializingBean { } /** - * Invoked from {@link #handle(TransportInputStream,TransportOutputStream,org.springframework.ws.server.endpoint.MessageEndpoint)} + * Invoked from {@link #handle(org.springframework.ws.transport.TransportInputStream,org.springframework.ws.transport.TransportOutputStream,org.springframework.ws.transport.WebServiceMessageReceiver)} * when no suitable endpoint is found. Default implementation does nothing. Can be overriden to set certain * transport-specific response headers. * diff --git a/core/src/test/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapterTest.java b/core/src/test/java/org/springframework/ws/transport/http/WebServiceMessageReceiverHandlerAdapterTest.java similarity index 93% rename from core/src/test/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapterTest.java rename to core/src/test/java/org/springframework/ws/transport/http/WebServiceMessageReceiverHandlerAdapterTest.java index c06f9874..66db9b16 100644 --- a/core/src/test/java/org/springframework/ws/transport/http/MessageEndpointHandlerAdapterTest.java +++ b/core/src/test/java/org/springframework/ws/transport/http/WebServiceMessageReceiverHandlerAdapterTest.java @@ -29,7 +29,7 @@ import org.springframework.ws.WebServiceMessageFactory; import org.springframework.ws.context.MessageContext; import org.springframework.ws.server.endpoint.MessageEndpoint; -public class MessageEndpointHandlerAdapterTest extends TestCase { +public class WebServiceMessageReceiverHandlerAdapterTest extends TestCase { private static final String REQUEST = " \n" + " DIS\n" + " \n" + " \n" + ""; - private MessageEndpointHandlerAdapter adapter; + private WebServiceMessageReceiverHandlerAdapter adapter; private MockHttpServletRequest httpRequest; @@ -54,7 +54,7 @@ public class MessageEndpointHandlerAdapterTest extends TestCase { private WebServiceMessage requestMock; protected void setUp() throws Exception { - adapter = new MessageEndpointHandlerAdapter(); + adapter = new WebServiceMessageReceiverHandlerAdapter(); httpRequest = new MockHttpServletRequest(); httpResponse = new MockHttpServletResponse(); factoryControl = MockControl.createControl(WebServiceMessageFactory.class); @@ -85,7 +85,7 @@ public class MessageEndpointHandlerAdapterTest extends TestCase { public void testHandlePostNoResponse() throws Exception { httpRequest.setMethod("POST"); - httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContent(REQUEST.getBytes("UTF-8")); httpRequest.setContentType("text/xml; charset=\"utf-8\""); httpRequest.setCharacterEncoding("UTF-8"); factoryMock.createWebServiceMessage(new HttpServletTransportInputStream(httpRequest)); @@ -108,7 +108,7 @@ public class MessageEndpointHandlerAdapterTest extends TestCase { public void testHandlePostResponse() throws Exception { httpRequest.setMethod("POST"); - httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContent(REQUEST.getBytes("UTF-8")); httpRequest.setContentType("text/xml; charset=\"utf-8\""); httpRequest.setCharacterEncoding("UTF-8"); factoryMock.createWebServiceMessage(new HttpServletTransportInputStream(httpRequest)); @@ -135,7 +135,7 @@ public class MessageEndpointHandlerAdapterTest extends TestCase { public void testHandlePostFault() throws Exception { httpRequest.setMethod("POST"); - httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContent(REQUEST.getBytes("UTF-8")); httpRequest.setContentType("text/xml; charset=\"utf-8\""); httpRequest.setCharacterEncoding("UTF-8"); factoryMock.createWebServiceMessage(new HttpServletTransportInputStream(httpRequest)); @@ -163,7 +163,7 @@ public class MessageEndpointHandlerAdapterTest extends TestCase { public void testHandleNotFound() throws Exception { httpRequest.setMethod("POST"); - httpRequest.setContent(MessageEndpointHandlerAdapterTest.REQUEST.getBytes("UTF-8")); + httpRequest.setContent(REQUEST.getBytes("UTF-8")); httpRequest.setContentType("text/xml; charset=\"utf-8\""); httpRequest.setCharacterEncoding("UTF-8"); factoryMock.createWebServiceMessage(new HttpServletTransportInputStream(httpRequest)); diff --git a/sandbox/src/main/java/org/springframework/ws/transport/jms/MessageEndpointMessageListener.java b/sandbox/src/main/java/org/springframework/ws/transport/jms/MessageEndpointMessageListener.java index 67f7c183..3fda3085 100644 --- a/sandbox/src/main/java/org/springframework/ws/transport/jms/MessageEndpointMessageListener.java +++ b/sandbox/src/main/java/org/springframework/ws/transport/jms/MessageEndpointMessageListener.java @@ -22,6 +22,7 @@ import javax.jms.Message; import javax.jms.Session; import org.springframework.jms.listener.SessionAwareMessageListener; +import org.springframework.ws.transport.jms.support.JmsWebServiceMessageReceiverObjectSupport; /** * Spring-2.0 SessionAwareMessageListener that can be used to handle incoming JMS messages. Requires a @@ -34,9 +35,9 @@ import org.springframework.jms.listener.SessionAwareMessageListener; * * @author Arjen Poutsma * @see #setMessageFactory(org.springframework.ws.WebServiceMessageFactory) - * @see #setMessageEndpoint(org.springframework.ws.server.endpoint.MessageEndpoint) + * @see #setMessageReceiver(org.springframework.ws.transport.WebServiceMessageReceiver) */ -public class MessageEndpointMessageListener extends JmsMessageReceiverObjectSupport +public class MessageEndpointMessageListener extends JmsWebServiceMessageReceiverObjectSupport implements SessionAwareMessageListener { public void onMessage(Message message, Session session) throws JMSException { diff --git a/sandbox/src/main/java/org/springframework/ws/transport/jms/JmsMessageReceiverObjectSupport.java b/sandbox/src/main/java/org/springframework/ws/transport/jms/support/JmsWebServiceMessageReceiverObjectSupport.java similarity index 73% rename from sandbox/src/main/java/org/springframework/ws/transport/jms/JmsMessageReceiverObjectSupport.java rename to sandbox/src/main/java/org/springframework/ws/transport/jms/support/JmsWebServiceMessageReceiverObjectSupport.java index e3dff5d0..1c22b852 100644 --- a/sandbox/src/main/java/org/springframework/ws/transport/jms/JmsMessageReceiverObjectSupport.java +++ b/sandbox/src/main/java/org/springframework/ws/transport/jms/support/JmsWebServiceMessageReceiverObjectSupport.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ws.transport.jms; +package org.springframework.ws.transport.jms.support; import javax.jms.BytesMessage; import javax.jms.Message; @@ -25,41 +25,44 @@ import org.springframework.beans.factory.InitializingBean; import org.springframework.jms.support.JmsUtils; import org.springframework.util.Assert; import org.springframework.ws.WebServiceMessage; -import org.springframework.ws.server.endpoint.MessageEndpoint; -import org.springframework.ws.transport.MessageReceiverObjectSupport; import org.springframework.ws.transport.TransportInputStream; import org.springframework.ws.transport.TransportOutputStream; +import org.springframework.ws.transport.WebServiceMessageReceiver; +import org.springframework.ws.transport.jms.JmsTransportInputStream; +import org.springframework.ws.transport.jms.JmsTransportOutputStream; +import org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport; /** - * Convenience base class for JMS server-side transport objects. Contains a {@link MessageEndpoint}, and has methods for - * handling incoming JMS Message requests. + * Convenience base class for JMS server-side transport objects. Contains a {@link WebServiceMessageReceiver}, and has + * methods for handling incoming JMS Message requests. *

    * This class can be used as a base for a EJB MessageDrivenBean, or using Spring-2.0's MessageDriven POJO's. * * @author Arjen Poutsma * @see #handle(javax.jms.Message,javax.jms.Session) */ -public abstract class JmsMessageReceiverObjectSupport extends MessageReceiverObjectSupport implements InitializingBean { +public abstract class JmsWebServiceMessageReceiverObjectSupport extends WebServiceMessageReceiverObjectSupport + implements InitializingBean { - private MessageEndpoint messageEndpoint; + private WebServiceMessageReceiver messageReceiver; /** - * Returns the MessageEndpoint used by this listener. + * Returns the WebServiceMessageReceiver used by this listener. */ - public MessageEndpoint getMessageEndpoint() { - return messageEndpoint; + public WebServiceMessageReceiver getMessageReceiver() { + return messageReceiver; } /** - * Sets the MessageEndpoint used by this listener. + * Sets the WebServiceMessageReceiver used by this listener. */ - public void setMessageEndpoint(MessageEndpoint messageEndpoint) { - this.messageEndpoint = messageEndpoint; + public void setMessageReceiver(WebServiceMessageReceiver messageReceiver) { + this.messageReceiver = messageReceiver; } public void afterPropertiesSet() throws Exception { Assert.notNull(getMessageFactory(), "messageFactory is required"); - Assert.notNull(getMessageEndpoint(), "messageEndpoint must not be null"); + Assert.notNull(getMessageReceiver(), "messageReceiver must not be null"); logger.info("Using message factory [" + getMessageFactory() + "]"); } @@ -74,7 +77,7 @@ public abstract class JmsMessageReceiverObjectSupport extends MessageReceiverObj if (request instanceof BytesMessage) { TransportInputStream tis = new JmsTransportInputStream((BytesMessage) request); TransportOutputStream tos = new JmsTransportOutputStream(session, request.getJMSCorrelationID()); - handle(tis, tos, getMessageEndpoint()); + handle(tis, tos, getMessageReceiver()); } else { throw new IllegalArgumentException(