Revision: 958
          http://stripes.svn.sourceforge.net/stripes/?rev=958&view=rev
Author:   javelotinfo
Date:     2008-09-27 19:02:03 +0000 (Sat, 27 Sep 2008)

Log Message:
-----------
Fix for STS-604

Modified Paths:
--------------
    
branches/1.5.x/stripes/src/net/sourceforge/stripes/validation/DefaultValidationMetadataProvider.java
    
branches/1.5.x/tests/src/net/sourceforge/stripes/validation/ValidationAnnotationsTest.java

Modified: 
branches/1.5.x/stripes/src/net/sourceforge/stripes/validation/DefaultValidationMetadataProvider.java
===================================================================
--- 
branches/1.5.x/stripes/src/net/sourceforge/stripes/validation/DefaultValidationMetadataProvider.java
        2008-09-27 18:19:27 UTC (rev 957)
+++ 
branches/1.5.x/stripes/src/net/sourceforge/stripes/validation/DefaultValidationMetadataProvider.java
        2008-09-27 19:02:03 UTC (rev 958)
@@ -19,9 +19,12 @@
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -89,7 +92,15 @@
         Set<String> seen = new HashSet<String>();
         try {
             for (Class<?> clazz = beanType; clazz != null; clazz = 
clazz.getSuperclass()) {
-                PropertyDescriptor[] pds = 
Introspector.getBeanInfo(clazz).getPropertyDescriptors();
+                List<PropertyDescriptor> pds = new 
ArrayList<PropertyDescriptor>(
+                    
Arrays.asList(Introspector.getBeanInfo(clazz).getPropertyDescriptors()));
+
+                // Also look at public fields
+                Field[] publicFields = clazz.getFields();
+                for (Field field : publicFields) {
+                    pds.add(new PropertyDescriptor(field.getName(), null, 
null));
+                }
+
                 for (PropertyDescriptor pd : pds) {
                     String propertyName = pd.getName();
                     Method accessor = pd.getReadMethod();

Modified: 
branches/1.5.x/tests/src/net/sourceforge/stripes/validation/ValidationAnnotationsTest.java
===================================================================
--- 
branches/1.5.x/tests/src/net/sourceforge/stripes/validation/ValidationAnnotationsTest.java
  2008-09-27 18:19:27 UTC (rev 957)
+++ 
branches/1.5.x/tests/src/net/sourceforge/stripes/validation/ValidationAnnotationsTest.java
  2008-09-27 19:02:03 UTC (rev 958)
@@ -39,4 +39,22 @@
         ActionBean actionBean = trip.getActionBean(getClass());
         Assert.assertEquals(0, 
actionBean.getContext().getValidationErrors().size());
     }
+
+    @Validate(required=true, on="validatePublicField")
+    public String publicField;
+
+    public Resolution validatePublicField() { return null; }
+
+    /**
+     * Tests that a validation annotation works on a public field.
+     *
+     * @see http://www.stripesframework.org/jira/browse/STS-604
+     */
+    @Test(groups="fast")
+    public void testValidatePublicField() throws Exception {
+        MockRoundtrip trip = new 
MockRoundtrip(StripesTestFixture.getServletContext(), getClass());
+        trip.execute("validatePublicField");
+        ActionBean actionBean = trip.getActionBean(getClass());
+        Assert.assertEquals(1, 
actionBean.getContext().getValidationErrors().size());
+    }
 }


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Stripes-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-development

Reply via email to