You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2008/10/14 17:06:42 UTC

svn commit: r704558 - in /myfaces/extensions/validator/branches/jsf_1.1: core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/ examples/feature-set_01/src/...

Author: gpetracek
Date: Tue Oct 14 08:06:41 2008
New Revision: 704558

URL: http://svn.apache.org/viewvc?rev=704558&view=rev
Log:
skip validation support and annotation

Added:
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidation.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidationSupport.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/SkipValidationStrategy.java
Modified:
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java
    myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java
    myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml
    myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/home.xhtml
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java Tue Oct 14 08:06:41 2008
@@ -78,6 +78,11 @@
 
             if (validationStrategy != null)
             {
+                if(skipValidation(facesContext, uiComponent, validationStrategy, entry))
+                {
+                    continue;
+                }
+
                 metaDataTransformer = ExtValUtils.getMetaDataTransformerForValidationStrategy(validationStrategy);
 
                 if(metaDataTransformer != null)
@@ -147,6 +152,11 @@
 
             if (validationStrategy != null)
             {
+                if(skipValidation(facesContext, uiComponent, validationStrategy, entry))
+                {
+                    continue;
+                }
+
                 if(logger.isTraceEnabled())
                 {
                     logger.trace("validate " + entry.getValue() + " with " +
@@ -170,4 +180,13 @@
             logger.trace("validation finished");
         }
     }
+
+    protected boolean skipValidation(FacesContext facesContext,
+                                     UIComponent uiComponent,
+                                     ValidationStrategy validationStrategy,
+                                     MetaDataEntry entry)
+    {
+        //override for custom skip validation support (if needed)
+        return false;
+    }
 }

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java Tue Oct 14 08:06:41 2008
@@ -76,4 +76,9 @@
     {
         return (T)getProperty(key);
     }
+
+    public void setProperty(String key, Object value)
+    {
+        this.properties.put(key, value);
+    }
 }

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java Tue Oct 14 08:06:41 2008
@@ -29,4 +29,5 @@
 public interface PropertySourceInformationKeys
 {
     static final String VALUE_BINDING_EXPRESSION = "value_binding_expression";
+    static final String SKIP_VALIDATION = "skip_validation";
 }

Modified: myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/gui/beans/RegistrationPage.java Tue Oct 14 08:06:41 2008
@@ -26,6 +26,7 @@
 import org.apache.myfaces.extensions.validator.baseval.annotation.LongRange;
 import org.apache.myfaces.extensions.validator.baseval.annotation.Required;
 import org.apache.myfaces.extensions.validator.baseval.annotation.Validator;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidation;
 import org.apache.myfaces.custom.emailvalidator.EmailValidator;
 
 public class RegistrationPage
@@ -33,11 +34,12 @@
 
     //the old password of the person isn't used within the page
     //-> validate with value of the model
+    @SkipValidation("#{person.role eq 'admin'}")
+    @Required
     @Equals("person.password")
     @NotEquals("password")
     private String oldPassword;
 
-    @Required
     @Equals("passwordRepeated")
     @JoinValidation(value = "#{registrationPage.person.password}")
     private String password;
@@ -48,6 +50,7 @@
     //use #{registrationPage.person.nickName}, #{person.nickName}
     //use registrationPage to display the second error message at old nickname
     //or local property chaining (to avoid the usage of the bean name) - like:
+    @SkipValidation("#{person.role eq 'admin'}")
     @NotEquals("person.nickName")
     @JoinValidation("person.nickName")
     private String newNickName;

Modified: myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml Tue Oct 14 08:06:41 2008
@@ -26,9 +26,6 @@
 
         </tr:panelFormLayout>
         <tr:commandButton text="save" action="#{registrationPage.finish}"/>
-        <tr:commandLink text="mode: #{registrationPage.person.role}"
-                          action="#{registrationPage.switchMode}" immediate="true"/>
-
     </ui:define>
 </ui:composition>
 

Modified: myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/home.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/home.xhtml?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/home.xhtml (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/examples/feature-set_01/src/main/webapp/pages/home.xhtml Tue Oct 14 08:06:41 2008
@@ -18,7 +18,9 @@
     <ui:define name="content">
         <tr:commandButton text="add user" action="addUser"/><br/>
         <tr:commandButton text="change nick name" action="changeNickName"/><br/>
-        <tr:commandButton text="change password" action="changePassword"/>
+        <tr:commandButton text="change password" action="changePassword"/><br/>
+        <tr:commandLink text="mode: #{registrationPage.person.role}"
+                          action="#{registrationPage.switchMode}" immediate="true"/>
     </ui:define>
 </ui:composition>
 

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java Tue Oct 14 08:06:41 2008
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.baseval.WebXmlParameter;
 import org.apache.myfaces.extensions.validator.core.startup.AbstractStartupListener;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.interceptor.ValidationInterceptor;
 import org.apache.myfaces.extensions.validator.core.loader.StaticResourceBundleLoader;
 import org.apache.myfaces.extensions.validator.core.loader.StaticMappingConfigLoader;
 import org.apache.myfaces.extensions.validator.core.loader.StaticMappingConfigLoaderNames;
@@ -39,6 +40,7 @@
 
         initStaticStrategyMappings();
         initDefaultComponentInitializerName();
+        addSkipValidationSupport();
     }
 
     private void initStaticStrategyMappings()
