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 2010/07/14 14:29:01 UTC
svn commit: r964028 [1/2] - in /myfaces/extensions/validator/trunk:
component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/
component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/valida...
Author: gpetracek
Date: Wed Jul 14 12:28:59 2010
New Revision: 964028
URL: http://svn.apache.org/viewvc?rev=964028&view=rev
Log:
EXTVAL-100 sync with branch
Added:
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/DefaultExtValTrinidadSupportModuleConfiguration.java
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/ExtValTrinidadSupportModuleConfiguration.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/DefaultExtValCoreConfiguration.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValCoreConfiguration.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfiguration.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfigurationResolver.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/DefaultExtValBaseValidationModuleConfiguration.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/ExtValBaseValidationModuleConfiguration.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/DefaultExtValCrossValidationModuleConfiguration.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/ExtValCrossValidationModuleConfiguration.java
Modified:
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProjectStage.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValLazyRendererProxy.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKit.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKitFactory.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererWrapper.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/AbstractStartupListener.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/AbstractStorageManager.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultMetaDataStorage.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/AbstractValidationErrorMessageResolver.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/DefaultValidationErrorMessageResolver.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/CustomConfiguredValidationStrategyToMsgResolverNameMapper.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/DefaultValidationParameterExtractorFactory.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ConstraintSourceUtils.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ProxyUtils.java
myfaces/extensions/validator/trunk/test-modules/base-test-infrastructure/src/test/java/org/apache/myfaces/extensions/validator/test/base/AbstractExValTestCase.java
myfaces/extensions/validator/trunk/test-modules/bean-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/beanval/AbstractBeanValidationTestCase.java
myfaces/extensions/validator/trunk/test-modules/bean-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/beanval/ConstraintSourceAwareValidation6TestCase.java
myfaces/extensions/validator/trunk/test-modules/core-tests/src/test/java/org/apache/myfaces/extensions/validator/test/core/stage/IndependentProjectStageTestCase.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/AbstractPropertyValidationTestCase.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/constraintsource/ConstraintSourceAwareValidation6TestCase.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/WebXmlParameter.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/resolver/JpaValidationErrorMessageResolver.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/WebXmlParameter.java
Added: myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/DefaultExtValTrinidadSupportModuleConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/DefaultExtValTrinidadSupportModuleConfiguration.java?rev=964028&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/DefaultExtValTrinidadSupportModuleConfiguration.java (added)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/DefaultExtValTrinidadSupportModuleConfiguration.java Wed Jul 14 12:28:59 2010
@@ -0,0 +1,49 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+/**
+ * @author Gerhard Petracek
+ * @since r4
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultExtValTrinidadSupportModuleConfiguration extends ExtValTrinidadSupportModuleConfiguration
+{
+ /*
+ * web.xml config
+ */
+
+ public boolean deactivateClientSideValidation()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_CLIENT_SIDE_TRINIDAD_VALIDATION);
+ }
+
+ public boolean deactivateCoreOutputLabelInitialization()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_TRINIDAD_CORE_OUTPUT_LABEL_INITIALIZATION);
+ }
+
+ public boolean deactivateValidationExceptionInterceptor()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_TRINIDAD_VALIDATION_EXCEPTION_INTERCEPTOR);
+ }
+}
Added: myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/ExtValTrinidadSupportModuleConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/ExtValTrinidadSupportModuleConfiguration.java?rev=964028&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/ExtValTrinidadSupportModuleConfiguration.java (added)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/ExtValTrinidadSupportModuleConfiguration.java Wed Jul 14 12:28:59 2010
@@ -0,0 +1,60 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.ExtValModuleConfiguration;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+/**
+ * @author Gerhard Petracek
+ * @since r4
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public abstract class ExtValTrinidadSupportModuleConfiguration implements ExtValModuleConfiguration
+{
+ private static ExtValContext extValContext = ExtValContext.getContext();
+
+ protected ExtValTrinidadSupportModuleConfiguration()
+ {
+ }
+
+ public static ExtValTrinidadSupportModuleConfiguration get()
+ {
+ return extValContext.getModuleConfiguration(ExtValTrinidadSupportModuleConfiguration.class);
+ }
+
+ @UsageInformation(UsageCategory.INTERNAL)
+ public static boolean use(ExtValTrinidadSupportModuleConfiguration config, boolean forceOverride)
+ {
+ return extValContext.addModuleConfiguration(
+ ExtValTrinidadSupportModuleConfiguration.class, config, forceOverride);
+ }
+
+ /*
+ * web.xml config
+ */
+
+ public abstract boolean deactivateClientSideValidation();
+
+ public abstract boolean deactivateCoreOutputLabelInitialization();
+
+ public abstract boolean deactivateValidationExceptionInterceptor();
+}
Modified: myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/WebXmlParameter.java Wed Jul 14 12:28:59 2010
@@ -29,7 +29,7 @@ import org.apache.myfaces.extensions.val
* @since 1.x.1
*/
@UsageInformation(UsageCategory.INTERNAL)
-public interface WebXmlParameter
+interface WebXmlParameter
{
/*
* deactivate
Modified: myfaces/extensions/validator/trunk/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/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java (original)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/startup/TrinidadModuleStartupListener.java Wed Jul 14 12:28:59 2010
@@ -20,12 +20,14 @@ package org.apache.myfaces.extensions.va
import org.apache.myfaces.extensions.validator.core.startup.AbstractStartupListener;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import org.apache.myfaces.extensions.validator.core.storage.StorageManagerHolder;
import org.apache.myfaces.extensions.validator.core.renderkit.AbstractRenderKitWrapperFactory;
import org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererProxy;
import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
import org.apache.myfaces.extensions.validator.trinidad.initializer.component.TrinidadComponentInitializer;
-import org.apache.myfaces.extensions.validator.trinidad.WebXmlParameter;
+import org.apache.myfaces.extensions.validator.trinidad.ExtValTrinidadSupportModuleConfiguration;
+import org.apache.myfaces.extensions.validator.trinidad.DefaultExtValTrinidadSupportModuleConfiguration;
import org.apache.myfaces.extensions.validator.trinidad.storage.TrinidadClientValidatorStorage;
import org.apache.myfaces.extensions.validator.trinidad.storage.DefaultClientValidatorStorageManager;
import org.apache.myfaces.extensions.validator.trinidad.validation.message.TrinidadFacesMessageFactory;
@@ -47,8 +49,15 @@ public class TrinidadModuleStartupListen
{
private static final long serialVersionUID = -8034089244903966999L;
+ protected void initModuleConfig()
+ {
+ ExtValTrinidadSupportModuleConfiguration.use(new DefaultExtValTrinidadSupportModuleConfiguration(), false);
+ }
+
protected void init()
{
+ initModuleConfig();
+
deactivateDefaultExtValRenderKitWrapperFactory();
initClientSideValidationSupport();
@@ -82,7 +91,7 @@ public class TrinidadModuleStartupListen
private void initClientSideValidationSupport()
{
- if(isClientSideValidationSupportEnabled(WebXmlParameter.DEACTIVATE_CLIENT_SIDE_TRINIDAD_VALIDATION))
+ if(!ExtValTrinidadSupportModuleConfiguration.get().deactivateClientSideValidation())
{
ExtValContext.getContext().addComponentInitializer(new TrinidadComponentInitializer());
}
@@ -90,7 +99,7 @@ public class TrinidadModuleStartupListen
private void initLabelInitializationSupport()
{
- if(isLabelInitializationEnabled(WebXmlParameter.DEACTIVATE_TRINIDAD_CORE_OUTPUT_LABEL_INITIALIZATION))
+ if(!ExtValTrinidadSupportModuleConfiguration.get().deactivateCoreOutputLabelInitialization())
{
ExtValContext.getContext().registerRendererInterceptor(new TrinidadRendererInterceptor());
}
@@ -98,7 +107,7 @@ public class TrinidadModuleStartupListen
private void initValidationExceptionInterception()
{
- if(useValidationExceptionInterception(WebXmlParameter.DEACTIVATE_TRINIDAD_VALIDATION_EXCEPTION_INTERCEPTOR))
+ if(!ExtValTrinidadSupportModuleConfiguration.get().deactivateValidationExceptionInterceptor())
{
ExtValContext.getContext().addValidationExceptionInterceptor(new TrinidadValidationExceptionInterceptor());
}
@@ -131,22 +140,6 @@ public class TrinidadModuleStartupListen
new DefaultClientValidatorStorageManager(), false);
}
- private boolean isLabelInitializationEnabled(String deactivateInitCoreOutputLabel)
- {
- return deactivateInitCoreOutputLabel == null || !deactivateInitCoreOutputLabel.equalsIgnoreCase("true");
- }
-
- private boolean isClientSideValidationSupportEnabled(String deactivateClientSideValidation)
- {
- return deactivateClientSideValidation == null || !deactivateClientSideValidation.equalsIgnoreCase("true");
- }
-
- private boolean useValidationExceptionInterception(String deactivateTrinidadValidationExceptionInterceptor)
- {
- return deactivateTrinidadValidationExceptionInterceptor == null ||
- !deactivateTrinidadValidationExceptionInterceptor.equalsIgnoreCase("true");
- }
-
protected void initRequiredInitialization()
{
if(!isRequiredInitializationDeactivated())
@@ -160,7 +153,6 @@ public class TrinidadModuleStartupListen
private boolean isRequiredInitializationDeactivated()
{
- return "false".equalsIgnoreCase(
- org.apache.myfaces.extensions.validator.core.WebXmlParameter.ACTIVATE_REQUIRED_INITIALIZATION);
+ return !ExtValCoreConfiguration.get().activateRequiredInitialization();
}
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/ExtValInformation.java Wed Jul 14 12:28:59 2010
@@ -31,7 +31,8 @@ import org.apache.myfaces.extensions.val
@UsageInformation(UsageCategory.INTERNAL)
public interface ExtValInformation
{
- static final String EXTENSIONS_VALIDATOR_BASE_PACKAGE_NAME = ExtValInformation.class.getPackage().getName();
- static final String WEBXML_PARAM_PREFIX = ExtValInformation.class.getPackage().getName();
+ // getPackage isn't working with a custom class loader
+ static final String EXTENSIONS_VALIDATOR_BASE_PACKAGE_NAME = ClassUtils.getPackageName(ExtValInformation.class);
+ static final String WEBXML_PARAM_PREFIX = ClassUtils.getPackageName(ExtValInformation.class);
static final String VERSION = ClassUtils.getJarVersion(ExtValInformation.class);
}
Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/DefaultExtValCoreConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/DefaultExtValCoreConfiguration.java?rev=964028&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/DefaultExtValCoreConfiguration.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/DefaultExtValCoreConfiguration.java Wed Jul 14 12:28:59 2010
@@ -0,0 +1,271 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.core.proxy.ProxyHelper;
+import org.apache.myfaces.extensions.validator.core.proxy.DefaultProxyHelper;
+import org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererProxy;
+import org.apache.myfaces.extensions.validator.core.validation.ConstraintSource;
+import org.apache.myfaces.extensions.validator.core.validation.IgnoreConstraintSource;
+import org.apache.myfaces.extensions.validator.core.validation.TargetProperty;
+import org.apache.myfaces.extensions.validator.core.validation.TargetPropertyId;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.DisableClientSideValidation;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameter;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.ViolationSeverity;
+import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+import java.lang.annotation.Annotation;
+
+/**
+ * @author Gerhard Petracek
+ * @since r4
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultExtValCoreConfiguration extends ExtValCoreConfiguration
+{
+ public String customMessageBundleBaseName()
+ {
+ return WebXmlParameter.CUSTOM_MESSAGE_BUNDLE;
+ }
+
+ public String customBasePackage()
+ {
+ return WebXmlParameter.CUSTOM_BASE_PACKAGE;
+ }
+
+ public String customInformationProviderBeanClassName()
+ {
+ return WebXmlParameter.CUSTOM_INFORMATION_PROVIDER_BEAN;
+ }
+
+ public String customComponentMetaDataExtractorClassName()
+ {
+ return WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR;
+ }
+
+ public String customValidationParameterExtractorClassName()
+ {
+ return WebXmlParameter.CUSTOM_VALIDATION_PARAMETER_EXTRACTOR;
+ }
+
+ public String customStaticValidationStrategyMappingSource()
+ {
+ return WebXmlParameter.CUSTOM_STATIC_VALIDATION_STRATEGY_MAPPING;
+ }
+
+ public String customComponentInitializerClassName()
+ {
+ return WebXmlParameter.CUSTOM_COMPONENT_INITIALIZER;
+ }
+
+ public String customValidationExceptionInterceptorClassName()
+ {
+ return WebXmlParameter.CUSTOM_VALIDATION_EXCEPTION_INTERCEPTOR;
+ }
+
+ public String customPropertyValidationInterceptorClassName()
+ {
+ return WebXmlParameter.CUSTOM_PROPERTY_VALIDATION_INTERCEPTOR;
+ }
+
+ public String customMetaDataExtractionInterceptorClassName()
+ {
+ return WebXmlParameter.CUSTOM_META_DATA_EXTRACTION_INTERCEPTOR;
+ }
+
+ public ProxyHelper proxyHelper()
+ {
+ String customProxyHelperClassName = WebXmlParameter.CUSTOM_PROXY_HELPER;
+
+ if (customProxyHelperClassName != null && !"".equals(customProxyHelperClassName))
+ {
+ return (ProxyHelper) ClassUtils.tryToInstantiateClassForName(customProxyHelperClassName);
+ }
+
+ return new DefaultProxyHelper();
+ }
+
+ public ProjectStageResolver projectStageResolver()
+ {
+ return new DefaultProjectStageResolver();
+ }
+
+ public Class<? extends ExtValRendererProxy> rendererProxy()
+ {
+ String proxyClassName = (String) ExtValContext.getContext().getGlobalProperty(ExtValRendererProxy.KEY);
+
+ if (proxyClassName != null && !proxyClassName.endsWith(getClass().getName()))
+ {
+ Class<? extends ExtValRendererProxy> targetClass = ClassUtils.tryToLoadClassForName(proxyClassName);
+
+ if (targetClass == null)
+ {
+ throw new IllegalStateException("a custom invalid renderer proxy is configured: " + proxyClassName);
+ }
+
+ return targetClass;
+ }
+
+ return null;
+ }
+
+ public Class violationSeverity()
+ {
+ return ViolationSeverity.class;
+ }
+
+ public String customValidationStrategyToMessageResolverNameMapperClassName()
+ {
+ return WebXmlParameter.CUSTOM_VALIDATION_STRATEGY_TO_MESSAGE_RESOLVER_NAME_MAPPER;
+ }
+
+ public String customMetaDataToValidationStrategyNameMapperClassName()
+ {
+ return WebXmlParameter.CUSTOM_META_DATA_TO_VALIDATION_STRATEGY_NAME_MAPPER;
+ }
+
+ public String customValidationStrategyToMetaDataTransformerNameMapperClassName()
+ {
+ return WebXmlParameter.CUSTOM_VALIDATION_STRATEGY_TO_META_DATA_TRANSFORMER_NAME_MAPPER;
+ }
+
+ public String customMetaDataStorageFilterClassName()
+ {
+ return WebXmlParameter.CUSTOM_META_DATA_STORAGE_FILTER;
+ }
+
+ public String customValidationStrategyFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_VALIDATION_STRATEGY_FACTORY;
+ }
+
+ public String customMessageResolverFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_MESSAGE_RESOLVER_FACTORY;
+ }
+
+ public String customComponentMetaDataExtractorFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY;
+ }
+
+ public String customValidationParameterExtractorFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_VALIDATION_PARAMETER_EXTRACTOR_FACTORY;
+ }
+
+ public String customValidationParameterFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_VALIDATION_PARAMETER_FACTORY;
+ }
+
+ public String customMetaDataTransformerFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_META_DATA_TRANSFORMER_FACTORY;
+ }
+
+ public String customStorageManagerFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_STORAGE_MANAGER_FACTORY;
+ }
+
+ public String customFacesMessageFactoryClassName()
+ {
+ return WebXmlParameter.CUSTOM_FACES_MESSAGE_FACTORY;
+ }
+
+ public Class<? extends Annotation> constraintSourceAnnotation()
+ {
+ return ConstraintSource.class;
+ }
+
+ public Class<? extends Annotation> ignoreConstraintSourceAnnotation()
+ {
+ return IgnoreConstraintSource.class;
+ }
+
+ public Class<? extends Annotation> targetPropertyAnnotation()
+ {
+ return TargetProperty.class;
+ }
+
+ public Class<? extends Annotation> targetPropertyIdAnnotation()
+ {
+ return TargetPropertyId.class;
+ }
+
+ public Class<? extends ValidationParameter> disableClientSideValidationValidationParameter()
+ {
+ return DisableClientSideValidation.class;
+ }
+
+ public boolean activateRequiredInitialization()
+ {
+ return WebXmlParameter.ACTIVATE_REQUIRED_INITIALIZATION != null &&
+ "true".equalsIgnoreCase(WebXmlParameter.ACTIVATE_REQUIRED_INITIALIZATION.trim());
+ }
+
+ public boolean deactivateDefaultConvention()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_DEFAULT_CONVENTION);
+ }
+
+ public boolean deactivateDefaultNameMappers()
+ {
+ String deactivateDefaultNameMappers = WebXmlParameter.DEACTIVATE_DEFAULT_NAME_MAPPERS;
+ return deactivateDefaultNameMappers != null && deactivateDefaultNameMappers.trim().equalsIgnoreCase("true");
+ }
+
+ public boolean deactivateElResolver()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_EL_RESOLVER);
+ }
+
+ public boolean deactivateComponentInitialization()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_COMPONENT_INITIALIZATION);
+ }
+
+ public boolean deactivateValidationParameters()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_VALIDATION_PARAMETERS);
+ }
+
+ public boolean deactivateRenderKitFactory()
+ {
+ return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_RENDER_KIT_FACTORY);
+ }
+
+ public boolean deactivateRequiredAttributeSupport()
+ {
+ return activateRequiredInitialization();
+ }
+
+ public boolean interpretEmptyStringSubmittedValuesAsNull()
+ {
+ return !"false".equalsIgnoreCase(WebXmlParameter.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL);
+ }
+
+ public boolean validateEmptyFields()
+ {
+ return !"false".equalsIgnoreCase(WebXmlParameter.VALIDATE_EMPTY_FIELDS);
+ }
+}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java Wed Jul 14 12:28:59 2010
@@ -46,6 +46,8 @@ import java.util.concurrent.CopyOnWriteA
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
+import static org.apache.myfaces.extensions.validator.util.WebXmlUtils.getInitParameter;
+
/**
* @author Gerhard Petracek
* @since 1.x.1
@@ -61,6 +63,9 @@ public class ExtValContext
private static final String CUSTOM_EXTVAL_CONTEXT_CLASS_NAME =
ExtValContext.class.getName().replace(".core.", ".custom.");
+ private static final String CUSTOM_EXTVAL_MODULE_CONFIGURATION_RESOLVER_CLASS_NAME =
+ ExtValModuleConfigurationResolver.class.getName().replace(".core.", ".custom.");
+
private ViolationSeverityInterpreter violationSeverityInterpreter;
private FactoryFinder factoryFinder = DefaultFactoryFinder.getInstance();
private Map<String, RendererInterceptor> rendererInterceptors =
@@ -73,6 +78,11 @@ public class ExtValContext
private Map<String, Object> globalProperties = new HashMap<String, Object>();
+ private Map<Class<? extends ExtValModuleConfiguration>, ExtValModuleConfiguration> extValConfig =
+ new ConcurrentHashMap<Class<? extends ExtValModuleConfiguration>, ExtValModuleConfiguration>();
+
+ private ExtValModuleConfigurationResolver defaultModuleConfigurationResolver;
+
private Map<StaticConfigurationNames, List<StaticConfiguration<String, String>>> staticConfigMap
= new HashMap<StaticConfigurationNames, List<StaticConfiguration<String, String>>>();
@@ -83,6 +93,30 @@ public class ExtValContext
{
this.contextHelper = new ExtValContextInternals();
this.invocationOrderAwareContextHelper = new ExtValContextInvocationOrderAwareInternals(this.contextHelper);
+
+ Object customExtValModuleConfigurationResolver =
+ ClassUtils.tryToInstantiateClassForName(CUSTOM_EXTVAL_MODULE_CONFIGURATION_RESOLVER_CLASS_NAME);
+
+ if(customExtValModuleConfigurationResolver instanceof ExtValModuleConfigurationResolver)
+ {
+ this.defaultModuleConfigurationResolver =
+ (ExtValModuleConfigurationResolver)customExtValModuleConfigurationResolver;
+ }
+
+ String customExtValModuleConfigurationResolverClassName =
+ getInitParameter(null, ExtValModuleConfigurationResolver.class.getName());
+
+ if(customExtValModuleConfigurationResolverClassName != null)
+ {
+ customExtValModuleConfigurationResolver =
+ ClassUtils.tryToInstantiateClassForName(customExtValModuleConfigurationResolverClassName);
+
+ if(customExtValModuleConfigurationResolver instanceof ExtValModuleConfigurationResolver)
+ {
+ this.defaultModuleConfigurationResolver =
+ (ExtValModuleConfigurationResolver)customExtValModuleConfigurationResolver;
+ }
+ }
}
public static ExtValContext getContext()
@@ -408,4 +442,82 @@ public class ExtValContext
{
return this.globalProperties.get(name);
}
+
+ public <T extends ExtValModuleConfiguration> T getModuleConfiguration(Class<T> targetType)
+ {
+ ExtValModuleConfiguration result = this.extValConfig.get(targetType);
+
+ //noinspection unchecked
+ return (T)result;
+ }
+
+ public boolean addModuleConfiguration(Class<? extends ExtValModuleConfiguration> key,
+ ExtValModuleConfiguration extValConfig)
+ {
+ return addModuleConfiguration(key, extValConfig, true);
+ }
+
+ public boolean addModuleConfiguration(Class<? extends ExtValModuleConfiguration> key,
+ ExtValModuleConfiguration config,
+ boolean forceOverride)
+ {
+ if (this.extValConfig.containsKey(key))
+ {
+ if (!forceOverride)
+ {
+ return false;
+ }
+
+ this.logger.info("override config for key '" + config.getClass() + "'");
+ }
+
+ //anonymous class are only supported for test-cases and
+ //there we don't need a custom config defined in the web.xml
+ if(!config.getClass().isAnonymousClass())
+ {
+ config = tryToLoadCustomConfigImplementation(config);
+ }
+
+ this.extValConfig.put(key, config);
+
+ if(JsfProjectStage.is(JsfProjectStage.Development))
+ {
+ this.logger.info("config for key [" + config.getClass() + "] added");
+ }
+
+ return true;
+ }
+
+ private ExtValModuleConfiguration tryToLoadCustomConfigImplementation(ExtValModuleConfiguration config)
+ {
+
+ Class configClass = config.getClass().getSuperclass();
+
+ if(!ExtValModuleConfiguration.class.isAssignableFrom(configClass))
+ {
+ return config;
+ }
+
+ @SuppressWarnings({"unchecked"})
+ Class<? extends ExtValModuleConfiguration> configDefinitionClass =
+ (Class<? extends ExtValModuleConfiguration>)configClass;
+
+ if(this.defaultModuleConfigurationResolver != null)
+ {
+ config = this.defaultModuleConfigurationResolver.getCustomConfiguration(configDefinitionClass);
+ }
+
+ String customConfigClassName = getInitParameter(null, configDefinitionClass.getName());
+
+ if(customConfigClassName != null)
+ {
+ Object customConfig = ClassUtils.tryToInstantiateClassForName(customConfigClassName);
+
+ if(customConfig instanceof ExtValModuleConfiguration)
+ {
+ return (ExtValModuleConfiguration)customConfig;
+ }
+ }
+ return config;
+ }
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java Wed Jul 14 12:28:59 2010
@@ -39,15 +39,15 @@ class ExtValContextInternals
{
boolean isComponentInitializationActivated()
{
- return !"true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_COMPONENT_INITIALIZATION);
+ return !ExtValCoreConfiguration.get().deactivateComponentInitialization();
}
@SuppressWarnings({"unchecked"})
- InformationProviderBean initInformationProviderBean(Map applicationMap)
+ synchronized InformationProviderBean initInformationProviderBean(Map applicationMap)
{
List<String> informationProviderBeanClassNames = new ArrayList<String>();
- informationProviderBeanClassNames.add(WebXmlParameter.CUSTOM_INFORMATION_PROVIDER_BEAN);
+ informationProviderBeanClassNames.add(ExtValCoreConfiguration.get().customInformationProviderBeanClassName());
informationProviderBeanClassNames.add(InformationProviderBean.CUSTOM_BEAN);
InformationProviderBean informationProviderBean;
@@ -72,7 +72,7 @@ class ExtValContextInternals
}
@SuppressWarnings({"unchecked"})
- void tryToInitCustomConfiguredInformationProviderBeanClassName(Map applicationMap)
+ synchronized void tryToInitCustomConfiguredInformationProviderBeanClassName(Map applicationMap)
{
InformationProviderBean bean = (InformationProviderBean) ExtValUtils.getELHelper()
.getBean(InformationProviderBean.CUSTOM_BEAN.replace(".", "_"));
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java Wed Jul 14 12:28:59 2010
@@ -273,7 +273,7 @@ class ExtValContextInvocationOrderAwareI
List<String> validationExceptionInterceptorClassNames = new ArrayList<String>();
validationExceptionInterceptorClassNames
- .add(WebXmlParameter.CUSTOM_VALIDATION_EXCEPTION_INTERCEPTOR);
+ .add(ExtValCoreConfiguration.get().customValidationExceptionInterceptorClassName());
validationExceptionInterceptorClassNames
.add(this.contextHelper.getInformationProviderBean().get(
CustomInformation.VALIDATION_EXCEPTION_INTERCEPTOR));
@@ -309,7 +309,7 @@ class ExtValContextInvocationOrderAwareI
List<String> metaDataExtractionInterceptorClassNames = new ArrayList<String>();
metaDataExtractionInterceptorClassNames
- .add(WebXmlParameter.CUSTOM_META_DATA_EXTRACTION_INTERCEPTOR);
+ .add(ExtValCoreConfiguration.get().customMetaDataExtractionInterceptorClassName());
metaDataExtractionInterceptorClassNames
.add(this.contextHelper.getInformationProviderBean().get(
CustomInformation.META_DATA_EXTRACTION_INTERCEPTOR));
@@ -338,7 +338,7 @@ class ExtValContextInvocationOrderAwareI
componentInitializers = new CopyOnWriteArrayList<ComponentInitializer>();
List<String> componentInitializerClassNames = new ArrayList<String>();
componentInitializerClassNames
- .add(WebXmlParameter.CUSTOM_COMPONENT_INITIALIZER);
+ .add(ExtValCoreConfiguration.get().customComponentInitializerClassName());
componentInitializerClassNames
.add(this.contextHelper.getInformationProviderBean().get(CustomInformation.COMPONENT_INITIALIZER));
@@ -372,7 +372,7 @@ class ExtValContextInvocationOrderAwareI
List<String> validationInterceptorClassNames = new ArrayList<String>();
validationInterceptorClassNames
- .add(WebXmlParameter.CUSTOM_PROPERTY_VALIDATION_INTERCEPTOR);
+ .add(ExtValCoreConfiguration.get().customPropertyValidationInterceptorClassName());
validationInterceptorClassNames
.add(this.contextHelper.getInformationProviderBean().get(
CustomInformation.PROPERTY_VALIDATION_INTERCEPTOR));
Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValCoreConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValCoreConfiguration.java?rev=964028&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValCoreConfiguration.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValCoreConfiguration.java Wed Jul 14 12:28:59 2010
@@ -0,0 +1,188 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.core.proxy.ProxyHelper;
+import org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererProxy;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameter;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+import java.lang.annotation.Annotation;
+import java.util.logging.Logger;
+
+/**
+ * 'custom' as prefix is used for 'optional' configurations. that means
+ * if a method returns null extval uses a different approach to find an implementation e.g. via a naming convention
+ * -> all other methods aren't allowed to return null if there is no additional rule
+ *
+ * @author Gerhard Petracek
+ * @since r4
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public abstract class ExtValCoreConfiguration implements ExtValModuleConfiguration
+{
+ private static ExtValContext extValContext = ExtValContext.getContext();
+
+ private static final Logger LOGGER = Logger.getLogger(ExtValCoreConfiguration.class.getName());
+
+ private static final String MISSING_MODULE_CONFIG_MESSAGE =
+ "no config for " + ExtValCoreConfiguration.class.getName() + " found. " +
+ "maybe the call of ExtValCoreConfig#get is triggered before the registration process." +
+ "the default config gets used.";
+
+ protected ExtValCoreConfiguration()
+ {
+ }
+
+ public static ExtValCoreConfiguration get()
+ {
+ ExtValCoreConfiguration moduleConfig = extValContext.getModuleConfiguration(ExtValCoreConfiguration.class);
+
+ if(moduleConfig == null)
+ {
+ LOGGER.fine(MISSING_MODULE_CONFIG_MESSAGE);
+ }
+ return moduleConfig != null ? moduleConfig : new DefaultExtValCoreConfiguration();
+ }
+
+ @UsageInformation(UsageCategory.INTERNAL)
+ public static boolean use(ExtValCoreConfiguration config, boolean forceOverride)
+ {
+ return extValContext.addModuleConfiguration(ExtValCoreConfiguration.class, config, forceOverride);
+ }
+
+ /*
+ * web.xml config
+ */
+ public abstract String customMessageBundleBaseName();
+
+ public abstract String customBasePackage();
+
+ public abstract String customInformationProviderBeanClassName();
+
+ public abstract String customComponentMetaDataExtractorClassName();
+
+ public abstract String customValidationParameterExtractorClassName();
+
+ public abstract String customStaticValidationStrategyMappingSource();
+
+ public abstract String customComponentInitializerClassName();
+
+ public abstract String customValidationExceptionInterceptorClassName();
+
+ public abstract String customPropertyValidationInterceptorClassName();
+
+ public abstract String customMetaDataExtractionInterceptorClassName();
+
+ /*
+ * others
+ */
+ public abstract ProxyHelper proxyHelper();
+
+ public abstract ProjectStageResolver projectStageResolver();
+
+ public abstract Class<? extends ExtValRendererProxy> rendererProxy();
+
+ /*
+ * ConstraintSource
+ */
+
+ public abstract Class<? extends Annotation> constraintSourceAnnotation();
+
+ public abstract Class<? extends Annotation> ignoreConstraintSourceAnnotation();
+
+ public abstract Class<? extends Annotation> targetPropertyAnnotation();
+
+ public abstract Class<? extends Annotation> targetPropertyIdAnnotation();
+
+ /*
+ * validation parameter
+ */
+
+ public abstract Class violationSeverity();
+
+ public abstract Class<? extends ValidationParameter> disableClientSideValidationValidationParameter();
+
+ /*
+ * name mapper
+ */
+ public abstract String customValidationStrategyToMessageResolverNameMapperClassName();
+
+ public abstract String customMetaDataToValidationStrategyNameMapperClassName();
+
+ public abstract String customValidationStrategyToMetaDataTransformerNameMapperClassName();
+
+ /*
+ * filter
+ */
+ public abstract String customMetaDataStorageFilterClassName();
+
+ /*
+ * factories
+ */
+ public abstract String customValidationStrategyFactoryClassName();
+
+ public abstract String customMessageResolverFactoryClassName();
+
+ public abstract String customComponentMetaDataExtractorFactoryClassName();
+
+ public abstract String customValidationParameterExtractorFactoryClassName();
+
+ public abstract String customValidationParameterFactoryClassName();
+
+ public abstract String customMetaDataTransformerFactoryClassName();
+
+ public abstract String customStorageManagerFactoryClassName();
+
+ public abstract String customFacesMessageFactoryClassName();
+
+ /*
+ * activate
+ */
+ public abstract boolean activateRequiredInitialization();
+
+ /*
+ * deactivate
+ */
+ //currently just used by AbstractValidationErrorMessageResolver
+ public abstract boolean deactivateDefaultConvention();
+
+ public abstract boolean deactivateDefaultNameMappers();
+
+ public abstract boolean deactivateElResolver();
+
+ public abstract boolean deactivateComponentInitialization();
+
+ public abstract boolean deactivateValidationParameters();
+
+ public abstract boolean deactivateRenderKitFactory();
+
+ //there is nothing like DEACTIVATE_DEFAULT_VALIDATION_INTERCEPTOR
+ //use ExtValContext.getContext().denyRendererInterceptor(...) within an extval-StartupListener
+
+ public abstract boolean deactivateRequiredAttributeSupport();
+
+ /*
+ * spec parameters
+ */
+ public abstract boolean interpretEmptyStringSubmittedValuesAsNull();
+
+ public abstract boolean validateEmptyFields();
+}
Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfiguration.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfiguration.java?rev=964028&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfiguration.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfiguration.java Wed Jul 14 12:28:59 2010
@@ -0,0 +1,31 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+/**
+ * @author Gerhard Petracek
+ * @since r4
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public interface ExtValModuleConfiguration
+{
+}
Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfigurationResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfigurationResolver.java?rev=964028&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfigurationResolver.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValModuleConfigurationResolver.java Wed Jul 14 12:28:59 2010
@@ -0,0 +1,32 @@
+/*
+ * 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;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+/**
+ * @author Gerhard Petracek
+ * @since r4
+ */
+@UsageInformation({UsageCategory.API, UsageCategory.CUSTOMIZABLE})
+public interface ExtValModuleConfigurationResolver
+{
+ <T extends ExtValModuleConfiguration> ExtValModuleConfiguration getCustomConfiguration(Class<T> configType);
+}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java Wed Jul 14 12:28:59 2010
@@ -19,11 +19,11 @@
package org.apache.myfaces.extensions.validator.core;
import org.apache.myfaces.extensions.validator.ExtValInformation;
+import org.apache.myfaces.extensions.validator.util.NullValueAwareConcurrentHashMap;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import java.util.Map;
-import java.util.HashMap;
import java.util.logging.Logger;
/**
@@ -55,11 +55,12 @@ public class InformationProviderBean
applyCustomValues(this.customizableInfos);
}
- private Map<CustomInformation, String> customizableInfos = new HashMap<CustomInformation, String>();
+ private Map<CustomInformation, String> customizableInfos =
+ new NullValueAwareConcurrentHashMap<CustomInformation, String>(String.class);
private void setupCustomizableInformation()
{
- String basePackage = WebXmlParameter.CUSTOM_BASE_PACKAGE;
+ String basePackage = ExtValCoreConfiguration.get().customBasePackage();
if (basePackage == null)
{
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProjectStage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProjectStage.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProjectStage.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProjectStage.java Wed Jul 14 12:28:59 2010
@@ -56,12 +56,11 @@ public class ProjectStage
private static ProjectStageName getCurrentProjectStage()
{
//set ProjectStageResolver to null to tweak the performance
- Object projectStageResolver = ExtValContext.getContext()
- .getGlobalProperty(ProjectStageResolver.class.getName());
+ ProjectStageResolver projectStageResolver = ExtValCoreConfiguration.get().projectStageResolver();
- if(projectStageResolver instanceof ProjectStageResolver)
+ if(projectStageResolver != null)
{
- return ((ProjectStageResolver)projectStageResolver).getCurrentProjectStage().getValue();
+ return (projectStageResolver).getCurrentProjectStage().getValue();
}
return ExtValUtils.getDefaultStageName();
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java Wed Jul 14 12:28:59 2010
@@ -29,7 +29,7 @@ import org.apache.myfaces.extensions.val
* @since 1.x.1
*/
@UsageInformation(UsageCategory.INTERNAL)
-public interface WebXmlParameter
+interface WebXmlParameter
{
/*
* misc
@@ -121,10 +121,6 @@ public interface WebXmlParameter
/*
* deactivate
*/
- @Deprecated
- static final String DEACTIVATE_RENDERKIT = WebXmlUtils
- .getInitParameter("DEACTIVATE_RENDERKIT");
-
//currently just used by AbstractValidationErrorMessageResolver
static final String DEACTIVATE_DEFAULT_CONVENTION = WebXmlUtils
.getInitParameter("DEACTIVATE_DEFAULT_CONVENTION");
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java Wed Jul 14 12:28:59 2010
@@ -24,8 +24,8 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
import org.apache.myfaces.extensions.validator.util.ProxyUtils;
-import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import org.apache.myfaces.extensions.validator.ExtValInformation;
import javax.el.ValueExpression;
@@ -54,7 +54,7 @@ import java.util.logging.Logger;
@UsageInformation(UsageCategory.INTERNAL)
public class DefaultELHelper implements ELHelper
{
- private static final String DEACTIVATE_EL_RESOLVER = WebXmlParameter.DEACTIVATE_EL_RESOLVER;
+ private static final boolean DEACTIVATE_EL_RESOLVER = ExtValCoreConfiguration.get().deactivateElResolver();
protected final Logger logger = Logger.getLogger(getClass().getName());
@@ -143,7 +143,7 @@ public class DefaultELHelper implements
public PropertyDetails getPropertyDetailsOfValueBinding(UIComponent uiComponent)
{
- if("true".equalsIgnoreCase(DEACTIVATE_EL_RESOLVER))
+ if(DEACTIVATE_EL_RESOLVER)
{
return getPropertyDetailsViaReflectionFallback(uiComponent);
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java Wed Jul 14 12:28:59 2010
@@ -23,9 +23,9 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.internal.ToDo;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.core.metadata.extractor.DefaultComponentMetaDataExtractorFactory;
-import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.CustomInformation;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import org.apache.myfaces.extensions.validator.core.storage.DefaultStorageManagerFactory;
import org.apache.myfaces.extensions.validator.core.el.DefaultELHelperFactory;
import org.apache.myfaces.extensions.validator.core.renderkit.DefaultRenderKitWrapperFactory;
@@ -140,7 +140,7 @@ public class DefaultFactoryFinder implem
List<String> metaDataExtractorFactoryClassNames = new ArrayList<String>();
- metaDataExtractorFactoryClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY);
+ metaDataExtractorFactoryClassNames.add(getCoreConfig().customComponentMetaDataExtractorFactoryClassName());
metaDataExtractorFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.COMPONENT_META_DATA_EXTRACTOR_FACTORY));
@@ -165,7 +165,7 @@ public class DefaultFactoryFinder implem
List<String> validationStrategyFactoryClassNames = new ArrayList<String>();
- validationStrategyFactoryClassNames.add(WebXmlParameter.CUSTOM_VALIDATION_STRATEGY_FACTORY);
+ validationStrategyFactoryClassNames.add(getCoreConfig().customValidationStrategyFactoryClassName());
validationStrategyFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.VALIDATION_STRATEGY_FACTORY));
@@ -190,7 +190,7 @@ public class DefaultFactoryFinder implem
Object factory = null;
List<String> messageResolverFactoryClassNames = new ArrayList<String>();
- messageResolverFactoryClassNames.add(WebXmlParameter.CUSTOM_MESSAGE_RESOLVER_FACTORY);
+ messageResolverFactoryClassNames.add(getCoreConfig().customMessageResolverFactoryClassName());
messageResolverFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.MESSAGE_RESOLVER_FACTORY));
@@ -216,7 +216,7 @@ public class DefaultFactoryFinder implem
Object factory = null;
List<String> metaDataTransformerFactoryClassNames = new ArrayList<String>();
- metaDataTransformerFactoryClassNames.add(WebXmlParameter.CUSTOM_META_DATA_TRANSFORMER_FACTORY );
+ metaDataTransformerFactoryClassNames.add(getCoreConfig().customMetaDataTransformerFactoryClassName());
metaDataTransformerFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.META_DATA_TRANSFORMER_FACTORY));
@@ -247,7 +247,7 @@ public class DefaultFactoryFinder implem
List<String> facesMessageFactoryClassNames = new ArrayList<String>();
- facesMessageFactoryClassNames.add(WebXmlParameter.CUSTOM_FACES_MESSAGE_FACTORY);
+ facesMessageFactoryClassNames.add(getCoreConfig().customFacesMessageFactoryClassName());
facesMessageFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.FACES_MESSAGE_FACTORY));
@@ -285,7 +285,7 @@ public class DefaultFactoryFinder implem
List<String> validationParameterExtractorFactoryClassNames = new ArrayList<String>();
validationParameterExtractorFactoryClassNames
- .add(WebXmlParameter.CUSTOM_VALIDATION_PARAMETER_EXTRACTOR_FACTORY);
+ .add(getCoreConfig().customValidationParameterExtractorFactoryClassName());
validationParameterExtractorFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.VALIDATION_PARAMETER_EXTRACTOR_FACTORY));
@@ -310,7 +310,7 @@ public class DefaultFactoryFinder implem
List<String> storageManagerFactoryClassNames = new ArrayList<String>();
storageManagerFactoryClassNames
- .add(WebXmlParameter.CUSTOM_STORAGE_MANAGER_FACTORY);
+ .add(getCoreConfig().customStorageManagerFactoryClassName());
storageManagerFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.STORAGE_MANAGER_FACTORY));
@@ -335,7 +335,7 @@ public class DefaultFactoryFinder implem
List<String> validationParameterFactoryClassNames = new ArrayList<String>();
validationParameterFactoryClassNames
- .add(WebXmlParameter.CUSTOM_VALIDATION_PARAMETER_FACTORY);
+ .add(getCoreConfig().customValidationParameterFactoryClassName());
validationParameterFactoryClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.VALIDATION_PARAMETER_FACTORY));
@@ -353,4 +353,8 @@ public class DefaultFactoryFinder implem
return factory;
}
+ private ExtValCoreConfiguration getCoreConfig()
+ {
+ return ExtValCoreConfiguration.get();
+ }
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java Wed Jul 14 12:28:59 2010
@@ -21,8 +21,8 @@ package org.apache.myfaces.extensions.va
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
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.ExtValCoreConfiguration;
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;
@@ -254,7 +254,7 @@ public abstract class AbstractValidation
private boolean isComponentInitializationDeactivated()
{
- return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_COMPONENT_INITIALIZATION);
+ return ExtValCoreConfiguration.get().deactivateComponentInitialization();
}
protected boolean recordProcessedInformation()
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java Wed Jul 14 12:28:59 2010
@@ -18,9 +18,9 @@
*/
package org.apache.myfaces.extensions.validator.core.metadata.extractor;
-import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.CustomInformation;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import org.apache.myfaces.extensions.validator.util.ClassUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -71,7 +71,7 @@ public class DefaultComponentMetaDataExt
{
List<String> metaDataExtractorClassNames = new ArrayList<String>();
- metaDataExtractorClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR);
+ metaDataExtractorClassNames.add(ExtValCoreConfiguration.get().customComponentMetaDataExtractorClassName());
metaDataExtractorClassNames
.add(ExtValContext.getContext().getInformationProviderBean()
.get(CustomInformation.COMPONENT_META_DATA_EXTRACTOR));
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper.java Wed Jul 14 12:28:59 2010
@@ -18,8 +18,8 @@
*/
package org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper;
-import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
import org.apache.myfaces.extensions.validator.core.InvocationOrder;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.core.mapper.AbstractCustomNameMapper;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -39,6 +39,6 @@ public class CustomConfiguredValidationS
{
protected String getCustomNameMapperClassName()
{
- return WebXmlParameter.CUSTOM_VALIDATION_STRATEGY_TO_META_DATA_TRANSFORMER_NAME_MAPPER;
+ return ExtValCoreConfiguration.get().customValidationStrategyToMetaDataTransformerNameMapperClassName();
}
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValLazyRendererProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValLazyRendererProxy.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValLazyRendererProxy.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValLazyRendererProxy.java Wed Jul 14 12:28:59 2010
@@ -20,8 +20,7 @@ package org.apache.myfaces.extensions.va
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
-import org.apache.myfaces.extensions.validator.core.ExtValContext;
-import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import javax.faces.context.FacesContext;
import javax.faces.render.Renderer;
@@ -109,17 +108,10 @@ class ExtValLazyRendererProxy extends Re
private Renderer getLazyRenderer()
{
- String proxyClassName = (String) ExtValContext.getContext().getGlobalProperty(ExtValRendererProxy.KEY);
+ Class<? extends Renderer> targetClass = ExtValCoreConfiguration.get().rendererProxy();
- if(proxyClassName != null && !proxyClassName.endsWith(getClass().getName()))
+ if(targetClass != null)
{
- Class targetClass = ClassUtils.tryToLoadClassForName(proxyClassName);
-
- if(targetClass == null)
- {
- throw new IllegalStateException("a custom invalid renderer proxy is configured: " + proxyClassName);
- }
-
Class[] argClasses = new Class[1];
argClasses[0] = Renderer.class;
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKit.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKit.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKit.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKit.java Wed Jul 14 12:28:59 2010
@@ -68,8 +68,6 @@ public class ExtValRenderKit extends Ren
return renderer instanceof ExtValRendererWrapper ? renderer : createWrapper(renderer);
}
- this.logger.finest("no renderer found for family " + family + " and type " + rendererType);
-
return renderer;
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKitFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKitFactory.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKitFactory.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRenderKitFactory.java Wed Jul 14 12:28:59 2010
@@ -21,7 +21,7 @@ package org.apache.myfaces.extensions.va
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
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.ExtValCoreConfiguration;
import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
import org.apache.myfaces.extensions.validator.util.ClassUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -99,7 +99,7 @@ public class ExtValRenderKitFactory exte
if(this.defaultRenderKitWrapperFactory.isApplicationInitialized())
{
- this.isDeactivated = isRenderKitFactoryDeactivatedViaWebXml();
+ this.isDeactivated = isRenderKitFactoryDeactivated();
}
else
{
@@ -149,9 +149,9 @@ public class ExtValRenderKitFactory exte
return this.wrapped.getRenderKitIds();
}
- private boolean isRenderKitFactoryDeactivatedViaWebXml()
+ private boolean isRenderKitFactoryDeactivated()
{
- return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_RENDER_KIT_FACTORY);
+ return ExtValCoreConfiguration.get().deactivateRenderKitFactory();
}
private boolean isRenderKitFactoryDeactivatedViaVMParameter()
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererWrapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererWrapper.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererWrapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererWrapper.java Wed Jul 14 12:28:59 2010
@@ -22,10 +22,10 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.core.interceptor.RendererInterceptor;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import org.apache.myfaces.extensions.validator.core.renderkit.exception.SkipBeforeInterceptorsException;
import org.apache.myfaces.extensions.validator.core.renderkit.exception.SkipAfterInterceptorsException;
import org.apache.myfaces.extensions.validator.core.renderkit.exception.SkipRendererDelegationException;
-import org.apache.myfaces.extensions.validator.util.ClassUtils;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -59,19 +59,9 @@ public class ExtValRendererWrapper exten
public ExtValRendererWrapper(Renderer renderer)
{
- String proxyClassName = (String)ExtValContext.getContext().getGlobalProperty(ExtValRendererProxy.KEY);
+ Class<? extends ExtValRendererProxy> proxyClass = ExtValCoreConfiguration.get().rendererProxy();
- if(proxyClassName == null)
- {
- logger.finest("no extval renderer proxy configured");
-
- this.wrapped = new ExtValLazyRendererProxy(renderer);
- return;
- }
-
- Class targetClass = ClassUtils.tryToLoadClassForName(proxyClassName);
-
- if(targetClass == null)
+ if(proxyClass == null)
{
logger.finest("no extval renderer proxy configured");
@@ -84,7 +74,7 @@ public class ExtValRendererWrapper exten
try
{
- Constructor constructor = targetClass.getConstructor(argClasses);
+ Constructor constructor = proxyClass.getConstructor(argClasses);
this.wrapped = (Renderer)constructor.newInstance(renderer);
}
catch (Throwable t)
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/AbstractStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/AbstractStartupListener.java?rev=964028&r1=964027&r2=964028&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/AbstractStartupListener.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/AbstractStartupListener.java Wed Jul 14 12:28:59 2010
@@ -25,7 +25,7 @@ import org.apache.myfaces.extensions.val
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.ProjectStageResolver;
-import org.apache.myfaces.extensions.validator.core.DefaultProjectStageResolver;
+import org.apache.myfaces.extensions.validator.core.ExtValCoreConfiguration;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
@@ -76,6 +76,8 @@ public abstract class AbstractStartupLis
{
if(!isStartupListenerDeactivated())
{
+ initModuleConfig();
+
initProjectStageResolver();
init();
@@ -109,6 +111,11 @@ public abstract class AbstractStartupLis
}
}
+ protected void initModuleConfig()
+ {
+ //override if needed
+ }
+
public PhaseId getPhaseId()
{
return PhaseId.RESTORE_VIEW;
@@ -132,7 +139,7 @@ public abstract class AbstractStartupLis
protected ProjectStageResolver getProjectStageResolver()
{
- return new DefaultProjectStageResolver();
+ return ExtValCoreConfiguration.get().projectStageResolver();
}
protected abstract void init();