From 3917dc71a30aa6a68e73b148b684ac7860e08d5c Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Tue, 23 Oct 2012 19:38:28 -0400 Subject: [PATCH] Add mapping to "/rfRes/**" for RichFaces resources Issue: SWF-1473 --- .../faces/config/ResourcesBeanDefinitionParser.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-faces/src/main/java/org/springframework/faces/config/ResourcesBeanDefinitionParser.java b/spring-faces/src/main/java/org/springframework/faces/config/ResourcesBeanDefinitionParser.java index b404b63b..aadac9c5 100644 --- a/spring-faces/src/main/java/org/springframework/faces/config/ResourcesBeanDefinitionParser.java +++ b/spring-faces/src/main/java/org/springframework/faces/config/ResourcesBeanDefinitionParser.java @@ -24,6 +24,7 @@ import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.faces.webflow.JsfRuntimeInformation; +import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; import org.springframework.web.servlet.handler.SimpleUrlHandlerMapping; import org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter; @@ -31,7 +32,7 @@ import org.w3c.dom.Element; /** * Parser for the resources tag. - * + * * @author Rossen Stoyanchev * @author Phillip Webb * @since 2.2.0 @@ -42,6 +43,10 @@ public class ResourcesBeanDefinitionParser implements BeanDefinitionParser { static final String PORTLET_RESOURCE_HANDLER_BEAN_NAME = "jsfPortletResourceRequestHandler"; + private static final boolean RICH_FACES_PRESENT = + ClassUtils.isPresent("org.richfaces.application.CoreConfiguration", + ResourcesBeanDefinitionParser.class.getClassLoader()); + public BeanDefinition parse(Element element, ParserContext parserContext) { new ServletRegistrar(element, parserContext).register(); if (JsfRuntimeInformation.isSpringPortletPresent()) { @@ -101,6 +106,10 @@ public class ResourcesBeanDefinitionParser implements BeanDefinitionParser { Map urlMap = new ManagedMap(); urlMap.put("/javax.faces.resource/**", SERVLET_RESOURCE_HANDLER_BEAN_NAME); + if (RICH_FACES_PRESENT) { + urlMap.put("/rfRes/**", SERVLET_RESOURCE_HANDLER_BEAN_NAME); + } + RootBeanDefinition beanDefinition = new RootBeanDefinition(SimpleUrlHandlerMapping.class); beanDefinition.setSource(source); beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);