Author: musachy
Date: Mon Mar 30 02:48:48 2009
New Revision: 759834

URL: http://svn.apache.org/viewvc?rev=759834&view=rev
Log:
Add XML support

Added:
    
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXML.java
      - copied, changed from r759802, 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXml.java
    
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXML-validation.xml
      - copied, changed from r759802, 
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXml-validation.xml
Removed:
    
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXml.java
    
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXml-validation.xml
Modified:
    
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/DefaultOValValidationManager.java
    
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/OValValidationInterceptor.java
    
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/OValValidationInterceptorTest.java
    struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/oval-test.xml

Modified: 
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/DefaultOValValidationManager.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/DefaultOValValidationManager.java?rev=759834&r1=759833&r2=759834&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/DefaultOValValidationManager.java
 (original)
+++ 
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/DefaultOValValidationManager.java
 Mon Mar 30 02:48:48 2009
@@ -6,6 +6,7 @@
 import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import net.sf.oval.configuration.xml.XMLConfigurer;
 import net.sf.oval.configuration.Configurer;
+import net.sf.oval.configuration.annotation.AnnotationsConfigurer;
 
 import java.util.List;
 import java.util.Map;
@@ -27,10 +28,22 @@
 
         if (validatorCache.containsKey(validatorKey)) {
             if (FileManager.isReloadingConfigs()) {
-                validatorCache.put(validatorKey, buildXMLConfigurers(clazz, 
context, true, null));
+                List<Configurer> configurers = buildXMLConfigurers(clazz, 
context, true, null);
+
+                //add an annotation configurer
+                AnnotationsConfigurer annotationsConfigurer = new 
AnnotationsConfigurer();
+                configurers.add(annotationsConfigurer);
+
+                validatorCache.put(validatorKey, configurers);
             }
         } else {
-            validatorCache.put(validatorKey, buildXMLConfigurers(clazz, 
context, false, null));
+            List<Configurer> configurers = buildXMLConfigurers(clazz, context, 
false, null);
+
+            //add an annotation configurer
+            AnnotationsConfigurer annotationsConfigurer = new 
AnnotationsConfigurer();
+            configurers.add(annotationsConfigurer);
+
+            validatorCache.put(validatorKey, configurers);
         }
 
         // get the set of validator configs
@@ -45,21 +58,21 @@
     }
 
     private List<Configurer> buildXMLConfigurers(Class clazz, String context, 
boolean checkFile, Set<String> checked) {
-        List<Configurer> xmlConfigurers = new ArrayList<Configurer>();
+        List<Configurer> configurers = new ArrayList<Configurer>();
 
         if (checked == null) {
             checked = new TreeSet<String>();
         } else if (checked.contains(clazz.getName())) {
-            return xmlConfigurers;
+            return configurers;
         }
 
         if (clazz.isInterface()) {
             for (Class anInterface : clazz.getInterfaces()) {
-                xmlConfigurers.addAll(buildXMLConfigurers(anInterface, 
context, checkFile, checked));
+                configurers.addAll(buildXMLConfigurers(anInterface, context, 
checkFile, checked));
             }
         } else {
             if (!clazz.equals(Object.class)) {
-                
xmlConfigurers.addAll(buildXMLConfigurers(clazz.getSuperclass(), context, 
checkFile, checked));
+                configurers.addAll(buildXMLConfigurers(clazz.getSuperclass(), 
context, checkFile, checked));
             }
         }
 
@@ -69,24 +82,24 @@
                 continue;
             }
 
-            addIfNotNull(xmlConfigurers, 
buildClassValidatorConfigs(anInterface1, checkFile));
+            addIfNotNull(configurers, buildClassValidatorConfigs(anInterface1, 
checkFile));
 
             if (context != null) {
-                addIfNotNull(xmlConfigurers, 
buildAliasValidatorConfigs(anInterface1, context, checkFile));
+                addIfNotNull(configurers, 
buildAliasValidatorConfigs(anInterface1, context, checkFile));
             }
 
             checked.add(anInterface1.getName());
         }
 
-        addIfNotNull(xmlConfigurers, buildClassValidatorConfigs(clazz, 
checkFile));
+        addIfNotNull(configurers, buildClassValidatorConfigs(clazz, 
checkFile));
 
         if (context != null) {
-            addIfNotNull(xmlConfigurers, buildAliasValidatorConfigs(clazz, 
context, checkFile));
+            addIfNotNull(configurers, buildAliasValidatorConfigs(clazz, 
context, checkFile));
         }
 
         checked.add(clazz.getName());
 
