You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2010/01/28 23:36:41 UTC

svn commit: r904284 - in /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config: FacesConfigurator.java impl/digester/DigesterFacesConfigUnmarshallerImpl.java impl/digester/elements/Application.java

Author: jakobk
Date: Thu Jan 28 22:36:40 2010
New Revision: 904284

URL: http://svn.apache.org/viewvc?rev=904284&view=rev
Log:
MYFACES-2514 An empty <default-validators> in faces-config should disable default validators

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/Application.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java?rev=904284&r1=904283&r2=904284&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java Thu Jan 28 22:36:40 2010
@@ -915,6 +915,20 @@
         if(webAppConfig != null)    //add null check for apps which don't have a faces-config.xml (e.g. tomahawk examples for 1.1/1.2)
         {
             getDispenser().feed(webAppConfig);
+            
+            // check if there is an empty <default-validators> entry
+            // if so, clear all currently installed default validators.
+            // note that this applys only for the faces-config with the 
+            // highest precendence (not for standard-faces-config files).
+            for (org.apache.myfaces.config.impl.digester.elements.Application app : webAppConfig.getApplications())
+            {
+                if (app.isDefaultValidatorsPresent() && app.getDefaultValidatorIds().isEmpty())
+                {
+                    // clear all default validator from standard-config-files
+                    getDispenser().getDefaultValidatorIds().clear();
+                    break;
+                }
+            }
         }
     }
 

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java?rev=904284&r1=904283&r2=904284&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigUnmarshallerImpl.java Thu Jan 28 22:36:40 2010
@@ -81,6 +81,7 @@
         digester.addSetNext("faces-config/application", "addApplication");
         digester.addCallMethod("faces-config/application/action-listener", "addActionListener", 0);
         digester.addCallMethod("faces-config/application/default-render-kit-id", "addDefaultRenderkitId", 0);
+        digester.addCallMethod("faces-config/application/default-validators", "setDefaultValidatorsPresent");
         digester.addCallMethod("faces-config/application/default-validators/validator-id", "addDefaultValidatorId", 0);
         digester.addCallMethod("faces-config/application/message-bundle", "addMessageBundle", 0);
         digester.addCallMethod("faces-config/application/navigation-handler", "addNavigationHandler", 0);

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/Application.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/Application.java?rev=904284&r1=904283&r2=904284&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/Application.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/elements/Application.java Thu Jan 28 22:36:40 2010
@@ -42,6 +42,7 @@
     private final List<String> elResolver = new ArrayList<String>();
     private final List<ResourceBundle> resourceBundle = new ArrayList<ResourceBundle>();
     private final List<SystemEventListener> systemEventListeners = new ArrayList<SystemEventListener>();
+    private boolean defaultValidatorsPresent = false;
     
     public void addActionListener(String listener)
     {
@@ -192,4 +193,15 @@
     {
         return resourceBundle;
     }
+
+    public boolean isDefaultValidatorsPresent()
+    {
+        return defaultValidatorsPresent;
+    }
+
+    public void setDefaultValidatorsPresent()
+    {
+        defaultValidatorsPresent = true;
+    }
+    
 }