You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/05/24 17:28:42 UTC
svn commit: r1127117 - in /commons/sandbox/digester3/trunk/src:
main/java/org/apache/commons/digester3/annotations/
main/java/org/apache/commons/digester3/annotations/handlers/
main/java/org/apache/commons/digester3/annotations/internal/
main/java/org/...
Author: simonetripodi
Date: Tue May 24 15:28:41 2011
New Revision: 1127117
URL: http://svn.apache.org/viewvc?rev=1127117&view=rev
Log:
replaced in rules new handlers in place of ols providers/handlers; tests moved to the universal loader; removed obsolete components
Removed:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoader.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoaderBuilder.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoaderHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterLoadingException.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/FromAnnotationRuleProviderFactory.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/FromAnnotationsRuleSet.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/handlers/DefaultLoaderHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/handlers/MethodHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/handlers/SetPropertiesLoaderHandler.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/internal/
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/providers/
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/AttributeCallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/StackCallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/spi/
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterRule.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/BeanPropertySetter.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallMethod.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/ObjectCreate.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/PathCallParam.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetNext.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetProperty.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetRoot.java
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetTop.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/AbstractAnnotatedPojoTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/Person.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/CatalogTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/EmployeeTestCase.java
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/person/Person.java
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterRule.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/DigesterRule.java Tue May 24 15:28:41 2011
@@ -26,7 +26,6 @@ import java.lang.annotation.Target;
import java.lang.reflect.AnnotatedElement;
import org.apache.commons.digester3.Rule;
-import org.apache.commons.digester3.annotations.handlers.DefaultLoaderHandler;
/**
* Meta-annotation that marks an annotation as part of commons-digester.
@@ -47,18 +46,11 @@ public @interface DigesterRule
Class<? extends Rule> reflectsRule();
/**
- * The handler that takes care on converting this annotation in the related {@link AnnotationRuleProvider} and adds
- * it o the {@link FromAnnotationsRuleSet}
- *
- * @return the {@link DigesterLoaderHandler}
- */
- Class<? extends DigesterLoaderHandler<? extends Annotation, ? extends AnnotatedElement>> handledBy() default DefaultLoaderHandler.class;
-
- /**
- * Define the {@link AnnotationRuleProvider} that builds the {@link Rule} related to the digester rule.
- *
- * @return the {@link AnnotationRuleProvider}.
+ * The handler that takes care on converting this annotation in the related
+ * {@link AnnotationRuleProvider} and adds it o the {@link FromAnnotationsRuleSet}
+ *
+ * @return the {@link AnnotationHandler}
*/
- Class<? extends AnnotationRuleProvider<? extends Annotation, ? extends AnnotatedElement, ? extends Rule>> providedBy();
+ Class<? extends AnnotationHandler<? extends Annotation, ? extends AnnotatedElement>> handledBy();
}
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/BeanPropertySetter.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/BeanPropertySetter.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/BeanPropertySetter.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/BeanPropertySetter.java Tue May 24 15:28:41 2011
@@ -26,7 +26,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.BeanPropertySetterRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.providers.BeanPropertySetterRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.BeanPropertySetterHandler;
/**
* Fields annotated with {@code BeanPropertySetter} will be bound with {@code BeanPropertySetterRule} digester rule.
@@ -37,7 +37,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.FIELD )
-@DigesterRule( reflectsRule = BeanPropertySetterRule.class, providedBy = BeanPropertySetterRuleProvider.class )
+@DigesterRule( reflectsRule = BeanPropertySetterRule.class, handledBy = BeanPropertySetterHandler.class )
public @interface BeanPropertySetter
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallMethod.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallMethod.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallMethod.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallMethod.java Tue May 24 15:28:41 2011
@@ -26,7 +26,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.CallMethodRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.providers.CallMethodRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.CallMethodHandler;
/**
* Methods annotated with {@code CallMethod} will be bound with {@code CallMethodRule} digester rule.
@@ -37,7 +37,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.METHOD )
-@DigesterRule( reflectsRule = CallMethodRule.class, providedBy = CallMethodRuleProvider.class )
+@DigesterRule( reflectsRule = CallMethodRule.class, handledBy = CallMethodHandler.class )
public @interface CallMethod
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallParam.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallParam.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallParam.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/CallParam.java Tue May 24 15:28:41 2011
@@ -26,7 +26,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.CallParamRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.providers.CallParamRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.CallParamHandler;
/**
* Methods arguments annotated with {@code CallParam} will be bound with {@code CallParamRule} digester rule.
@@ -37,7 +37,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.PARAMETER )
-@DigesterRule( reflectsRule = CallParamRule.class, providedBy = CallParamRuleProvider.class )
+@DigesterRule( reflectsRule = CallParamRule.class, handledBy = CallParamHandler.class )
public @interface CallParam
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/FactoryCreate.java Tue May 24 15:28:41 2011
@@ -27,7 +27,7 @@ import org.apache.commons.digester3.Abst
import org.apache.commons.digester3.FactoryCreateRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.providers.FactoryCreateRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.FactoryCreateHandler;
import org.xml.sax.Attributes;
/**
@@ -40,7 +40,7 @@ import org.xml.sax.Attributes;
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.TYPE )
@CreationRule
-@DigesterRule( reflectsRule = FactoryCreateRule.class, providedBy = FactoryCreateRuleProvider.class )
+@DigesterRule( reflectsRule = FactoryCreateRule.class, handledBy = FactoryCreateHandler.class )
public @interface FactoryCreate
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/ObjectCreate.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/ObjectCreate.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/ObjectCreate.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/ObjectCreate.java Tue May 24 15:28:41 2011
@@ -26,7 +26,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.ObjectCreateRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.providers.ObjectCreateRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.ObjectCreateHandler;
/**
* Classes annotated with {@code ObjectCreate} will be bound with {@code ObjectCreateRule} digester rule.
@@ -38,7 +38,7 @@ import org.apache.commons.digester3.anno
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.TYPE )
@CreationRule
-@DigesterRule( reflectsRule = ObjectCreateRule.class, providedBy = ObjectCreateRuleProvider.class )
+@DigesterRule( reflectsRule = ObjectCreateRule.class, handledBy = ObjectCreateHandler.class )
public @interface ObjectCreate
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/PathCallParam.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/PathCallParam.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/PathCallParam.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/PathCallParam.java Tue May 24 15:28:41 2011
@@ -26,7 +26,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.PathCallParamRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.providers.PathCallParamRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.PathCallParamHandler;
/**
* Methods arguments annotated with {@code PathCallParam} will be bound with {@code PathCallParamRule} digester rule.
@@ -37,7 +37,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.PARAMETER )
-@DigesterRule( reflectsRule = PathCallParamRule.class, providedBy = PathCallParamRuleProvider.class )
+@DigesterRule( reflectsRule = PathCallParamRule.class, handledBy = PathCallParamHandler.class )
public @interface PathCallParam
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetNext.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetNext.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetNext.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetNext.java Tue May 24 15:28:41 2011
@@ -25,8 +25,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.SetNextRule;
import org.apache.commons.digester3.annotations.DigesterRule;
-import org.apache.commons.digester3.annotations.handlers.MethodHandler;
-import org.apache.commons.digester3.annotations.providers.SetNextRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.SetNextHandler;
/**
* Methods annotated with {@code SetNext} will be bound with {@code SetNextRule} digester rule.
@@ -37,7 +36,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.METHOD )
-@DigesterRule( reflectsRule = SetNextRule.class, providedBy = SetNextRuleProvider.class, handledBy = MethodHandler.class )
+@DigesterRule( reflectsRule = SetNextRule.class, handledBy = SetNextHandler.class )
public @interface SetNext
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetProperty.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetProperty.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetProperty.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetProperty.java Tue May 24 15:28:41 2011
@@ -26,8 +26,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.SetPropertiesRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.handlers.SetPropertiesLoaderHandler;
-import org.apache.commons.digester3.annotations.providers.SetPropertiesRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.SetPropertiesHandler;
/**
* Fields annotated with {@code SetProperty} will be bound with {@code SetPropertiesRule} digester rule.
@@ -38,7 +37,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.FIELD )
-@DigesterRule( reflectsRule = SetPropertiesRule.class, providedBy = SetPropertiesRuleProvider.class, handledBy = SetPropertiesLoaderHandler.class )
+@DigesterRule( reflectsRule = SetPropertiesRule.class, handledBy = SetPropertiesHandler.class )
public @interface SetProperty
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetRoot.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetRoot.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetRoot.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetRoot.java Tue May 24 15:28:41 2011
@@ -25,8 +25,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.SetRootRule;
import org.apache.commons.digester3.annotations.DigesterRule;
-import org.apache.commons.digester3.annotations.handlers.MethodHandler;
-import org.apache.commons.digester3.annotations.providers.SetRootRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.SetRootHandler;
/**
* Methods annotated with {@code SetRoot} will be bound with {@code SetRootRule} digester rule.
@@ -37,7 +36,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.METHOD )
-@DigesterRule( reflectsRule = SetRootRule.class, providedBy = SetRootRuleProvider.class, handledBy = MethodHandler.class )
+@DigesterRule( reflectsRule = SetRootRule.class, handledBy = SetRootHandler.class )
public @interface SetRoot
{
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetTop.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetTop.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetTop.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/annotations/rules/SetTop.java Tue May 24 15:28:41 2011
@@ -26,7 +26,7 @@ import java.lang.annotation.Target;
import org.apache.commons.digester3.SetTopRule;
import org.apache.commons.digester3.annotations.DigesterRule;
import org.apache.commons.digester3.annotations.DigesterRuleList;
-import org.apache.commons.digester3.annotations.providers.SetTopRuleProvider;
+import org.apache.commons.digester3.annotations.handlers.SetTopHandler;
/**
* Methods annotated with {@code SetTop} will be bound with {@code SetTopRule} digester rule.
@@ -37,7 +37,7 @@ import org.apache.commons.digester3.anno
@Documented
@Retention( RetentionPolicy.RUNTIME )
@Target( ElementType.METHOD )
-@DigesterRule( reflectsRule = SetTopRule.class, providedBy = SetTopRuleProvider.class )
+@DigesterRule( reflectsRule = SetTopRule.class, handledBy = SetTopHandler.class )
public @interface SetTop
{
Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/AbstractAnnotatedPojoTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/AbstractAnnotatedPojoTestCase.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/AbstractAnnotatedPojoTestCase.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/AbstractAnnotatedPojoTestCase.java Tue May 24 15:28:41 2011
@@ -17,15 +17,15 @@
*/
package org.apache.commons.digester3.annotations;
+import static org.apache.commons.digester3.binder.DigesterLoader.newLoader;
import static org.junit.Assert.assertEquals;
import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
import org.apache.commons.digester3.Digester;
-import org.apache.commons.digester3.annotations.DigesterLoader;
-import org.apache.commons.digester3.annotations.DigesterLoaderBuilder;
-import org.junit.After;
-import org.junit.Before;
+import org.apache.commons.digester3.binder.RulesModule;
/**
* Abstract implementation of Class->Digester Rules->parse & confronting.
@@ -35,58 +35,43 @@ import org.junit.Before;
public abstract class AbstractAnnotatedPojoTestCase
{
- private DigesterLoader digesterLoader;
-
- @Before
- public void setUp()
- throws Exception
- {
- this.digesterLoader = DigesterLoaderBuilder.byDefaultFactories();
- }
-
- @After
- public void tearDown()
- throws Exception
- {
- this.digesterLoader = null;
- }
-
/**
- * Loads the digester rules parsing the expected object class, parses the XML and verify the digester produces the
- * same result.
- *
+ * Loads the digester rules parsing the expected object class, parses the
+ * XML and verify the digester produces the same result.
+ *
* @param expected the expected object
* @throws Exception if any error occurs
*/
- public final void verifyExpectedEqualsToParsed( Object expected )
- throws Exception
- {
- Class<?> clazz = expected.getClass();
+ public final void verifyExpectedEqualsToParsed(Object expected) throws Exception {
+ final Class<?> clazz = expected.getClass();
String resource = clazz.getSimpleName() + ".xml";
- InputStream input = clazz.getResourceAsStream( resource );
+ InputStream input = clazz.getResourceAsStream(resource);
- Digester digester = this.digesterLoader.createDigester( clazz );
- this.decorate( digester );
+ Collection<RulesModule> modules = this.getAuxModules();
+ modules.add(new FromAnnotationsRuleModule()
+ {
- Object actual = digester.parse( input );
+ @Override
+ protected void configure()
+ {
+ bindRulesFrom( clazz );
+ }
- if ( input != null )
- {
+ });
+
+ Digester digester = newLoader(modules).newDigester();
+ Object actual = digester.parse(input);
+
+ if (input != null) {
input.close();
}
- assertEquals( expected, actual );
- }
-
- protected DigesterLoader getDigesterLoader()
- {
- return this.digesterLoader;
+ assertEquals(expected, actual);
}
- protected void decorate( Digester digester )
- {
- // do nothing
+ protected Collection<RulesModule> getAuxModules() {
+ return new ArrayList<RulesModule>();
}
}
Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/Person.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/Person.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/Person.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/addressbook/Person.java Tue May 24 15:28:41 2011
@@ -22,7 +22,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.commons.digester3.annotations.rules.AttributeCallParam;
import org.apache.commons.digester3.annotations.rules.BeanPropertySetter;
import org.apache.commons.digester3.annotations.rules.CallMethod;
import org.apache.commons.digester3.annotations.rules.CallParam;
@@ -91,7 +90,7 @@ public class Person
}
@CallMethod( pattern = "address-book/person/email" )
- public void addEmail( @AttributeCallParam( pattern = "address-book/person/email", attribute = "type" ) String type,
+ public void addEmail( @CallParam( pattern = "address-book/person/email", attributeName = "type" ) String type,
@CallParam( pattern = "address-book/person/email" ) String address )
{
this.emails.put( type, address );
Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/CatalogTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/CatalogTestCase.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/CatalogTestCase.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/catalog/CatalogTestCase.java Tue May 24 15:28:41 2011
@@ -17,8 +17,12 @@
*/
package org.apache.commons.digester3.annotations.catalog;
-import org.apache.commons.digester3.Digester;
+import java.util.Collection;
+import java.util.Stack;
+
import org.apache.commons.digester3.annotations.AbstractAnnotatedPojoTestCase;
+import org.apache.commons.digester3.binder.AbstractRulesModule;
+import org.apache.commons.digester3.binder.RulesModule;
import org.junit.Test;
/**
@@ -66,9 +70,20 @@ public final class CatalogTestCase
}
@Override
- protected void decorate( Digester digester )
+ protected Collection<RulesModule> getAuxModules()
{
- digester.addSetProperty( "catalog/dvd/attr", "id", "value" );
+ Collection<RulesModule> modules = new Stack<RulesModule>();
+ modules.add( new AbstractRulesModule()
+ {
+
+ @Override
+ public void configure()
+ {
+ forPattern( "catalog/dvd/attr" ).setProperty( "id" ).extractingValueFromAttribute( "value" );
+ }
+
+ } );
+ return modules;
}
}
Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/EmployeeTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/EmployeeTestCase.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/EmployeeTestCase.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/employee/EmployeeTestCase.java Tue May 24 15:28:41 2011
@@ -17,8 +17,12 @@
*/
package org.apache.commons.digester3.annotations.employee;
-import org.apache.commons.digester3.Digester;
+import java.util.Collection;
+import java.util.Stack;
+
import org.apache.commons.digester3.annotations.AbstractAnnotatedPojoTestCase;
+import org.apache.commons.digester3.annotations.FromAnnotationsRuleModule;
+import org.apache.commons.digester3.binder.RulesModule;
import org.junit.Test;
/**
@@ -56,9 +60,20 @@ public final class EmployeeTestCase
}
@Override
- protected void decorate( Digester digester )
+ protected Collection<RulesModule> getAuxModules()
{
- this.getDigesterLoader().addRules( Address.class, digester );
+ Collection<RulesModule> modules = new Stack<RulesModule>();
+ modules.add( new FromAnnotationsRuleModule()
+ {
+
+ @Override
+ protected void configure()
+ {
+ bindRulesFrom( Address.class );
+ }
+
+ });
+ return modules;
}
}
Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/person/Person.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/person/Person.java?rev=1127117&r1=1127116&r2=1127117&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/person/Person.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/annotations/person/Person.java Tue May 24 15:28:41 2011
@@ -20,7 +20,6 @@ package org.apache.commons.digester3.ann
import java.util.HashMap;
import java.util.Map;
-import org.apache.commons.digester3.annotations.rules.AttributeCallParam;
import org.apache.commons.digester3.annotations.rules.BeanPropertySetter;
import org.apache.commons.digester3.annotations.rules.CallMethod;
import org.apache.commons.digester3.annotations.rules.CallParam;
@@ -46,7 +45,7 @@ public class Person
private String name;
@CallMethod( pattern = "person/email" )
- public void addEmail( @AttributeCallParam( pattern = "person/email", attribute = "type" ) String type,
+ public void addEmail( @CallParam( pattern = "person/email", attributeName = "type" ) String type,
@CallParam( pattern = "person/email" ) String address )
{
this.emails.put( type, address );