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 2009/02/02 19:30:46 UTC

svn commit: r740062 - in /myfaces/extensions/validator/branches/branch_for_jsf_1_1: component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/ component-support/trinidad-support/src/main/java/org/apache/myfaces/e...

Author: gpetracek
Date: Mon Feb  2 18:30:45 2009
New Revision: 740062

URL: http://svn.apache.org/viewvc?rev=740062&view=rev
Log:
EXTVAL-34 basic CoreOutputLabel support

Added:
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/util/
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/util/TrinidadUtils.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/SkipMetaDataTransformer.java
Modified:
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java
    myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java Mon Feb  2 18:30:45 2009
@@ -37,6 +37,9 @@
     static final String DEACTIVATE_CLIENT_SIDE_TRINIDAD_VALIDATION = WebXmlUtils
         .getInitParameter("DEACTIVATE_CLIENT_SIDE_TRINIDAD_VALIDATION");
 
+    static final String DEACTIVATE_TRINIDAD_CORE_OUTPUT_LABEL_INITIALIZATION = WebXmlUtils
+        .getInitParameter("DEACTIVATE_TRINIDAD_CORE_OUTPUT_LABEL_INITIALIZATION");
+
     static final String DEACTIVATE_TRINIDAD_VALIDATION_EXCEPTION_INTERCEPTOR = WebXmlUtils
         .getInitParameter("DEACTIVATE_TRINIDAD_VALIDATION_EXCEPTION_INTERCEPTOR");
 }
\ No newline at end of file

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/DoubleRangeInitializer.java Mon Feb  2 18:30:45 2009
@@ -38,7 +38,7 @@
  */
 @ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
 @UsageInformation(UsageCategory.INTERNAL)
-public class DoubleRangeInitializer extends TrinidadComponentInitializer
+class DoubleRangeInitializer extends TrinidadComponentInitializer
 {
     @Override
     public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
@@ -70,7 +70,8 @@
             }
         }
         
-        if(informationAdded && doubleRangeValidator instanceof ClientValidator)
+        if(informationAdded &&
+                doubleRangeValidator instanceof ClientValidator && uiComponent instanceof EditableValueHolder)
         {
             ((EditableValueHolder)uiComponent).addValidator(
                     new ExtValTrinidadClientValidatorWrapper((ClientValidator)doubleRangeValidator));

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java Mon Feb  2 18:30:45 2009
@@ -26,6 +26,7 @@
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.trinidad.ExtValTrinidadClientValidatorWrapper;
 import org.apache.myfaces.trinidad.validator.ClientValidator;
+import org.apache.myfaces.trinidad.component.core.output.CoreOutputLabel;
 
 import javax.faces.component.EditableValueHolder;
 import javax.faces.component.UIComponent;
@@ -39,7 +40,7 @@
  */
 @ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
 @UsageInformation(UsageCategory.INTERNAL)
-public class LengthInitializer extends TrinidadComponentInitializer
+class LengthInitializer extends TrinidadComponentInitializer
 {
     @Override
     public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
@@ -86,8 +87,23 @@
 
         if(informationAdded && lengthValidator instanceof ClientValidator)
         {
-            ((EditableValueHolder)uiComponent).addValidator(
-                    new ExtValTrinidadClientValidatorWrapper((ClientValidator)lengthValidator));
+            if(uiComponent instanceof EditableValueHolder)
+            {
+                ((EditableValueHolder)uiComponent).addValidator(
+                        new ExtValTrinidadClientValidatorWrapper((ClientValidator)lengthValidator));
+            }
+            else if (uiComponent instanceof CoreOutputLabel)
+            {
+                if(lengthValidator.getMinimum() > 0)
+                {
+                    ((CoreOutputLabel)uiComponent).setShowRequired(true);
+                }
+
+                if(Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.SKIP_VALIDATION)))
+                {
+                    ((CoreOutputLabel)uiComponent).setShowRequired(false);
+                }
+            }
 
             return true;
         }

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LongRangeInitializer.java Mon Feb  2 18:30:45 2009
@@ -38,7 +38,7 @@
  */
 @ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
 @UsageInformation(UsageCategory.INTERNAL)
-public class LongRangeInitializer extends TrinidadComponentInitializer
+class LongRangeInitializer extends TrinidadComponentInitializer
 {
     @Override
     public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
@@ -70,12 +70,13 @@
             }
         }
 
