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 21:51:21 UTC

svn commit: r1127243 - /commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/IncludeRule.java

Author: simonetripodi
Date: Tue May 24 19:51:21 2011
New Revision: 1127243

URL: http://svn.apache.org/viewvc?rev=1127243&view=rev
Log:
IncludeRule now uses new FromXmlRulesModule APIs

Modified:
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/IncludeRule.java

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/IncludeRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/IncludeRule.java?rev=1127243&r1=1127242&r2=1127243&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/IncludeRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/IncludeRule.java Tue May 24 19:51:21 2011
@@ -56,7 +56,7 @@ final class IncludeRule
         throws Exception
     {
         // The path attribute gives the URI to another digester rules xml file
-        String fileName = attributes.getValue( "url" );
+        final String fileName = attributes.getValue( "url" );
         if ( fileName != null && fileName.length() > 0 )
         {
             FromXmlRulesModule fromXmlRulesModule = null;
@@ -68,40 +68,58 @@ final class IncludeRule
                 {
                     path = path.substring( 1 );
                 }
-                URL classPathResource = this.targetRulesBinder.getContextClassLoader().getResource( path );
+                final URL classPathResource = this.targetRulesBinder.getContextClassLoader().getResource( path );
                 if ( classPathResource == null )
                 {
-                    this.targetRulesBinder.addError( "Resource '%s' not found, please make sure it is in the classpath",
+                    targetRulesBinder.addError( "Resource '%s' not found, please make sure it is in the classpath",
                                                      path );
                 }
                 else
                 {
-                    fromXmlRulesModule = new FromXmlRulesModule( classPathResource );
+                    fromXmlRulesModule = new FromXmlRulesModule()
+                    {
+
+                        @Override
+                        protected void loadRules()
+                        {
+                            loadXMLRules( classPathResource );
+                        }
+
+                    };
                 }
             }
             else
             {
                 try
                 {
-                    fromXmlRulesModule = new FromXmlRulesModule( new URL( fileName ) );
+                    fromXmlRulesModule = new FromXmlRulesModule()
+                    {
+
+                        @Override
+                        protected void loadRules()
+                        {
+                            loadXMLRules( fileName );
+                        }
+
+                    };
                 }
                 catch ( Exception e )
                 {
-                    this.targetRulesBinder.addError( "An error occurred while inculing file from '%s': %s", fileName,
-                                                     e.getMessage() );
+                    targetRulesBinder.addError( "An error occurred while inculing file from '%s': %s", fileName,
+                                                e.getMessage() );
                 }
             }
 
             if ( fromXmlRulesModule != null )
             {
-                if ( !this.memoryRulesBinder.getIncludedFiles().add( fromXmlRulesModule.getSystemId() ) )
+                if ( !memoryRulesBinder.getIncludedFiles().add( fromXmlRulesModule.getSystemId() ) )
                 {
-                    this.targetRulesBinder.addError( "Circular file inclusion detected for XML rules: %s",
-                                                     fromXmlRulesModule.getSystemId() );
+                    targetRulesBinder.addError( "Circular file inclusion detected for XML rules: %s",
+                                                fromXmlRulesModule.getSystemId() );
                 }
                 else
                 {
-                    this.install( fromXmlRulesModule );
+                    install( fromXmlRulesModule );
                 }
             }
         }
@@ -116,19 +134,19 @@ final class IncludeRule
                 Class<?> cls = Class.forName( className );
                 if ( !RulesModule.class.isAssignableFrom( cls ) )
                 {
-                    this.targetRulesBinder.addError( "Class '%s' if not a '%s' implementation", className,
-                                                     RulesModule.class.getName() );
+                    targetRulesBinder.addError( "Class '%s' if not a '%s' implementation", className,
+                                                RulesModule.class.getName() );
                     return;
                 }
 
                 RulesModule rulesSource = (RulesModule) cls.newInstance();
 
-                this.install( rulesSource );
+                install( rulesSource );
             }
             catch ( Exception e )
             {
-                this.targetRulesBinder.addError( "Impossible to include programmatic rules from class '%s': %s",
-                                                 className, e.getMessage() );
+                targetRulesBinder.addError( "Impossible to include programmatic rules from class '%s': %s", className,
+                                            e.getMessage() );
             }
         }
     }
@@ -136,8 +154,8 @@ final class IncludeRule
     private void install( RulesModule rulesModule )
     {
         // that's an hack, shall not be taken in consideration!!! :)
-        rulesModule.configure( new PrefixedRulesBinder( this.targetRulesBinder,
-                                                        this.memoryRulesBinder.getPatternStack().toString() ) );
+        rulesModule.configure( new PrefixedRulesBinder( targetRulesBinder,
+                                                        memoryRulesBinder.getPatternStack().toString() ) );
     }
 
 }