From 8f269e4ce1ce138c5d6cfec8027f47f240e0bc7d Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Fri, 16 Nov 2007 14:45:27 +0000 Subject: [PATCH] Improved publication information of WsdlDefinition beans. --- .../http/MessageDispatcherServlet.java | 27 +++++++++++++++++-- parent/pom.xml | 2 +- 2 files changed, 26 insertions(+), 3 deletions(-) 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 8c7bd8a4..0da4047a 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 @@ -18,6 +18,7 @@ package org.springframework.ws.transport.http; import java.util.Iterator; import java.util.Map; +import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -113,6 +114,9 @@ public class MessageDispatcherServlet extends FrameworkServlet { private boolean transformWsdlLocations = false; + /** Indicates whether {@link ServletContext#getContextPath()} exists. This method was introduced in Servlet 2.5. */ + private boolean servletContextHasGetContextPath; + /** Public constructor, necessary for some Web application servers. */ public MessageDispatcherServlet() { defaultStrategiesHelper = new DefaultStrategiesHelper( @@ -199,6 +203,8 @@ public class MessageDispatcherServlet extends FrameworkServlet { } protected void initFrameworkServlet() throws ServletException, BeansException { + servletContextHasGetContextPath = + getServletContext().getMajorVersion() == 2 && getServletContext().getMinorVersion() >= 5; initMessageReceiverHandlerAdapter(); initWsdlDefinitionHandlerAdapter(); initMessageReceiver(); @@ -313,13 +319,30 @@ public class MessageDispatcherServlet extends FrameworkServlet { private void initWsdlDefinitions() { wsdlDefinitions = BeanFactoryUtils .beansOfTypeIncludingAncestors(getWebApplicationContext(), WsdlDefinition.class, true, false); - if (logger.isDebugEnabled()) { + if (logger.isInfoEnabled()) { for (Iterator iterator = wsdlDefinitions.entrySet().iterator(); iterator.hasNext();) { Map.Entry entry = (Map.Entry) iterator.next(); String beanName = (String) entry.getKey(); WsdlDefinition definition = (WsdlDefinition) entry.getValue(); - logger.debug("Published [" + definition + "] as " + beanName + WSDL_SUFFIX_NAME); + StringBuffer message = new StringBuffer("Published ["); + message.append(definition); + message.append("] as "); + if (servletContextHasGetContextPath) { + message.append(Servlet25ContextPathRetriever.getContextPath(getServletContext())); + message.append('/'); + } + message.append(beanName); + message.append(WSDL_SUFFIX_NAME); + logger.info(message); } } } + + /** Inner class to remove Servlet 2.5 dependency. */ + private static class Servlet25ContextPathRetriever { + + private static String getContextPath(ServletContext servletContext) { + return servletContext.getContextPath(); + } + } } diff --git a/parent/pom.xml b/parent/pom.xml index ec7c14d9..dd526598 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -399,7 +399,7 @@ javax.servlet servlet-api - 2.4 + 2.5 provided