-        if(informationAdded && longRangeValidator instanceof ClientValidator)
+        if(informationAdded &&
+                longRangeValidator instanceof ClientValidator && uiComponent instanceof EditableValueHolder)
         {
-            ((EditableValueHolder)uiComponent).addValidator(
-                    new ExtValTrinidadClientValidatorWrapper((ClientValidator)longRangeValidator));
+                ((EditableValueHolder)uiComponent).addValidator(
+                        new ExtValTrinidadClientValidatorWrapper((ClientValidator)longRangeValidator));
 
-            return true;
+                return true;
         }
         return false;
     }

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/PatternInitializer.java Mon Feb  2 18:30:45 2009
@@ -38,7 +38,7 @@
  */
 @ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
 @UsageInformation(UsageCategory.INTERNAL)
-public class PatternInitializer extends TrinidadComponentInitializer
+class PatternInitializer extends TrinidadComponentInitializer
 {
     @Override
     public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
@@ -62,7 +62,7 @@
             regExpValidator.setMessageDetailNoMatch((String)metaData.get(
                 CommonMetaDataKeys.PATTERN_VALIDATION_ERROR_MESSAGE));
 
-            if(regExpValidator instanceof ClientValidator)
+            if(regExpValidator instanceof ClientValidator && uiComponent instanceof EditableValueHolder)
             {
                 ((EditableValueHolder)uiComponent).addValidator(
                         new ExtValTrinidadClientValidatorWrapper((ClientValidator)regExpValidator));
@@ -70,4 +70,4 @@
         }
         return true;
     }
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/RequiredInitializer.java Mon Feb  2 18:30:45 2009
@@ -22,6 +22,8 @@
 import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.trinidad.util.TrinidadUtils;
+import org.apache.myfaces.trinidad.component.core.output.CoreOutputLabel;
 
 import javax.faces.component.EditableValueHolder;
 import javax.faces.component.UIComponent;
@@ -33,7 +35,7 @@
  * @since 1.x.1
  */
 @UsageInformation(UsageCategory.INTERNAL)
-public class RequiredInitializer extends TrinidadComponentInitializer
+class RequiredInitializer extends TrinidadComponentInitializer
 {
     @Override
     public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
@@ -43,18 +45,35 @@
            metaData.containsKey(CommonMetaDataKeys.WEAK_REQUIRED)||
            metaData.containsKey(CommonMetaDataKeys.SKIP_VALIDATION))
         {
-            if((Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.WEAK_REQUIRED)) ||
+            if((
+                    (!Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.SKIP_VALIDATION)) &&
+                    Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.WEAK_REQUIRED))) ||
                  Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.REQUIRED)))
                 &&
                 Boolean.TRUE.equals(isComponentRequired(uiComponent)))
             {
-                ((EditableValueHolder)uiComponent).setRequired(true);
+                if(uiComponent instanceof EditableValueHolder)
+                {
+                    ((EditableValueHolder)uiComponent).setRequired(true);
+                }
+                else if (uiComponent instanceof CoreOutputLabel)
+                {
+                    ((CoreOutputLabel)uiComponent).setShowRequired(true);
+                }
+
                 return true;
             }
             else if(Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.SKIP_VALIDATION)) &&
                    !Boolean.TRUE.equals(metaData.get(CommonMetaDataKeys.REQUIRED)))
             {
-                ((EditableValueHolder)uiComponent).setRequired(false);
+                if(uiComponent instanceof EditableValueHolder)
+                {
+                    ((EditableValueHolder)uiComponent).setRequired(false);
+                }
+                else if (uiComponent instanceof CoreOutputLabel)
+                {
+                    ((CoreOutputLabel)uiComponent).setShowRequired(false);
+                }
                 return true;
             }
         }
@@ -63,6 +82,16 @@
 
     protected Boolean isComponentRequired(UIComponent uiComponent)
     {
+        if(uiComponent instanceof CoreOutputLabel)
+        {
+            uiComponent = TrinidadUtils.findLabeledEditableComponent((CoreOutputLabel) uiComponent);
+
+            if(uiComponent == null)
+            {
+                return false;
+            }
+        }
+        
         //compare with false so true = true or null
         boolean isReadOnly = !Boolean.FALSE.equals(ReflectionUtils.tryToInvokeMethod(
                 uiComponent, ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "isReadOnly")));

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.java Mon Feb  2 18:30:45 2009
@@ -36,7 +36,7 @@
  */
 @UsageInformation(value = UsageCategory.INTERNAL)
 @ToDo(value = Priority.LOW, description = "impl. trinidad e-mail validator")
