This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch MNG-6999 in repository https://gitbox.apache.org/repos/asf/maven.git
commit 4ea4c0f887394b323cf9b3dbd628a164423db189 Author: rfscholte <[email protected]> AuthorDate: Sat Oct 17 16:42:31 2020 +0200 LexicalHandler and ContentHandler are at same level, so don't set LexicalHandler with parent --- .../xml/sax/filter/AbstractEventXMLFilter.java | 4 +--- .../maven/xml/sax/filter/AbstractSAXFilter.java | 1 + .../xml/sax/filter/BuildPomXMLFilterFactory.java | 28 ++++++++++------------ .../maven/xml/sax/filter/CiFriendlyXMLFilter.java | 10 ++++++++ .../sax/filter/ConsumerPomXMLFilterFactory.java | 4 +--- .../maven/xml/sax/filter/ModulesXMLFilter.java | 4 +--- .../xml/sax/filter/RelativePathXMLFilter.java | 4 +--- .../xml/sax/filter/ConsumerPomXMLFilterTest.java | 18 ++++++++++++++ 8 files changed, 46 insertions(+), 27 deletions(-) diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java index f5246b1..1b72d11 100644 --- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java +++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractEventXMLFilter.java @@ -29,8 +29,6 @@ import org.apache.maven.xml.sax.SAXEventFactory; import org.xml.sax.Attributes; import org.xml.sax.Locator; import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.ext.LexicalHandler; /** * Builds up a list of SAXEvents, which will be executed with {@link #executeEvents()} @@ -64,7 +62,7 @@ abstract class AbstractEventXMLFilter extends AbstractSAXFilter super(); } - <T extends XMLReader & LexicalHandler> AbstractEventXMLFilter( T parent ) + AbstractEventXMLFilter( AbstractSAXFilter parent ) { setParent( parent ); } diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractSAXFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractSAXFilter.java index e9df96f..1761936 100644 --- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractSAXFilter.java +++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/AbstractSAXFilter.java @@ -43,6 +43,7 @@ public class AbstractSAXFilter extends XMLFilterImpl implements LexicalHandler public AbstractSAXFilter( AbstractSAXFilter parent ) { setParent( parent ); + parent.setLexicalHandler( this ); } public LexicalHandler getLexicalHandler() diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java index 6f3f319..626c7ac 100644 --- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java +++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterFactory.java @@ -26,8 +26,6 @@ import java.util.function.Function; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.sax.SAXTransformerFactory; import org.apache.maven.xml.Factories; import org.xml.sax.SAXException; @@ -42,6 +40,18 @@ import org.xml.sax.ext.LexicalHandler; */ public class BuildPomXMLFilterFactory { + private final LexicalHandler lexicalHandler; + + public BuildPomXMLFilterFactory() + { + this( null ); + } + + public BuildPomXMLFilterFactory( LexicalHandler lexicalHandler ) + { + this.lexicalHandler = lexicalHandler; + } + /** * * @param projectFile will be used by ConsumerPomXMLFilter to get the right filter @@ -55,7 +65,7 @@ public class BuildPomXMLFilterFactory { AbstractSAXFilter parent = new AbstractSAXFilter(); parent.setParent( getXMLReader() ); - parent.setLexicalHandler( getLexicalHander() ); + parent.setLexicalHandler( lexicalHandler ); if ( getDependencyKeyToVersionMapper() != null ) { @@ -85,18 +95,6 @@ public class BuildPomXMLFilterFactory return xmlReader; } - private LexicalHandler getLexicalHander() throws TransformerConfigurationException - { - TransformerFactory transformerFactory = Factories.newTransformerFactory(); - if ( transformerFactory instanceof SAXTransformerFactory ) - { - SAXTransformerFactory saxTransformerFactory = (SAXTransformerFactory) transformerFactory; - return saxTransformerFactory.newTransformerHandler(); - } - throw new TransformerConfigurationException( "Failed to get LexicalHandler via TransformerFactory:" - + " it is not an instance of SAXTransformerFactory" ); - } - /** * @return the mapper or {@code null} if relativePaths don't need to be mapped */ diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/CiFriendlyXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/CiFriendlyXMLFilter.java index 4375f18..9c2da0e 100644 --- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/CiFriendlyXMLFilter.java +++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/CiFriendlyXMLFilter.java @@ -39,6 +39,16 @@ class CiFriendlyXMLFilter private boolean parseVersion; + CiFriendlyXMLFilter() + { + super(); + } + + CiFriendlyXMLFilter( AbstractSAXFilter parent ) + { + super( parent ); + } + public CiFriendlyXMLFilter setChangelist( String changelist ) { replaceChain = replaceChain.andThen( t -> t.replace( "${changelist}", changelist ) ); diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterFactory.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterFactory.java index f7751d2..5703b89 100644 --- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterFactory.java +++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterFactory.java @@ -49,15 +49,13 @@ public class ConsumerPomXMLFilterFactory // Ensure that xs:any elements aren't touched by next filters AbstractSAXFilter filter = new FastForwardFilter( parent ); - CiFriendlyXMLFilter ciFriendlyFilter = new CiFriendlyXMLFilter(); + CiFriendlyXMLFilter ciFriendlyFilter = new CiFriendlyXMLFilter( filter ); getChangelist().ifPresent( ciFriendlyFilter::setChangelist ); getRevision().ifPresent( ciFriendlyFilter::setRevision ); getSha1().ifPresent( ciFriendlyFilter::setSha1 ); if ( ciFriendlyFilter.isSet() ) { - ciFriendlyFilter.setParent( parent ); - ciFriendlyFilter.setLexicalHandler( parent ); filter = ciFriendlyFilter; } diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ModulesXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ModulesXMLFilter.java index 261c853..ad1a6c3 100644 --- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ModulesXMLFilter.java +++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ModulesXMLFilter.java @@ -21,8 +21,6 @@ package org.apache.maven.xml.sax.filter; import org.xml.sax.Attributes; import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.ext.LexicalHandler; /** * Remove all modules, this is just buildtime information @@ -42,7 +40,7 @@ class ModulesXMLFilter super(); } - <T extends XMLReader & LexicalHandler> ModulesXMLFilter( T parent ) + ModulesXMLFilter( AbstractSAXFilter parent ) { super( parent ); } diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/RelativePathXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/RelativePathXMLFilter.java index 25f2137..573c3f0 100644 --- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/RelativePathXMLFilter.java +++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/RelativePathXMLFilter.java @@ -21,8 +21,6 @@ package org.apache.maven.xml.sax.filter; import org.xml.sax.Attributes; import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; -import org.xml.sax.ext.LexicalHandler; /** * Remove relativePath element, has no value for consumer pom @@ -42,7 +40,7 @@ class RelativePathXMLFilter super(); } - <T extends XMLReader & LexicalHandler> RelativePathXMLFilter( T parent ) + RelativePathXMLFilter( AbstractSAXFilter parent ) { super( parent ); } diff --git a/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterTest.java b/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterTest.java index 16d458b..161519a 100644 --- a/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterTest.java +++ b/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ConsumerPomXMLFilterTest.java @@ -30,6 +30,7 @@ import java.util.function.Function; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerConfigurationException; +import org.junit.Ignore; import org.junit.Test; import org.xml.sax.SAXException; @@ -231,5 +232,22 @@ public class ConsumerPomXMLFilterTest extends AbstractXMLFilterTests String actual = transform( input ); assertThat( actual ).and( expected ).areIdentical(); } + + @Test + @Ignore + public void lexicalHandler() throws Exception + { + String input = "<project><!--before--><modules>" + + "<!--pre-in-->" + + "<module><!--in-->ab</module>" + + "<module>../cd</module>" + + "<!--post-in-->" + + "</modules>" + + "<!--after--></project>"; + String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + + "<project><!--before--><!--after--></project>"; + String actual = transform( input ); + assertThat( actual ).and( expected ).areIdentical(); + } }
