Author: ltheussl
Date: Fri Jan 21 09:27:00 2011
New Revision: 1061702

URL: http://svn.apache.org/viewvc?rev=1061702&view=rev
Log:
allow implementations to provide their own EntityResolver

Modified:
    
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java
    
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java

Modified: 
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java?rev=1061702&r1=1061701&r2=1061702&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidator.java
 Fri Jan 21 09:27:00 2011
@@ -29,12 +29,12 @@ import java.util.Map;
 
 import junit.framework.AssertionFailedError;
 
-import org.apache.maven.doxia.parser.AbstractXmlParser;
 import org.apache.maven.doxia.parser.Parser;
 
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.logging.Logger;
 
+import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXNotRecognizedException;
@@ -147,6 +147,12 @@ public abstract class AbstractXmlValidat
     protected abstract Map getTestDocuments()
             throws IOException;
 
+    /**
+     * Returns the EntityResolver that is used by the XMLReader for validation.
+     *
+     * @return an EntityResolver. Not null.
+     */
+    protected abstract EntityResolver getEntityResolver();
 
     // ----------------------------------------------------------------------
     // Private methods
@@ -162,7 +168,7 @@ public abstract class AbstractXmlValidat
                 xmlReader.setFeature( 
"http://xml.org/sax/features/validation";, true );
                 xmlReader.setFeature( 
"http://apache.org/xml/features/validation/schema";, true );
                 xmlReader.setErrorHandler( new MessagesErrorHandler() );
-                xmlReader.setEntityResolver( new 
AbstractXmlParser.CachedFileEntityResolver() );
+                xmlReader.setEntityResolver( getEntityResolver() );
             }
             catch ( SAXNotRecognizedException e )
             {

Modified: 
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java?rev=1061702&r1=1061701&r2=1061702&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-core/src/test/java/org/apache/maven/doxia/xsd/AbstractXmlValidatorTest.java
 Fri Jan 21 09:27:00 2011
@@ -35,12 +35,16 @@ import java.util.Map;
 import java.util.jar.JarEntry;
 import java.util.jar.JarFile;
 
+import org.apache.maven.doxia.parser.AbstractXmlParser;
+
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.SelectorUtils;
 import org.codehaus.plexus.util.xml.XmlUtil;
 
+import org.xml.sax.EntityResolver;
+
 /**
  * Abstract class to validate XML files with DTD or XSD mainly for Doxia 
namespaces.
  *
@@ -102,6 +106,20 @@ public abstract class AbstractXmlValidat
     }
 
     /**
+     * Returns the EntityResolver that is used by the XMLReader for validation.
+     * By default a {@link AbstractXmlParser.CachedFileEntityResolver} is used,
+     * but implementations should override this for performance reasons.
+     *
+     * @return an EntityResolver. Not null.
+     *
+     * @since 1.1.5
+     */
+    protected EntityResolver getEntityResolver()
+    {
+        return new AbstractXmlParser.CachedFileEntityResolver();
+    }
+
+    /**
      * Find test resources in the <code>doxia-test-docs-XXX.jar</code> or in 
an IDE project.
      *
      * @return a map of test resources defined as follow:


Reply via email to