-public class ValidatorInitializer implements ComponentInitializer
+class ValidatorInitializer implements ComponentInitializer
 {
     public void configureComponent(FacesContext facesContext, UIComponent uiComponent, Map<String, Object> metaData)
     {
@@ -65,4 +65,4 @@
             }
         }
     }
-}
\ No newline at end of file
+}

Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java?rev=740062&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java Mon Feb  2 18:30:45 2009
@@ -0,0 +1,137 @@
+/*
+ * 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.trinidad.interceptor;
+
+import org.apache.myfaces.extensions.validator.core.interceptor.AbstractRendererInterceptor;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.ComponentMetaDataExtractorFactory;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
+import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.trinidad.util.TrinidadUtils;
+import org.apache.myfaces.trinidad.component.core.output.CoreOutputLabel;
+
+import javax.faces.render.Renderer;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.lang.annotation.Annotation;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.2
+ */
+public class TrinidadRendererInterceptor extends AbstractRendererInterceptor
+{
+    private static Class<Annotation> markerAnnotationClass = null;
+
+    static
+    {
+        Class resultingClass = ClassUtils.tryToLoadClassForName(
+            "org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport");
+
+        if(resultingClass != null && Annotation.class.isAssignableFrom(resultingClass))
+        {
+            markerAnnotationClass = resultingClass;
+        }
+    }
+
+    public void beforeEncodeBegin(FacesContext facesContext, UIComponent uiComponent, Renderer wrapped)
+            throws IOException
+    {
+        if(filterCoreOutputLabel(uiComponent))
+        {
+            initCoreOutputLabel(facesContext, (CoreOutputLabel)uiComponent);
+        }
+    }
+
+    private boolean filterCoreOutputLabel(UIComponent uiComponent)
+    {
+        return (uiComponent instanceof CoreOutputLabel);
+    }
+
+    protected void initCoreOutputLabel(FacesContext facesContext, CoreOutputLabel coreOutputLabel)
+    {
+        ValidationStrategy validationStrategy;
+        MetaDataTransformer metaDataTransformer;
+
+        MetaDataExtractor annotationExtractor = ExtValContext.getContext().getFactoryFinder().getFactory(
+            FactoryNames.COMPONENT_META_DATA_EXTRACTOR_FACTORY, ComponentMetaDataExtractorFactory.class).create();
+
+        UIComponent targetComponent = TrinidadUtils.findLabeledEditableComponent(coreOutputLabel);
+
+        if(targetComponent == null)
+        {
+            return;
+        }
+
+        Boolean skipInitialization = false;
+
+        Map<String, Object> metaData;
+        for (MetaDataEntry entry : annotationExtractor.extract(facesContext, targetComponent).getMetaDataEntries())
+        {
+            validationStrategy = ExtValUtils.getValidationStrategyForMetaDataEntry(entry);
+
+            if (validationStrategy != null)
+            {
+                metaDataTransformer = ExtValUtils.getMetaDataTransformerForValidationStrategy(validationStrategy);
+
+                if(metaDataTransformer != null)
+                {
+                    metaData = metaDataTransformer.convertMetaData(entry);
+                }
+                else
+                {
+                    metaData = null;
+                }
+
+                if(metaData == null)
+                {
+                    metaData = new HashMap<String, Object>();
+                }
+                else if(metaData.containsKey(CommonMetaDataKeys.SKIP_VALIDATION))
+                {
+                    //execute skip validation strategy -> skip validation y/n in entry
+                    validationStrategy.validate(facesContext, targetComponent, entry, null);
+                    skipInitialization = entry.getProperty(CommonMetaDataKeys.SKIP_VALIDATION, Boolean.class);
+                    continue;
+                }
+
+                if(Boolean.TRUE.equals(skipInitialization) && !metaData.isEmpty() &&
+                        validationStrategy.getClass().isAnnotationPresent(markerAnnotationClass))
+                {
+                    metaData.put(CommonMetaDataKeys.SKIP_VALIDATION, true);
+                }
+
+                if(!metaData.isEmpty())
+                {
+                    ExtValUtils.configureComponentWithMetaData(facesContext, coreOutputLabel, metaData);
+                }
+            }
+        }
+    }
+
+}

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java Mon Feb  2 18:30:45 2009
@@ -27,6 +27,7 @@
 import org.apache.myfaces.extensions.validator.trinidad.WebXmlParameter;
 import org.apache.myfaces.extensions.validator.trinidad.renderkit.ExtValTrinidadRendererProxy;
 import org.apache.myfaces.extensions.validator.trinidad.interceptor.TrinidadValidationExceptionInterceptor;
