You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/04/22 15:42:23 UTC

[1/5] struts git commit: WW-4210 Extends annotation to allow use class instead of string

Repository: struts
Updated Branches:
  refs/heads/master d8284846d -> faf72b5a0


WW-4210 Extends annotation to allow use class instead of string


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/47552bdb
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/47552bdb
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/47552bdb

Branch: refs/heads/master
Commit: 47552bdb0673a88b0cd76cebc40f65477edd58d0
Parents: 293d2fd
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Apr 20 08:28:46 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Apr 20 08:28:46 2017 +0200

----------------------------------------------------------------------
 .../xwork2/conversion/annotations/TypeConversion.java  | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/47552bdb/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
index 6640659..db57573 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
@@ -15,6 +15,8 @@
  */
 package com.opensymphony.xwork2.conversion.annotations;
 
+import com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter;
+
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -175,10 +177,21 @@ public @interface TypeConversion {
      * Note: This can not be used with ConversionRule.KEY_PROPERTY!
      *
      * @return class of the TypeConverter to be used as converter
+     * @deprecated user {@link #converterClass()} instead
      */
+    @Deprecated
     String converter() default "";
 
     /**
+     * The class of the TypeConverter to be used as converter.
+     *
+     * Note: This can not be used with ConversionRule.KEY_PROPERTY!
+     *
+     * @return class of the TypeConverter to be used as converter
+     */
+    Class<?> converterClass() default XWorkBasicConverter.class;
+
+    /**
      * If used with ConversionRule.KEY_PROPERTY specify a value here!
      *
      * Note: If you use ConversionType.APPLICATION, you can not set a value!


[5/5] struts git commit: WW-4210 Adds support for defining converter via class instead of string

Posted by lu...@apache.org.
WW-4210 Adds support for defining converter via class instead of string


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/faf72b5a
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/faf72b5a
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/faf72b5a

Branch: refs/heads/master
Commit: faf72b5a09ad8312a90b564971e6d679bbeda6cf
Parents: d828484 a584525
Author: Lukasz Lenart <lu...@apache.org>
Authored: Sat Apr 22 17:42:15 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Sat Apr 22 17:42:15 2017 +0200

----------------------------------------------------------------------
 .../xwork2/conversion/TypeConverterCreator.java |  9 +++++
 .../conversion/annotations/TypeConversion.java  | 31 +++++++++++++----
 .../DefaultConversionAnnotationProcessor.java   | 36 +++++++++++++++-----
 .../impl/DefaultTypeConverterCreator.java       | 10 +++++-
 .../xwork2/conversion/impl/XWorkConverter.java  |  4 +--
 .../xwork2/conversion/ConversionTestAction.java |  9 ++---
 .../xwork2/test/AnnotationDataAware.java        |  6 ++--
 .../xwork2/test/AnnotationTestBean2.java        |  5 ++-
 .../xwork2/test/AnnotationUser.java             |  4 +--
 .../xwork2/test/annotations/PersonAction.java   |  4 +--
 .../opensymphony/xwork2/util/AnnotatedCat.java  |  4 +--
 11 files changed, 87 insertions(+), 35 deletions(-)
----------------------------------------------------------------------



[3/5] struts git commit: WW-4210 Updates tests to use the class definition instead of string

Posted by lu...@apache.org.
WW-4210 Updates tests to use the class definition instead of string


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/ec241249
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/ec241249
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/ec241249

Branch: refs/heads/master
Commit: ec2412492503cdd0e90abf7f2cf2c3e50c8fa70c
Parents: 3e76564
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Apr 20 08:29:53 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Apr 20 08:29:53 2017 +0200

----------------------------------------------------------------------
 .../xwork2/conversion/ConversionTestAction.java             | 9 +++++----
 .../com/opensymphony/xwork2/test/AnnotationDataAware.java   | 6 ++----
 .../com/opensymphony/xwork2/test/AnnotationTestBean2.java   | 5 ++---
 .../java/com/opensymphony/xwork2/test/AnnotationUser.java   | 4 ++--
 .../opensymphony/xwork2/test/annotations/PersonAction.java  | 4 ++--
 .../java/com/opensymphony/xwork2/util/AnnotatedCat.java     | 4 +---
 6 files changed, 14 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/ec241249/core/src/test/java/com/opensymphony/xwork2/conversion/ConversionTestAction.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/conversion/ConversionTestAction.java b/core/src/test/java/com/opensymphony/xwork2/conversion/ConversionTestAction.java
index de743fe..d19aaf1 100644
--- a/core/src/test/java/com/opensymphony/xwork2/conversion/ConversionTestAction.java
+++ b/core/src/test/java/com/opensymphony/xwork2/conversion/ConversionTestAction.java
@@ -21,6 +21,7 @@ import com.opensymphony.xwork2.conversion.annotations.ConversionRule;
 import com.opensymphony.xwork2.conversion.annotations.ConversionType;
 import com.opensymphony.xwork2.conversion.annotations.TypeConversion;
 
+import java.math.BigInteger;
 import java.util.HashMap;
 import java.util.List;
 
@@ -49,7 +50,7 @@ public class ConversionTestAction implements Action {
         return convertInt;
     }
 
-    @TypeConversion(type = ConversionType.APPLICATION, converter = "com.opensymphony.xwork2.util.XWorkBasicConverter")
+    @TypeConversion(type = ConversionType.APPLICATION)
     public void setConvertInt( String convertInt ) {
         this.convertInt = convertInt;
     }
@@ -67,7 +68,7 @@ public class ConversionTestAction implements Action {
         return users;
     }
 
-    @TypeConversion(rule = ConversionRule.COLLECTION, converter = "java.lang.String")
+    @TypeConversion(rule = ConversionRule.COLLECTION, converterClass = String.class)
     public void setUsers( List users ) {
         this.users = users;
     }
@@ -76,7 +77,7 @@ public class ConversionTestAction implements Action {
         return keyValues;
     }
 
-    @TypeConversion(rule = ConversionRule.MAP, converter = "java.math.BigInteger")
+    @TypeConversion(rule = ConversionRule.MAP, converterClass = BigInteger.class)
     public void setKeyValues( HashMap keyValues ) {
         this.keyValues = keyValues;
     }
@@ -90,7 +91,7 @@ public class ConversionTestAction implements Action {
      *                   Application level exceptions should be handled by returning
      *                   an error value, such as Action.ERROR.
      */
-    @TypeConversion(type = ConversionType.APPLICATION, key = "java.util.Date", converter = "com.opensymphony.xwork2.util.XWorkBasicConverter")
+    @TypeConversion(type = ConversionType.APPLICATION, key = "java.util.Date")
     public String execute() throws Exception {
         return SUCCESS;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/ec241249/core/src/test/java/com/opensymphony/xwork2/test/AnnotationDataAware.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/test/AnnotationDataAware.java b/core/src/test/java/com/opensymphony/xwork2/test/AnnotationDataAware.java
index fd63584..a30497b 100644
--- a/core/src/test/java/com/opensymphony/xwork2/test/AnnotationDataAware.java
+++ b/core/src/test/java/com/opensymphony/xwork2/test/AnnotationDataAware.java
@@ -17,6 +17,7 @@ package com.opensymphony.xwork2.test;
 
 import com.opensymphony.xwork2.conversion.annotations.Conversion;
 import com.opensymphony.xwork2.conversion.annotations.TypeConversion;
+import com.opensymphony.xwork2.conversion.impl.FooBarConverter;
 import com.opensymphony.xwork2.util.Bar;
 import com.opensymphony.xwork2.validator.annotations.RequiredFieldValidator;
 import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
@@ -29,15 +30,12 @@ import com.opensymphony.xwork2.validator.annotations.Validation;
  * @author Mark Woon
  * @author Rainer Hermanns
  */
-@Validation()
 @Conversion()
 public interface AnnotationDataAware {
 
     void setBarObj(Bar b);
 
-    @TypeConversion(
-            converter = "com.opensymphony.xwork2.conversion.impl.FooBarConverter"
-    )
+    @TypeConversion(converterClass = FooBarConverter.class)
     Bar getBarObj();
 
     @RequiredFieldValidator(message = "You must enter a value for data.")

http://git-wip-us.apache.org/repos/asf/struts/blob/ec241249/core/src/test/java/com/opensymphony/xwork2/test/AnnotationTestBean2.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/test/AnnotationTestBean2.java b/core/src/test/java/com/opensymphony/xwork2/test/AnnotationTestBean2.java
index 3a1396b..ccd5ec1 100644
--- a/core/src/test/java/com/opensymphony/xwork2/test/AnnotationTestBean2.java
+++ b/core/src/test/java/com/opensymphony/xwork2/test/AnnotationTestBean2.java
@@ -18,6 +18,7 @@ package com.opensymphony.xwork2.test;
 import com.opensymphony.xwork2.AnnotatedTestBean;
 import com.opensymphony.xwork2.conversion.annotations.Conversion;
 import com.opensymphony.xwork2.conversion.annotations.TypeConversion;
+import com.opensymphony.xwork2.conversion.impl.FooBarConverter;
 import com.opensymphony.xwork2.util.Bar;
 import com.opensymphony.xwork2.util.Cat;
 
@@ -56,9 +57,7 @@ public class AnnotationTestBean2 extends AnnotatedTestBean implements Annotation
         return cat;
     }
 
-    @TypeConversion(
-            key = "cat", converter = "com.opensymphony.xwork2.conversion.impl.FooBarConverter"
-    )
+    @TypeConversion(key = "cat", converterClass = FooBarConverter.class)
     public void setCat(Cat cat) {
         this.cat = cat;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/ec241249/core/src/test/java/com/opensymphony/xwork2/test/AnnotationUser.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/test/AnnotationUser.java b/core/src/test/java/com/opensymphony/xwork2/test/AnnotationUser.java
index be2f863..fbf3535 100644
--- a/core/src/test/java/com/opensymphony/xwork2/test/AnnotationUser.java
+++ b/core/src/test/java/com/opensymphony/xwork2/test/AnnotationUser.java
@@ -82,12 +82,12 @@ public class AnnotationUser implements AnnotationUserMarker {
     }
 
     @KeyProperty( value = "name")
-    @TypeConversion( converter = "java.lang.String", rule = ConversionRule.COLLECTION)
+    @TypeConversion(converterClass = String.class, rule = ConversionRule.COLLECTION)
     public List getList() {
         return list;
     }
 
-    @TypeConversion( converter = "java.lang.String", rule = ConversionRule.MAP)
+    @TypeConversion(converterClass = String.class, rule = ConversionRule.MAP)
     public void setMap(Map m) {
         map = m;
     }

http://git-wip-us.apache.org/repos/asf/struts/blob/ec241249/core/src/test/java/com/opensymphony/xwork2/test/annotations/PersonAction.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/test/annotations/PersonAction.java b/core/src/test/java/com/opensymphony/xwork2/test/annotations/PersonAction.java
index 72e20ef..c4a6c40 100644
--- a/core/src/test/java/com/opensymphony/xwork2/test/annotations/PersonAction.java
+++ b/core/src/test/java/com/opensymphony/xwork2/test/annotations/PersonAction.java
@@ -11,10 +11,10 @@ import java.util.List;
 	conversions={
 		@TypeConversion(type=ConversionType.APPLICATION,
 						key="com.opensymphony.xwork2.test.annotations.Address",
-						converter="com.opensymphony.xwork2.test.annotations.AddressTypeConverter"),
+						converterClass=AddressTypeConverter.class),
 		@TypeConversion(type=ConversionType.APPLICATION,
 						key="com.opensymphony.xwork2.test.annotations.Person",
-						converter="com.opensymphony.xwork2.test.annotations.PersonTypeConverter")})
+						converterClass=PersonTypeConverter.class)})
 public class PersonAction {
 	List<Person> users;
 	private List<Address> address;

http://git-wip-us.apache.org/repos/asf/struts/blob/ec241249/core/src/test/java/com/opensymphony/xwork2/util/AnnotatedCat.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/util/AnnotatedCat.java b/core/src/test/java/com/opensymphony/xwork2/util/AnnotatedCat.java
index 5733159..fdb0a50 100644
--- a/core/src/test/java/com/opensymphony/xwork2/util/AnnotatedCat.java
+++ b/core/src/test/java/com/opensymphony/xwork2/util/AnnotatedCat.java
@@ -50,9 +50,7 @@ public class AnnotatedCat {
         this.kittens = kittens;
     }
 
-    @TypeConversion(
-            key = "kittens", converter = "com.opensymphony.xwork2.util.Cat"
-    )
+    @TypeConversion(key = "kittens", converterClass = Cat.class)
     public List getKittens() {
         return kittens;
     }


[2/5] struts git commit: WW-4210 Supports defining converter as a class in the annotation

Posted by lu...@apache.org.
WW-4210 Supports defining converter as a class in the annotation


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/3e76564d
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/3e76564d
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/3e76564d

Branch: refs/heads/master
Commit: 3e76564d3ce8d5b4a3938efd3a76c521eb045f38
Parents: 47552bd
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Apr 20 08:29:24 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Apr 20 08:29:24 2017 +0200

----------------------------------------------------------------------
 .../xwork2/conversion/TypeConverterCreator.java |  9 +++++
 .../DefaultConversionAnnotationProcessor.java   | 36 +++++++++++++++-----
 .../impl/DefaultTypeConverterCreator.java       | 10 +++++-
 .../xwork2/conversion/impl/XWorkConverter.java  |  4 +--
 4 files changed, 48 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/3e76564d/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConverterCreator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConverterCreator.java b/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConverterCreator.java
index 738bbe8..438d31c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConverterCreator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/TypeConverterCreator.java
@@ -14,4 +14,13 @@ public interface TypeConverterCreator {
      */
     TypeConverter createTypeConverter(String className) throws Exception;
 
+    /**
+     * Creates {@link TypeConverter} from given class
+     *
+     * @param clazz convert class
+     * @return instance of {@link TypeConverter}
+     * @throws Exception when cannot create/cast to {@link TypeConverter}
+     */
+    TypeConverter createTypeConverter(Class<?> clazz) throws Exception;
+
 }

http://git-wip-us.apache.org/repos/asf/struts/blob/3e76564d/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionAnnotationProcessor.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionAnnotationProcessor.java
index c3faae3..5396712 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionAnnotationProcessor.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultConversionAnnotationProcessor.java
@@ -8,6 +8,7 @@ import com.opensymphony.xwork2.conversion.annotations.ConversionRule;
 import com.opensymphony.xwork2.conversion.annotations.ConversionType;
 import com.opensymphony.xwork2.conversion.annotations.TypeConversion;
 import com.opensymphony.xwork2.inject.Inject;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
@@ -34,28 +35,43 @@ public class DefaultConversionAnnotationProcessor implements ConversionAnnotatio
     }
 
     public void process(Map<String, Object> mapping, TypeConversion tc, String key) {
-        LOG.debug("TypeConversion [{}] with key: [{}]", tc.converter(), key);
+        LOG.debug("TypeConversion [{}/{}] with key: [{}]", tc.converter(), tc.converterClass(), key);
         if (key == null) {
             return;
         }
         try {
             if (tc.type() == ConversionType.APPLICATION) {
-                converterHolder.addDefaultMapping(key, converterCreator.createTypeConverter(tc.converter()));
+                if (StringUtils.isNoneEmpty(tc.converter())) {
+                    converterHolder.addDefaultMapping(key, converterCreator.createTypeConverter(tc.converter()));
+                } else {
+                    converterHolder.addDefaultMapping(key, converterCreator.createTypeConverter(tc.converterClass()));
+                }
             } else {
                 if (tc.rule() == ConversionRule.KEY_PROPERTY || tc.rule() == ConversionRule.CREATE_IF_NULL) {
                     mapping.put(key, tc.value());
                 }
                 //for properties of classes
                 else if (tc.rule() != ConversionRule.ELEMENT || tc.rule() == ConversionRule.KEY || tc.rule() == ConversionRule.COLLECTION) {
-                    mapping.put(key, converterCreator.createTypeConverter(tc.converter()));
+                    if (StringUtils.isNoneEmpty(tc.converter())) {
+                        mapping.put(key, converterCreator.createTypeConverter(tc.converter()));
+                    } else {
+                        mapping.put(key, converterCreator.createTypeConverter(tc.converterClass()));
+                    }
                 }
                 //for keys of Maps
                 else if (tc.rule() == ConversionRule.KEY) {
-                    Class converterClass = Thread.currentThread().getContextClassLoader().loadClass(tc.converter());
+                    Class<?> converterClass;
+                    if (StringUtils.isNoneEmpty(tc.converter())) {
+                        converterClass = Thread.currentThread().getContextClassLoader().loadClass(tc.converter());
+                        //check if the converter is a type converter if it is one
+                        //then just put it in the map as is. Otherwise
+                        //put a value in for the type converter of the class
+                    } else {
+                        converterClass = tc.converterClass();
+                    }
+
                     LOG.debug("Converter class: [{}]", converterClass);
-                    //check if the converter is a type converter if it is one
-                    //then just put it in the map as is. Otherwise
-                    //put a value in for the type converter of the class
+
                     if (converterClass.isAssignableFrom(TypeConverter.class)) {
                         mapping.put(key, converterCreator.createTypeConverter(tc.converter()));
                     } else {
@@ -65,7 +81,11 @@ public class DefaultConversionAnnotationProcessor implements ConversionAnnotatio
                 }
                 //elements(values) of maps / lists
                 else {
-                    mapping.put(key, Thread.currentThread().getContextClassLoader().loadClass(tc.converter()));
+                    if (StringUtils.isNoneEmpty(tc.converter())) {
+                        mapping.put(key, Thread.currentThread().getContextClassLoader().loadClass(tc.converter()));
+                    } else {
+                        mapping.put(key, tc.converterClass());
+                    }
                 }
             }
         } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/struts/blob/3e76564d/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverterCreator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverterCreator.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverterCreator.java
index ed6ac22..d9613b2 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverterCreator.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/DefaultTypeConverterCreator.java
@@ -19,8 +19,16 @@ public class DefaultTypeConverterCreator implements TypeConverterCreator {
     }
 
     public TypeConverter createTypeConverter(String className) throws Exception {
-        // type converters are used across users
         Object obj = objectFactory.buildBean(className, null);
+        return getTypeConverter(obj);
+    }
+
+    public TypeConverter createTypeConverter(Class<?> clazz) throws Exception {
+        Object obj = objectFactory.buildBean(clazz, null);
+        return getTypeConverter(obj);
+    }
+
+    protected TypeConverter getTypeConverter(Object obj) {
         if (obj instanceof TypeConverter) {
             return (TypeConverter) obj;
 

http://git-wip-us.apache.org/repos/asf/struts/blob/3e76564d/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
index 4257411..0d55613 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
@@ -487,9 +487,9 @@ public class XWorkConverter extends DefaultTypeConverter {
                     }
                     if (LOG.isDebugEnabled()) {
                         if (StringUtils.isEmpty(tc.key())) {
-                            LOG.debug("WARNING! key of @TypeConversion [{}] applied to [{}] is empty!", tc.converter(), clazz.getName());
+                            LOG.debug("WARNING! key of @TypeConversion [{}/{}] applied to [{}] is empty!", tc.converter(), tc.converterClass(), clazz.getName());
                         } else {
-                            LOG.debug("TypeConversion [{}] with key: [{}]", tc.converter(), tc.key());
+                            LOG.debug("TypeConversion [{}/{}] with key: [{}]", tc.converter(), tc.converterClass(), tc.key());
                         }
                     }
                     annotationProcessor.process(mapping, tc, tc.key());


[4/5] struts git commit: WW-4210 Updates JavaDocs

Posted by lu...@apache.org.
WW-4210 Updates JavaDocs


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/a5845257
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/a5845257
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/a5845257

Branch: refs/heads/master
Commit: a58452571c90314f8ed56301133a2a7f7ad1c67b
Parents: ec24124
Author: Lukasz Lenart <lu...@apache.org>
Authored: Thu Apr 20 08:34:55 2017 +0200
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Thu Apr 20 08:34:55 2017 +0200

----------------------------------------------------------------------
 .../conversion/annotations/TypeConversion.java    | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/a5845257/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
index db57573..609936c 100644
--- a/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
+++ b/core/src/main/java/com/opensymphony/xwork2/conversion/annotations/TypeConversion.java
@@ -79,11 +79,17 @@ import java.lang.annotation.Target;
  * </tr>
  * <tr>
  * <td>converter</td>
- * <td>either this or value</td>
+ * <td>DEPRECATED: either this or value</td>
  * <td>&nbsp;</td>
  * <td>The class name of the TypeConverter to be used as converter.</td>
  * </tr>
  * <tr>
+ * <td>converterClass</td>
+ * <td>either this or value</td>
+ * <td>&nbsp;</td>
+ * <td>The class of the TypeConverter to be used as converter. XWorkBasicConverter by default.</td>
+ * </tr>
+ * <tr>
  * <td>value</td>
  * <td>either converter or this</td>
  * <td>&nbsp;</td>
@@ -108,27 +114,27 @@ import java.lang.annotation.Target;
  *
  *   private HashMap keyValues = null;
  *
- *   &#64;TypeConversion(type = ConversionType.APPLICATION, converter = "com.opensymphony.xwork2.util.XWorkBasicConverter")
+ *   &#64;TypeConversion(type = ConversionType.APPLICATION)
  *   public void setConvertInt( String convertInt ) {
  *       this.convertInt = convertInt;
  *   }
  *
- *   &#64;TypeConversion(converter = "com.opensymphony.xwork2.util.XWorkBasicConverter")
+ *   &#64;TypeConversion(converterClass = XWorkBasicConverter.class)
  *   public void setConvertDouble( String convertDouble ) {
  *       this.convertDouble = convertDouble;
  *   }
  *
- *   &#64;TypeConversion(rule = ConversionRule.COLLECTION, converter = "java.util.String")
+ *   &#64;TypeConversion(rule = ConversionRule.COLLECTION, converterClass = String.class)
  *   public void setUsers( List users ) {
  *       this.users = users;
  *   }
  *
- *   &#64;TypeConversion(rule = ConversionRule.MAP, converter = "java.math.BigInteger")
+ *   &#64;TypeConversion(rule = ConversionRule.MAP, converterClass = BigInteger.class)
  *   public void setKeyValues( HashMap keyValues ) {
  *       this.keyValues = keyValues;
  *   }
  *
- *   &#64;TypeConversion(type = ConversionType.APPLICATION, property = "java.util.Date", converter = "com.opensymphony.xwork2.util.XWorkBasicConverter")
+ *   &#64;TypeConversion(type = ConversionType.APPLICATION, property = "java.util.Date", converterClass = XWorkBasicConverter.class)
  *   public String execute() throws Exception {
  *       return SUCCESS;
  *   }