From 96c99ce061a2568b9586d976902274c8a9053b9f Mon Sep 17 00:00:00 2001 From: Lukasz Lenart Date: Mon, 21 Jan 2013 18:13:32 +0000 Subject: [PATCH] WW-3829 adds better logging and improve example in JavaDoc git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@1436526 13f79535-47bb-0310-9956-ffa450edef68 --- .../conversion/annotations/Conversion.java | 22 +++++++++++++--- .../conversion/impl/XWorkConverter.java | 25 +++++++++++++++---- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java b/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java index 90d2ab848..802b30276 100644 --- a/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java +++ b/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/annotations/Conversion.java @@ -22,13 +22,13 @@ import java.lang.annotation.Target; /** * - *

A marker annotation for type conversions at Type level. + * A marker annotation for type conversions at Type level. * * *

Annotation usage: * * - *

The Conversion annotation must be applied at Type level. + * The Conversion annotation must be applied at Type level. Check also [TypeConversion Annotation] for more examples! * * *

Annotation parameters: @@ -58,8 +58,24 @@ import java.lang.annotation.Target; * *

  * 
- * @Conversion()
+ * @Conversion(
+ *     conversions = {
+ *          // key must be the name of a property for which converter should be used
+ *          @TypeConversion(key = "date", converter = "org.demo.converter.DateConverter")
+ *     }
+ * )
  * public class ConversionAction implements Action {
+ *
+ *     private Date date;
+ *
+ *     public setDate(Date date) {
+ *         this.date = date;
+ *     }
+ *
+ *     public Date getDate() {
+ *         return date;
+ *     }
+ *
  * }
  *
  * 
diff --git a/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java b/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
index d09172910..d80996432 100644
--- a/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
+++ b/xwork-core/src/main/java/com/opensymphony/xwork2/conversion/impl/XWorkConverter.java
@@ -20,8 +20,8 @@ import com.opensymphony.xwork2.FileManager;
 import com.opensymphony.xwork2.FileManagerFactory;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.XWorkConstants;
-import com.opensymphony.xwork2.XWorkMessages;
 import com.opensymphony.xwork2.XWorkException;
+import com.opensymphony.xwork2.XWorkMessages;
 import com.opensymphony.xwork2.conversion.TypeConverter;
 import com.opensymphony.xwork2.conversion.annotations.Conversion;
 import com.opensymphony.xwork2.conversion.annotations.ConversionRule;
@@ -29,10 +29,15 @@ import com.opensymphony.xwork2.conversion.annotations.ConversionType;
 import com.opensymphony.xwork2.conversion.annotations.TypeConversion;
 import com.opensymphony.xwork2.inject.Inject;
 import com.opensymphony.xwork2.ognl.XWorkTypeConverterWrapper;
-import com.opensymphony.xwork2.util.*;
+import com.opensymphony.xwork2.util.AnnotationUtils;
+import com.opensymphony.xwork2.util.ClassLoaderUtil;
+import com.opensymphony.xwork2.util.CompoundRoot;
+import com.opensymphony.xwork2.util.LocalizedTextUtil;
+import com.opensymphony.xwork2.util.ValueStack;
 import com.opensymphony.xwork2.util.logging.Logger;
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import com.opensymphony.xwork2.util.reflection.ReflectionContextState;
+import org.apache.commons.lang3.StringUtils;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -40,10 +45,16 @@ import java.lang.annotation.Annotation;
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
 import java.net.URL;
-import java.util.*;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
-import java.text.MessageFormat;
 
 
 /**
@@ -587,7 +598,11 @@ public class XWorkConverter extends DefaultTypeConverter {
                         break;
                     }
                     if (LOG.isDebugEnabled()) {
-                        LOG.debug(key + ":" + key);
+                        if (StringUtils.isEmpty(key)) {
+                            LOG.debug("WARNING! key of @TypeConversion [#0] applied to [#1] is empty!", tc.converter(), clazz.getName());
+                        } else {
+                            LOG.debug("TypeConversion [#0] with key: [#1]", tc.converter(), key);
+                        }
                     }
 
                     if (key != null) {