+import org.apache.myfaces.extensions.validator.trinidad.interceptor.TrinidadRendererInterceptor;
 import org.apache.myfaces.extensions.validator.internal.Priority;
 import org.apache.myfaces.extensions.validator.internal.ToDo;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -60,6 +61,13 @@
             ExtValContext.getContext().addComponentInitializer(new TrinidadComponentInitializer());
         }
 
+        String deactivateInitCoreOutputLabel = WebXmlParameter.DEACTIVATE_TRINIDAD_CORE_OUTPUT_LABEL_INITIALIZATION;
+
+        if(deactivateInitCoreOutputLabel == null || !deactivateInitCoreOutputLabel.equalsIgnoreCase("true"))
+        {
+            ExtValContext.getContext().registerRendererInterceptor(new TrinidadRendererInterceptor());
+        }
+
         String deactivateTrinidadValidationExceptionInterceptor =
                 WebXmlParameter.DEACTIVATE_TRINIDAD_VALIDATION_EXCEPTION_INTERCEPTOR;
 

Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/util/TrinidadUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/util/TrinidadUtils.java?rev=740062&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/util/TrinidadUtils.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/util/TrinidadUtils.java Mon Feb  2 18:30:45 2009
@@ -0,0 +1,61 @@
+/*
+ * 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.trinidad.util;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.trinidad.component.core.output.CoreOutputLabel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.faces.component.UIComponent;
+import javax.faces.component.EditableValueHolder;
+import javax.faces.context.FacesContext;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.2
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+@ToDo(value = Priority.MEDIUM, description = "check subform")
+public class TrinidadUtils
+{
+    protected static final Log LOG = LogFactory.getLog(TrinidadUtils.class);
+
+    public static UIComponent findLabeledEditableComponent(CoreOutputLabel coreOutputLabel)
+    {
+        //TODO
+        FacesContext facesContext = FacesContext.getCurrentInstance();
+        UIComponent result = facesContext.getViewRoot().findComponent(coreOutputLabel.getFor());
+
+        if(result instanceof EditableValueHolder)
+        {
+            return result;
+        }
+
+        if(LOG.isTraceEnabled())
+        {
+            LOG.trace(coreOutputLabel.getClientId(facesContext) + " doesn't reference an editable component");
+        }
+
+        return null;
+    }
+}

Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml?rev=740062&r1=740061&r2=740062&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/pages/change_password.xhtml Mon Feb  2 18:30:45 2009
@@ -36,14 +36,26 @@
 
     <ui:define name="content">
 
-        <tr:panelFormLayout>
+        <table>
+            <tr>
+                <td><tr:outputLabel value="old password" for="old_password"/></td>
+                <td><tr:inputText id="old_password" simple="true" value="#{registrationPage.oldPassword}" secret="true"/></td>
+                <td><tr:message for="old_password"/></td>
+            </tr>
+
+            <tr>
+                <td><tr:outputLabel value="new password" for="new_password"/></td>
+                <td><tr:inputText id="new_password" simple="true" value="#{registrationPage.password}" secret="true"/></td>
+                <td><tr:message for="new_password"/></td>
+            </tr>
+
+            <tr>
+                <td><tr:outputLabel value="re-enter password" for="reentered"/></td>
+                <td><tr:inputText id="reentered" simple="true" value="#{registrationPage.passwordRepeated}" secret="true"/></td>
+                <td><tr:message for="reentered"/></td>
+            </tr>
 
-            <tr:inputText label="old password" value="#{registrationPage.oldPassword}" secret="true"/>
-
-            <tr:inputText label="new password" value="#{registrationPage.password}" secret="true"/>
-            <tr:inputText label="re-enter password" value="#{registrationPage.passwordRepeated}" secret="true"/>
-
-        </tr:panelFormLayout>
+        </table>
         <tr:commandButton text="save" action="#{registrationPage.finish}"/>
     </ui:define>
 </ui:composition>

Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/SkipMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/SkipMetaDataTransformer.java?rev=740062&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/SkipMetaDataTransformer.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/SkipMetaDataTransformer.java Mon Feb  2 18:30:45 2009
@@ -0,0 +1,43 @@
+/*
+ * 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.metadata.transformer;
+
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.2
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class SkipMetaDataTransformer implements MetaDataTransformer
+{
+    public Map<String, Object> convertMetaData(MetaDataEntry metaDataEntry)
+    {
+        Map<String, Object> results = new HashMap<String, Object>();
+        results.put(CommonMetaDataKeys.SKIP_VALIDATION, true);
+        return results;
+    }
+}