[jboss-cvs] JBossAS SVN: r106332 - in projects/jboss-jsf-int/trunk: jboss-faces and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jun 29 15:42:00 EDT 2010
Author: stan.silvert at jboss.com
Date: 2010-06-29 15:42:00 -0400 (Tue, 29 Jun 2010)
New Revision: 106332
Modified:
projects/jboss-jsf-int/trunk/
projects/jboss-jsf-int/trunk/jboss-faces/pom.xml
projects/jboss-jsf-int/trunk/jboss-faces/src/main/java/org/jboss/web/jsf/integration/config/JBossMojarraConfigureListener.java
projects/jboss-jsf-int/trunk/jsf-deployer/pom.xml
projects/jboss-jsf-int/trunk/jsf-deployer/src/main/java/org/jboss/jsf/deployer/JSFImplManagementDeployer.java
projects/jboss-jsf-int/trunk/pom.xml
Log:
JBAS-8100 Duplicate Mojarra auto-servlet feature
Property changes on: projects/jboss-jsf-int/trunk
___________________________________________________________________
Name: svn:ignore
+ target
Modified: projects/jboss-jsf-int/trunk/jboss-faces/pom.xml
===================================================================
--- projects/jboss-jsf-int/trunk/jboss-faces/pom.xml 2010-06-29 18:48:39 UTC (rev 106331)
+++ projects/jboss-jsf-int/trunk/jboss-faces/pom.xml 2010-06-29 19:42:00 UTC (rev 106332)
@@ -49,7 +49,7 @@
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
+ <groupId>jboss.web</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
Modified: projects/jboss-jsf-int/trunk/jboss-faces/src/main/java/org/jboss/web/jsf/integration/config/JBossMojarraConfigureListener.java
===================================================================
--- projects/jboss-jsf-int/trunk/jboss-faces/src/main/java/org/jboss/web/jsf/integration/config/JBossMojarraConfigureListener.java 2010-06-29 18:48:39 UTC (rev 106331)
+++ projects/jboss-jsf-int/trunk/jboss-faces/src/main/java/org/jboss/web/jsf/integration/config/JBossMojarraConfigureListener.java 2010-06-29 19:42:00 UTC (rev 106332)
@@ -21,9 +21,12 @@
*/
package org.jboss.web.jsf.integration.config;
+import com.sun.faces.RIConstants;
import com.sun.faces.config.ConfigureListener;
+import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletRegistration;
/**
@@ -44,7 +47,9 @@
this.servletContext = event.getServletContext();
initializeJspRuntime();
-
+
+ addFacesMappings();
+
doVersionSpecificInitialization();
super.contextInitialized(event);
@@ -62,7 +67,34 @@
initialized = false;
}
}
-
+
+ /**
+ * If no JSF servlet mapping exists, add the default.
+ */
+ private void addFacesMappings()
+ {
+ if (hasJSFServlet()) return;
+
+ ServletRegistration reg =
+ servletContext.addServlet("FacesServlet",
+ "javax.faces.webapp.FacesServlet");
+ reg.addMapping("/faces/*", "*.jsf", "*.faces");
+
+ // TODO: Find out if/why Mojarra really needs this
+ servletContext.setAttribute(RIConstants.FACES_INITIALIZER_MAPPINGS_ADDED, Boolean.TRUE);
+ }
+
+ private boolean hasJSFServlet()
+ {
+ Map<String,? extends ServletRegistration> servletRegistrations = servletContext.getServletRegistrations();
+ for (ServletRegistration registration : servletRegistrations.values()) {
+ // TODO: get other FacesServlet classes from the JSF deployer
+ if ("javax.faces.webapp.FacesServlet".equals(registration.getClassName())) return true;
+ }
+
+ return false;
+ }
+
// This method accounts for a peculiar problem with Jasper that pops up from time
// to time. In some cases, if the JspRuntimeContext is not loaded then the JspFactory
// will not be initialized for JSF. This method assures that it will always be
Modified: projects/jboss-jsf-int/trunk/jsf-deployer/pom.xml
===================================================================
--- projects/jboss-jsf-int/trunk/jsf-deployer/pom.xml 2010-06-29 18:48:39 UTC (rev 106331)
+++ projects/jboss-jsf-int/trunk/jsf-deployer/pom.xml 2010-06-29 19:42:00 UTC (rev 106332)
@@ -49,7 +49,7 @@
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
+ <groupId>jboss.web</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
Modified: projects/jboss-jsf-int/trunk/jsf-deployer/src/main/java/org/jboss/jsf/deployer/JSFImplManagementDeployer.java
===================================================================
--- projects/jboss-jsf-int/trunk/jsf-deployer/src/main/java/org/jboss/jsf/deployer/JSFImplManagementDeployer.java 2010-06-29 18:48:39 UTC (rev 106331)
+++ projects/jboss-jsf-int/trunk/jsf-deployer/src/main/java/org/jboss/jsf/deployer/JSFImplManagementDeployer.java 2010-06-29 19:42:00 UTC (rev 106332)
@@ -25,6 +25,7 @@
import java.net.URL;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -51,12 +52,14 @@
public class JSFImplManagementDeployer extends AbstractSimpleVFSRealDeployer<WebMetaData>
{
private static final String JSF_CONFIG_PARAM = "org.jboss.jbossfaces.JSF_CONFIG_NAME";
+ private static final String JSF_CONFIG_FILES_PARAM = "javax.faces.CONFIG_FILES";
private static final String WAR_BUNDLES_JSF_PARAM = "org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL";
private Collection<String> facesServlets;
private String defaultJSFConfiguration;
private Map<String,URL> jsfConfigurations;
+ private boolean jsfDisabled = false;
private Map<String, JSFImplMetaData> jsfImplMetatData = new HashMap<String, JSFImplMetaData>();
@@ -80,6 +83,7 @@
if (jsfConfigurations == null)
{
log.warn("No JSF implementations specified in jsf-integration-deployer-jboss-beans.xml. Integrated JSF is disabled.");
+ jsfDisabled = true;
return;
}
@@ -107,7 +111,7 @@
*/
public void setFacesServlets(Collection<String> facesServlets)
{
- this.facesServlets = facesServlets;
+ this.facesServlets = Collections.unmodifiableCollection(facesServlets);
}
public void setDefaultJSFConfig(String defaultJSFConfig)
@@ -135,13 +139,17 @@
{
if (getContextParam(JSF_CONFIG_PARAM, metaData) != null) return true;
+ if (getContextParam(JSF_CONFIG_FILES_PARAM, metaData) != null) return true;
+
+ if (unit.getFile("WEB-INF/faces-config.xml") != null) return true;
+
// is a JSF servlet in WEB-INF/web.xml?
if (hasJSFServlet(metaData.getServlets())) return true;
// is a JSF servlet in a web-fragment.xml?
if (isJSFServletInWebFragment(unit)) return true;
- return false;
+ return false;
}
private boolean hasJSFServlet(ServletsMetaData servlets)
@@ -191,7 +199,7 @@
}
}
- return null;
+ return null;
}
private boolean isWarBundlesJSF(WebMetaData metaData)
@@ -203,7 +211,7 @@
@Override
public void deploy(VFSDeploymentUnit unit, WebMetaData metaData) throws DeploymentException
{
- if (!isJSFDeployment(unit, metaData) || isWarBundlesJSF(metaData)) return;
+ if ( jsfDisabled || !isJSFDeployment(unit, metaData) || isWarBundlesJSF(metaData)) return;
JSFImplMetaData jsfImpl = findWhichJSFImplToUse(metaData);
unit.addAttachment(JSFImplMetaData.class, jsfImpl);
Modified: projects/jboss-jsf-int/trunk/pom.xml
===================================================================
--- projects/jboss-jsf-int/trunk/pom.xml 2010-06-29 18:48:39 UTC (rev 106331)
+++ projects/jboss-jsf-int/trunk/pom.xml 2010-06-29 19:42:00 UTC (rev 106332)
@@ -99,9 +99,9 @@
</dependency>
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
+ <groupId>jboss.web</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>3.0.0-beta-2</version>
</dependency>
<dependency>
@@ -189,7 +189,12 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
- <version>1.0.0</version>
+ <version>2.3.1</version>
+ <configuration>
+ <findbugsXmlOutput>true</findbugsXmlOutput>
+ <!-- Optional directory to put findbugs xml report -->
+ <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
+ </configuration>
</plugin>
</plugins>
</reporting>
More information about the jboss-cvs-commits
mailing list