You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2010/05/05 00:13:36 UTC

svn commit: r941072 - in /myfaces/core/trunk/impl/src/main: conf/META-INF/standard-faces-config-base.xml java/org/apache/myfaces/config/FacesConfigurator.java java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java

Author: lu4242
Date: Tue May  4 22:13:36 2010
New Revision: 941072

URL: http://svn.apache.org/viewvc?rev=941072&view=rev
Log:
MYFACES-2697 BeanValidation class is annotated with @FacesValidator tag

Modified:
    myfaces/core/trunk/impl/src/main/conf/META-INF/standard-faces-config-base.xml
    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/DigesterFacesConfigDispenserImpl.java

Modified: myfaces/core/trunk/impl/src/main/conf/META-INF/standard-faces-config-base.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/conf/META-INF/standard-faces-config-base.xml?rev=941072&r1=941071&r2=941072&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/conf/META-INF/standard-faces-config-base.xml (original)
+++ myfaces/core/trunk/impl/src/main/conf/META-INF/standard-faces-config-base.xml Tue May  4 22:13:36 2010
@@ -32,9 +32,11 @@
       <state-manager>org.apache.myfaces.application.jsp.JspStateManagerImpl</state-manager>
       <navigation-handler>org.apache.myfaces.application.NavigationHandlerImpl</navigation-handler>
       <resource-handler>org.apache.myfaces.application.ResourceHandlerImpl</resource-handler>
+      <!-- 
       <default-validators>
           <validator-id>javax.faces.Bean</validator-id>
       </default-validators>
+       -->
    </application>
    <factory>
       <application-factory>org.apache.myfaces.application.ApplicationFactoryImpl</application-factory>

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=941072&r1=941071&r2=941072&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 Tue May  4 22:13:36 2010
@@ -981,7 +981,7 @@ public class FacesConfigurator
         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.
             // note that this applys only for the faces-config with the 
             // highest precendence (not for standard-faces-config files).
@@ -993,6 +993,7 @@ public class FacesConfigurator
                     break;
                 }
             }
+            */
         }
     }
 
@@ -2000,7 +2001,23 @@ public class FacesConfigurator
             application.addValidator(validatorId, dispenser.getValidatorClass(validatorId));
         }
 
+        if (ExternalSpecifications.isBeanValidationAvailable())
+        {
+            String disabled = _externalContext.getInitParameter(BeanValidator.DISABLE_DEFAULT_BEAN_VALIDATOR_PARAM_NAME);
+            boolean defaultBeanValidatorDisabled = (disabled != null && disabled.toLowerCase().equals("true"));
+            if (!defaultBeanValidatorDisabled)
+            {
+                application.addDefaultValidatorId(BeanValidator.VALIDATOR_ID);
+            }
+        }
+
+        for (String validatorId : dispenser.getDefaultValidatorIds())
+        {
+            application.addDefaultValidatorId(validatorId);
+        }
+
         // only add default validators if there is no empty <default-validators> in faces-config.xml
+        /*
         if (!dispenser.isEmptyDefaultValidators())
         {
             boolean beanValidatorAdded = false;
@@ -2031,7 +2048,7 @@ public class FacesConfigurator
                     application.addDefaultValidatorId(BeanValidator.VALIDATOR_ID);
                 }
             }
-        }
+        }*/
 
         for (Behavior behavior : dispenser.getBehaviors()) {
             application.addBehavior(behavior.getBehaviorId(), behavior.getBehaviorClass());

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java?rev=941072&r1=941071&r2=941072&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/impl/digester/DigesterFacesConfigDispenserImpl.java Tue May  4 22:13:36 2010
@@ -155,7 +155,30 @@ public class DigesterFacesConfigDispense
             variableResolver.addAll(application.getVariableResolver());
             resourceBundles.addAll(application.getResourceBundle());
             elResolvers.addAll(application.getElResolver());
-            defaultValidatorIds.addAll (application.getDefaultValidatorIds());
+
+            // check if there is an empty <default-validators> entry.
+            // note that this applys only for the faces-config with the 
+            // highest precendence (not for standard-faces-config files).
+            // -= Leonardo Uribe =- According to jsf 2.0 spec section 3.5.3
+            // This apply to all configuration resources. The text says this: 
+            // ".... Any configuration resource that declares a list of default validators overrides any list provided in a previously processed
+            // configuration resource. If an empty <default-validators/> element is found in a configuration resource, the list
+            // of default validators must be cleared....."
+            if (application.isDefaultValidatorsPresent() && application.getDefaultValidatorIds().isEmpty() )
+            {
+                defaultValidatorIds.clear();
+            }
+            else if (!application.getDefaultValidatorIds().isEmpty())
+            {
+                // "... Any configuration resource that declares a list of default validators overrides any list provided ..."
+                defaultValidatorIds.clear();
+                defaultValidatorIds.addAll (application.getDefaultValidatorIds());
+            }
+            else
+            {
+                //No need to add anything
+            }
+            
             systemEventListeners.addAll(application.getSystemEventListeners());
         }