You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by am...@apache.org on 2019/01/22 21:33:56 UTC

[struts] branch master updated: WW-5001 Adds support for struts-conversion.properties files

This is an automated email from the ASF dual-hosted git repository.

amashchenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts.git


The following commit(s) were added to refs/heads/master by this push:
     new fc81832  WW-5001 Adds support for struts-conversion.properties files
     new 3d25d2f  Merge pull request #313 from lukaszlenart/WW-5001
fc81832 is described below

commit fc81832e8afbe9e47f74e4f61b74733ec66892c1
Author: Lukasz Lenart <lu...@apache.org>
AuthorDate: Tue Jan 15 08:14:12 2019 +0100

    WW-5001 Adds support for struts-conversion.properties files
---
 .../xwork2/config/impl/DefaultConfiguration.java   |  3 ++-
 .../providers/XWorkConfigurationProvider.java      |  4 ++--
 .../StrutsConversionPropertiesProcessor.java}      | 24 ++++++++++++++--------
 core/src/main/resources/struts-default.xml         |  2 +-
 .../xwork2/conversion/impl/XWorkConverterTest.java |  4 ++--
 ...roperties => test-struts-conversion.properties} |  0
 6 files changed, 23 insertions(+), 14 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 e43efaa..42cfabb 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
@@ -42,6 +42,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.apache.struts2.StrutsConstants;
+import org.apache.struts2.conversion.StrutsConversionPropertiesProcessor;
 import org.apache.struts2.conversion.StrutsTypeConverterHolder;
 import org.apache.struts2.conversion.StrutsTypeConverterCreator;
 
