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>