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 2019/10/16 20:56:45 UTC
[maven] branch MNG-6656 updated: [MNG-6656] Clean up code based on
reviews
This is an automated email from the ASF dual-hosted git repository.
rfscholte pushed a commit to branch MNG-6656
in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/MNG-6656 by this push:
new 3ef3fa1 [MNG-6656] Clean up code based on reviews
3ef3fa1 is described below
commit 3ef3fa1dab989f9ccf4f52601d13c5624ebb9429
Author: rfscholte <rf...@apache.org>
AuthorDate: Wed Oct 16 22:56:37 2019 +0200
[MNG-6656] Clean up code based on reviews
---
.../maven/project/DefaultProjectBuilder.java | 2 -
.../maven/model/building/DefaultModelBuilder.java | 56 ++++++++++++++--------
.../model/building/DefaultModelBuilderFactory.java | 2 +
.../building/DefaultModelBuildingRequest.java | 17 -------
.../model/building/FilterModelBuildingRequest.java | 13 -----
.../maven/model/building/ModelBuildingRequest.java | 4 --
.../org/apache/maven/xml/sax/SAXEventUtils.java | 6 ++-
.../xml/sax/filter/AbstractEventXMLFilter.java | 8 ----
.../maven/xml/sax/filter/BuildPomXMLFilter.java | 3 ++
.../xml/sax/filter/BuildPomXMLFilterFactory.java | 31 ++++++++----
.../BuildPomXMLFilterListener.java} | 25 ++++------
11 files changed, 80 insertions(+), 87 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
index ce6c9dc..7e18f1e 100644
--- a/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
+++ b/maven-core/src/main/java/org/apache/maven/project/DefaultProjectBuilder.java
@@ -164,7 +164,6 @@ public class DefaultProjectBuilder
request.setModelBuildingListener( listener );
request.setPomFile( pomFile );
- request.setTransformPom( pomFile != null );
request.setModelSource( modelSource );
request.setLocationTracking( true );
@@ -438,7 +437,6 @@ public class DefaultProjectBuilder
request.setPomFile( pomFile );
request.setTwoPhaseBuilding( true );
request.setLocationTracking( true );
- request.setTransformPom( true );
DefaultModelBuildingListener listener =
new DefaultModelBuildingListener( project, projectBuildingHelper, config.request );
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
index fe3904b..0e50073 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilder.java
@@ -27,8 +27,10 @@ import java.io.FileInputStream;
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -91,6 +93,7 @@ import org.apache.maven.model.superpom.SuperPomProvider;
import org.apache.maven.model.validation.ModelValidator;
import org.apache.maven.xml.Factories;
import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
+import org.apache.maven.xml.sax.filter.BuildPomXMLFilterListener;
import org.codehaus.plexus.interpolation.MapBasedValueSource;
import org.codehaus.plexus.interpolation.StringSearchInterpolator;
import org.eclipse.sisu.Nullable;
@@ -156,13 +159,17 @@ public class DefaultModelBuilder
@Inject
private ReportingConverter reportingConverter;
+ // Using provider so MavenSession can be used in the constructor
@Inject
- @Nullable
private Provider<BuildPomXMLFilterFactory> buildPomXMLFilterFactory;
@Inject
@Nullable
private ModelCacheManager modelCacheManager;
+
+ @Inject
+ @Nullable
+ private BuildPomXMLFilterListener xmlFilterListener;
public DefaultModelBuilder setModelProcessor( ModelProcessor modelProcessor )
{
@@ -265,6 +272,12 @@ public class DefaultModelBuilder
this.reportingConverter = reportingConverter;
return this;
}
+
+ public DefaultModelBuilder setBuildPomXMLFilterFactory( BuildPomXMLFilterFactory buildPomXMLFilterFactory )
+ {
+ this.buildPomXMLFilterFactory = () -> buildPomXMLFilterFactory;
+ return this;
+ }
@SuppressWarnings( "checkstyle:methodlength" )
@Override
@@ -302,11 +315,11 @@ public class DefaultModelBuilder
{
inputModel = readModel( request.getModelSource(), request.getPomFile(), request, problems );
- if ( Features.buildConsumer().isActive() && request.isTransformPom() )
+ if ( Features.buildConsumer().isActive() && request.getPomFile() != null )
{
try
{
- inputModel = modelProcessor.read( transformData( request.getPomFile() ), null );
+ inputModel = modelProcessor.read( transformData( request.getPomFile().toPath() ), null );
inputModel.setPomFile( request.getPomFile() );
}
@@ -782,36 +795,41 @@ public class DefaultModelBuilder
}
}
- private InputStream transformData( File pomFile )
+ private InputStream transformData( final Path pomFile )
throws IOException, TransformerException, SAXException, ParserConfigurationException
{
-// return modelData.getSource().getInputStream();
final TransformerFactory transformerFactory = Factories.newTransformerFactory() ;
final PipedOutputStream pipedOutputStream = new PipedOutputStream();
final PipedInputStream pipedInputStream = new PipedInputStream( pipedOutputStream );
// Should always be FileSource for reactor poms
-// FileSource source = (FileSource) modelData.getSource();
-
-// System.out.println( "transforming " + source.getFile() );
+ // System.out.println( "transforming " + pomFile );
final SAXSource transformSource =
- new SAXSource( buildPomXMLFilterFactory.get().get( pomFile.toPath() ),
- new org.xml.sax.InputSource( new FileInputStream( pomFile ) ) );
+ new SAXSource( buildPomXMLFilterFactory.get().get( pomFile ),
+ new org.xml.sax.InputSource( new FileInputStream( pomFile.toFile() ) ) );
- FilterOutputStream fos = new FilterOutputStream( pipedOutputStream )
+ OutputStream out;
+ if ( xmlFilterListener != null )
{
- @Override
- public void write( byte[] b, int off, int len )
- throws IOException
+ out = new FilterOutputStream( pipedOutputStream )
{
- System.out.write( b, off, len );
- super.write( b, off, len );
- }
+ @Override
+ public void write( byte[] b, int off, int len )
+ throws IOException
+ {
+ super.write( b, off, len );
+ xmlFilterListener.write( pomFile, b, off, len );
+ }
+ };
}
- ;
- final StreamResult result = new StreamResult( fos );
+ else
+ {
+ out = pipedOutputStream;
+ }
+
+ final StreamResult result = new StreamResult( out );
//// final Callable<Void> callable = () ->
//// {
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
index 4240574..cd499eb 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuilderFactory.java
@@ -64,6 +64,7 @@ import org.apache.maven.model.superpom.DefaultSuperPomProvider;
import org.apache.maven.model.superpom.SuperPomProvider;
import org.apache.maven.model.validation.DefaultModelValidator;
import org.apache.maven.model.validation.ModelValidator;
+import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
/**
* A factory to create model builder instances when no dependency injection is available. <em>Note:</em> This class is
@@ -225,6 +226,7 @@ public class DefaultModelBuilderFactory
modelBuilder.setPluginConfigurationExpander( newPluginConfigurationExpander() );
modelBuilder.setReportConfigurationExpander( newReportConfigurationExpander() );
modelBuilder.setReportingConverter( newReportingConverter() );
+ modelBuilder.setBuildPomXMLFilterFactory( new BuildPomXMLFilterFactory() );
return modelBuilder;
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
index 06128a8..b7b54d8 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelBuildingRequest.java
@@ -72,8 +72,6 @@ public class DefaultModelBuildingRequest
private ModelCache modelCache;
private WorkspaceModelResolver workspaceResolver;
-
- private boolean transformPom;
/**
* Creates an empty request.
@@ -103,7 +101,6 @@ public class DefaultModelBuildingRequest
setModelResolver( request.getModelResolver() );
setModelBuildingListener( request.getModelBuildingListener() );
setModelCache( request.getModelCache() );
- setTransformPom( request.isTransformPom() );
}
@Override
@@ -410,18 +407,4 @@ public class DefaultModelBuildingRequest
this.workspaceResolver = workspaceResolver;
return this;
}
-
- @Override
- public boolean isTransformPom()
- {
- return transformPom;
- }
-
- @Override
- public ModelBuildingRequest setTransformPom( boolean transformPom )
- {
- this.transformPom = transformPom;
- return this;
- }
-
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
index a9012a1..527a257 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/FilterModelBuildingRequest.java
@@ -281,17 +281,4 @@ class FilterModelBuildingRequest
request.setWorkspaceModelResolver( workspaceResolver );
return this;
}
-
- @Override
- public boolean isTransformPom()
- {
- return request.isTransformPom();
- }
-
- @Override
- public ModelBuildingRequest setTransformPom( boolean transform )
- {
- request.setTransformPom( transform );
- return this;
- }
}
\ No newline at end of file
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
index 10aedc1..b8ae4f8 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelBuildingRequest.java
@@ -334,8 +334,4 @@ public interface ModelBuildingRequest
WorkspaceModelResolver getWorkspaceModelResolver();
ModelBuildingRequest setWorkspaceModelResolver( WorkspaceModelResolver workspaceResolver );
-
- boolean isTransformPom();
-
- ModelBuildingRequest setTransformPom( boolean transform );
}
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/SAXEventUtils.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/SAXEventUtils.java
index 483bb7d..237ec44 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/SAXEventUtils.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/SAXEventUtils.java
@@ -19,6 +19,8 @@ package org.apache.maven.xml.sax;
* under the License.
*/
+import java.util.regex.Pattern;
+
/**
* Utility class for SAXEvents
*
@@ -27,6 +29,8 @@ package org.apache.maven.xml.sax;
*/
public final class SAXEventUtils
{
+ private static final Pattern PATTERN = Pattern.compile( "[^:]+$" );
+
private SAXEventUtils()
{
}
@@ -40,6 +44,6 @@ public final class SAXEventUtils
*/
public static String renameQName( String oldQName, String newLocalName )
{
- return oldQName.replaceFirst( "[^:]+$", newLocalName );
+ return PATTERN.matcher( oldQName ).replaceFirst( newLocalName );
}
}
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 e563032..f718103 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
@@ -60,14 +60,6 @@ abstract class AbstractEventXMLFilter extends AbstractSAXFilter
return true;
}
-// protected final void applyCharacters() throws SAXException
-// {
-// if ( characters != null )
-// {
-// processEvent( characters );
-// }
-// }
-
AbstractEventXMLFilter()
{
super();
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilter.java
index 041d5c1..14bcf70 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilter.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilter.java
@@ -44,6 +44,9 @@ public class BuildPomXMLFilter extends AbstractSAXFilter
super( parent );
}
+ /**
+ * Don't allow overwriting parent
+ */
@Override
public final void setParent( XMLReader parent )
{
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 d115673..66c5fc9 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
@@ -41,7 +41,7 @@ import org.xml.sax.ext.LexicalHandler;
*
* @since 3.7.0
*/
-public abstract class BuildPomXMLFilterFactory
+public class BuildPomXMLFilterFactory
{
public final BuildPomXMLFilter get( Path projectFile )
throws SAXException, ParserConfigurationException, TransformerConfigurationException
@@ -83,14 +83,14 @@ public abstract class BuildPomXMLFilterFactory
return new BuildPomXMLFilter( parent );
}
- protected XMLReader getXMLReader() throws SAXException, ParserConfigurationException
+ private XMLReader getXMLReader() throws SAXException, ParserConfigurationException
{
XMLReader xmlReader = Factories.newXMLReader();
xmlReader.setFeature( "http://xml.org/sax/features/namespaces", true );
return xmlReader;
}
- protected LexicalHandler getLexicalHander() throws TransformerConfigurationException
+ private LexicalHandler getLexicalHander() throws TransformerConfigurationException
{
TransformerFactory transformerFactory = Factories.newTransformerFactory();
if ( transformerFactory instanceof SAXTransformerFactory )
@@ -104,16 +104,31 @@ public abstract class BuildPomXMLFilterFactory
// getters for the 3 magic properties of CIFriendly versions ( https://maven.apache.org/maven-ci-friendly.html )
- protected abstract Optional<String> getChangelist();
+ protected Optional<String> getChangelist()
+ {
+ return Optional.empty();
+ }
- protected abstract Optional<String> getRevision();
+ protected Optional<String> getRevision()
+ {
+ return Optional.empty();
+ }
- protected abstract Optional<String> getSha1();
+ protected Optional<String> getSha1()
+ {
+ return Optional.empty();
+ }
/**
* @return the mapper or {@code null} if relativePaths don't need to be mapped
*/
- protected abstract Function<Path, Optional<RelativeProject>> getRelativePathMapper();
+ protected Function<Path, Optional<RelativeProject>> getRelativePathMapper()
+ {
+ return null;
+ }
- protected abstract Function<DependencyKey, String> getDependencyKeyToVersionMapper();
+ protected Function<DependencyKey, String> getDependencyKeyToVersionMapper()
+ {
+ return null;
+ }
}
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/SAXEventUtils.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java
similarity index 63%
copy from maven-xml/src/main/java/org/apache/maven/xml/sax/SAXEventUtils.java
copy to maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java
index 483bb7d..e984640 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/SAXEventUtils.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/BuildPomXMLFilterListener.java
@@ -1,4 +1,4 @@
-package org.apache.maven.xml.sax;
+package org.apache.maven.xml.sax.filter;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,27 +19,22 @@ package org.apache.maven.xml.sax;
* under the License.
*/
+import java.nio.file.Path;
+
/**
- * Utility class for SAXEvents
*
* @author Robert Scholte
* @since 3.7.0
*/
-public final class SAXEventUtils
+public interface BuildPomXMLFilterListener
{
- private SAXEventUtils()
- {
- }
-
/**
- * Returns the newLocalName prefixed with the namespace of the oldQName if present
+ * Captures the result of the XML transformation
*
- * @param oldQName the QName, used for its namespace
- * @param newLocalName the preferred localName
- * @return the new QName
+ * @param pomFile the original to being transformed
+ * @param b the byte array
+ * @param off the offset
+ * @param len the length
*/
- public static String renameQName( String oldQName, String newLocalName )
- {
- return oldQName.replaceFirst( "[^:]+$", newLocalName );
- }
+ void write( Path pomFile, byte[] b, int off, int len );
}