-        return xmlConfigurers;
+        return configurers;
     }
 
     protected void addIfNotNull(List<Configurer> configurers, Configurer 
configurer) {
@@ -120,6 +133,7 @@
                     XMLConfigurer configurer = new XMLConfigurer();
                     configurer.fromXML(is);
                     validatorFileCache.put(fileName, configurer);
+                    return configurer;
                 }
             } finally {
                 if (is != null) {

Modified: 
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/OValValidationInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/OValValidationInterceptor.java?rev=759834&r1=759833&r2=759834&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/OValValidationInterceptor.java
 (original)
+++ 
struts/sandbox/trunk/struts2-oval-plugin/src/main/java/org/apache/struts2/interceptor/OValValidationInterceptor.java
 Mon Mar 30 02:48:48 2009
@@ -35,6 +35,7 @@
 import net.sf.oval.ConstraintViolation;
 import net.sf.oval.configuration.xml.XMLConfigurer;
 import net.sf.oval.configuration.Configurer;
+import net.sf.oval.configuration.annotation.AnnotationsConfigurer;
 import net.sf.oval.context.FieldContext;
 import net.sf.oval.context.OValContext;
 import net.sf.oval.context.MethodReturnValueContext;

Modified: 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/OValValidationInterceptorTest.java
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/OValValidationInterceptorTest.java?rev=759834&r1=759833&r2=759834&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/OValValidationInterceptorTest.java
 (original)
+++ 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/OValValidationInterceptorTest.java
 Mon Mar 30 02:48:48 2009
@@ -29,6 +29,8 @@
 import java.util.List;
 import java.util.Map;
 
+import net.sf.oval.configuration.Configurer;
+
 public class OValValidationInterceptorTest extends XWorkTestCase {
     public void testSimpleFieldsXML() throws Exception {
         ActionProxy baseActionProxy = 
actionProxyFactory.createActionProxy("oval", "simpleFieldsXML", null, null);
@@ -38,7 +40,20 @@
         assertNotNull(fieldErrors);
         assertEquals(2, fieldErrors.size());
         assertValue(fieldErrors, "firstName", Arrays.asList("firstName cannot 
be null"));
-        assertValue(fieldErrors, "lastName", Arrays.asList("lastName cannot be 
empty"));
+        assertValue(fieldErrors, "lastName", Arrays.asList("lastName cannot be 
null"));
+    }
+
+    public void testXMLLoadCaching() {
+        OValValidationManager manager = 
container.getInstance(OValValidationManager.class);
+        List<Configurer> configurers = 
manager.getConfigurers(SimpleFieldsXML.class, "simpleFieldsXML");
+        assertNotNull(configurers);
+        assertEquals(1, configurers.size());
+
+        //load again and check it is the same instance
+        List<Configurer> configurers2 = 
manager.getConfigurers(SimpleFieldsXML.class, "simpleFieldsXML");
+        assertNotNull(configurers2);
+        assertEquals(1, configurers2.size());
+        assertSame(configurers.get(0), configurers2.get(0));
     }
 
     public void testSimpleField() throws Exception {

Copied: 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXML.java
 (from r759802, 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXml.java)
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXML.java?p2=struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXML.java&p1=struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXml.java&r1=759802&r2=759834&rev=759834&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXml.java
 (original)
+++ 
struts/sandbox/trunk/struts2-oval-plugin/src/test/java/org/apache/struts2/interceptor/SimpleFieldsXML.java
 Mon Mar 30 02:48:48 2009
@@ -4,12 +4,11 @@
 import net.sf.oval.constraint.NotEmpty;
 import net.sf.oval.constraint.NotNull;
 
-public class SimpleFieldsXml extends ActionSupport {
-    @NotNull
+public class SimpleFieldsXML extends ActionSupport {
     private String firstName;
 
-    @NotEmpty
-    private String lastName = "";
+    @NotNull
+    private String lastName;
 
     public String getFirstName() {
         return firstName;

Copied: 
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXML-validation.xml
 (from r759802, 
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXml-validation.xml)
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXML-validation.xml?p2=struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXML-validation.xml&p1=struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXml-validation.xml&r1=759802&r2=759834&rev=759834&view=diff
==============================================================================
--- 
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXml-validation.xml
 (original)
+++ 
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/org/apache/struts2/interceptor/SimpleFieldsXML-validation.xml
 Mon Mar 30 02:48:48 2009
@@ -5,10 +5,11 @@
    "http://oval.sourceforge.net/oval-configuration-1.3.dtd";>
 -->
 <oval xmlns="http://oval.sf.net/oval-configuration"; 
xmlns:xsi="http://http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="http://oval.sf.net/oval-configuration 
http://oval.sourceforge.net/oval-configuration-1.3.xsd";
->
-       <!-- define a constraint set -->
-       <constraintSet id="firstName">
-               <notNull message="{context} is null" />
-       </constraintSet>
+      xsi:schemaLocation="http://oval.sf.net/oval-configuration 
http://oval.sourceforge.net/oval-configuration-1.3.xsd";>
+    <class type="org.apache.struts2.interceptor.SimpleFieldsXML" 
overwrite="false"
+           applyFieldConstraintsToSetters="true">
+        <field name="firstName">
+            <notNull/>
+        </field>
+    </class>
 </oval>
\ No newline at end of file

Modified: 
struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/oval-test.xml
URL: 
http://svn.apache.org/viewvc/struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/oval-test.xml?rev=759834&r1=759833&r2=759834&view=diff
==============================================================================
--- struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/oval-test.xml 
(original)
+++ struts/sandbox/trunk/struts2-oval-plugin/src/test/resources/oval-test.xml 
Mon Mar 30 02:48:48 2009
@@ -13,7 +13,7 @@
             <interceptor name="ovalValidation" 
class="org.apache.struts2.interceptor.OValValidationInterceptor"/>
         </interceptors>
 
-        <action name="simpleFieldsXML" 
class="org.apache.struts2.interceptor.SimpleFieldsXml">
+        <action name="simpleFieldsXML" 
class="org.apache.struts2.interceptor.SimpleFieldsXML">
             <interceptor-ref name="ovalValidation"/>
             <result type="void"></result>
         </action>


Reply via email to