You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/03/14 18:36:06 UTC
[13/24] struts git commit: Merge branch 'injectable-context' into
localized-bean
Merge branch 'injectable-context' into localized-bean
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/d1fbf6a8
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/d1fbf6a8
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/d1fbf6a8
Branch: refs/heads/master
Commit: d1fbf6a8972908fac3a41ec0e2756fe4eec1afb6
Parents: 6c19875 8852e3d
Author: Lukasz Lenart <lu...@apache.org>
Authored: Mon Mar 13 08:20:42 2017 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Mon Mar 13 08:20:42 2017 +0100
----------------------------------------------------------------------
.../com/opensymphony/xwork2/ActionSupport.java | 7 +-
.../xwork2/TextProviderFactory.java | 29 ++--
.../providers/XWorkConfigurationProvider.java | 4 +
.../AnnotationActionValidatorManager.java | 8 +-
.../DefaultActionValidatorManager.java | 13 +-
.../validator/DelegatingValidatorContext.java | 33 +----
.../validator/validators/ValidatorSupport.java | 10 +-
.../validators/VisitorFieldValidator.java | 25 +++-
.../org/apache/struts2/StrutsConstants.java | 2 +
.../org/apache/struts2/components/I18n.java | 5 +-
.../config/DefaultBeanSelectionProvider.java | 2 +
.../interceptor/FileUploadInterceptor.java | 8 +-
core/src/main/resources/struts-default.xml | 1 +
.../opensymphony/xwork2/ActionSupportTest.java | 6 +-
.../validator/ActionValidatorManagerTest.java | 34 +++--
.../AnnotationActionValidatorManagerTest.java | 20 ++-
.../ConversionErrorFieldValidatorTest.java | 5 +-
.../validator/DoubleRangeValidatorTest.java | 12 +-
.../xwork2/validator/DummyValidatorContext.java | 144 ++++++++++++++++++
.../xwork2/validator/EmailValidatorTest.java | 13 +-
.../validator/ExpressionValidatorTest.java | 10 +-
.../validator/GenericValidatorContext.java | 146 -------------------
.../validator/RegexFieldValidatorTest.java | 20 ++-
...onversionErrorFieldValidatorSupportTest.java | 11 +-
.../validator/SimpleActionValidationTest.java | 2 +-
.../StringLengthFieldValidatorTest.java | 3 +-
.../xwork2/validator/StringValidatorTest.java | 21 ++-
.../xwork2/validator/URLValidatorTest.java | 15 +-
.../validator/VisitorFieldValidatorTest.java | 7 +-
.../AppendingValidatorContextTest.java | 25 +++-
.../validators/DateRangeFieldValidatorTest.java | 12 +-
.../validators/IntRangeFieldValidatorTest.java | 16 +-
.../validators/LongRangeFieldValidatorTest.java | 16 +-
.../validators/RequiredStringValidatorTest.java | 14 +-
.../ShortRangeFieldValidatorTest.java | 16 +-
.../apache/struts2/views/jsp/TextTagTest.java | 4 +-
.../struts2/views/jsp/ui/TooltipTest.java | 9 +-
.../com/opensymphony/xwork2/TestBean.properties | 2 +-
.../interceptor/BeanValidationInterceptor.java | 10 +-
.../interceptor/OValValidationInterceptor.java | 11 +-
.../struts2/tiles/I18NAttributeEvaluator.java | 7 +-
41 files changed, 442 insertions(+), 316 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/d1fbf6a8/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
----------------------------------------------------------------------
diff --cc core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
index de0b963,ff27731..2adab77
--- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java
@@@ -178,9 -178,11 +179,12 @@@ public class XWorkConfigurationProvide
.factory(NullHandler.class, Object.class.getName(), InstantiatingNullHandler.class, Scope.SINGLETON)
.factory(ActionValidatorManager.class, AnnotationActionValidatorManager.class, Scope.SINGLETON)
.factory(ActionValidatorManager.class, "no-annotations", DefaultActionValidatorManager.class, Scope.SINGLETON)
+
+ .factory(TextProviderFactory.class, Scope.SINGLETON)
+ .factory(LocalizedTextUtil.class, LocalizedTextUtil.class, Scope.SINGLETON)
.factory(TextProvider.class, "system", DefaultTextProvider.class, Scope.SINGLETON)
.factory(TextProvider.class, TextProviderSupport.class, Scope.SINGLETON)
+
.factory(LocaleProvider.class, DefaultLocaleProvider.class, Scope.SINGLETON)
.factory(OgnlUtil.class, Scope.SINGLETON)
.factory(CollectionConverter.class, Scope.SINGLETON)
http://git-wip-us.apache.org/repos/asf/struts/blob/d1fbf6a8/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
----------------------------------------------------------------------
diff --cc core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
index e35d7a8,79507bb..90812bd
--- a/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
+++ b/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java
@@@ -71,13 -68,10 +68,13 @@@ public class DelegatingValidatorContex
* the validation context are created based on the class.
*
* @param clazz the class to initialize the context with.
+ *
+ * @deprecated will be removed, do not use!
*/
+ @Deprecated
public DelegatingValidatorContext(Class clazz) {
localeProvider = new ActionContextLocaleProvider();
- textProvider = new TextProviderFactory().createInstance(clazz, localeProvider);
+ textProvider = new TextProviderFactory().createInstance(clazz);
validationAware = new LoggingValidationAware(clazz);
}
http://git-wip-us.apache.org/repos/asf/struts/blob/d1fbf6a8/core/src/main/java/org/apache/struts2/StrutsConstants.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/struts2/StrutsConstants.java
index 99eb18e,7ae2a5f..3d898ce
--- a/core/src/main/java/org/apache/struts2/StrutsConstants.java
+++ b/core/src/main/java/org/apache/struts2/StrutsConstants.java
@@@ -307,5 -307,5 +307,7 @@@ public final class StrutsConstants
public static final String STRUTS_SMI_METHOD_REGEX = "struts.strictMethodInvocation.methodRegex";
+ public static final String STRUTS_TEXT_PROVIDER_FACTORY = "struts.textProviderFactory";
++
+ public static final String STRUTS_LOCALIZED_TEXT_PROVIDER = "struts.localizedTextProvider";
}
http://git-wip-us.apache.org/repos/asf/struts/blob/d1fbf6a8/core/src/main/java/org/apache/struts2/components/I18n.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/d1fbf6a8/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
----------------------------------------------------------------------
diff --cc core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
index b417333,7835185..d048f5f
--- a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
@@@ -387,9 -388,9 +388,10 @@@ public class DefaultBeanSelectionProvid
alias(TypeConverterHolder.class, StrutsConstants.STRUTS_CONVERTER_HOLDER, builder, props);
alias(TextProvider.class, StrutsConstants.STRUTS_XWORKTEXTPROVIDER, builder, props, Scope.PROTOTYPE);
+ alias(TextProviderFactory.class, StrutsConstants.STRUTS_TEXT_PROVIDER_FACTORY, builder, props, Scope.PROTOTYPE);
-
alias(LocaleProvider.class, StrutsConstants.STRUTS_LOCALE_PROVIDER, builder, props);
+ alias(LocalizedTextUtil.class, StrutsConstants.STRUTS_LOCALIZED_TEXT_PROVIDER, builder, props);
+
alias(ActionProxyFactory.class, StrutsConstants.STRUTS_ACTIONPROXYFACTORY, builder, props);
alias(ObjectTypeDeterminer.class, StrutsConstants.STRUTS_OBJECTTYPEDETERMINER, builder, props);
alias(ActionMapper.class, StrutsConstants.STRUTS_MAPPER_CLASS, builder, props);
http://git-wip-us.apache.org/repos/asf/struts/blob/d1fbf6a8/core/src/main/resources/struts-default.xml
----------------------------------------------------------------------
diff --cc core/src/main/resources/struts-default.xml
index d8e80f1,a870c4c..0efdfba
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@@ -130,7 -130,7 +130,8 @@@
<bean type="com.opensymphony.xwork2.conversion.impl.NumberConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.NumberConverter" scope="singleton"/>
<bean type="com.opensymphony.xwork2.conversion.impl.StringConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.StringConverter" scope="singleton"/>
+ <bean type="com.opensymphony.xwork2.TextProviderFactory" name="struts" class="com.opensymphony.xwork2.TextProviderFactory" scope="prototype" />
+ <bean type="com.opensymphony.xwork2.util.LocalizedTextUtil" name="struts" class="com.opensymphony.xwork2.util.LocalizedTextUtil" scope="singleton" />
<bean type="com.opensymphony.xwork2.TextProvider" name="struts" class="com.opensymphony.xwork2.TextProviderSupport" scope="prototype" />
<bean type="com.opensymphony.xwork2.LocaleProvider" name="struts" class="com.opensymphony.xwork2.DefaultLocaleProvider" scope="singleton" />
http://git-wip-us.apache.org/repos/asf/struts/blob/d1fbf6a8/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java
----------------------------------------------------------------------
diff --cc core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java
index 0000000,9d3400f..e0f5f33
mode 000000,100644..100644
--- a/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java
+++ b/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java
@@@ -1,0 -1,145 +1,144 @@@
+ /*
+ * Copyright 2002-2003,2009 The Apache Software Foundation.
+ *
+ * Licensed 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 com.opensymphony.xwork2.validator;
+
+ import com.opensymphony.xwork2.TextProviderFactory;
+
+ import java.util.*;
+
+
+ /**
+ * Dummy validator context to use to capture error messages.
+ *
+ * @author Mark Woon
+ * @author Matthew Payne
+ */
+ public class DummyValidatorContext extends DelegatingValidatorContext {
+
+ private Collection<String> actionErrors;
+ private Collection<String> actionMessages;
+ private Map<String, List<String>> fieldErrors;
+
+
+ public DummyValidatorContext(Object object, TextProviderFactory tpf) {
+ super(object, tpf);
+ }
+
-
+ @Override
+ public synchronized void setActionErrors(Collection<String> errorMessages) {
+ this.actionErrors = errorMessages;
+ }
+
+ @Override
+ public synchronized Collection<String> getActionErrors() {
+ return new ArrayList<>(internalGetActionErrors());
+ }
+
+ @Override
+ public synchronized void setActionMessages(Collection<String> messages) {
+ this.actionMessages = messages;
+ }
+
+ @Override
+ public synchronized Collection<String> getActionMessages() {
+ return new ArrayList<String>(internalGetActionMessages());
+ }
+
+ @Override
+ public synchronized void setFieldErrors(Map<String, List<String>> errorMap) {
+ this.fieldErrors = errorMap;
+ }
+
+ /**
+ * Get the field specific errors.
+ *
+ * @return an unmodifiable Map with errors mapped from fieldname (String) to Collection of String error messages
+ */
+ @Override
+ public synchronized Map<String, List<String>> getFieldErrors() {
+ return new HashMap<String, List<String>>(internalGetFieldErrors());
+ }
+
+ @Override
+ public synchronized void addActionError(String anErrorMessage) {
+ internalGetActionErrors().add(anErrorMessage);
+ }
+
+ /**
+ * Add an Action level message to this Action
+ */
+ @Override
+ public void addActionMessage(String aMessage) {
+ internalGetActionMessages().add(aMessage);
+ }
+
+ @Override
+ public synchronized void addFieldError(String fieldName, String errorMessage) {
+ final Map<String, List<String>> errors = internalGetFieldErrors();
+ List<String> thisFieldErrors = errors.get(fieldName);
+
+ if (thisFieldErrors == null) {
+ thisFieldErrors = new ArrayList<>();
+ errors.put(fieldName, thisFieldErrors);
+ }
+
+ thisFieldErrors.add(errorMessage);
+ }
+
+ @Override
+ public synchronized boolean hasActionErrors() {
+ return (actionErrors != null) && !actionErrors.isEmpty();
+ }
+
+ /**
+ * Note that this does not have the same meaning as in WW 1.x
+ *
+ * @return (hasActionErrors() || hasFieldErrors())
+ */
+ @Override
+ public synchronized boolean hasErrors() {
+ return (hasActionErrors() || hasFieldErrors());
+ }
+
+ @Override
+ public synchronized boolean hasFieldErrors() {
+ return (fieldErrors != null) && !fieldErrors.isEmpty();
+ }
+
+ private Collection<String> internalGetActionErrors() {
+ if (actionErrors == null) {
+ actionErrors = new ArrayList<>();
+ }
+
+ return actionErrors;
+ }
+
+ private Collection<String> internalGetActionMessages() {
+ if (actionMessages == null) {
+ actionMessages = new ArrayList<>();
+ }
+
+ return actionMessages;
+ }
+
+ private Map<String, List<String>> internalGetFieldErrors() {
+ if (fieldErrors == null) {
+ fieldErrors = new HashMap<>();
+ }
+
+ return fieldErrors;
+ }
+ }