From 4f46f151844bcef39cd631a6fb1cd781fd34224a Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Thu, 16 Mar 2017 14:39:06 +0100 Subject: [PATCH 01/15] Adds missing class header with license --- .../xwork2/DefaultLocaleProvider.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/src/main/java/com/opensymphony/xwork2/DefaultLocaleProvider.java b/core/src/main/java/com/opensymphony/xwork2/DefaultLocaleProvider.java index 19c8f5dc2c..7fbc2bc382 100644 --- a/core/src/main/java/com/opensymphony/xwork2/DefaultLocaleProvider.java +++ b/core/src/main/java/com/opensymphony/xwork2/DefaultLocaleProvider.java @@ -1,3 +1,18 @@ +/* + * Copyright 2002-2006,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; import com.opensymphony.xwork2.util.DefaultLocalizedTextProvider; From 9376bb0ca16595cac0a1d03fb7b4fa55ab66a8f3 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Thu, 16 Mar 2017 14:43:07 +0100 Subject: [PATCH 02/15] Renames TextProviderFactory into StrutsTextProviderFactory --- ...roviderFactory.java => StrutsTextProviderFactory.java} | 2 +- .../config/providers/XWorkConfigurationProvider.java | 6 ++---- .../validator/AnnotationActionValidatorManager.java | 4 ++-- .../xwork2/validator/DefaultActionValidatorManager.java | 6 +++--- .../xwork2/validator/DelegatingValidatorContext.java | 6 +++--- .../xwork2/validator/validators/ValidatorSupport.java | 6 +++--- .../src/main/java/org/apache/struts2/components/I18n.java | 4 ++-- .../struts2/config/DefaultBeanSelectionProvider.java | 4 ++-- .../apache/struts2/interceptor/FileUploadInterceptor.java | 2 +- core/src/main/resources/struts-default.xml | 2 +- .../opensymphony/xwork2/CompositeTextProviderTest.java | 2 +- .../validator/AnnotationActionValidatorManagerTest.java | 6 +++--- .../validator/ConversionErrorFieldValidatorTest.java | 4 ++-- .../xwork2/validator/DoubleRangeValidatorTest.java | 4 ++-- .../xwork2/validator/DummyValidatorContext.java | 4 ++-- .../opensymphony/xwork2/validator/EmailValidatorTest.java | 6 +++--- .../xwork2/validator/ExpressionValidatorTest.java | 4 ++-- .../xwork2/validator/RegexFieldValidatorTest.java | 6 +++--- ...epopulateConversionErrorFieldValidatorSupportTest.java | 4 ++-- .../xwork2/validator/SimpleActionValidationTest.java | 2 +- .../xwork2/validator/StringLengthFieldValidatorTest.java | 4 ++-- .../xwork2/validator/StringValidatorTest.java | 6 +++--- .../opensymphony/xwork2/validator/URLValidatorTest.java | 6 +++--- .../validators/AppendingValidatorContextTest.java | 4 ++-- .../validator/validators/DateRangeFieldValidatorTest.java | 6 +++--- .../validator/validators/IntRangeFieldValidatorTest.java | 6 +++--- .../validator/validators/LongRangeFieldValidatorTest.java | 6 +++--- .../validator/validators/RequiredStringValidatorTest.java | 6 +++--- .../validators/ShortRangeFieldValidatorTest.java | 6 +++--- .../validation/interceptor/BeanValidationInterceptor.java | 6 +++--- .../oval/interceptor/OValValidationInterceptor.java | 6 +++--- .../org/apache/struts2/tiles/I18NAttributeEvaluator.java | 8 ++------ 32 files changed, 74 insertions(+), 80 deletions(-) rename core/src/main/java/com/opensymphony/xwork2/{TextProviderFactory.java => StrutsTextProviderFactory.java} (98%) diff --git a/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java similarity index 98% rename from core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java rename to core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java index 4d55d6c0ae..c5123af86e 100644 --- a/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java @@ -25,7 +25,7 @@ * @author Oleg Gorobets * @author Rene Gielen */ -public class TextProviderFactory { +public class StrutsTextProviderFactory { private TextProvider textProvider; private LocaleProviderFactory localeProviderFactory; diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java index 5c912e1fce..d29cf0ef1b 100644 --- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java +++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java @@ -4,7 +4,7 @@ import com.opensymphony.xwork2.DefaultActionProxyFactory; import com.opensymphony.xwork2.DefaultLocaleProviderFactory; import com.opensymphony.xwork2.LocaleProviderFactory; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.factory.DefaultUnknownHandlerFactory; import com.opensymphony.xwork2.factory.UnknownHandlerFactory; import com.opensymphony.xwork2.ognl.accessor.HttpParametersPropertyAccessor; @@ -12,13 +12,11 @@ import com.opensymphony.xwork2.security.AcceptedPatternsChecker; import com.opensymphony.xwork2.security.DefaultAcceptedPatternsChecker; import com.opensymphony.xwork2.security.DefaultExcludedPatternsChecker; -import com.opensymphony.xwork2.DefaultLocaleProvider; import com.opensymphony.xwork2.DefaultTextProvider; import com.opensymphony.xwork2.DefaultUnknownHandlerManager; import com.opensymphony.xwork2.security.ExcludedPatternsChecker; import com.opensymphony.xwork2.FileManager; import com.opensymphony.xwork2.FileManagerFactory; -import com.opensymphony.xwork2.LocaleProvider; import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.TextProvider; import com.opensymphony.xwork2.TextProviderSupport; @@ -183,7 +181,7 @@ public void register(ContainerBuilder builder, LocatableProperties props) .factory(ActionValidatorManager.class, AnnotationActionValidatorManager.class, Scope.SINGLETON) .factory(ActionValidatorManager.class, "no-annotations", DefaultActionValidatorManager.class, Scope.SINGLETON) - .factory(TextProviderFactory.class, Scope.SINGLETON) + .factory(StrutsTextProviderFactory.class, Scope.SINGLETON) .factory(LocalizedTextProvider.class, DefaultLocalizedTextProvider.class, Scope.SINGLETON) .factory(TextProvider.class, "system", DefaultTextProvider.class, Scope.SINGLETON) .factory(TextProvider.class, TextProviderSupport.class, Scope.SINGLETON) diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java index cd6fa4e857..2e0fc3022e 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java @@ -52,7 +52,7 @@ public class AnnotationActionValidatorManager implements ActionValidatorManager private ValidatorFileParser validatorFileParser; private FileManager fileManager; private boolean reloadingConfigs; - private TextProviderFactory textProviderFactory; + private StrutsTextProviderFactory textProviderFactory; @Inject public void setValidatorFactory(ValidatorFactory fac) { @@ -75,7 +75,7 @@ public void setReloadingConfigs(String reloadingConfigs) { } @Inject - public void setTextProviderFactory(TextProviderFactory textProviderFactory) { + public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java index 48d552a010..85237c9c0b 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java @@ -18,7 +18,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.FileManager; import com.opensymphony.xwork2.FileManagerFactory; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkConstants; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.ClassLoaderUtil; @@ -63,7 +63,7 @@ public class DefaultActionValidatorManager implements ActionValidatorManager { private ValidatorFileParser validatorFileParser; private FileManager fileManager; private boolean reloadingConfigs; - private TextProviderFactory textProviderFactory; + private StrutsTextProviderFactory textProviderFactory; @Inject public void setValidatorFileParser(ValidatorFileParser parser) { @@ -86,7 +86,7 @@ public void setReloadingConfigs(String reloadingConfigs) { } @Inject - public void setTextProviderFactory(TextProviderFactory textProviderFactory) { + public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java b/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java index b8921e9162..3c75e2b547 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java @@ -57,7 +57,7 @@ public DelegatingValidatorContext(ValidationAware validationAware, TextProvider * * @param object the object to use for validation (usually an Action). */ - public DelegatingValidatorContext(Object object, TextProviderFactory textProviderFactory) { + public DelegatingValidatorContext(Object object, StrutsTextProviderFactory textProviderFactory) { this.localeProvider = makeLocaleProvider(object); this.validationAware = makeValidationAware(object); this.textProvider = makeTextProvider(object, textProviderFactory); @@ -74,7 +74,7 @@ public DelegatingValidatorContext(Object object, TextProviderFactory textProvide @Deprecated public DelegatingValidatorContext(Class clazz) { localeProvider = new ActionContextLocaleProvider(); - textProvider = new TextProviderFactory().createInstance(clazz); + textProvider = new StrutsTextProviderFactory().createInstance(clazz); validationAware = new LoggingValidationAware(clazz); } @@ -196,7 +196,7 @@ public boolean hasFieldErrors() { return validationAware.hasFieldErrors(); } - public TextProvider makeTextProvider(Object object, TextProviderFactory textProviderFactory) { + public TextProvider makeTextProvider(Object object, StrutsTextProviderFactory textProviderFactory) { // the object argument passed through here will most probably be an ActionSupport descendant which does // implements TextProvider. if (object != null && object instanceof DelegatingValidatorContext) { diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java index 3cfdb4bad0..f99db43866 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java @@ -15,7 +15,7 @@ */ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.TextParseUtil; import com.opensymphony.xwork2.util.ValueStack; @@ -47,10 +47,10 @@ public abstract class ValidatorSupport implements Validator, ShortCircuitableVal private String[] messageParameters; protected ValueStack stack; - protected TextProviderFactory textProviderFactory; + protected StrutsTextProviderFactory textProviderFactory; @Inject - public void setTextProviderFactory(TextProviderFactory textProviderFactory) { + public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/core/src/main/java/org/apache/struts2/components/I18n.java b/core/src/main/java/org/apache/struts2/components/I18n.java index 89e38bb886..6d173efd01 100644 --- a/core/src/main/java/org/apache/struts2/components/I18n.java +++ b/core/src/main/java/org/apache/struts2/components/I18n.java @@ -31,7 +31,7 @@ import com.opensymphony.xwork2.LocaleProvider; import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.DefaultLocalizedTextProvider; @@ -126,7 +126,7 @@ public boolean start(Writer writer) { } if (bundle != null) { - TextProviderFactory tpf = container.inject(TextProviderFactory.class); + StrutsTextProviderFactory tpf = container.inject(StrutsTextProviderFactory.class); textProvider = tpf.createInstance(bundle); getStack().push(textProvider); pushed = true; diff --git a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java index f77f8aedc9..2f1db950cb 100644 --- a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java +++ b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java @@ -24,7 +24,7 @@ import com.opensymphony.xwork2.ActionProxyFactory; import com.opensymphony.xwork2.LocaleProviderFactory; import com.opensymphony.xwork2.LocalizedTextProvider; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.factory.UnknownHandlerFactory; import com.opensymphony.xwork2.security.AcceptedPatternsChecker; import com.opensymphony.xwork2.security.ExcludedPatternsChecker; @@ -398,7 +398,7 @@ public void register(ContainerBuilder builder, LocatableProperties props) { 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(StrutsTextProviderFactory.class, StrutsConstants.STRUTS_TEXT_PROVIDER_FACTORY, builder, props, Scope.PROTOTYPE); alias(LocaleProviderFactory.class, StrutsConstants.STRUTS_LOCALE_PROVIDER_FACTORY, builder, props); alias(LocalizedTextProvider.class, StrutsConstants.STRUTS_LOCALIZED_TEXT_PROVIDER, builder, props); diff --git a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java index b00f2e3a24..138b03314e 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java @@ -446,7 +446,7 @@ protected String getTextMessage(Object action, String messageKey, String[] args) } private TextProvider getTextProvider(Object action) { - TextProviderFactory tpf = container.inject(TextProviderFactory.class); + StrutsTextProviderFactory tpf = container.inject(StrutsTextProviderFactory.class); return tpf.createInstance(action.getClass()); } diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml index 3a4f6ee9a7..b0c07697dd 100644 --- a/core/src/main/resources/struts-default.xml +++ b/core/src/main/resources/struts-default.xml @@ -130,7 +130,7 @@ - + diff --git a/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java b/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java index 729090298d..ab5c1707aa 100644 --- a/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java @@ -77,7 +77,7 @@ public void testGetResourceBundle() throws Exception { protected void setUp() throws Exception { super.setUp(); - TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); + StrutsTextProviderFactory tpf = container.getInstance(StrutsTextProviderFactory.class); tpf.setTextProvider(null); ActionContext.getContext().setLocale(Locale.ENGLISH); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java index 89c21e391e..c2b3ba2c51 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java @@ -24,7 +24,7 @@ import com.opensymphony.xwork2.FileManagerFactory; import com.opensymphony.xwork2.SimpleAction; import com.opensymphony.xwork2.SimpleAnnotationAction; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.test.AnnotationDataAware2; @@ -59,7 +59,7 @@ public class AnnotationActionValidatorManagerTest extends XWorkTestCase { protected final String alias = "annotationValidationAlias"; AnnotationActionValidatorManager annotationActionValidatorManager; - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; @Override protected void setUp() throws Exception { super.setUp(); @@ -81,7 +81,7 @@ public class AnnotationActionValidatorManagerTest extends XWorkTestCase { ActionContext.getContext().setActionInvocation(invocation); - tpf = container.getInstance(TextProviderFactory.class); + tpf = container.getInstance(StrutsTextProviderFactory.class); } @Override protected void tearDown() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java index 8182d779ae..9cdeac00db 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java @@ -16,7 +16,7 @@ package com.opensymphony.xwork2.validator; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.interceptor.ValidationAware; import com.opensymphony.xwork2.ValidationAwareSupport; import com.opensymphony.xwork2.XWorkTestCase; @@ -53,7 +53,7 @@ public void setUp() throws Exception { validator = new ConversionErrorFieldValidator(); validationAware = new ValidationAwareSupport(); - DelegatingValidatorContext validatorContext = new DelegatingValidatorContext(validationAware, container.inject(TextProviderFactory.class)); + DelegatingValidatorContext validatorContext = new DelegatingValidatorContext(validationAware, container.inject(StrutsTextProviderFactory.class)); stack.push(validatorContext); validator.setValidatorContext(validatorContext); validator.setFieldName("foo"); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java index 3f75a1455d..bd3d9dabe9 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java @@ -21,7 +21,7 @@ */ public class DoubleRangeValidatorTest extends XWorkTestCase { private DoubleRangeFieldValidator val; - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void testRangeValidationWithError() throws Exception { //Explicitly set an out-of-range double for DoubleRangeValidatorTest @@ -237,7 +237,7 @@ protected void setUp() throws Exception { val = new DoubleRangeFieldValidator(); val.setValueStack(ActionContext.getContext().getValueStack()); ActionContext.getContext().setParameters(HttpParameters.create().build()); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } @Override diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java b/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java index e0f5f33e4a..d9e138cde0 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java @@ -15,7 +15,7 @@ */ package com.opensymphony.xwork2.validator; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import java.util.*; @@ -33,7 +33,7 @@ public class DummyValidatorContext extends DelegatingValidatorContext { private Map> fieldErrors; - public DummyValidatorContext(Object object, TextProviderFactory tpf) { + public DummyValidatorContext(Object object, StrutsTextProviderFactory tpf) { super(object, tpf); } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java index ae8c036f39..5a66920d9f 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java @@ -17,7 +17,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.EmailValidator; @@ -30,7 +30,7 @@ */ public class EmailValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void testEmailValidity() throws Exception { assertTrue(verifyEmailValidity("TmJee@Yahoo.com")); @@ -162,6 +162,6 @@ public boolean getTrimEmail() { public void setUp() throws Exception { super.setUp(); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java index 30613a40f4..7ce38c5e1e 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java @@ -38,7 +38,7 @@ */ public class ExpressionValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void testExpressionValidationOfStringLength() throws ValidationException { TestBean bean = new TestBean(); @@ -139,7 +139,7 @@ protected void setUp() throws Exception { ActionContext.getContext().setActionInvocation(invocation); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java index 5c7e94b059..6dd8e3faee 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java @@ -16,7 +16,7 @@ package com.opensymphony.xwork2.validator; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.RegexFieldValidator; @@ -37,11 +37,11 @@ */ public class RegexFieldValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } public void testMatch() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java index c4aa1783c8..ad8418b6c5 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java @@ -17,7 +17,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.mock.MockActionInvocation; import com.opensymphony.xwork2.util.ValueStack; @@ -92,7 +92,7 @@ protected void setUp() throws Exception { conversionErrors.put("someFieldName", conversionErrorValue); conversionErrors.put("xxxsomeFieldName", conversionErrorValue); - TextProviderFactory tpf = container.inject(TextProviderFactory.class); + StrutsTextProviderFactory tpf = container.inject(StrutsTextProviderFactory.class); action = container.inject(ActionSupport.class); validator1 = diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java index 991a75eadf..e737dde92c 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java @@ -153,7 +153,7 @@ public void validate(Object object) throws ValidationException { SimpleAction action = new SimpleAction(); container.inject(action); - ValidatorContext validatorContext = new DelegatingValidatorContext(action, container.inject(TextProviderFactory.class)); + ValidatorContext validatorContext = new DelegatingValidatorContext(action, container.inject(StrutsTextProviderFactory.class)); validator.setValidatorContext(validatorContext); validator.validate(this); assertTrue(validatorContext.hasActionErrors()); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java index 884d4951b0..b8f34721ca 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java @@ -17,7 +17,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator; @@ -163,7 +163,7 @@ protected void setUp() throws Exception { validator = new StringLengthFieldValidator(); validator.setFieldName("myField"); validator.setMessageKey("error"); - validator.setValidatorContext(new DelegatingValidatorContext(action, container.inject(TextProviderFactory.class))); + validator.setValidatorContext(new DelegatingValidatorContext(action, container.inject(StrutsTextProviderFactory.class))); validator.setMaxLength(5); validator.setMinLength(2); validator.setValueStack(valueStack); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java index c737d972b9..0ca581c962 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java @@ -19,7 +19,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.ValidationAwareSupport; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.config.entities.ActionConfig; @@ -37,7 +37,7 @@ */ public class StringValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void testRequiredStringWithNullValue() throws Exception { Equidae equidae = new Equidae(); @@ -217,6 +217,6 @@ protected void setUp() throws Exception { ActionContext.getContext().setActionInvocation(invocation); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java index ff9ab5041a..d377bc9654 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java @@ -16,7 +16,7 @@ package com.opensymphony.xwork2.validator; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.URLValidator; @@ -37,7 +37,7 @@ public class URLValidatorTest extends XWorkTestCase { ValueStack stack; ActionContext actionContext; - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void testAcceptNullValueForMutualExclusionOfValidators() throws Exception { @@ -205,7 +205,7 @@ protected void setUp() throws Exception { super.setUp(); stack = ActionContext.getContext().getValueStack(); actionContext = ActionContext.getContext(); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } @Override diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java index 0446e972e5..5727e45186 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java @@ -6,7 +6,7 @@ import com.opensymphony.xwork2.CompositeTextProvider; import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.validator.DelegatingValidatorContext; import com.opensymphony.xwork2.validator.ValidatorContext; @@ -28,7 +28,7 @@ protected void setUp() throws Exception { super.setUp(); action = container.inject(VisitorValidatorTestAction.class); - TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); + StrutsTextProviderFactory tpf = container.getInstance(StrutsTextProviderFactory.class); ValidatorContext vc1 = new DelegatingValidatorContext(action, tpf); VisitorFieldValidator.AppendingValidatorContext vc2 = new AppendingValidatorContext(vc1, createTextProvider(action, vc1), FIRST_NAME, ""); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java index 6129fc0ae8..789c6a468e 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java @@ -1,7 +1,7 @@ package com.opensymphony.xwork2.validator.validators; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -14,7 +14,7 @@ public class DateRangeFieldValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void testPassValidation() throws Exception { // given @@ -91,7 +91,7 @@ private DateRangeFieldValidator prepareValidator(ValidationAction action, Valida public void setUp() throws Exception { super.setUp(); ActionContext.getContext().setLocale(new Locale("DE")); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java index 77037328b5..26dd422f98 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java @@ -1,6 +1,6 @@ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -9,11 +9,11 @@ public class IntRangeFieldValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } public void testPassValidation() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java index bc14b57aaa..bc26cb4a62 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java @@ -1,6 +1,6 @@ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -9,11 +9,11 @@ public class LongRangeFieldValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } public void testPassValidation() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java index 1495733f90..614c406aa0 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java @@ -2,7 +2,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.DummyValidatorContext; @@ -10,11 +10,11 @@ public class RequiredStringValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } public void testRequiredStringPass() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java index bb2766405c..e6d3fb235f 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java @@ -1,6 +1,6 @@ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -9,11 +9,11 @@ public class ShortRangeFieldValidatorTest extends XWorkTestCase { - private TextProviderFactory tpf; + private StrutsTextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(TextProviderFactory.class); + tpf = container.inject(StrutsTextProviderFactory.class); } public void testPassValidation() throws Exception { diff --git a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java index 3123a4b509..27660fb9d2 100644 --- a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java +++ b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java @@ -23,7 +23,7 @@ import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ModelDriven; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; import com.opensymphony.xwork2.util.AnnotationUtils; @@ -58,7 +58,7 @@ public class BeanValidationInterceptor extends MethodFilterInterceptor { private static final Logger LOG = LogManager.getLogger(BeanValidationInterceptor.class); protected BeanValidationManager beanValidationManager; - protected TextProviderFactory textProviderFactory; + protected StrutsTextProviderFactory textProviderFactory; protected boolean convertToUtf8 = false; protected String convertFromEncoding = "ISO-8859-1"; @@ -68,7 +68,7 @@ public void setBeanValidationManager(BeanValidationManager beanValidationManager } @Inject - public void setTextProviderFactory(TextProviderFactory textProviderFactory) { + public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java b/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java index 473c9a7a17..2373b16b3b 100644 --- a/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java +++ b/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java @@ -23,7 +23,7 @@ import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ModelDriven; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.Validateable; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; @@ -59,7 +59,7 @@ public class OValValidationInterceptor extends MethodFilterInterceptor { protected boolean programmatic = true; protected OValValidationManager validationManager; protected boolean validateJPAAnnotations; - protected TextProviderFactory textProviderFactory; + protected StrutsTextProviderFactory textProviderFactory; @Inject public void setValidationManager(OValValidationManager validationManager) { @@ -67,7 +67,7 @@ public void setValidationManager(OValValidationManager validationManager) { } @Inject - public void setTextProviderFactory(TextProviderFactory textProviderFactory) { + public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java index 647a289e1f..d1a3442658 100644 --- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java +++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java @@ -20,17 +20,13 @@ package org.apache.struts2.tiles; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.LocaleProvider; import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.TextProviderFactory; +import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.config.ConfigurationException; -import com.opensymphony.xwork2.ognl.OgnlUtil; -import ognl.OgnlException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.struts2.ServletActionContext; import org.apache.tiles.evaluator.AbstractAttributeEvaluator; -import org.apache.tiles.evaluator.EvaluationException; import org.apache.tiles.request.Request; import org.apache.tiles.request.servlet.ServletUtil; @@ -52,7 +48,7 @@ public Object evaluate(String expression, Request request) { throw new ConfigurationException("There is no ActionContext for current request!"); } - TextProviderFactory tpf = ctx.getContainer().inject(TextProviderFactory.class); + StrutsTextProviderFactory tpf = ctx.getContainer().inject(StrutsTextProviderFactory.class); TextProvider textProvider = tpf.createInstance(ctx.getActionInvocation().getAction().getClass()); if (textProvider != null) { From 54974223fa1f6a66d8c1d61b7b18c94ef5c50386 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Thu, 16 Mar 2017 14:55:35 +0100 Subject: [PATCH 03/15] Extracts TextProviderFactory interface --- .../xwork2/StrutsTextProviderFactory.java | 4 ++- .../xwork2/TextProviderFactory.java | 26 +++++++++++++++++++ .../AnnotationActionValidatorManager.java | 4 +-- .../DefaultActionValidatorManager.java | 6 ++--- .../validator/DelegatingValidatorContext.java | 4 +-- .../validators/ValidatorSupport.java | 16 ++++++------ .../org/apache/struts2/components/I18n.java | 8 +++--- .../interceptor/FileUploadInterceptor.java | 2 +- core/src/main/resources/struts-default.xml | 3 +-- .../AnnotationActionValidatorManagerTest.java | 3 ++- .../ConversionErrorFieldValidatorTest.java | 4 +-- .../validator/DoubleRangeValidatorTest.java | 4 +-- .../validator/DummyValidatorContext.java | 4 +-- .../xwork2/validator/EmailValidatorTest.java | 6 ++--- .../validator/ExpressionValidatorTest.java | 4 +-- .../validator/RegexFieldValidatorTest.java | 6 ++--- ...versionErrorFieldValidatorSupportTest.java | 4 +-- .../validator/SimpleActionValidationTest.java | 2 +- .../StringLengthFieldValidatorTest.java | 4 +-- .../xwork2/validator/StringValidatorTest.java | 6 ++--- .../xwork2/validator/URLValidatorTest.java | 6 ++--- .../AppendingValidatorContextTest.java | 3 ++- .../DateRangeFieldValidatorTest.java | 6 ++--- .../IntRangeFieldValidatorTest.java | 6 ++--- .../LongRangeFieldValidatorTest.java | 6 ++--- .../RequiredStringValidatorTest.java | 6 ++--- .../ShortRangeFieldValidatorTest.java | 6 ++--- .../BeanValidationInterceptor.java | 6 ++--- .../OValValidationInterceptor.java | 6 ++--- .../struts2/tiles/I18NAttributeEvaluator.java | 4 +-- 30 files changed, 102 insertions(+), 73 deletions(-) create mode 100644 core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java diff --git a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java index c5123af86e..7c703b7218 100644 --- a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java @@ -25,7 +25,7 @@ * @author Oleg Gorobets * @author Rene Gielen */ -public class StrutsTextProviderFactory { +public class StrutsTextProviderFactory implements TextProviderFactory { private TextProvider textProvider; private LocaleProviderFactory localeProviderFactory; @@ -46,6 +46,7 @@ public void setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider this.localizedTextProvider = localizedTextProvider; } + @Override public TextProvider createInstance(Class clazz) { TextProvider instance = getTextProvider(clazz); if (instance instanceof ResourceBundleTextProvider) { @@ -55,6 +56,7 @@ public TextProvider createInstance(Class clazz) { return instance; } + @Override public TextProvider createInstance(ResourceBundle bundle) { TextProvider instance = getTextProvider(bundle); if (instance instanceof ResourceBundleTextProvider) { diff --git a/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java new file mode 100644 index 0000000000..e9b06238a9 --- /dev/null +++ b/core/src/main/java/com/opensymphony/xwork2/TextProviderFactory.java @@ -0,0 +1,26 @@ +/* + * Copyright 2002-2007,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; + +import java.util.ResourceBundle; + +public interface TextProviderFactory { + + TextProvider createInstance(Class clazz); + + TextProvider createInstance(ResourceBundle bundle); + +} diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java index 2e0fc3022e..cd6fa4e857 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManager.java @@ -52,7 +52,7 @@ public class AnnotationActionValidatorManager implements ActionValidatorManager private ValidatorFileParser validatorFileParser; private FileManager fileManager; private boolean reloadingConfigs; - private StrutsTextProviderFactory textProviderFactory; + private TextProviderFactory textProviderFactory; @Inject public void setValidatorFactory(ValidatorFactory fac) { @@ -75,7 +75,7 @@ public void setReloadingConfigs(String reloadingConfigs) { } @Inject - public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { + public void setTextProviderFactory(TextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java index 85237c9c0b..48d552a010 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/DefaultActionValidatorManager.java @@ -18,7 +18,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.FileManager; import com.opensymphony.xwork2.FileManagerFactory; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkConstants; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.ClassLoaderUtil; @@ -63,7 +63,7 @@ public class DefaultActionValidatorManager implements ActionValidatorManager { private ValidatorFileParser validatorFileParser; private FileManager fileManager; private boolean reloadingConfigs; - private StrutsTextProviderFactory textProviderFactory; + private TextProviderFactory textProviderFactory; @Inject public void setValidatorFileParser(ValidatorFileParser parser) { @@ -86,7 +86,7 @@ public void setReloadingConfigs(String reloadingConfigs) { } @Inject - public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { + public void setTextProviderFactory(TextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java b/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java index 3c75e2b547..0e3fe97dd4 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/DelegatingValidatorContext.java @@ -57,7 +57,7 @@ public DelegatingValidatorContext(ValidationAware validationAware, TextProvider * * @param object the object to use for validation (usually an Action). */ - public DelegatingValidatorContext(Object object, StrutsTextProviderFactory textProviderFactory) { + public DelegatingValidatorContext(Object object, TextProviderFactory textProviderFactory) { this.localeProvider = makeLocaleProvider(object); this.validationAware = makeValidationAware(object); this.textProvider = makeTextProvider(object, textProviderFactory); @@ -196,7 +196,7 @@ public boolean hasFieldErrors() { return validationAware.hasFieldErrors(); } - public TextProvider makeTextProvider(Object object, StrutsTextProviderFactory textProviderFactory) { + public TextProvider makeTextProvider(Object object, TextProviderFactory textProviderFactory) { // the object argument passed through here will most probably be an ActionSupport descendant which does // implements TextProvider. if (object != null && object instanceof DelegatingValidatorContext) { diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java index f99db43866..2173a2f9b1 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ValidatorSupport.java @@ -15,7 +15,7 @@ */ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.util.TextParseUtil; import com.opensymphony.xwork2.util.ValueStack; @@ -37,20 +37,20 @@ */ public abstract class ValidatorSupport implements Validator, ShortCircuitableValidator { - protected final Logger log = LogManager.getLogger(this.getClass()); + private static final Logger LOG = LogManager.getLogger(ValidatorSupport.class); - protected String defaultMessage = ""; - protected String messageKey; private ValidatorContext validatorContext; private boolean shortCircuit; private String type; private String[] messageParameters; - protected ValueStack stack; - protected StrutsTextProviderFactory textProviderFactory; + protected String defaultMessage = ""; + protected String messageKey; + protected ValueStack stack; + protected TextProviderFactory textProviderFactory; @Inject - public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { + public void setTextProviderFactory(TextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } @@ -97,7 +97,7 @@ public String getMessage(Object object) { } catch (Exception e) { // if there's an exception in parsing, we'll just treat the expression itself as the // parameter - log.warn("exception while parsing message parameter [{}]", messageParameter, e); + LOG.warn("exception while parsing message parameter [{}]", messageParameter, e); parsedMessageParameters.add(messageParameter); } } diff --git a/core/src/main/java/org/apache/struts2/components/I18n.java b/core/src/main/java/org/apache/struts2/components/I18n.java index 6d173efd01..faacea450f 100644 --- a/core/src/main/java/org/apache/struts2/components/I18n.java +++ b/core/src/main/java/org/apache/struts2/components/I18n.java @@ -25,16 +25,16 @@ import java.util.ResourceBundle; import com.opensymphony.xwork2.LocaleProviderFactory; +import com.opensymphony.xwork2.LocalizedTextProvider; +import com.opensymphony.xwork2.TextProviderFactory; import org.apache.struts2.views.annotations.StrutsTag; import org.apache.struts2.views.annotations.StrutsTagAttribute; import org.apache.struts2.StrutsException; import com.opensymphony.xwork2.LocaleProvider; import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; -import com.opensymphony.xwork2.util.DefaultLocalizedTextProvider; import com.opensymphony.xwork2.util.ValueStack; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -122,11 +122,11 @@ public boolean start(Writer writer) { ResourceBundle bundle = defaultTextProvider.getTexts(name); if (bundle == null) { - bundle = container.getInstance(DefaultLocalizedTextProvider.class).findResourceBundle(name, localeProvider.getLocale()); + bundle = container.getInstance(LocalizedTextProvider.class).findResourceBundle(name, localeProvider.getLocale()); } if (bundle != null) { - StrutsTextProviderFactory tpf = container.inject(StrutsTextProviderFactory.class); + TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); textProvider = tpf.createInstance(bundle); getStack().push(textProvider); pushed = true; diff --git a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java index 138b03314e..a392813b08 100644 --- a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java +++ b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java @@ -446,7 +446,7 @@ protected String getTextMessage(Object action, String messageKey, String[] args) } private TextProvider getTextProvider(Object action) { - StrutsTextProviderFactory tpf = container.inject(StrutsTextProviderFactory.class); + TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); return tpf.createInstance(action.getClass()); } diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml index b0c07697dd..72d6a699ec 100644 --- a/core/src/main/resources/struts-default.xml +++ b/core/src/main/resources/struts-default.xml @@ -130,9 +130,8 @@ - - + diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java index c2b3ba2c51..8a9a4cdfb4 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java @@ -25,6 +25,7 @@ import com.opensymphony.xwork2.SimpleAction; import com.opensymphony.xwork2.SimpleAnnotationAction; import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.config.entities.ActionConfig; import com.opensymphony.xwork2.test.AnnotationDataAware2; @@ -59,7 +60,7 @@ public class AnnotationActionValidatorManagerTest extends XWorkTestCase { protected final String alias = "annotationValidationAlias"; AnnotationActionValidatorManager annotationActionValidatorManager; - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; @Override protected void setUp() throws Exception { super.setUp(); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java index 9cdeac00db..411dbf8c6b 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/ConversionErrorFieldValidatorTest.java @@ -16,7 +16,7 @@ package com.opensymphony.xwork2.validator; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.interceptor.ValidationAware; import com.opensymphony.xwork2.ValidationAwareSupport; import com.opensymphony.xwork2.XWorkTestCase; @@ -53,7 +53,7 @@ public void setUp() throws Exception { validator = new ConversionErrorFieldValidator(); validationAware = new ValidationAwareSupport(); - DelegatingValidatorContext validatorContext = new DelegatingValidatorContext(validationAware, container.inject(StrutsTextProviderFactory.class)); + DelegatingValidatorContext validatorContext = new DelegatingValidatorContext(validationAware, container.getInstance(TextProviderFactory.class)); stack.push(validatorContext); validator.setValidatorContext(validatorContext); validator.setFieldName("foo"); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java index bd3d9dabe9..e60d24768f 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/DoubleRangeValidatorTest.java @@ -21,7 +21,7 @@ */ public class DoubleRangeValidatorTest extends XWorkTestCase { private DoubleRangeFieldValidator val; - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void testRangeValidationWithError() throws Exception { //Explicitly set an out-of-range double for DoubleRangeValidatorTest @@ -237,7 +237,7 @@ protected void setUp() throws Exception { val = new DoubleRangeFieldValidator(); val.setValueStack(ActionContext.getContext().getValueStack()); ActionContext.getContext().setParameters(HttpParameters.create().build()); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } @Override diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java b/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java index d9e138cde0..e0f5f33e4a 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/DummyValidatorContext.java @@ -15,7 +15,7 @@ */ package com.opensymphony.xwork2.validator; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import java.util.*; @@ -33,7 +33,7 @@ public class DummyValidatorContext extends DelegatingValidatorContext { private Map> fieldErrors; - public DummyValidatorContext(Object object, StrutsTextProviderFactory tpf) { + public DummyValidatorContext(Object object, TextProviderFactory tpf) { super(object, tpf); } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java index 5a66920d9f..dffad12ce3 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/EmailValidatorTest.java @@ -17,7 +17,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.EmailValidator; @@ -30,7 +30,7 @@ */ public class EmailValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void testEmailValidity() throws Exception { assertTrue(verifyEmailValidity("TmJee@Yahoo.com")); @@ -162,6 +162,6 @@ public boolean getTrimEmail() { public void setUp() throws Exception { super.setUp(); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java index 7ce38c5e1e..92c5a5acb0 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/ExpressionValidatorTest.java @@ -38,7 +38,7 @@ */ public class ExpressionValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void testExpressionValidationOfStringLength() throws ValidationException { TestBean bean = new TestBean(); @@ -139,7 +139,7 @@ protected void setUp() throws Exception { ActionContext.getContext().setActionInvocation(invocation); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java index 6dd8e3faee..4fa50fd79a 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/RegexFieldValidatorTest.java @@ -16,7 +16,7 @@ package com.opensymphony.xwork2.validator; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.RegexFieldValidator; @@ -37,11 +37,11 @@ */ public class RegexFieldValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } public void testMatch() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java index ad8418b6c5..c4aa1783c8 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java @@ -17,7 +17,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.mock.MockActionInvocation; import com.opensymphony.xwork2.util.ValueStack; @@ -92,7 +92,7 @@ protected void setUp() throws Exception { conversionErrors.put("someFieldName", conversionErrorValue); conversionErrors.put("xxxsomeFieldName", conversionErrorValue); - StrutsTextProviderFactory tpf = container.inject(StrutsTextProviderFactory.class); + TextProviderFactory tpf = container.inject(TextProviderFactory.class); action = container.inject(ActionSupport.class); validator1 = diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java index e737dde92c..06695eafc7 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/SimpleActionValidationTest.java @@ -153,7 +153,7 @@ public void validate(Object object) throws ValidationException { SimpleAction action = new SimpleAction(); container.inject(action); - ValidatorContext validatorContext = new DelegatingValidatorContext(action, container.inject(StrutsTextProviderFactory.class)); + ValidatorContext validatorContext = new DelegatingValidatorContext(action, container.getInstance(TextProviderFactory.class)); validator.setValidatorContext(validatorContext); validator.validate(this); assertTrue(validatorContext.hasActionErrors()); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java index b8f34721ca..ee6daf7a23 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/StringLengthFieldValidatorTest.java @@ -17,7 +17,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator; @@ -163,7 +163,7 @@ protected void setUp() throws Exception { validator = new StringLengthFieldValidator(); validator.setFieldName("myField"); validator.setMessageKey("error"); - validator.setValidatorContext(new DelegatingValidatorContext(action, container.inject(StrutsTextProviderFactory.class))); + validator.setValidatorContext(new DelegatingValidatorContext(action, container.getInstance(TextProviderFactory.class))); validator.setMaxLength(5); validator.setMinLength(2); validator.setValueStack(valueStack); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java index 0ca581c962..45a0211132 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/StringValidatorTest.java @@ -19,7 +19,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.ValidationAwareSupport; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.config.entities.ActionConfig; @@ -37,7 +37,7 @@ */ public class StringValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void testRequiredStringWithNullValue() throws Exception { Equidae equidae = new Equidae(); @@ -217,6 +217,6 @@ protected void setUp() throws Exception { ActionContext.getContext().setActionInvocation(invocation); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java index d377bc9654..b961d78f21 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/URLValidatorTest.java @@ -16,7 +16,7 @@ package com.opensymphony.xwork2.validator; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.validators.URLValidator; @@ -37,7 +37,7 @@ public class URLValidatorTest extends XWorkTestCase { ValueStack stack; ActionContext actionContext; - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void testAcceptNullValueForMutualExclusionOfValidators() throws Exception { @@ -205,7 +205,7 @@ protected void setUp() throws Exception { super.setUp(); stack = ActionContext.getContext().getValueStack(); actionContext = ActionContext.getContext(); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } @Override diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java index 5727e45186..52b331a28a 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java @@ -7,6 +7,7 @@ import com.opensymphony.xwork2.CompositeTextProvider; import com.opensymphony.xwork2.TextProvider; import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.validator.DelegatingValidatorContext; import com.opensymphony.xwork2.validator.ValidatorContext; @@ -28,7 +29,7 @@ protected void setUp() throws Exception { super.setUp(); action = container.inject(VisitorValidatorTestAction.class); - StrutsTextProviderFactory tpf = container.getInstance(StrutsTextProviderFactory.class); + TextProviderFactory tpf = container.getInstance(StrutsTextProviderFactory.class); ValidatorContext vc1 = new DelegatingValidatorContext(action, tpf); VisitorFieldValidator.AppendingValidatorContext vc2 = new AppendingValidatorContext(vc1, createTextProvider(action, vc1), FIRST_NAME, ""); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java index 789c6a468e..597a19bb21 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/DateRangeFieldValidatorTest.java @@ -1,7 +1,7 @@ package com.opensymphony.xwork2.validator.validators; import com.opensymphony.xwork2.ActionContext; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -14,7 +14,7 @@ public class DateRangeFieldValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void testPassValidation() throws Exception { // given @@ -91,7 +91,7 @@ private DateRangeFieldValidator prepareValidator(ValidationAction action, Valida public void setUp() throws Exception { super.setUp(); ActionContext.getContext().setLocale(new Locale("DE")); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } } diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java index 26dd422f98..229e8fc5fe 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/IntRangeFieldValidatorTest.java @@ -1,6 +1,6 @@ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -9,11 +9,11 @@ public class IntRangeFieldValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } public void testPassValidation() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java index bc26cb4a62..fc99e8b0f7 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/LongRangeFieldValidatorTest.java @@ -1,6 +1,6 @@ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -9,11 +9,11 @@ public class LongRangeFieldValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } public void testPassValidation() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java index 614c406aa0..8d4d919f45 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/RequiredStringValidatorTest.java @@ -2,7 +2,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.validator.DummyValidatorContext; @@ -10,11 +10,11 @@ public class RequiredStringValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } public void testRequiredStringPass() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java index e6d3fb235f..869f439088 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/ShortRangeFieldValidatorTest.java @@ -1,6 +1,6 @@ package com.opensymphony.xwork2.validator.validators; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.util.ValueStack; import com.opensymphony.xwork2.util.ValueStackFactory; @@ -9,11 +9,11 @@ public class ShortRangeFieldValidatorTest extends XWorkTestCase { - private StrutsTextProviderFactory tpf; + private TextProviderFactory tpf; public void setUp() throws Exception { super.setUp(); - tpf = container.inject(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } public void testPassValidation() throws Exception { diff --git a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java index 27660fb9d2..3123a4b509 100644 --- a/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java +++ b/plugins/bean-validation/src/main/java/org/apache/struts/beanvalidation/validation/interceptor/BeanValidationInterceptor.java @@ -23,7 +23,7 @@ import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ModelDriven; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; import com.opensymphony.xwork2.util.AnnotationUtils; @@ -58,7 +58,7 @@ public class BeanValidationInterceptor extends MethodFilterInterceptor { private static final Logger LOG = LogManager.getLogger(BeanValidationInterceptor.class); protected BeanValidationManager beanValidationManager; - protected StrutsTextProviderFactory textProviderFactory; + protected TextProviderFactory textProviderFactory; protected boolean convertToUtf8 = false; protected String convertFromEncoding = "ISO-8859-1"; @@ -68,7 +68,7 @@ public void setBeanValidationManager(BeanValidationManager beanValidationManager } @Inject - public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { + public void setTextProviderFactory(TextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java b/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java index 2373b16b3b..473c9a7a17 100644 --- a/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java +++ b/plugins/oval/src/main/java/org/apache/struts2/oval/interceptor/OValValidationInterceptor.java @@ -23,7 +23,7 @@ import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ModelDriven; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.Validateable; import com.opensymphony.xwork2.inject.Inject; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; @@ -59,7 +59,7 @@ public class OValValidationInterceptor extends MethodFilterInterceptor { protected boolean programmatic = true; protected OValValidationManager validationManager; protected boolean validateJPAAnnotations; - protected StrutsTextProviderFactory textProviderFactory; + protected TextProviderFactory textProviderFactory; @Inject public void setValidationManager(OValValidationManager validationManager) { @@ -67,7 +67,7 @@ public void setValidationManager(OValValidationManager validationManager) { } @Inject - public void setTextProviderFactory(StrutsTextProviderFactory textProviderFactory) { + public void setTextProviderFactory(TextProviderFactory textProviderFactory) { this.textProviderFactory = textProviderFactory; } diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java index d1a3442658..1ef7357c70 100644 --- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java +++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/I18NAttributeEvaluator.java @@ -21,7 +21,7 @@ import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.config.ConfigurationException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -48,7 +48,7 @@ public Object evaluate(String expression, Request request) { throw new ConfigurationException("There is no ActionContext for current request!"); } - StrutsTextProviderFactory tpf = ctx.getContainer().inject(StrutsTextProviderFactory.class); + TextProviderFactory tpf = ctx.getContainer().getInstance(TextProviderFactory.class); TextProvider textProvider = tpf.createInstance(ctx.getActionInvocation().getAction().getClass()); if (textProvider != null) { From 3b73544a8ff5e9d96885147bf25c7c2598ac6b21 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 07:49:33 +0100 Subject: [PATCH 04/15] Uses existing instance instead of creating a new one --- core/src/main/java/com/opensymphony/xwork2/ActionSupport.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java b/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java index 0434469dd9..cb1ac47337 100644 --- a/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java +++ b/core/src/main/java/com/opensymphony/xwork2/ActionSupport.java @@ -275,7 +275,7 @@ public void pause(String result) { */ protected TextProvider getTextProvider() { if (textProvider == null) { - TextProviderFactory tpf = container.inject(TextProviderFactory.class); + TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); textProvider = tpf.createInstance(getClass()); } return textProvider; From 207ac1774439f72cdfab32c45a3c59ba5a972899 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 07:51:12 +0100 Subject: [PATCH 05/15] Defines proper interfaces and default implementation in configuration --- .../xwork2/config/impl/DefaultConfiguration.java | 9 +++++---- .../struts2/config/DefaultBeanSelectionProvider.java | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java index c7c5a92775..8882a2f4b9 100644 --- a/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java +++ b/core/src/main/java/com/opensymphony/xwork2/config/impl/DefaultConfiguration.java @@ -245,8 +245,6 @@ protected Container createBootstrapContainer(List providers) builder.factory(ReflectionProvider.class, OgnlReflectionProvider.class, Scope.SINGLETON); builder.factory(ValueStackFactory.class, OgnlValueStackFactory.class, Scope.SINGLETON); - builder.factory(LocalizedTextProvider.class, DefaultLocalizedTextProvider.class, Scope.SINGLETON); - builder.factory(XWorkConverter.class, Scope.SINGLETON); builder.factory(ConversionPropertiesProcessor.class, DefaultConversionPropertiesProcessor.class, Scope.SINGLETON); builder.factory(ConversionFileProcessor.class, DefaultConversionFileProcessor.class, Scope.SINGLETON); @@ -261,11 +259,14 @@ protected Container createBootstrapContainer(List providers) builder.factory(TypeConverter.class, XWorkConstants.NUMBER_CONVERTER, NumberConverter.class, Scope.SINGLETON); builder.factory(TypeConverter.class, XWorkConstants.STRING_CONVERTER, StringConverter.class, Scope.SINGLETON); - builder.factory(TextParser.class, OgnlTextParser.class, Scope.SINGLETON); builder.factory(TextProvider.class, "system", DefaultTextProvider.class, Scope.SINGLETON); - builder.factory(TextProvider.class, TextProviderSupport.class, Scope.SINGLETON); + + builder.factory(LocalizedTextProvider.class, DefaultLocalizedTextProvider.class, Scope.SINGLETON); + builder.factory(TextProviderFactory.class, StrutsTextProviderFactory.class, Scope.SINGLETON); builder.factory(LocaleProviderFactory.class, DefaultLocaleProviderFactory.class, Scope.SINGLETON); + builder.factory(TextParser.class, OgnlTextParser.class, Scope.SINGLETON); + builder.factory(ObjectTypeDeterminer.class, DefaultObjectTypeDeterminer.class, Scope.SINGLETON); builder.factory(PropertyAccessor.class, CompoundRoot.class.getName(), CompoundRootAccessor.class, Scope.SINGLETON); builder.factory(OgnlUtil.class, Scope.SINGLETON); diff --git a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java index 2f1db950cb..f77f8aedc9 100644 --- a/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java +++ b/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java @@ -24,7 +24,7 @@ import com.opensymphony.xwork2.ActionProxyFactory; import com.opensymphony.xwork2.LocaleProviderFactory; import com.opensymphony.xwork2.LocalizedTextProvider; -import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.factory.UnknownHandlerFactory; import com.opensymphony.xwork2.security.AcceptedPatternsChecker; import com.opensymphony.xwork2.security.ExcludedPatternsChecker; @@ -398,7 +398,7 @@ public void register(ContainerBuilder builder, LocatableProperties props) { alias(TypeConverterHolder.class, StrutsConstants.STRUTS_CONVERTER_HOLDER, builder, props); alias(TextProvider.class, StrutsConstants.STRUTS_XWORKTEXTPROVIDER, builder, props, Scope.PROTOTYPE); - alias(StrutsTextProviderFactory.class, StrutsConstants.STRUTS_TEXT_PROVIDER_FACTORY, builder, props, Scope.PROTOTYPE); + alias(TextProviderFactory.class, StrutsConstants.STRUTS_TEXT_PROVIDER_FACTORY, builder, props, Scope.PROTOTYPE); alias(LocaleProviderFactory.class, StrutsConstants.STRUTS_LOCALE_PROVIDER_FACTORY, builder, props); alias(LocalizedTextProvider.class, StrutsConstants.STRUTS_LOCALIZED_TEXT_PROVIDER, builder, props); From 16d1d60ed826c639d2298b77b27c184d9684f21c Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 07:51:57 +0100 Subject: [PATCH 06/15] Uses dedicated logger instead the one from parent class --- .../validators/ConditionalVisitorFieldValidator.java | 6 +++++- .../xwork2/validator/validators/ExpressionValidator.java | 8 ++++++-- .../validator/validators/FieldExpressionValidator.java | 8 ++++++-- .../validator/validators/VisitorFieldValidator.java | 6 +++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java index 7e92f3fc32..395269897f 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ConditionalVisitorFieldValidator.java @@ -1,6 +1,8 @@ package com.opensymphony.xwork2.validator.validators; import com.opensymphony.xwork2.validator.ValidationException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @@ -29,6 +31,8 @@ */ public class ConditionalVisitorFieldValidator extends VisitorFieldValidator { + private static final Logger LOG = LogManager.getLogger(ConditionalVisitorFieldValidator.class); + private String expression; public void setExpression(String expression) { @@ -75,7 +79,7 @@ public boolean validateExpression(Object object) throws ValidationException { if ((obj != null) && (obj instanceof Boolean)) { answer = (Boolean) obj; } else { - log.warn("Got result of {} when trying to get Boolean.", obj); + LOG.warn("Got result of {} when trying to get Boolean.", obj); } return answer; diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java index 6e59af200e..f3e3da0e07 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/ExpressionValidator.java @@ -16,6 +16,8 @@ package com.opensymphony.xwork2.validator.validators; import com.opensymphony.xwork2.validator.ValidationException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** * @@ -44,6 +46,8 @@ */ public class ExpressionValidator extends ValidatorSupport { + private static final Logger LOG = LogManager.getLogger(ExpressionValidator.class); + private String expression; public void setExpression(String expression) { @@ -69,11 +73,11 @@ public void validate(Object object) throws ValidationException { if ((obj != null) && (obj instanceof Boolean)) { answer = (Boolean) obj; } else { - log.warn("Got result of [{}] when trying to get Boolean.", obj); + LOG.warn("Got result of [{}] when trying to get Boolean.", obj); } if (!answer) { - log.debug("Validation failed on expression [{}] with validated object [{}]", expression, object); + LOG.debug("Validation failed on expression [{}] with validated object [{}]", expression, object); addActionError(object); } } diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java index 12dd7c5754..e1f5618a21 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/FieldExpressionValidator.java @@ -16,6 +16,8 @@ package com.opensymphony.xwork2.validator.validators; import com.opensymphony.xwork2.validator.ValidationException; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; /** @@ -55,6 +57,8 @@ */ public class FieldExpressionValidator extends FieldValidatorSupport { + private static final Logger LOG = LogManager.getLogger(FieldExpressionValidator.class); + private String expression; public void setExpression(String expression) { @@ -82,10 +86,10 @@ public void validate(Object object) throws ValidationException { if ((obj != null) && (obj instanceof Boolean)) { answer = (Boolean) obj; } else { - log.warn("Got result of {} when trying to get Boolean.", obj); + LOG.warn("Got result of {} when trying to get Boolean.", obj); } - if (!answer.booleanValue()) { + if (!answer) { addFieldError(fieldName, object); } } diff --git a/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java b/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java index 8fd62a63ae..ce87316636 100644 --- a/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java +++ b/core/src/main/java/com/opensymphony/xwork2/validator/validators/VisitorFieldValidator.java @@ -24,6 +24,8 @@ import com.opensymphony.xwork2.validator.DelegatingValidatorContext; import com.opensymphony.xwork2.validator.ValidationException; import com.opensymphony.xwork2.validator.ValidatorContext; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.util.Collection; import java.util.LinkedList; @@ -85,6 +87,8 @@ */ public class VisitorFieldValidator extends FieldValidatorSupport { + private static final Logger LOG = LogManager.getLogger(VisitorFieldValidator.class); + private String context; private boolean appendPrefix = true; private ActionValidatorManager actionValidatorManager; @@ -125,7 +129,7 @@ public void validate(Object object) throws ValidationException { String fieldName = getFieldName(); Object value = this.getFieldValue(fieldName, object); if (value == null) { - log.warn("The visited object is null, VisitorValidator will not be able to handle validation properly. Please make sure the visited object is not null for VisitorValidator to function properly"); + LOG.warn("The visited object is null, VisitorValidator will not be able to handle validation properly. Please make sure the visited object is not null for VisitorValidator to function properly"); return; } ValueStack stack = ActionContext.getContext().getValueStack(); From 944b1a2303536023973456d6685f9ab86a775cb0 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 07:59:50 +0100 Subject: [PATCH 07/15] Injects proper dependencies into tag --- .../org/apache/struts2/components/I18n.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/org/apache/struts2/components/I18n.java b/core/src/main/java/org/apache/struts2/components/I18n.java index faacea450f..497fff8549 100644 --- a/core/src/main/java/org/apache/struts2/components/I18n.java +++ b/core/src/main/java/org/apache/struts2/components/I18n.java @@ -90,28 +90,35 @@ public class I18n extends Component { protected boolean pushed; protected String name; - protected Container container; + + private LocalizedTextProvider localizedTextProvider; private TextProvider textProvider; private TextProvider defaultTextProvider; - private LocaleProvider localeProvider; + private LocaleProviderFactory localeProviderFactory; + private TextProviderFactory textProviderFactory; public I18n(ValueStack stack) { super(stack); } - + @Inject - public void setContainer(Container container) { - this.container = container; + public void setLocalizedTextProvider(LocalizedTextProvider localizedTextProvider) { + this.localizedTextProvider = localizedTextProvider; } - @Inject + @Inject("system") public void setTextProvider(TextProvider textProvider) { this.defaultTextProvider = textProvider; } + @Inject + public void setTextProviderFactory(TextProviderFactory textProviderFactory) { + this.textProviderFactory = textProviderFactory; + } + @Inject public void setLocaleProviderFactory(LocaleProviderFactory localeProviderFactory) { - this.localeProvider = localeProviderFactory.createLocaleProvider(); + this.localeProviderFactory = localeProviderFactory; } public boolean start(Writer writer) { @@ -122,12 +129,12 @@ public boolean start(Writer writer) { ResourceBundle bundle = defaultTextProvider.getTexts(name); if (bundle == null) { - bundle = container.getInstance(LocalizedTextProvider.class).findResourceBundle(name, localeProvider.getLocale()); + LocaleProvider localeProvider = localeProviderFactory.createLocaleProvider(); + bundle = localizedTextProvider.findResourceBundle(name, localeProvider.getLocale()); } if (bundle != null) { - TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); - textProvider = tpf.createInstance(bundle); + textProvider = textProviderFactory.createInstance(bundle); getStack().push(textProvider); pushed = true; } From ee6c927db6663741c3d0179e16687704359ea40c Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 08:02:24 +0100 Subject: [PATCH 08/15] Drops unavailable dependency --- .../xwork2/StrutsTextProviderFactory.java | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java index 7c703b7218..9743b656c5 100644 --- a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java @@ -27,15 +27,9 @@ */ public class StrutsTextProviderFactory implements TextProviderFactory { - private TextProvider textProvider; private LocaleProviderFactory localeProviderFactory; private LocalizedTextProvider localizedTextProvider; - @Inject - public void setTextProvider(TextProvider textProvider) { - this.textProvider = textProvider; - } - @Inject public void setLocaleProviderFactory(LocaleProviderFactory localeProviderFactory) { this.localeProviderFactory = localeProviderFactory; @@ -67,18 +61,11 @@ public TextProvider createInstance(ResourceBundle bundle) { } protected TextProvider getTextProvider(Class clazz) { - if (this.textProvider == null) { - return new TextProviderSupport(clazz, localeProviderFactory.createLocaleProvider(), localizedTextProvider); - } else { - return textProvider; - } + return new TextProviderSupport(clazz, localeProviderFactory.createLocaleProvider(), localizedTextProvider); } private TextProvider getTextProvider(ResourceBundle bundle) { - if (this.textProvider == null) { - return new TextProviderSupport(bundle, localeProviderFactory.createLocaleProvider(), localizedTextProvider); - } - return textProvider; + return new TextProviderSupport(bundle, localeProviderFactory.createLocaleProvider(), localizedTextProvider); } } From c039685cf946f5e9864ae175a14f3ccdc0edbe59 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 08:02:52 +0100 Subject: [PATCH 09/15] Moves bean into same area are other releated to it beans --- core/src/main/resources/struts-default.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml index 72d6a699ec..d666541365 100644 --- a/core/src/main/resources/struts-default.xml +++ b/core/src/main/resources/struts-default.xml @@ -130,6 +130,7 @@ + @@ -141,7 +142,6 @@ - From 132829cc244d60692e3547c5c40b72e29eea1a9e Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 08:03:28 +0100 Subject: [PATCH 10/15] Defines bean in test configuration --- .../config/providers/XWorkConfigurationProvider.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java index d29cf0ef1b..1bc698696e 100644 --- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java +++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XWorkConfigurationProvider.java @@ -5,6 +5,7 @@ import com.opensymphony.xwork2.DefaultLocaleProviderFactory; import com.opensymphony.xwork2.LocaleProviderFactory; import com.opensymphony.xwork2.StrutsTextProviderFactory; +import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.factory.DefaultUnknownHandlerFactory; import com.opensymphony.xwork2.factory.UnknownHandlerFactory; import com.opensymphony.xwork2.ognl.accessor.HttpParametersPropertyAccessor; @@ -19,7 +20,6 @@ import com.opensymphony.xwork2.FileManagerFactory; import com.opensymphony.xwork2.ObjectFactory; import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.TextProviderSupport; import com.opensymphony.xwork2.UnknownHandlerManager; import com.opensymphony.xwork2.XWorkConstants; import com.opensymphony.xwork2.config.Configuration; @@ -181,12 +181,11 @@ public void register(ContainerBuilder builder, LocatableProperties props) .factory(ActionValidatorManager.class, AnnotationActionValidatorManager.class, Scope.SINGLETON) .factory(ActionValidatorManager.class, "no-annotations", DefaultActionValidatorManager.class, Scope.SINGLETON) - .factory(StrutsTextProviderFactory.class, Scope.SINGLETON) - .factory(LocalizedTextProvider.class, DefaultLocalizedTextProvider.class, Scope.SINGLETON) .factory(TextProvider.class, "system", DefaultTextProvider.class, Scope.SINGLETON) - .factory(TextProvider.class, TextProviderSupport.class, Scope.SINGLETON) - + .factory(LocalizedTextProvider.class, DefaultLocalizedTextProvider.class, Scope.SINGLETON) + .factory(TextProviderFactory.class, StrutsTextProviderFactory.class, Scope.SINGLETON) .factory(LocaleProviderFactory.class, DefaultLocaleProviderFactory.class, Scope.SINGLETON) + .factory(OgnlUtil.class, Scope.SINGLETON) .factory(CollectionConverter.class, Scope.SINGLETON) .factory(ArrayConverter.class, Scope.SINGLETON) From e8a598c7bc83752f488ad4ccccd0d11a64df3f03 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 08:03:48 +0100 Subject: [PATCH 11/15] Updates test to use the new injectable factory --- .../com/opensymphony/xwork2/CompositeTextProviderTest.java | 3 +-- .../xwork2/validator/AnnotationActionValidatorManagerTest.java | 3 +-- .../RepopulateConversionErrorFieldValidatorSupportTest.java | 2 +- .../validator/validators/AppendingValidatorContextTest.java | 3 +-- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java b/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java index ab5c1707aa..3b5f30c445 100644 --- a/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/CompositeTextProviderTest.java @@ -77,8 +77,7 @@ public void testGetResourceBundle() throws Exception { protected void setUp() throws Exception { super.setUp(); - StrutsTextProviderFactory tpf = container.getInstance(StrutsTextProviderFactory.class); - tpf.setTextProvider(null); + TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); ActionContext.getContext().setLocale(Locale.ENGLISH); diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java index 8a9a4cdfb4..89c21e391e 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/AnnotationActionValidatorManagerTest.java @@ -24,7 +24,6 @@ import com.opensymphony.xwork2.FileManagerFactory; import com.opensymphony.xwork2.SimpleAction; import com.opensymphony.xwork2.SimpleAnnotationAction; -import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.config.entities.ActionConfig; @@ -82,7 +81,7 @@ public class AnnotationActionValidatorManagerTest extends XWorkTestCase { ActionContext.getContext().setActionInvocation(invocation); - tpf = container.getInstance(StrutsTextProviderFactory.class); + tpf = container.getInstance(TextProviderFactory.class); } @Override protected void tearDown() throws Exception { diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java index c4aa1783c8..51d8236ba0 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/RepopulateConversionErrorFieldValidatorSupportTest.java @@ -92,7 +92,7 @@ protected void setUp() throws Exception { conversionErrors.put("someFieldName", conversionErrorValue); conversionErrors.put("xxxsomeFieldName", conversionErrorValue); - TextProviderFactory tpf = container.inject(TextProviderFactory.class); + TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); action = container.inject(ActionSupport.class); validator1 = diff --git a/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java b/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java index 52b331a28a..0446e972e5 100644 --- a/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java +++ b/core/src/test/java/com/opensymphony/xwork2/validator/validators/AppendingValidatorContextTest.java @@ -6,7 +6,6 @@ import com.opensymphony.xwork2.CompositeTextProvider; import com.opensymphony.xwork2.TextProvider; -import com.opensymphony.xwork2.StrutsTextProviderFactory; import com.opensymphony.xwork2.TextProviderFactory; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.validator.DelegatingValidatorContext; @@ -29,7 +28,7 @@ protected void setUp() throws Exception { super.setUp(); action = container.inject(VisitorValidatorTestAction.class); - TextProviderFactory tpf = container.getInstance(StrutsTextProviderFactory.class); + TextProviderFactory tpf = container.getInstance(TextProviderFactory.class); ValidatorContext vc1 = new DelegatingValidatorContext(action, tpf); VisitorFieldValidator.AppendingValidatorContext vc2 = new AppendingValidatorContext(vc1, createTextProvider(action, vc1), FIRST_NAME, ""); From 88a39333ceb4890b40fa2ca8dbcc6681b899248c Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 08:12:52 +0100 Subject: [PATCH 12/15] Drops authors tags --- .../com/opensymphony/xwork2/StrutsTextProviderFactory.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java index 9743b656c5..b242e394c9 100644 --- a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java @@ -21,9 +21,6 @@ /** * This factory enables users to provide and correctly initialize a custom TextProvider. - * - * @author Oleg Gorobets - * @author Rene Gielen */ public class StrutsTextProviderFactory implements TextProviderFactory { From 0378161365554f124b9a67f0a4ceca225bad7e89 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 09:09:23 +0100 Subject: [PATCH 13/15] Increases visibility to allow reuse fields when subclassing --- .../com/opensymphony/xwork2/StrutsTextProviderFactory.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java index b242e394c9..ff752b972c 100644 --- a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java @@ -24,8 +24,8 @@ */ public class StrutsTextProviderFactory implements TextProviderFactory { - private LocaleProviderFactory localeProviderFactory; - private LocalizedTextProvider localizedTextProvider; + protected LocaleProviderFactory localeProviderFactory; + protected LocalizedTextProvider localizedTextProvider; @Inject public void setLocaleProviderFactory(LocaleProviderFactory localeProviderFactory) { From e9d7cd09db646fecb6cfd99d6523ec7d87b5b2bc Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 09:19:23 +0100 Subject: [PATCH 14/15] Increases visibility to allow reuse fields when subclassing --- .../opensymphony/xwork2/TextProviderSupport.java | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/TextProviderSupport.java b/core/src/main/java/com/opensymphony/xwork2/TextProviderSupport.java index 528a91000f..d63291acda 100644 --- a/core/src/main/java/com/opensymphony/xwork2/TextProviderSupport.java +++ b/core/src/main/java/com/opensymphony/xwork2/TextProviderSupport.java @@ -29,16 +29,10 @@ */ public class TextProviderSupport implements ResourceBundleTextProvider { - private Class clazz; - private LocaleProvider localeProvider; - private ResourceBundle bundle; - private LocalizedTextProvider localizedTextProvider; - - /** - * Default constructor - */ - public TextProviderSupport() { - } + protected Class clazz; + protected LocaleProvider localeProvider; + protected ResourceBundle bundle; + protected LocalizedTextProvider localizedTextProvider; /** * Constructor. From 915e162e8edd23f62089119768b0a02646e9c782 Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Fri, 17 Mar 2017 09:25:03 +0100 Subject: [PATCH 15/15] Uses protected scope instead of private to allow override when subclassing --- .../java/com/opensymphony/xwork2/StrutsTextProviderFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java index ff752b972c..d398e698f2 100644 --- a/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java +++ b/core/src/main/java/com/opensymphony/xwork2/StrutsTextProviderFactory.java @@ -61,7 +61,7 @@ protected TextProvider getTextProvider(Class clazz) { return new TextProviderSupport(clazz, localeProviderFactory.createLocaleProvider(), localizedTextProvider); } - private TextProvider getTextProvider(ResourceBundle bundle) { + protected TextProvider getTextProvider(ResourceBundle bundle) { return new TextProviderSupport(bundle, localeProviderFactory.createLocaleProvider(), localizedTextProvider); }