@@ -256,7 +257,7 @@ public class DefaultConfiguration implements Configuration {
         builder.factory(ValueStackFactory.class, OgnlValueStackFactory.class, Scope.SINGLETON);
 
         builder.factory(XWorkConverter.class, Scope.SINGLETON);
-        builder.factory(ConversionPropertiesProcessor.class, DefaultConversionPropertiesProcessor.class, Scope.SINGLETON);
+        builder.factory(ConversionPropertiesProcessor.class, StrutsConversionPropertiesProcessor.class, Scope.SINGLETON);
         builder.factory(ConversionFileProcessor.class, DefaultConversionFileProcessor.class, Scope.SINGLETON);
         builder.factory(ConversionAnnotationProcessor.class, DefaultConversionAnnotationProcessor.class, Scope.SINGLETON);
         builder.factory(TypeConverterCreator.class, StrutsTypeConverterCreator.class, Scope.SINGLETON);
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 1b04864..a34a421 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
@@ -54,7 +54,7 @@ import com.opensymphony.xwork2.conversion.impl.CollectionConverter;
 import com.opensymphony.xwork2.conversion.impl.DateConverter;
 import com.opensymphony.xwork2.conversion.impl.DefaultConversionAnnotationProcessor;
 import com.opensymphony.xwork2.conversion.impl.DefaultConversionFileProcessor;
-import com.opensymphony.xwork2.conversion.impl.DefaultConversionPropertiesProcessor;
+import org.apache.struts2.conversion.StrutsConversionPropertiesProcessor;
 import com.opensymphony.xwork2.conversion.impl.DefaultObjectTypeDeterminer;
 import org.apache.struts2.conversion.StrutsTypeConverterCreator;
 import org.apache.struts2.conversion.StrutsTypeConverterHolder;
@@ -155,7 +155,7 @@ public class XWorkConfigurationProvider implements ConfigurationProvider {
 
                 .factory(XWorkConverter.class, Scope.SINGLETON)
                 .factory(XWorkBasicConverter.class, Scope.SINGLETON)
-                .factory(ConversionPropertiesProcessor.class, DefaultConversionPropertiesProcessor.class, Scope.SINGLETON)
+                .factory(ConversionPropertiesProcessor.class, StrutsConversionPropertiesProcessor.class, Scope.SINGLETON)
                 .factory(ConversionFileProcessor.class, DefaultConversionFileProcessor.class, Scope.SINGLETON)
                 .factory(ConversionAnnotationProcessor.class, DefaultConversionAnnotationProcessor.class, Scope.SINGLETON)
                 .factory(TypeConverterCreator.class, StrutsTypeConverterCreator.class, Scope.SINGLETON)
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionPropertiesProcessor.java b/core/src/main/java/org/apache/struts2/conversion/StrutsConversionPropertiesProcessor.java
similarity index 76%
rename from core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionPropertiesProcessor.java
rename to core/src/main/java/org/apache/struts2/conversion/StrutsConversionPropertiesProcessor.java
index 7336db1..0f509df 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionPropertiesProcessor.java
+++ b/core/src/main/java/org/apache/struts2/conversion/StrutsConversionPropertiesProcessor.java
@@ -16,19 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package com.opensymphony.xwork2.conversion.impl;
+package org.apache.struts2.conversion;
 
-import com.opensymphony.xwork2.XWorkException;
 import com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor;
 import com.opensymphony.xwork2.conversion.TypeConverter;
 import com.opensymphony.xwork2.conversion.TypeConverterCreator;
 import com.opensymphony.xwork2.conversion.TypeConverterHolder;
 import com.opensymphony.xwork2.inject.EarlyInitializable;
-import com.opensymphony.xwork2.inject.Initializable;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.util.ClassLoaderUtil;
 import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.LogManager;
+import org.apache.struts2.StrutsException;
 
 import java.io.IOException;
 import java.net.URL;
@@ -36,9 +35,13 @@ import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 
-public class DefaultConversionPropertiesProcessor implements ConversionPropertiesProcessor, EarlyInitializable {
+public class StrutsConversionPropertiesProcessor implements ConversionPropertiesProcessor, EarlyInitializable {
 
-    private static final Logger LOG = LogManager.getLogger(DefaultConversionPropertiesProcessor.class);
+    private static final Logger LOG = LogManager.getLogger(StrutsConversionPropertiesProcessor.class);
+
+    private static final String STRUTS_DEFAULT_CONVERSION_PROPERTIES = "struts-default-conversion.properties";
+    private static final String XWORK_CONVERSION_PROPERTIES = "xwork-conversion.properties";
+    private static final String STRUTS_CONVERSION_PROPERTIES = "struts-conversion.properties";
 
     private TypeConverterCreator converterCreator;
     private TypeConverterHolder converterHolder;
@@ -56,8 +59,9 @@ public class DefaultConversionPropertiesProcessor implements ConversionPropertie
     @Override
     public void init() {
         LOG.debug("Processing default conversion properties files");
-        processRequired("struts-default-conversion.properties");
-        process("xwork-conversion.properties");
+        processRequired(STRUTS_DEFAULT_CONVERSION_PROPERTIES);
+        process(STRUTS_CONVERSION_PROPERTIES);
+        process(XWORK_CONVERSION_PROPERTIES);
     }
 
     public void process(String propsName) {
@@ -72,6 +76,10 @@ public class DefaultConversionPropertiesProcessor implements ConversionPropertie
         try {
             Iterator<URL> resources = ClassLoaderUtil.getResources(propsName, getClass(), true);
             while (resources.hasNext()) {
+                if (XWORK_CONVERSION_PROPERTIES.equals(propsName)) {
+                    LOG.warn("Instead of using deprecated {} please use the new file name {}",
+                        XWORK_CONVERSION_PROPERTIES, STRUTS_CONVERSION_PROPERTIES);
+                }
                 URL url = resources.next();
                 Properties props = new Properties();
                 props.load(url.openStream());
@@ -95,7 +103,7 @@ public class DefaultConversionPropertiesProcessor implements ConversionPropertie
             }
         } catch (IOException ex) {
             if (require) {
-                throw new XWorkException("Cannot load conversion properties file: "+propsName, ex);
+                throw new StrutsException("Cannot load conversion properties file: " + propsName, ex);
             } else {
                 LOG.debug("Cannot load conversion properties file: {}", propsName, ex);
             }
diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml
index d4e28c3..7575b27 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -111,7 +111,7 @@
 
     <bean type="com.opensymphony.xwork2.conversion.impl.XWorkConverter" name="struts" class="com.opensymphony.xwork2.conversion.impl.XWorkConverter" />
 
-    <bean type="com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultConversionPropertiesProcessor" />
+    <bean type="com.opensymphony.xwork2.conversion.ConversionPropertiesProcessor" name="struts" class="org.apache.struts2.conversion.StrutsConversionPropertiesProcessor" />
     <bean type="com.opensymphony.xwork2.conversion.ConversionFileProcessor" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultConversionFileProcessor" />
     <bean type="com.opensymphony.xwork2.conversion.ConversionAnnotationProcessor" name="struts" class="com.opensymphony.xwork2.conversion.impl.DefaultConversionAnnotationProcessor" />
     <bean type="com.opensymphony.xwork2.conversion.TypeConverterCreator" name="struts" class="org.apache.struts2.conversion.StrutsTypeConverterCreator" />
diff --git a/core/src/test/java/com/opensymphony/xwork2/conversion/impl/XWorkConverterTest.java b/core/src/test/java/com/opensymphony/xwork2/conversion/impl/XWorkConverterTest.java
index 5982cb4..1b2113c 100644
--- a/core/src/test/java/com/opensymphony/xwork2/conversion/impl/XWorkConverterTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/conversion/impl/XWorkConverterTest.java
@@ -466,7 +466,7 @@ public class XWorkConverterTest extends XWorkTestCase {
             Thread.currentThread().setContextClassLoader(new ClassLoader(cl) {
                 @Override
                 public Enumeration<URL> getResources(String name) throws IOException {
-                    if ("xwork-conversion.properties".equals(name)) {
+                    if ("struts-conversion.properties".equals(name)) {
                         return new Enumeration<URL>() {
                             boolean done = false;
                             public boolean hasMoreElements() {
@@ -481,7 +481,7 @@ public class XWorkConverterTest extends XWorkTestCase {
                                 }
 
                                 done = true;
-                                return getClass().getResource("/com/opensymphony/xwork2/conversion/impl/test-xwork-conversion.properties");
+                                return getClass().getResource("/com/opensymphony/xwork2/conversion/impl/test-struts-conversion.properties");
                             }
                         };
                     } else {
diff --git a/core/src/test/resources/com/opensymphony/xwork2/conversion/impl/test-xwork-conversion.properties b/core/src/test/resources/com/opensymphony/xwork2/conversion/impl/test-struts-conversion.properties
similarity index 100%
rename from core/src/test/resources/com/opensymphony/xwork2/conversion/impl/test-xwork-conversion.properties
rename to core/src/test/resources/com/opensymphony/xwork2/conversion/impl/test-struts-conversion.properties