You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Henning P. Schmiedehausen" <hp...@intermeta.de> on 2003/10/26 18:28:12 UTC
[DIGESTER] Fix xmlrules rule
According to the example in the xmlrules package-summary, adding a
programmatic rule to a XML digester rules file should work like this:
--- cut --
<digester-rules>
<pattern value="root/foo">
<include class="BarRuleCreator"/>
</pattern>
</digester-rules>
--- cut ---
--- cut ---
public class BarRuleCreator implements DigesterRulesSource {
public void getRules(Digester digester) {
digester.addObjectCreate("bar", "Bar");
}
}
--- cut ---
In fact, it does not. One needs digester.addObjectCreate("/bar", "Bar");
because of this bug:
--- cut ---
Index: src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
===================================================================
RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java,v
retrieving revision 1.20
diff -u -b -r1.20 DigesterRuleParser.java
--- src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java 23 Oct 2003 20:06:09 -0000 1.20
+++ src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java 26 Oct 2003 17:18:55 -0000
@@ -447,7 +447,7 @@
* pass through to this object.
*/
public RulesPrefixAdapter(String patternPrefix, Rules rules) {
- prefix = patternPrefix;
+ prefix = patternPrefix + "/";
delegate = rules;
}
--- cut ---
Please apply. Finding this cost me most of my sunday. :-)
Regards
Henning
--
Dipl.-Inf. (Univ.) Henning P. Schmiedehausen INTERMETA GmbH
hps@intermeta.de +49 9131 50 654 0 http://www.intermeta.de/
Java, perl, Solaris, Linux, xSP Consulting, Web Services
freelance consultant -- Jakarta Turbine Development -- hero for hire
"Dominate!! Dominate!! Eat your young and aggregate! I have grotty silicon!"
-- AOL CD when played backwards (User Friendly - 200-10-15)
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
Re: [DIGESTER] Fix xmlrules rule
Posted by "Henning P. Schmiedehausen" <hp...@intermeta.de>.
robert burrell donkin <ro...@blueyonder.co.uk> writes:
>hi henning
>i've committed an adapted version of the patch you supplied. my version
>preserves the existing behaviour (for backwards compatibility) whilst also
>allowing the documented behaviour, please remember to supply a test case
>with any future next patches.
Yes, I've seen it. Thanks a lot. I was also thinking about "hey, let's
fix the documentation. ;-) ". Yes, test case next time. But digester
had already ruined most of the sunday because of this, so I was too
lazy. Will try to be better next time. =%-)
Regards
Henning
>- robert
>On Sunday, October 26, 2003, at 05:28 PM, Henning P. Schmiedehausen wrote:
>> According to the example in the xmlrules package-summary, adding a
>> programmatic rule to a XML digester rules file should work like this:
>>
>> --- cut --
>> <digester-rules>
>> <pattern value="root/foo">
>> <include class="BarRuleCreator"/>
>> </pattern>
>> </digester-rules>
>> --- cut ---
>>
>> --- cut ---
>> public class BarRuleCreator implements DigesterRulesSource {
>> public void getRules(Digester digester) {
>> digester.addObjectCreate("bar", "Bar");
>> }
>> }
>> --- cut ---
>>
>> In fact, it does not. One needs digester.addObjectCreate("/bar", "Bar");
>>
>> because of this bug:
>>
>> --- cut ---
>> Index:
>> src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
>> ===================================================================
>> RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/
>> digester/xmlrules/DigesterRuleParser.java,v
>> retrieving revision 1.20
>> diff -u -b -r1.20 DigesterRuleParser.java
>> --- src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
>> 23 Oct 2003 20:06:09 -0000 1.20
>> +++ src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
>> 26 Oct 2003 17:18:55 -0000
>> @@ -447,7 +447,7 @@
>> * pass through to this object.
>> */
>> public RulesPrefixAdapter(String patternPrefix, Rules rules) {
>> - prefix = patternPrefix;
>> + prefix = patternPrefix + "/";
>> delegate = rules;
>> }
>> --- cut ---
>>
>> Please apply. Finding this cost me most of my sunday. :-)
>>
>> Regards
>> Henning
>>
>>
>> --
>> Dipl.-Inf. (Univ.) Henning P. Schmiedehausen INTERMETA GmbH
>> hps@intermeta.de +49 9131 50 654 0 http://www.intermeta.de/
>>
>> Java, perl, Solaris, Linux, xSP Consulting, Web Services
>> freelance consultant -- Jakarta Turbine Development -- hero for hire
>>
>> "Dominate!! Dominate!! Eat your young and aggregate! I have grotty
>> silicon!"
>> -- AOL CD when played backwards (User Friendly - 200-10-15)
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: commons-dev-help@jakarta.apache.org
--
Dipl.-Inf. (Univ.) Henning P. Schmiedehausen INTERMETA GmbH
hps@intermeta.de +49 9131 50 654 0 http://www.intermeta.de/
Java, perl, Solaris, Linux, xSP Consulting, Web Services
freelance consultant -- Jakarta Turbine Development -- hero for hire
"Dominate!! Dominate!! Eat your young and aggregate! I have grotty silicon!"
-- AOL CD when played backwards (User Friendly - 200-10-15)
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org
Re: [DIGESTER] Fix xmlrules rule
Posted by robert burrell donkin <ro...@blueyonder.co.uk>.
hi henning
i've committed an adapted version of the patch you supplied. my version
preserves the existing behaviour (for backwards compatibility) whilst also
allowing the documented behaviour, please remember to supply a test case
with any future next patches.
- robert
On Sunday, October 26, 2003, at 05:28 PM, Henning P. Schmiedehausen wrote:
> According to the example in the xmlrules package-summary, adding a
> programmatic rule to a XML digester rules file should work like this:
>
> --- cut --
> <digester-rules>
> <pattern value="root/foo">
> <include class="BarRuleCreator"/>
> </pattern>
> </digester-rules>
> --- cut ---
>
> --- cut ---
> public class BarRuleCreator implements DigesterRulesSource {
> public void getRules(Digester digester) {
> digester.addObjectCreate("bar", "Bar");
> }
> }
> --- cut ---
>
> In fact, it does not. One needs digester.addObjectCreate("/bar", "Bar");
>
> because of this bug:
>
> --- cut ---
> Index:
> src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
> ===================================================================
> RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/
> digester/xmlrules/DigesterRuleParser.java,v
> retrieving revision 1.20
> diff -u -b -r1.20 DigesterRuleParser.java
> --- src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
> 23 Oct 2003 20:06:09 -0000 1.20
> +++ src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
> 26 Oct 2003 17:18:55 -0000
> @@ -447,7 +447,7 @@
> * pass through to this object.
> */
> public RulesPrefixAdapter(String patternPrefix, Rules rules) {
> - prefix = patternPrefix;
> + prefix = patternPrefix + "/";
> delegate = rules;
> }
> --- cut ---
>
> Please apply. Finding this cost me most of my sunday. :-)
>
> Regards
> Henning
>
>
> --
> Dipl.-Inf. (Univ.) Henning P. Schmiedehausen INTERMETA GmbH
> hps@intermeta.de +49 9131 50 654 0 http://www.intermeta.de/
>
> Java, perl, Solaris, Linux, xSP Consulting, Web Services
> freelance consultant -- Jakarta Turbine Development -- hero for hire
>
> "Dominate!! Dominate!! Eat your young and aggregate! I have grotty
> silicon!"
> -- AOL CD when played backwards (User Friendly - 200-10-15)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org