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);