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-&gt;Digester Rules-&gt;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 );