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/12/10 23:56:44 UTC
svn commit: r889452 - in
/myfaces/extensions/validator/branches/branch_for_jsf_1_1:
core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/
core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/
core/src/main/java...
Author: gpetracek
Date: Thu Dec 10 22:56:43 2009
New Revision: 889452
URL: http://svn.apache.org/viewvc?rev=889452&view=rev
Log:
internal refactorings
Added:
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorage.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorageManager.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/RendererInterceptorPropertyStorage.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/mapper/DefaultRendererInterceptorPropertyStorageNameMapper.java
Modified:
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultStorageManagerFactory.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptorInternals.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/storage/ModelValidationEntry.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java Thu Dec 10 22:56:43 2009
@@ -22,6 +22,10 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
+import org.apache.myfaces.extensions.validator.core.ValidationModuleKey;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
+import org.apache.myfaces.extensions.validator.core.storage.RendererInterceptorPropertyStorage;
import org.apache.myfaces.extensions.validator.core.renderkit.exception.SkipBeforeInterceptorsException;
import org.apache.myfaces.extensions.validator.core.renderkit.exception.SkipRendererDelegationException;
import org.apache.myfaces.extensions.validator.core.recorder.ProcessedInformationRecorder;
@@ -35,6 +39,8 @@
import javax.faces.validator.ValidatorException;
import javax.el.PropertyNotFoundException;
import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
/**
* @author Gerhard Petracek
@@ -76,6 +82,8 @@
throw r;
}
+ setRendererInterceptorProperties(uiComponent);
+
if(recordProcessedInformation())
{
//recorde user input e.g. for cross-component validation
@@ -96,7 +104,8 @@
{
convertedObject = transformValueForValidation(convertedObject);
- if(validateValue(convertedObject))
+ if(validateValue(convertedObject) &&
+ processBeforeValidation(facesContext, uiComponent, convertedObject))
{
processValidation(facesContext, uiComponent, convertedObject);
}
@@ -114,8 +123,48 @@
throw new ConverterException(e.getFacesMessage(), e);
}
}
+ finally
+ {
+ processAfterValidation(facesContext, uiComponent, convertedObject);
+ resetRendererInterceptorProperties(uiComponent);
+ }
+ }
+
+ protected boolean processBeforeValidation(FacesContext facesContext, UIComponent uiComponent, Object value)
+ {
+ return ExtValUtils.executeGlobalBeforeValidationInterceptors(facesContext, uiComponent, value,
+ PropertyInformation.class.getName(), getPropertyInformation(facesContext, uiComponent), getModuleKey());
+ }
+
+ protected void processAfterValidation(FacesContext facesContext, UIComponent uiComponent, Object value)
+ {
+ ExtValUtils.executeGlobalAfterValidationInterceptors(facesContext, uiComponent, value,
+ PropertyInformation.class.getName(), getPropertyInformation(facesContext, uiComponent), getModuleKey());
}
+ protected PropertyInformation getPropertyInformation(FacesContext facesContext, UIComponent uiComponent)
+ {
+ Map<String, Object> properties = getPropertiesForComponentMetaDataExtractor(uiComponent);
+
+ MetaDataExtractor metaDataExtractor = getComponentMetaDataExtractor(properties);
+
+ return metaDataExtractor.extract(facesContext, uiComponent);
+ }
+
+ protected Map<String, Object> getPropertiesForComponentMetaDataExtractor(UIComponent uiComponent)
+ {
+ Map<String, Object> properties = new HashMap<String, Object>();
+
+ if(getModuleKey() != null)
+ {
+ properties.put(ValidationModuleKey.class.getName(), getModuleKey());
+ }
+ properties.put(UIComponent.class.getName(), uiComponent);
+ return properties;
+ }
+
+ protected abstract MetaDataExtractor getComponentMetaDataExtractor(Map<String, Object> properties);
+
protected Object transformValueForValidation(Object convertedObject)
{
if ("".equals(convertedObject) && interpretEmptyStringValuesAsNull())
@@ -187,4 +236,50 @@
//override if needed
return false;
}
+
+ protected Class getModuleKey()
+ {
+ //override if needed
+ return null;
+ }
+
+ protected Map<String, Object> getInterceptorProperties(UIComponent uiComponent)
+ {
+ Map<String, Object> result = new HashMap<String, Object>();
+
+ if(getModuleKey() != null)
+ {
+ result.put(ValidationModuleKey.class.getName(), getModuleKey());
+ }
+ result.put(UIComponent.class.getName(), uiComponent);
+
+ return result;
+ }
+
+ private void setRendererInterceptorProperties(UIComponent uiComponent)
+ {
+ RendererInterceptorPropertyStorage interceptorPropertyStorage = getRendererInterceptorPropertyStorage();
+
+ Map<String, Object> properties = getInterceptorProperties(uiComponent);
+ for(String key : properties.keySet())
+ {
+ interceptorPropertyStorage.setProperty(key, properties.get(key));
+ }
+ }
+
+ private void resetRendererInterceptorProperties(UIComponent uiComponent)
+ {
+ RendererInterceptorPropertyStorage interceptorPropertyStorage = getRendererInterceptorPropertyStorage();
+
+ for(String key : getInterceptorProperties(uiComponent).keySet())
+ {
+ interceptorPropertyStorage.removeProperty(key);
+ }
+ }
+
+ private RendererInterceptorPropertyStorage getRendererInterceptorPropertyStorage()
+ {
+ return ExtValUtils.getStorage(RendererInterceptorPropertyStorage.class,
+ RendererInterceptorPropertyStorage.class.getName());
+ }
}
Modified: myfaces/extensions/validator/branches/branch_for_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/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java Thu Dec 10 22:56:43 2009
@@ -85,16 +85,11 @@
protected void processValidation(FacesContext facesContext, UIComponent uiComponent, Object convertedObject)
{
- MetaDataExtractor metaDataExtractor = ExtValUtils.getComponentMetaDataExtractorFor(getModuleKey());
+ MetaDataExtractor metaDataExtractor = ExtValUtils
+ .getComponentMetaDataExtractorWith(getPropertiesForComponentMetaDataExtractor(uiComponent));
PropertyInformation propertyInformation = metaDataExtractor.extract(facesContext, uiComponent);
- if(!ExtValUtils.executeGlobalBeforeValidationInterceptors(facesContext, uiComponent, convertedObject,
- PropertyInformation.class.getName() ,propertyInformation, getModuleKey()))
- {
- return;
- }
-
try
{
if(logger.isTraceEnabled())
@@ -110,12 +105,14 @@
{
logger.trace("validation finished");
}
-
- ExtValUtils.executeGlobalAfterValidationInterceptors(facesContext, uiComponent, convertedObject,
- PropertyInformation.class.getName(), propertyInformation, getModuleKey());
}
}
+ protected MetaDataExtractor getComponentMetaDataExtractor(Map<String, Object> properties)
+ {
+ return ExtValUtils.getComponentMetaDataExtractorWith(properties);
+ }
+
protected void processFieldValidation(FacesContext facesContext,
UIComponent uiComponent,
Object convertedObject,
@@ -207,10 +204,4 @@
{
return true;
}
-
- protected Class getModuleKey()
- {
- //override if needed
- return null;
- }
}
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorage.java?rev=889452&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorage.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorage.java Thu Dec 10 22:56:43 2009
@@ -0,0 +1,59 @@
+/*
+ * 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.core.storage;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import static org.apache.myfaces.extensions.validator.internal.UsageCategory.INTERNAL;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(INTERNAL)
+public class DefaultRendererInterceptorPropertyStorage implements RendererInterceptorPropertyStorage
+{
+ protected final Log logger = LogFactory.getLog(getClass());
+
+ private Map<String, Object> properties = new HashMap<String, Object>();
+
+ public void setProperty(String key, Object value)
+ {
+ this.properties.put(key, value);
+ }
+
+ public Object getProperty(String key)
+ {
+ return this.properties.get(key);
+ }
+
+ public <T> T getProperty(String key, Class<T> targetClass)
+ {
+ return (T)this.properties.get(key);
+ }
+
+ public void removeProperty(String key)
+ {
+ this.properties.remove(key);
+ }
+}
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorageManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorageManager.java?rev=889452&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorageManager.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultRendererInterceptorPropertyStorageManager.java Thu Dec 10 22:56:43 2009
@@ -0,0 +1,44 @@
+/*
+ * 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.core.storage;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import static org.apache.myfaces.extensions.validator.internal.UsageCategory.INTERNAL;
+import org.apache.myfaces.extensions.validator.core.storage.mapper.DefaultRendererInterceptorPropertyStorageNameMapper;
+
+/**
+ * default storage-manager for renderer interceptor properties
+ *
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(INTERNAL)
+class DefaultRendererInterceptorPropertyStorageManager
+ extends AbstractRequestScopeAwareStorageManager<RendererInterceptorPropertyStorage>
+{
+ DefaultRendererInterceptorPropertyStorageManager()
+ {
+ register(new DefaultRendererInterceptorPropertyStorageNameMapper());
+ }
+
+ public String getStorageManagerKey()
+ {
+ return StorageManager.class.getName() + "_FOR_RENDERER_INTERCEPTOR_PROPERTY:KEY";
+ }
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultStorageManagerFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultStorageManagerFactory.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultStorageManagerFactory.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultStorageManagerFactory.java Thu Dec 10 22:56:43 2009
@@ -59,11 +59,18 @@
logger.debug(getClass().getName() + " instantiated");
}
- setStorageManager(RendererProxyStorage.class, new DefaultRendererProxyStorageManager(), false);
- setStorageManager(GroupStorage.class, new DefaultGroupStorageManager(), false);
- setStorageManager(MetaDataStorage.class, new DefaultMetaDataStorageManager(), false);
- setStorageManager(FacesMessageStorage.class, new DefaultFacesMessageStorageManager(), false);
- setStorageManager(PropertyStorage.class, new DefaultPropertyStorageManager(), false);
+ setStorageManager(RendererProxyStorage.class,
+ new DefaultRendererProxyStorageManager(), false);
+ setStorageManager(GroupStorage.class,
+ new DefaultGroupStorageManager(), false);
+ setStorageManager(MetaDataStorage.class,
+ new DefaultMetaDataStorageManager(), false);
+ setStorageManager(FacesMessageStorage.class,
+ new DefaultFacesMessageStorageManager(), false);
+ setStorageManager(PropertyStorage.class,
+ new DefaultPropertyStorageManager(), false);
+ setStorageManager(RendererInterceptorPropertyStorage.class,
+ new DefaultRendererInterceptorPropertyStorageManager(), false);
setStorageManager(
FacesInformationStorage.class, new DefaultFacesInformationStorageManager(), false);
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/RendererInterceptorPropertyStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/RendererInterceptorPropertyStorage.java?rev=889452&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/RendererInterceptorPropertyStorage.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/RendererInterceptorPropertyStorage.java Thu Dec 10 22:56:43 2009
@@ -0,0 +1,42 @@
+/*
+ * 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.core.storage;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+/**
+ * a storage which isn't used internally. it's for add-ons to easily store properties of interceptors.
+ * without braking backward compatibility, it's possible to use these properties in custom artifacts.
+ * rendering interception is an internal concept. so properties,... of it won't get into the api.
+ *
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.API)
+public interface RendererInterceptorPropertyStorage
+{
+ void setProperty(String key, Object value);
+
+ Object getProperty(String key);
+
+ <T> T getProperty(String key, Class<T> targetClass);
+
+ void removeProperty(String key);
+}
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/mapper/DefaultRendererInterceptorPropertyStorageNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/mapper/DefaultRendererInterceptorPropertyStorageNameMapper.java?rev=889452&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/mapper/DefaultRendererInterceptorPropertyStorageNameMapper.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/mapper/DefaultRendererInterceptorPropertyStorageNameMapper.java Thu Dec 10 22:56:43 2009
@@ -0,0 +1,40 @@
+/*
+ * 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.core.storage.mapper;
+
+import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
+import org.apache.myfaces.extensions.validator.core.storage.RendererInterceptorPropertyStorage;
+import org.apache.myfaces.extensions.validator.core.storage.DefaultRendererInterceptorPropertyStorage;
+import org.apache.myfaces.extensions.validator.core.InvocationOrder;
+
+/**
+ * use a public class to allow optional deregistration
+ *
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@InvocationOrder(100)
+public class DefaultRendererInterceptorPropertyStorageNameMapper implements NameMapper<String>
+{
+ public String createName(String source)
+ {
+ return (RendererInterceptorPropertyStorage.class.getName().equals(source)) ?
+ DefaultRendererInterceptorPropertyStorage.class.getName() : null;
+ }
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java Thu Dec 10 22:56:43 2009
@@ -162,17 +162,6 @@
.create();
}
- public static MetaDataExtractor getComponentMetaDataExtractorFor(Class moduleKey)
- {
- Map<String, Object> properties = new HashMap<String, Object>();
-
- if(moduleKey != null)
- {
- properties.put(ValidationModuleKey.class.getName(), moduleKey);
- }
- return getComponentMetaDataExtractorWith(properties);
- }
-
public static MetaDataExtractor getComponentMetaDataExtractorWith(Map<String, Object> properties)
{
return ExtValContext.getContext().getFactoryFinder()
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java Thu Dec 10 22:56:43 2009
@@ -22,19 +22,15 @@
import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
-import org.apache.myfaces.extensions.validator.core.renderkit.exception.SkipBeforeInterceptorsException;
-import org.apache.myfaces.extensions.validator.core.renderkit.exception.SkipRendererDelegationException;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
-import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.extensions.validator.beanval.util.BeanValidationUtils;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import javax.faces.render.Renderer;
import javax.validation.ConstraintViolation;
-import java.io.IOException;
import java.util.Set;
+import java.util.Map;
/**
* @author Gerhard Petracek
@@ -45,16 +41,6 @@
{
private BeanValidationInterceptorInternals bviUtils = new BeanValidationInterceptorInternals(this.logger);
- @Override
- public void beforeEncodeBegin(FacesContext facesContext, UIComponent uiComponent, Renderer wrapped)
- throws IOException, SkipBeforeInterceptorsException, SkipRendererDelegationException
- {
- if (processComponent(uiComponent))
- {
- initComponent(facesContext, uiComponent);
- }
- }
-
protected void initComponent(FacesContext facesContext, UIComponent uiComponent)
{
if (logger.isTraceEnabled())
@@ -62,7 +48,8 @@
logger.trace("start to init component " + uiComponent.getClass().getName());
}
- PropertyDetails propertyDetails = bviUtils.extractPropertyDetails(facesContext, uiComponent);
+ PropertyDetails propertyDetails = bviUtils.extractPropertyDetails(
+ facesContext, uiComponent, getPropertiesForComponentMetaDataExtractor(uiComponent));
if (propertyDetails != null)
{
@@ -89,12 +76,6 @@
logger.trace("jsr303 start validation");
}
- if (!executeGlobalBeforeValidationInterceptors(
- facesContext, uiComponent, convertedObject, propertyInformation))
- {
- return;
- }
-
processFieldValidation(facesContext, uiComponent, convertedObject, propertyInformation);
}
}
@@ -106,18 +87,13 @@
{
logger.trace("jsr303 validation finished");
}
-
- executeGlobalAfterValidationInterceptors(
- facesContext, uiComponent, convertedObject, propertyInformation);
}
}
}
- protected PropertyInformation getPropertyInformation(FacesContext facesContext, UIComponent uiComponent)
+ protected MetaDataExtractor getComponentMetaDataExtractor(Map<String, Object> properties)
{
- MetaDataExtractor metaDataExtractor = bviUtils.getComponentMetaDataExtractor(uiComponent);
-
- return metaDataExtractor.extract(facesContext, uiComponent);
+ return bviUtils.getComponentMetaDataExtractor(properties);
}
protected boolean hasBeanValidationConstraints(PropertyInformation propertyInformation)
@@ -140,24 +116,9 @@
}
}
- /*
- * e.g. extract groups for validation
- */
- private boolean executeGlobalBeforeValidationInterceptors(FacesContext facesContext,
- UIComponent uiComponent,
- Object convertedObject,
- PropertyInformation propertyInformation)
- {
- return ExtValUtils.executeGlobalBeforeValidationInterceptors(facesContext, uiComponent, convertedObject,
- PropertyInformation.class.getName(), propertyInformation, BeanValidationModuleKey.class);
- }
-
- private void executeGlobalAfterValidationInterceptors(FacesContext facesContext,
- UIComponent uiComponent,
- Object convertedObject,
- PropertyInformation propertyInformation)
+ @Override
+ protected Class getModuleKey()
{
- ExtValUtils.executeGlobalAfterValidationInterceptors(facesContext, uiComponent, convertedObject,
- PropertyInformation.class.getName(), propertyInformation, BeanValidationModuleKey.class);
+ return BeanValidationModuleKey.class;
}
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptorInternals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptorInternals.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptorInternals.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptorInternals.java Thu Dec 10 22:56:43 2009
@@ -26,7 +26,6 @@
import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
import org.apache.myfaces.extensions.validator.core.property.PropertyInformationKeys;
-import org.apache.myfaces.extensions.validator.core.ValidationModuleKey;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -59,9 +58,10 @@
this.logger = logger;
}
- PropertyDetails extractPropertyDetails(FacesContext facesContext, UIComponent uiComponent)
+ PropertyDetails extractPropertyDetails(
+ FacesContext facesContext, UIComponent uiComponent, Map<String, Object> propertiesForExtraction)
{
- PropertyDetails result = getComponentMetaDataExtractor(uiComponent)
+ PropertyDetails result = getComponentMetaDataExtractor(propertiesForExtraction)
.extract(facesContext, uiComponent)
.getInformation(PropertyInformationKeys.PROPERTY_DETAILS, PropertyDetails.class);
@@ -78,12 +78,8 @@
* also invokes meta-data extraction interceptors
* (see e.g. ExtValBeanValidationMetaDataExtractionInterceptor)
*/
- MetaDataExtractor getComponentMetaDataExtractor(UIComponent uiComponent)
+ MetaDataExtractor getComponentMetaDataExtractor(Map<String, Object> properties)
{
- Map<String, Object> properties = new HashMap<String, Object>();
- properties.put(ValidationModuleKey.class.getName(), BeanValidationModuleKey.class);
- properties.put(UIComponent.class.getName(), uiComponent);
-
return ExtValUtils.getComponentMetaDataExtractorWith(properties);
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/ModelValidation.java Thu Dec 10 22:56:43 2009
@@ -42,15 +42,14 @@
@Documented
public @interface ModelValidation
{
- public static final String DEFAULT_TARGET = "base";
- public static final String DEFAULT_MESSAGE = "org.apache.myfaces.extensions.validator.bv_message";
+ public static final String DEFAULT = "";
boolean isActive() default false;
boolean displayInline() default false;
@ToDo(value = Priority.MEDIUM, description = "support property chain syntax")
- String[] validationTargets() default DEFAULT_TARGET;
+ String[] validationTargets() default DEFAULT;
- String message() default DEFAULT_MESSAGE;
-}
+ String message() default DEFAULT;
+}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/storage/ModelValidationEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/storage/ModelValidationEntry.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/storage/ModelValidationEntry.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/storage/ModelValidationEntry.java Thu Dec 10 22:56:43 2009
@@ -38,7 +38,7 @@
private List<Class> groups = new ArrayList<Class>();
private List<Object> validationTargets = new ArrayList<Object>();
private boolean displayMessageInline = false;
- private String customMessage = ModelValidation.DEFAULT_MESSAGE;
+ private String customMessage = ModelValidation.DEFAULT;
//the original source where the extval-bv meta-data has been found
private Object metaDataSourceObject;
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java Thu Dec 10 22:56:43 2009
@@ -510,7 +510,7 @@
Object validationTarget;
for (String validationTargetExpression : beanValidation.modelValidation().validationTargets())
{
- if (ModelValidation.DEFAULT_TARGET.equals(validationTargetExpression))
+ if (ModelValidation.DEFAULT.equals(validationTargetExpression))
{
continue;
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java?rev=889452&r1=889451&r2=889452&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/validation/ModelValidationPhaseListener.java Thu Dec 10 22:56:43 2009
@@ -385,7 +385,7 @@
private boolean isDefaultMessage(ModelValidationEntry modelValidationEntry)
{
- return ModelValidation.DEFAULT_MESSAGE.equals(modelValidationEntry.getCustomMessage());
+ return ModelValidation.DEFAULT.equals(modelValidationEntry.getCustomMessage());
}
private String interpolateValidationErrorMessage(String extValInlineMessage,