You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2021/09/17 14:23:56 UTC
[maven] 02/04: Fix minor issues after review
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MNG-7182
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 8559fcc8edfba237d8173f745bcfc4cd5b1fed10
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Jul 22 11:01:06 2021 +0200
Fix minor issues after review
---
.../apache/maven/model/io/DefaultModelReader.java | 52 +++++++++++++++-------
.../transform/BuildToRawPomXMLFilterFactory.java | 4 +-
.../maven/model/transform/FastForwardFilter.java | 5 ++-
.../RawToConsumerPomXMLFilterFactory.java | 7 +--
.../model/transform/RelativePathXMLFilter.java | 7 +--
.../model/transform/ModulesXMLFilterTest.java | 2 +-
6 files changed, 48 insertions(+), 29 deletions(-)
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
index fd4cb8a..f55039b 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java
@@ -59,6 +59,10 @@ public class DefaultModelReader
@Inject
private ModelSourceTransformer transformer;
+ private Method readMethod;
+
+ private Method readMethodEx;
+
public void setTransformer( ModelSourceTransformer transformer )
{
this.transformer = transformer;
@@ -131,33 +135,20 @@ public class DefaultModelReader
parser.setInput( reader );
TransformerContext context = getTransformerContext( options );
- if ( context != null )
- {
- parser = transformer.transform( parser, pomFile, context );
- }
+ XmlPullParser transformingParser = context != null
+ ? transformer.transform( parser, pomFile, context ) : parser;
- // TODO: avoid or at least cache reflection data
InputSource source = getSource( options );
boolean strict = isStrict( options );
try
{
if ( source != null )
{
- MavenXpp3ReaderEx mr = new MavenXpp3ReaderEx();
- Method readMethod = mr.getClass().getDeclaredMethod( "read",
- XmlPullParser.class, boolean.class, InputSource.class );
- readMethod.setAccessible( true );
- Object model = readMethod.invoke( mr, parser, strict, source );
- return (Model) model;
+ return readModelEx( transformingParser, source, strict );
}
else
{
- MavenXpp3Reader mr = new MavenXpp3Reader();
- Method readMethod = mr.getClass().getDeclaredMethod( "read",
- XmlPullParser.class, boolean.class );
- readMethod.setAccessible( true );
- Object model = readMethod.invoke( mr, parser, strict );
- return (Model) model;
+ return readModel( transformingParser, strict );
}
}
catch ( InvocationTargetException e )
@@ -184,4 +175,31 @@ public class DefaultModelReader
}
}
+ private Model readModel( XmlPullParser parser, boolean strict )
+ throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
+ {
+ if ( readMethod == null )
+ {
+ readMethod = MavenXpp3Reader.class.getDeclaredMethod( "read", XmlPullParser.class, boolean.class );
+ readMethod.setAccessible( true );
+ }
+ MavenXpp3Reader mr = new MavenXpp3Reader();
+ Object model = readMethod.invoke( mr, parser, strict );
+ return ( Model ) model;
+ }
+
+ private Model readModelEx( XmlPullParser parser, InputSource source, boolean strict )
+ throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
+ {
+ if ( readMethodEx == null )
+ {
+ readMethodEx = MavenXpp3ReaderEx.class.getDeclaredMethod( "read",
+ XmlPullParser.class, boolean.class, InputSource.class );
+ readMethodEx.setAccessible( true );
+ }
+ MavenXpp3ReaderEx mr = new MavenXpp3ReaderEx();
+ Object model = readMethodEx.invoke( mr, parser, strict, source );
+ return ( Model ) model;
+ }
+
}
diff --git a/maven-model-transform/src/main/java/org/apache/maven/model/transform/BuildToRawPomXMLFilterFactory.java b/maven-model-transform/src/main/java/org/apache/maven/model/transform/BuildToRawPomXMLFilterFactory.java
index 4673102..3d1f1a2 100644
--- a/maven-model-transform/src/main/java/org/apache/maven/model/transform/BuildToRawPomXMLFilterFactory.java
+++ b/maven-model-transform/src/main/java/org/apache/maven/model/transform/BuildToRawPomXMLFilterFactory.java
@@ -50,9 +50,11 @@ public class BuildToRawPomXMLFilterFactory
*
* @param projectFile will be used by ConsumerPomXMLFilter to get the right filter
*/
- public final XmlPullParser get( XmlPullParser parser, Path projectFile )
+ public final XmlPullParser get( XmlPullParser orgParser, Path projectFile )
{
+ XmlPullParser parser = orgParser;
+
if ( getDependencyKeyToVersionMapper() != null )
{
parser = new ReactorDependencyXMLFilter( parser, getDependencyKeyToVersionMapper() );
diff --git a/maven-model-transform/src/main/java/org/apache/maven/model/transform/FastForwardFilter.java b/maven-model-transform/src/main/java/org/apache/maven/model/transform/FastForwardFilter.java
index c5c2171..91977c0 100644
--- a/maven-model-transform/src/main/java/org/apache/maven/model/transform/FastForwardFilter.java
+++ b/maven-model-transform/src/main/java/org/apache/maven/model/transform/FastForwardFilter.java
@@ -29,7 +29,7 @@ import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
/**
* This filter will skip all following filters and write directly to the output.
- * Should be used in case of a DOM that should not be effected by other filters, even though the elements match
+ * Should be used in case of a DOM that should not be effected by other filters, even though the elements match.
*
* @author Robert Scholte
* @author Guillaume Nodet
@@ -90,7 +90,8 @@ class FastForwardFilter extends BufferingParser
}
else if ( xmlPullParser.getEventType() == END_TAG )
{
- if ( --domDepth == 0 )
+ domDepth--;
+ if ( domDepth == 0 )
{
enable();
}
diff --git a/maven-model-transform/src/main/java/org/apache/maven/model/transform/RawToConsumerPomXMLFilterFactory.java b/maven-model-transform/src/main/java/org/apache/maven/model/transform/RawToConsumerPomXMLFilterFactory.java
index aa0c432..e36342b 100644
--- a/maven-model-transform/src/main/java/org/apache/maven/model/transform/RawToConsumerPomXMLFilterFactory.java
+++ b/maven-model-transform/src/main/java/org/apache/maven/model/transform/RawToConsumerPomXMLFilterFactory.java
@@ -24,7 +24,7 @@ import java.nio.file.Path;
import org.codehaus.plexus.util.xml.pull.XmlPullParser;
/**
- *
+ * @author Guillaume Nodet
* @author Robert Scholte
* @since 4.0.0
*/
@@ -37,10 +37,11 @@ public class RawToConsumerPomXMLFilterFactory
this.buildPomXMLFilterFactory = buildPomXMLFilterFactory;
}
- public final XmlPullParser get( XmlPullParser parser, Path projectPath )
+ public final XmlPullParser get( XmlPullParser orgParser, Path projectPath )
{
- parser = buildPomXMLFilterFactory.get( parser, projectPath );
+ XmlPullParser parser = orgParser;
+ parser = buildPomXMLFilterFactory.get( parser, projectPath );
// Ensure that xs:any elements aren't touched by next filters
parser = new FastForwardFilter( parser );
diff --git a/maven-model-transform/src/main/java/org/apache/maven/model/transform/RelativePathXMLFilter.java b/maven-model-transform/src/main/java/org/apache/maven/model/transform/RelativePathXMLFilter.java
index 4368f2c..3064a29 100644
--- a/maven-model-transform/src/main/java/org/apache/maven/model/transform/RelativePathXMLFilter.java
+++ b/maven-model-transform/src/main/java/org/apache/maven/model/transform/RelativePathXMLFilter.java
@@ -59,12 +59,9 @@ public class RelativePathXMLFilter extends NodeBufferingParser
skip = false;
event = null;
}
- else
+ else if ( skip )
{
- if ( skip )
- {
- event = null;
- }
+ event = null;
}
if ( prev != null )
{
diff --git a/maven-model-transform/src/test/java/org/apache/maven/model/transform/ModulesXMLFilterTest.java b/maven-model-transform/src/test/java/org/apache/maven/model/transform/ModulesXMLFilterTest.java
index b3b31f5..0080788 100644
--- a/maven-model-transform/src/test/java/org/apache/maven/model/transform/ModulesXMLFilterTest.java
+++ b/maven-model-transform/src/test/java/org/apache/maven/model/transform/ModulesXMLFilterTest.java
@@ -29,7 +29,7 @@ public class ModulesXMLFilterTest
{
@Override
- protected ModulesXMLFilter getFilter(XmlPullParser parser)
+ protected ModulesXMLFilter getFilter( XmlPullParser parser )
{
return new ModulesXMLFilter( parser );
}