[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