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/11/05 17:07:12 UTC
svn commit: r1197978 - in /commons/proper/digester/trunk: ./ src/changes/
src/main/java/org/apache/commons/digester3/xmlrules/
Author: simonetripodi
Date: Sat Nov 5 16:07:12 2011
New Revision: 1197978
URL: http://svn.apache.org/viewvc?rev=1197978&view=rev
Log:
[DIGESTER-157] Improve Set(Nested)PropertiesRuleAlias performances in the XML ruleset while binding rules
Modified:
commons/proper/digester/trunk/RELEASE-NOTES.txt
commons/proper/digester/trunk/src/changes/changes.xml
commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesAliasRule.java
commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesIgnoreRule.java
commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesRule.java
commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesAliasRule.java
commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesIgnoreRule.java
commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesRule.java
commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/XmlRulesModule.java
Modified: commons/proper/digester/trunk/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/RELEASE-NOTES.txt?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/RELEASE-NOTES.txt (original)
+++ commons/proper/digester/trunk/RELEASE-NOTES.txt Sat Nov 5 16:07:12 2011
@@ -60,6 +60,7 @@ BUGS FIXED SINCE PREVIOUS RELEASE
IMPROVEMENTS OVER PREVIOUS RELEASE
===================================
+ * [DIGESTER-157] Improve Set(Nested)PropertiesRuleAlias performances in the XML ruleset while binding rules
* [DIGESTER-156] Make (Nested|Set)PropertiesBuilder#addAlias() fluent.
* [DIGESTER-152] The DigesterLoader doesn't allow binding a default Locator
* [DIGESTER-151] The DigesterLoader doesn't allow binding a default ErrorHandler.
Modified: commons/proper/digester/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/changes/changes.xml?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/changes/changes.xml (original)
+++ commons/proper/digester/trunk/src/changes/changes.xml Sat Nov 5 16:07:12 2011
@@ -23,6 +23,9 @@
</properties>
<body>
<release version="3.2" date="201?-??-??" description="Maintenance release.">
+ <action dev="simonetripodi" type="fix" issue="DIGESTER-157">
+ Improve Set(Nested)PropertiesRuleAlias performances in the XML ruleset while binding rules.
+ </action>
<action dev="simonetripodi" type="fix" issue="DIGESTER-156">
Make (Nested|Set)PropertiesBuilder#addAlias() fluent.
</action>
Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesAliasRule.java
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesAliasRule.java?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesAliasRule.java (original)
+++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesAliasRule.java Sat Nov 5 16:07:12 2011
@@ -19,33 +19,29 @@ package org.apache.commons.digester3.xml
* under the License.
*/
-import org.apache.commons.digester3.binder.LinkedRuleBuilder;
-import org.apache.commons.digester3.binder.RulesBinder;
+import org.apache.commons.digester3.Rule;
+import org.apache.commons.digester3.binder.NestedPropertiesBuilder;
import org.xml.sax.Attributes;
/**
*
*/
final class SetNestedPropertiesAliasRule
- extends AbstractXmlRule
+ extends Rule
{
- public SetNestedPropertiesAliasRule( RulesBinder targetRulesBinder, PatternStack patternStack )
- {
- super( targetRulesBinder, patternStack );
- }
-
/**
* {@inheritDoc}
*/
@Override
- protected void bindRule( LinkedRuleBuilder linkedRuleBuilder, Attributes attributes )
+ public void begin( String namespace, String name, Attributes attributes )
throws Exception
{
String elementName = attributes.getValue( "attr-name" );
String propertyName = attributes.getValue( "prop-name" );
- linkedRuleBuilder.setNestedProperties().addAlias( elementName ).forProperty( propertyName );
+ NestedPropertiesBuilder builder = getDigester().peek();
+ builder.addAlias( elementName ).forProperty( propertyName );
}
}
Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesIgnoreRule.java
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesIgnoreRule.java?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesIgnoreRule.java (original)
+++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesIgnoreRule.java Sat Nov 5 16:07:12 2011
@@ -19,32 +19,28 @@ package org.apache.commons.digester3.xml
* under the License.
*/
-import org.apache.commons.digester3.binder.LinkedRuleBuilder;
-import org.apache.commons.digester3.binder.RulesBinder;
+import org.apache.commons.digester3.Rule;
+import org.apache.commons.digester3.binder.NestedPropertiesBuilder;
import org.xml.sax.Attributes;
/**
- *
+ *
*/
final class SetNestedPropertiesIgnoreRule
- extends AbstractXmlRule
+ extends Rule
{
- public SetNestedPropertiesIgnoreRule( RulesBinder targetRulesBinder, PatternStack patternStack )
- {
- super( targetRulesBinder, patternStack );
- }
-
/**
* {@inheritDoc}
*/
@Override
- protected void bindRule( LinkedRuleBuilder linkedRuleBuilder, Attributes attributes )
+ public void begin( String namespace, String name, Attributes attributes )
throws Exception
{
String elementName = attributes.getValue( "elem-name" );
- linkedRuleBuilder.setNestedProperties().ignoreElement( elementName );
+ NestedPropertiesBuilder builder = getDigester().peek();
+ builder.ignoreElement( elementName );
}
}
Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesRule.java
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesRule.java?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesRule.java (original)
+++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetNestedPropertiesRule.java Sat Nov 5 16:07:12 2011
@@ -20,11 +20,12 @@ package org.apache.commons.digester3.xml
*/
import org.apache.commons.digester3.binder.LinkedRuleBuilder;
+import org.apache.commons.digester3.binder.NestedPropertiesBuilder;
import org.apache.commons.digester3.binder.RulesBinder;
import org.xml.sax.Attributes;
/**
- *
+ *
*/
final class SetNestedPropertiesRule
extends AbstractXmlRule
@@ -44,7 +45,20 @@ final class SetNestedPropertiesRule
{
boolean allowUnknownChildElements =
"true".equalsIgnoreCase( attributes.getValue( "allow-unknown-child-elements" ) );
- linkedRuleBuilder.setNestedProperties().allowUnknownChildElements( allowUnknownChildElements );
+ NestedPropertiesBuilder builder = linkedRuleBuilder
+ .setNestedProperties()
+ .allowUnknownChildElements( allowUnknownChildElements );
+ getDigester().push( builder );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void end( String namespace, String name )
+ throws Exception
+ {
+ getDigester().pop();
}
}
Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesAliasRule.java
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesAliasRule.java?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesAliasRule.java (original)
+++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesAliasRule.java Sat Nov 5 16:07:12 2011
@@ -19,33 +19,29 @@ package org.apache.commons.digester3.xml
* under the License.
*/
-import org.apache.commons.digester3.binder.LinkedRuleBuilder;
-import org.apache.commons.digester3.binder.RulesBinder;
+import org.apache.commons.digester3.Rule;
+import org.apache.commons.digester3.binder.SetPropertiesBuilder;
import org.xml.sax.Attributes;
/**
*
*/
final class SetPropertiesAliasRule
- extends AbstractXmlRule
+ extends Rule
{
- public SetPropertiesAliasRule( RulesBinder targetRulesBinder, PatternStack patternStack )
- {
- super( targetRulesBinder, patternStack );
- }
-
/**
* {@inheritDoc}
*/
@Override
- protected void bindRule( LinkedRuleBuilder linkedRuleBuilder, Attributes attributes )
+ public void begin( String namespace, String name, Attributes attributes )
throws Exception
{
String attributeName = attributes.getValue( "attr-name" );
String propertyName = attributes.getValue( "prop-name" );
- linkedRuleBuilder.setProperties().addAlias( attributeName ).forProperty( propertyName );
+ SetPropertiesBuilder builder = getDigester().peek();
+ builder.addAlias( attributeName ).forProperty( propertyName );
}
}
Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesIgnoreRule.java
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesIgnoreRule.java?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesIgnoreRule.java (original)
+++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesIgnoreRule.java Sat Nov 5 16:07:12 2011
@@ -19,32 +19,27 @@ package org.apache.commons.digester3.xml
* under the License.
*/
-import org.apache.commons.digester3.binder.LinkedRuleBuilder;
-import org.apache.commons.digester3.binder.RulesBinder;
+import org.apache.commons.digester3.Rule;
+import org.apache.commons.digester3.binder.SetPropertiesBuilder;
import org.xml.sax.Attributes;
/**
- *
+ *
*/
final class SetPropertiesIgnoreRule
- extends AbstractXmlRule
+ extends Rule
{
- public SetPropertiesIgnoreRule( RulesBinder targetRulesBinder, PatternStack patternStack )
- {
- super( targetRulesBinder, patternStack );
- }
-
/**
* {@inheritDoc}
*/
- @Override
- protected void bindRule( LinkedRuleBuilder linkedRuleBuilder, Attributes attributes )
+ public void begin(String namespace, String name, Attributes attributes)
throws Exception
{
String attributeName = attributes.getValue( "attr-name" );
- linkedRuleBuilder.setProperties().ignoreAttribute( attributeName );
+ SetPropertiesBuilder builder = getDigester().peek();
+ builder.ignoreAttribute( attributeName );
}
}
Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesRule.java
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesRule.java?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesRule.java (original)
+++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/SetPropertiesRule.java Sat Nov 5 16:07:12 2011
@@ -21,10 +21,11 @@ package org.apache.commons.digester3.xml
import org.apache.commons.digester3.binder.LinkedRuleBuilder;
import org.apache.commons.digester3.binder.RulesBinder;
+import org.apache.commons.digester3.binder.SetPropertiesBuilder;
import org.xml.sax.Attributes;
/**
- *
+ *
*/
final class SetPropertiesRule
extends AbstractXmlRule
@@ -43,7 +44,19 @@ final class SetPropertiesRule
throws Exception
{
boolean ignoreMissingProperty = "true".equalsIgnoreCase( attributes.getValue( "ignore-missing-property" ) );
- linkedRuleBuilder.setProperties().ignoreMissingProperty( ignoreMissingProperty );
+
+ SetPropertiesBuilder builder = linkedRuleBuilder.setProperties().ignoreMissingProperty( ignoreMissingProperty );
+ getDigester().push( builder );
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void end( String namespace, String name )
+ throws Exception
+ {
+ getDigester().pop();
}
}
Modified: commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/XmlRulesModule.java
URL: http://svn.apache.org/viewvc/commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/XmlRulesModule.java?rev=1197978&r1=1197977&r2=1197978&view=diff
==============================================================================
--- commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/XmlRulesModule.java (original)
+++ commons/proper/digester/trunk/src/main/java/org/apache/commons/digester3/xmlrules/XmlRulesModule.java Sat Nov 5 16:07:12 2011
@@ -94,18 +94,18 @@ final class XmlRulesModule
forPattern( "*/set-properties-rule" ).addRule( new SetPropertiesRule( targetRulesBinder, patternStack ) );
forPattern( "*/set-properties-rule/alias" )
- .addRule( new SetPropertiesAliasRule( targetRulesBinder, patternStack ) );
+ .addRule( new SetPropertiesAliasRule() );
forPattern( "*/set-properties-rule/ignore" )
- .addRule( new SetPropertiesIgnoreRule( targetRulesBinder, patternStack ) );
+ .addRule( new SetPropertiesIgnoreRule() );
forPattern( "*/set-property-rule" ).addRule( new SetPropertyRule( targetRulesBinder, patternStack ) );
forPattern( "*/set-nested-properties-rule" )
.addRule( new SetNestedPropertiesRule( targetRulesBinder, patternStack ) );
forPattern( "*/set-nested-properties-rule/alias" )
- .addRule( new SetNestedPropertiesAliasRule( targetRulesBinder, patternStack ) );
+ .addRule( new SetNestedPropertiesAliasRule() );
forPattern( "*/set-nested-properties-rule/ignore" )
- .addRule( new SetPropertiesIgnoreRule( targetRulesBinder, patternStack ) );
+ .addRule( new SetNestedPropertiesIgnoreRule() );
forPattern( "*/set-top-rule" ).addRule( new SetTopRule( targetRulesBinder, patternStack ) );
forPattern( "*/set-next-rule" ).addRule( new SetNextRule( targetRulesBinder, patternStack ) );