Author: rgielen Date: Mon Feb 23 16:21:12 2009 New Revision: 747065 URL: http://svn.apache.org/viewvc?rev=747065&view=rev Log: WW-2883 StrutsXmlConfigurationProvider generics fix - applied patch submitted by Mathias Bogaert
Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java?rev=747065&r1=747064&r2=747065&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/StrutsXmlConfigurationProvider.java Mon Feb 23 16:21:12 2009 @@ -91,8 +91,8 @@ @Override public void register(ContainerBuilder containerBuilder, LocatableProperties props) throws ConfigurationException { if (servletContext != null && !containerBuilder.contains(ServletContext.class)) { - containerBuilder.factory(ServletContext.class, new Factory<ServletContext>() { - public ServletContext create(Context context) throws Exception { + containerBuilder.factory(ServletContext.class, new Factory() { + public Object create(Context context) throws Exception { return servletContext; } @@ -148,7 +148,7 @@ } if (file.exists()) { try { - url = file.toURI().toURL(); + url = file.toURL(); } catch (MalformedURLException e) { throw new IOException("Unable to convert "+file+" to a URL"); } Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java?rev=747065&r1=747064&r2=747065&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookieInterceptor.java Mon Feb 23 16:21:12 2009 @@ -21,7 +21,10 @@ package org.apache.struts2.interceptor; -import java.util.*; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; @@ -161,11 +164,11 @@ private static final Logger LOG = LoggerFactory.getLogger(CookieInterceptor.class); - private Set<String> cookiesNameSet = Collections.emptySet(); - private Set<String> cookiesValueSet = Collections.emptySet(); + private Set cookiesNameSet = Collections.EMPTY_SET; + private Set cookiesValueSet = Collections.EMPTY_SET; /** - * Set the <code>cookiesName</code> which if matched will allow the cookie + * Set the <code>cookiesName</code> which if matche will allow the cookie * to be injected into action, could be comma-separated string. * * @param cookiesName @@ -187,32 +190,35 @@ this.cookiesValueSet = TextParseUtil.commaDelimitedStringToSet(cookiesValue); } + public String intercept(ActionInvocation invocation) throws Exception { + if (LOG.isDebugEnabled()) LOG.debug("start interception"); + final ValueStack stack = ActionContext.getContext().getValueStack(); + HttpServletRequest request = ServletActionContext.getRequest(); + // contains selected cookies - final Map<String, String> cookiesMap = new LinkedHashMap<String, String>(); + Map cookiesMap = new LinkedHashMap(); - Cookie[] cookies = ServletActionContext.getRequest().getCookies(); + Cookie cookies[] = request.getCookies(); if (cookies != null) { - final ValueStack stack = ActionContext.getContext().getValueStack(); - - for (Cookie cookie : cookies) { - String name = cookie.getName(); - String value = cookie.getValue(); + for (int a=0; a< cookies.length; a++) { + String name = cookies[a].getName(); + String value = cookies[a].getValue(); if (cookiesNameSet.contains("*")) { if (LOG.isDebugEnabled()) - LOG.debug("contains cookie name [*] in configured cookies name set, cookie with name [" + name + "] with value [" + value + "] will be injected"); + LOG.debug("contains cookie name [*] in configured cookies name set, cookie with name ["+name+"] with value ["+value+"] will be injected"); populateCookieValueIntoStack(name, value, cookiesMap, stack); - } else if (cookiesNameSet.contains(cookie.getName())) { + } + else if (cookiesNameSet.contains(cookies[a].getName())) { populateCookieValueIntoStack(name, value, cookiesMap, stack); } } } - // inject the cookiesMap, even if we don't have any cookies injectIntoCookiesAwareAction(invocation.getAction(), cookiesMap); return invocation.invoke(); @@ -227,7 +233,7 @@ * @param cookiesMap * @param stack */ - protected void populateCookieValueIntoStack(String cookieName, String cookieValue, Map<String, String> cookiesMap, ValueStack stack) { + protected void populateCookieValueIntoStack(String cookieName, String cookieValue, Map cookiesMap, ValueStack stack) { if (cookiesValueSet.isEmpty() || cookiesValueSet.contains("*")) { // If the interceptor is configured to accept any cookie value // OR @@ -261,11 +267,12 @@ * @param action * @param cookiesMap */ - protected void injectIntoCookiesAwareAction(Object action, Map<String, String> cookiesMap) { + protected void injectIntoCookiesAwareAction(Object action, Map cookiesMap) { if (action instanceof CookiesAware) { if (LOG.isDebugEnabled()) LOG.debug("action ["+action+"] implements CookiesAware, injecting cookies map ["+cookiesMap+"]"); ((CookiesAware)action).setCookiesMap(cookiesMap); } } + } Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java?rev=747065&r1=747064&r2=747065&view=diff ============================================================================== --- struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java (original) +++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/interceptor/CookiesAware.java Mon Feb 23 16:21:12 2009 @@ -24,5 +24,5 @@ import java.util.Map; public interface CookiesAware { - void setCookiesMap(Map<String, String> cookies); -} \ No newline at end of file + void setCookiesMap(Map cookies); +} Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java?rev=747065&r1=747064&r2=747065&view=diff ============================================================================== --- struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java (original) +++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/CookieInterceptorTest.java Mon Feb 23 16:21:12 2009 @@ -326,10 +326,9 @@ private String cookie2; private String cookie3; - public void setCookiesMap(Map<String, String> cookies) { + public void setCookiesMap(Map cookies) { this.cookies = cookies; } - public Map getCookiesMap() { return this.cookies; }