@@ -61,4 +63,15 @@
     {
         ExtValContext.getContext().addComponentInitializer(new HtmlCoreComponentsComponentInitializer());
     }
+
+    private void addSkipValidationSupport()
+    {
+        if(logger.isInfoEnabled())
+        {
+            logger.info("adding support for @SkipValidation");
+        }
+
+        ExtValContext.getContext().denyRendererInterceptor(ValidationInterceptor.class);
+        ExtValContext.getContext().registerRendererInterceptor(new ValidationInterceptorWithSkipValidationSupport());
+    }
 }

Added: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java?rev=704558&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java Tue Oct 14 08:06:41 2008
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.extensions.validator;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.core.interceptor.ValidationInterceptor;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
+import org.apache.myfaces.extensions.validator.baseval.strategy.SkipValidationStrategy;
+
+import javax.faces.context.FacesContext;
+import javax.faces.component.UIComponent;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class ValidationInterceptorWithSkipValidationSupport extends ValidationInterceptor
+{
+    @Override
+    protected boolean skipValidation(FacesContext facesContext,
+                                     UIComponent uiComponent,
+                                     ValidationStrategy validationStrategy,
+                                     MetaDataEntry metaDataEntry)
+    {
+        if(validationStrategy.getClass().isAnnotationPresent(SkipValidationSupport.class))
+        {
+            Boolean skipValidation = metaDataEntry.getProperty(
+                PropertySourceInformationKeys.SKIP_VALIDATION, Boolean.class);
+
+            if(Boolean.TRUE.equals(skipValidation))
+            {
+                if(logger.isTraceEnabled())
+                {
+                    logger.trace("validation of " + validationStrategy.getClass().getName() + " canceled");
+                }
+
+                return true;
+            }
+        }
+        else if(validationStrategy instanceof SkipValidationStrategy)
+        {
+            validationStrategy.validate(facesContext, uiComponent, metaDataEntry, null);
+            return true;
+        }
+        return false;
+    }
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidation.java?rev=704558&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidation.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidation.java Tue Oct 14 08:06:41 2008
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.extensions.validator.baseval.annotation;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Target;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@Target( { METHOD, FIELD })
+@Retention(RUNTIME)
+public @interface SkipValidation
+{
+    String[] value();
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidationSupport.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidationSupport.java?rev=704558&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidationSupport.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/SkipValidationSupport.java Tue Oct 14 08:06:41 2008
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.extensions.validator.baseval.annotation;
+
+import static java.lang.annotation.ElementType.TYPE;
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@Target(TYPE)
+@Retention(RUNTIME)
+public @interface SkipValidationSupport
+{
+}

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java Tue Oct 14 08:06:41 2008
@@ -19,6 +19,7 @@
 package org.apache.myfaces.extensions.validator.baseval.strategy;
 
 import org.apache.myfaces.extensions.validator.baseval.annotation.DoubleRange;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
 
@@ -30,9 +31,9 @@
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class DoubleRangeStrategy extends AbstractValidatorAdapter
 {
-
     protected void processValidation(FacesContext facesContext,
             UIComponent uiComponent, MetaDataEntry metaDataEntry,
             Object convertedObject) throws ValidatorException

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java Tue Oct 14 08:06:41 2008
@@ -19,6 +19,7 @@
 package org.apache.myfaces.extensions.validator.baseval.strategy;
 
 import org.apache.myfaces.extensions.validator.baseval.annotation.Length;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
 
@@ -30,6 +31,7 @@
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class LengthStrategy extends AbstractValidatorAdapter
 {
     protected void processValidation(FacesContext facesContext,

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java Tue Oct 14 08:06:41 2008
@@ -19,6 +19,7 @@
 package org.apache.myfaces.extensions.validator.baseval.strategy;
 
 import org.apache.myfaces.extensions.validator.baseval.annotation.LongRange;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
 
@@ -30,9 +31,9 @@
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class LongRangeStrategy extends AbstractValidatorAdapter
 {
-
     protected void processValidation(FacesContext facesContext,
             UIComponent uiComponent, MetaDataEntry metaDataEntry,
             Object convertedObject) throws ValidatorException

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java Tue Oct 14 08:06:41 2008
@@ -19,6 +19,7 @@
 package org.apache.myfaces.extensions.validator.baseval.strategy;
 
 import org.apache.myfaces.extensions.validator.baseval.annotation.Pattern;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
 
@@ -31,9 +32,9 @@
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class PatternStrategy extends AbstractAnnotationValidationStrategy
 {
-
     protected void processValidation(FacesContext facesContext,
             UIComponent uiComponent, MetaDataEntry metaDataEntry,
             Object convertedObject) throws ValidatorException

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java Tue Oct 14 08:06:41 2008
@@ -19,6 +19,7 @@
 package org.apache.myfaces.extensions.validator.baseval.strategy;
 
 import org.apache.myfaces.extensions.validator.baseval.annotation.Required;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
 
@@ -32,6 +33,7 @@
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class RequiredStrategy extends AbstractAnnotationValidationStrategy
 {
     public void processValidation(FacesContext facesContext,

Added: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/SkipValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/SkipValidationStrategy.java?rev=704558&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/SkipValidationStrategy.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/SkipValidationStrategy.java Tue Oct 14 08:06:41 2008
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.extensions.validator.baseval.strategy;
+
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidation;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.ValidatorException;
+
+/**
+ * @author Gerhard Petracek
+ */
+public class SkipValidationStrategy implements ValidationStrategy
+{
+    public void validate(FacesContext facesContext,
+                                  UIComponent uiComponent,
+                                  MetaDataEntry metaDataEntry,
+                                  Object convertedObject) throws ValidatorException
+    {
+        String[] valueBindingExpressions = metaDataEntry.getValue(SkipValidation.class).value();
+
+        for(String valueBindingExpression : valueBindingExpressions)
+        {
+            if((Boolean)ExtValUtils.getELHelper().getValueOfExpression(
+                facesContext, new ValueBindingExpression(valueBindingExpression)))
+            {
+                metaDataEntry.setProperty(PropertySourceInformationKeys.SKIP_VALIDATION, true);
+                break;
+            }
+        }
+    }
+}

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java Tue Oct 14 08:06:41 2008
@@ -19,6 +19,7 @@
 package org.apache.myfaces.extensions.validator.baseval.strategy;
 
 import org.apache.myfaces.extensions.validator.baseval.annotation.Validator;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractValidatorAdapter;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
@@ -30,9 +31,9 @@
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class ValidatorStrategy extends AbstractValidatorAdapter
 {
-
     protected void processValidation(FacesContext facesContext,
             UIComponent uiComponent, MetaDataEntry metaDataEntry,
             Object convertedObject) throws ValidatorException

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java Tue Oct 14 08:06:41 2008
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
 import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
 import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 
 import javax.faces.context.FacesContext;
 import java.lang.annotation.Annotation;
@@ -31,6 +32,7 @@
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class DateIsStrategy extends AbstractCompareStrategy
 {
     protected static final String TOO_EARLY = "early";

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/EqualsStrategy.java Tue Oct 14 08:06:41 2008
@@ -20,15 +20,16 @@
 
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
 import org.apache.myfaces.extensions.validator.crossval.annotation.Equals;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 
 import java.lang.annotation.Annotation;
 
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class EqualsStrategy extends AbstractCompareStrategy
 {
-
     public boolean useTargetComponentToDisplayErrorMsg(
             CrossValidationStorageEntry crossValidationStorageEntry)
     {

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/NotEqualsStrategy.java Tue Oct 14 08:06:41 2008
@@ -19,15 +19,16 @@
 package org.apache.myfaces.extensions.validator.crossval.strategy;
 
 import org.apache.myfaces.extensions.validator.crossval.annotation.NotEquals;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 
 import java.lang.annotation.Annotation;
 
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class NotEqualsStrategy extends EqualsStrategy
 {
-
     @Override
     protected String getValidationErrorMsgKey(Annotation annotation,
             boolean isTargetComponent)

Modified: myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java?rev=704558&r1=704557&r2=704558&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java Tue Oct 14 08:06:41 2008
@@ -21,15 +21,16 @@
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
 import org.apache.myfaces.extensions.validator.crossval.annotation.RequiredIf;
 import org.apache.myfaces.extensions.validator.crossval.annotation.RequiredIfType;
+import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
 
 import java.lang.annotation.Annotation;
 
 /**
  * @author Gerhard Petracek
  */
+@SkipValidationSupport
 public class RequiredIfStrategy extends AbstractCompareStrategy
 {
-
     public boolean useTargetComponentToDisplayErrorMsg(
             CrossValidationStorageEntry crossValidationStorageEntry)
     {
@@ -66,4 +67,4 @@
     {
         return ((RequiredIf) annotation).valueOf();
     }
-}
\ No newline at end of file
+}