[ 
https://issues.apache.org/jira/browse/DIGESTER-177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

BRABANT Benjamin updated DIGESTER-177:
--------------------------------------

    Attachment: SetLeafFeatureAnnotationTestCase.patch

Hello,

I attached the annotation TestCase. I encountered problems that I bypassed but 
I think they should be corrected despite everything.

First, I had to add the Override method herebelow otherwise the Group Class I 
annoted was not configured and parsing result in failure. I don't understand 
why this problem occured but facing other annotation TestCase I think that 
Group Class should be configured automatically without adding this method.

{code:title=CollectionTestCase.java|borderStyle=solid}
@Override
protected Collection<RulesModule> getAuxModules() {
        Collection<RulesModule> modules = new Stack<RulesModule>();
        modules.add(new FromAnnotationsRuleModule() {

                @Override
                protected void configureRules() {
                        bindRulesFrom(Group.class);
                }

        });
        return modules;
}
{code}

Then, I would like to use regex pattern for my test so I began modifying the 
AbstractAnnotatedPojoTestCase Class as below :

{code:title=AbstractAnnotatedPojoTestCase.java|borderStyle=solid}
public final void verifyExpectedEqualsToParsed(Object expected) throws 
Exception {
    [...]

    Digester digester = newLoader(modules).newDigester();
    *digester.setRules(new RegexRules(new RegexMatcher()));*
    Object actual = digester.parse(input);

    [...]
}
{code}

Setting the Rules implementation as above result the parsing method returning a 
null object whereas the code below works properly :
        
{code:title=AbstractAnnotatedPojoTestCase.java|borderStyle=solid}
public final void verifyExpectedEqualsToParsed(Object expected) throws 
Exception {
    [...]

    Digester digester = newLoader(modules).newDigester(*new RegexRules(new 
RegexMatcher())*);
    Object actual = digester.parse(input);

    [...]
}
{code}

Thus, in the same way the getAuxModules() method can be overrided, I created 
the method below that can be overrided in case developper wants to run his 
tests with another Rules implementation.

Please let me know if I have to open another issue for this potential bugs.

Thanks in advance
                
> Adding SetLeaf Rule
> -------------------
>
>                 Key: DIGESTER-177
>                 URL: https://issues.apache.org/jira/browse/DIGESTER-177
>             Project: Commons Digester
>          Issue Type: Improvement
>    Affects Versions: 3.2
>         Environment: Microsoft Windows 7 x32
>            Reporter: BRABANT Benjamin
>            Priority: Minor
>         Attachments: SetLeafFeatureAnnotationTestCase.patch, 
> SetLeafFeature.patch
>
>
> Hello,
> I would like to suggest a new minor functionality that is missing to my mind 
> in the digester project. Indeed, it is possible by default to :
> * call a method on the (top) object passing the (top-1) object as an argument 
> [SetTop method]
> * call a method on the (top-1) object passing the (top) object as an argument 
> [SetNext method]
> * call a method on the (root) object passing the (top) object as an argument 
> [SetRoot method]
> To follow this sequence, I think it could be interesting that digester offers 
> by default the possibility of calling a method on the (top) object passing 
> the (root) object as an argument [the new SetLeaf method] !
> From this perspective, I attached you my patch that provides this 
> functionality and a TestCase to check it. I am also writing TestCases for 
> annotation, binder and xmlrules for which I will attach patches as soon as 
> possible.
> Thanks in advance for your consideration.
> BRABANT Benjamin

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to