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 2020/02/24 21:57:58 UTC
[maven] 02/02: [MNG-6656] Refactor code,
make sure it still works with non-xml poms
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
commit 95b5b58100716d7a82d94a0f67eb935a78127a5a
Author: rfscholte <rf...@apache.org>
AuthorDate: Mon Feb 24 22:57:44 2020 +0100
[MNG-6656] Refactor code, make sure it still works with non-xml poms
---
.../DefaultRepositorySystemSessionFactory.java | 154 -----------------
.../maven/project/DefaultProjectBuilder.java | 190 ++++++++++++++++++++-
.../DefaultConsumerPomXMLFilterFactory.java | 10 +-
.../building}/DefaultBuildPomXMLFilterFactory.java | 36 ++--
.../maven/model/building/DefaultModelBuilder.java | 5 +-
.../model/building/DefaultModelBuilderFactory.java | 8 -
.../building/DefaultModelBuildingRequest.java | 15 ++
.../model/building/DefaultModelProcessor.java | 20 ---
.../building/DefaultModelSourceTransformer.java | 3 +-
.../model/building/FilterModelBuildingRequest.java | 13 ++
.../maven/model/building/ModelBuildingRequest.java | 4 +
.../maven/model/building/ModelProcessor.java | 19 ---
.../model/building/ModelSourceTransformer.java | 5 +-
.../maven/model/building/TransformerContext.java | 17 +-
.../apache/maven/model/io/DefaultModelReader.java | 7 +
maven-xml/pom.xml | 26 ---
.../xml/sax/filter/BuildPomXMLFilterFactory.java | 11 +-
.../sax/filter/ConsumerPomXMLFilterFactory.java | 16 +-
.../xml/sax/filter/ReactorDependencyXMLFilter.java | 10 +-
.../xml/sax/filter/ConsumerPomXMLFilterTest.java | 22 +--
.../sax/filter/ReactorDependencyXMLFilterTest.java | 8 +-
21 files changed, 282 insertions(+), 317 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
index 77581d6..e89b39e 100644
--- a/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java
@@ -19,46 +19,21 @@ package org.apache.maven.internal.aether;
* under the License.
*/
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Provider;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.stream.FactoryConfigurationError;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.sax.SAXResult;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.sax.SAXTransformerFactory;
-import javax.xml.transform.sax.TransformerHandler;
-import javax.xml.transform.stream.StreamResult;
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
import org.apache.maven.bridge.MavenRepositorySystem;
import org.apache.maven.eventspy.internal.EventSpyDispatcher;
import org.apache.maven.execution.MavenExecutionRequest;
-import org.apache.maven.feature.Features;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.apache.maven.settings.Mirror;
import org.apache.maven.settings.Proxy;
@@ -67,8 +42,6 @@ import org.apache.maven.settings.building.SettingsProblem;
import org.apache.maven.settings.crypto.DefaultSettingsDecryptionRequest;
import org.apache.maven.settings.crypto.SettingsDecrypter;
import org.apache.maven.settings.crypto.SettingsDecryptionResult;
-import org.apache.maven.xml.Factories;
-import org.apache.maven.xml.sax.filter.AbstractSAXFilter;
import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilterFactory;
import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
import org.codehaus.plexus.logging.Logger;
@@ -76,24 +49,18 @@ import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.eclipse.aether.ConfigurationProperties;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.artifact.Artifact;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
import org.eclipse.aether.repository.RepositoryPolicy;
import org.eclipse.aether.repository.WorkspaceReader;
import org.eclipse.aether.resolution.ResolutionErrorPolicy;
import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
-import org.eclipse.aether.transform.FileTransformer;
-import org.eclipse.aether.transform.FileTransformerManager;
-import org.eclipse.aether.transform.TransformException;
import org.eclipse.aether.util.repository.AuthenticationBuilder;
import org.eclipse.aether.util.repository.DefaultAuthenticationSelector;
import org.eclipse.aether.util.repository.DefaultMirrorSelector;
import org.eclipse.aether.util.repository.DefaultProxySelector;
import org.eclipse.aether.util.repository.SimpleResolutionErrorPolicy;
import org.eclipse.sisu.Nullable;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
/**
* @since 3.3.0
@@ -278,129 +245,8 @@ public class DefaultRepositorySystemSessionFactory
mavenRepositorySystem.injectProxy( session, request.getPluginArtifactRepositories() );
mavenRepositorySystem.injectAuthentication( session, request.getPluginArtifactRepositories() );
- if ( Features.buildConsumer().isActive() )
- {
- session.setFileTransformerManager( newFileTransformerManager() );
- }
return session;
}
-
- private FileTransformerManager newFileTransformerManager()
- {
- return new FileTransformerManager()
- {
- @Override
- public Collection<FileTransformer> getTransformersForArtifact( final Artifact artifact )
- {
- Collection<FileTransformer> transformers = new ArrayList<>();
- if ( "pom".equals( artifact.getExtension() ) )
- {
- final SAXTransformerFactory transformerFactory =
- (SAXTransformerFactory) Factories.newTransformerFactory();
-
- transformers.add( new FileTransformer()
- {
- @Override
- public InputStream transformData( File file )
- throws IOException, TransformException
- {
- final PipedOutputStream pipedOutputStream = new PipedOutputStream();
- final PipedInputStream pipedInputStream = new PipedInputStream( pipedOutputStream );
-
- final TransformerHandler transformerHandler =
- getTransformerHandler( transformerFactory, file );
-
- final SAXSource transformSource;
- try
- {
- AbstractSAXFilter filter = consumerPomXMLFilterFactory.get().get( file.toPath() );
- filter.setLexicalHandler( transformerHandler );
-
- transformSource =
- new SAXSource( filter, new InputSource( new FileInputStream( file ) ) );
- }
- catch ( SAXException | ParserConfigurationException | TransformerConfigurationException e )
- {
- throw new TransformException( "Failed to create a consumerPomXMLFilter", e );
- }
-
- transformerHandler.setResult( new StreamResult( pipedOutputStream ) );
-
- SAXResult transformResult = new SAXResult( transformerHandler );
-
- ExecutorService executorService = Executors.newSingleThreadExecutor();
- executorService.execute( () ->
- {
- try ( PipedOutputStream out = pipedOutputStream )
- {
- transformerFactory.newTransformer().transform( transformSource, transformResult );
- }
- catch ( TransformerException | IOException e )
- {
- throw new RuntimeException( e );
- }
- } );
-
- return pipedInputStream;
- }
-
- @Override
- public Artifact transformArtifact( Artifact artifact )
- {
- return artifact;
- }
- } );
- }
- return Collections.unmodifiableCollection( transformers );
- }
- };
- }
-
- private static TransformerHandler getTransformerHandler( SAXTransformerFactory transformerFactory,
- File file )
- throws IOException, FileNotFoundException, TransformException
- {
- final TransformerHandler transformerHandler;
-
- // Keep same encoding+version
- try ( FileInputStream input = new FileInputStream( file ) )
- {
- XMLStreamReader streamReader =
- XMLInputFactory.newFactory().createXMLStreamReader( input );
-
- transformerHandler = transformerFactory.newTransformerHandler();
-
- final String encoding = streamReader.getCharacterEncodingScheme();
- final String version = streamReader.getVersion();
-
- Transformer transformer = transformerHandler.getTransformer();
- if ( encoding == null && version == null )
- {
- transformer.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "yes" );
- }
- else
- {
- transformer.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "no" );
-
- if ( encoding != null )
- {
- transformer.setOutputProperty( OutputKeys.ENCODING, encoding );
- }
- if ( version != null )
- {
- transformer.setOutputProperty( OutputKeys.VERSION, version );
- }
- }
- }
- catch ( XMLStreamException
- | FactoryConfigurationError
- | TransformerConfigurationException e )
- {
- throw new TransformException( "Failed to detect XML encoding and version", e );
- }
- return transformerHandler;
- }
-
private String getUserAgent()
{
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 237ba04..68bab45 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
@@ -20,7 +20,13 @@ package org.apache.maven.project;
*/
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.nio.file.Path;
import java.util.AbstractMap;
import java.util.ArrayList;
import java.util.Arrays;
@@ -32,6 +38,23 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.sax.SAXResult;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamResult;
import org.apache.maven.RepositoryUtils;
import org.apache.maven.artifact.Artifact;
@@ -40,6 +63,7 @@ import org.apache.maven.artifact.InvalidRepositoryException;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.repository.LegacyLocalRepositoryManager;
import org.apache.maven.bridge.MavenRepositorySystem;
+import org.apache.maven.feature.Features;
import org.apache.maven.model.Build;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.DependencyManagement;
@@ -49,6 +73,7 @@ import org.apache.maven.model.Model;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.Profile;
import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.building.DefaultBuildPomXMLFilterFactory;
import org.apache.maven.model.building.DefaultModelBuildingRequest;
import org.apache.maven.model.building.DefaultModelProblem;
import org.apache.maven.model.building.FileModelSource;
@@ -60,13 +85,19 @@ import org.apache.maven.model.building.ModelProblem;
import org.apache.maven.model.building.ModelProcessor;
import org.apache.maven.model.building.ModelSource;
import org.apache.maven.model.building.StringModelSource;
+import org.apache.maven.model.building.TransformerContext;
import org.apache.maven.model.resolution.ModelResolver;
import org.apache.maven.repository.internal.ArtifactDescriptorUtils;
+import org.apache.maven.xml.Factories;
+import org.apache.maven.xml.sax.filter.AbstractSAXFilter;
+import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
+import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilterFactory;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.logging.Logger;
import org.codehaus.plexus.util.Os;
import org.codehaus.plexus.util.StringUtils;
+import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.RequestTrace;
import org.eclipse.aether.impl.RemoteRepositoryManager;
@@ -75,6 +106,10 @@ import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.repository.WorkspaceRepository;
import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResult;
+import org.eclipse.aether.transform.FileTransformer;
+import org.eclipse.aether.transform.TransformException;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
/**
* DefaultProjectBuilder
@@ -154,7 +189,7 @@ public class DefaultProjectBuilder
if ( project == null )
{
- ModelBuildingRequest request = getModelBuildingRequest( config );
+ ModelBuildingRequest request = getModelBuildingRequest( config, pomFile );
project = new MavenProject();
project.setFile( pomFile );
@@ -266,7 +301,7 @@ public class DefaultProjectBuilder
return ids;
}
- private ModelBuildingRequest getModelBuildingRequest( InternalConfig config )
+ private ModelBuildingRequest getModelBuildingRequest( InternalConfig config, File pomFile )
{
ProjectBuildingRequest configuration = config.request;
@@ -274,8 +309,41 @@ public class DefaultProjectBuilder
RequestTrace trace = RequestTrace.newChild( null, configuration ).newChild( request );
+ RepositorySystemSession repoSession;
+ if ( Features.buildConsumer().isActive() )
+ {
+ TransformerContext context = new TransformerContext()
+ {
+ @Override
+ public String getUserProperty( String key )
+ {
+ return config.session.getUserProperties().get( key );
+ }
+
+ @Override
+ public Model getRawModel( Path p )
+ {
+ return config.modelPool.get( p );
+ }
+
+ @Override
+ public Model getRawModel( String groupId, String artifactId )
+ {
+ return config.modelPool.get( groupId, artifactId, null );
+ }
+ };
+ request.setTransformerContext( context );
+
+ repoSession = new DefaultRepositorySystemSession( config.session )
+ .setFileTransformerManager( a -> getTransformersForArtifact( a, context ) );
+ }
+ else
+ {
+ repoSession = config.session;
+ }
+
ModelResolver resolver =
- new ProjectModelResolver( config.session, trace, repoSystem, repositoryManager, config.repositories,
+ new ProjectModelResolver( repoSession, trace, repoSystem, repositoryManager, config.repositories,
configuration.getRepositoryMerging(), config.modelPool );
request.setValidationLevel( configuration.getValidationLevel() );
@@ -430,7 +498,7 @@ public class DefaultProjectBuilder
{
boolean noErrors = true;
- ModelBuildingRequest request = getModelBuildingRequest( config );
+ ModelBuildingRequest request = getModelBuildingRequest( config, pomFile );
MavenProject project = new MavenProject();
project.setFile( pomFile );
@@ -1044,6 +1112,120 @@ public class DefaultProjectBuilder
return null;
}
+
+ private Collection<FileTransformer> getTransformersForArtifact( final org.eclipse.aether.artifact.Artifact artifact,
+ TransformerContext context )
+ {
+ Collection<FileTransformer> transformers = new ArrayList<>();
+ if ( "pom".equals( artifact.getExtension() ) )
+ {
+ final SAXTransformerFactory transformerFactory =
+ (SAXTransformerFactory) Factories.newTransformerFactory();
+
+ transformers.add( new FileTransformer()
+ {
+ @Override
+ public InputStream transformData( File file )
+ throws IOException, TransformException
+ {
+ final PipedOutputStream pipedOutputStream = new PipedOutputStream();
+ final PipedInputStream pipedInputStream = new PipedInputStream( pipedOutputStream );
+
+ final TransformerHandler transformerHandler =
+ getTransformerHandler( transformerFactory, file );
+
+ BuildPomXMLFilterFactory buildPomXmlFactory = new DefaultBuildPomXMLFilterFactory( context );
+
+ final SAXSource transformSource;
+ try
+ {
+ AbstractSAXFilter filter =
+ new ConsumerPomXMLFilterFactory( buildPomXmlFactory ).get( file.toPath() );
+ filter.setLexicalHandler( transformerHandler );
+
+ transformSource =
+ new SAXSource( filter, new InputSource( new FileInputStream( file ) ) );
+ }
+ catch ( SAXException | ParserConfigurationException | TransformerConfigurationException e )
+ {
+ throw new TransformException( "Failed to create a consumerPomXMLFilter", e );
+ }
+
+ transformerHandler.setResult( new StreamResult( pipedOutputStream ) );
+
+ SAXResult transformResult = new SAXResult( transformerHandler );
+
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.execute( () ->
+ {
+ try ( PipedOutputStream out = pipedOutputStream )
+ {
+ transformerFactory.newTransformer().transform( transformSource, transformResult );
+ }
+ catch ( TransformerException | IOException e )
+ {
+ throw new RuntimeException( e );
+ }
+ } );
+
+ return pipedInputStream;
+ }
+
+ @Override
+ public org.eclipse.aether.artifact.Artifact transformArtifact(
+ org.eclipse.aether.artifact.Artifact artifact )
+ {
+ return artifact;
+ }
+ } );
+ }
+ return Collections.unmodifiableCollection( transformers );
+ }
+
+ private static TransformerHandler getTransformerHandler( SAXTransformerFactory transformerFactory,
+ File file )
+ throws IOException, FileNotFoundException, TransformException
+ {
+ final TransformerHandler transformerHandler;
+
+ // Keep same encoding+version
+ try ( FileInputStream input = new FileInputStream( file ) )
+ {
+ XMLStreamReader streamReader =
+ XMLInputFactory.newFactory().createXMLStreamReader( input );
+
+ transformerHandler = transformerFactory.newTransformerHandler();
+
+ final String encoding = streamReader.getCharacterEncodingScheme();
+ final String version = streamReader.getVersion();
+
+ Transformer transformer = transformerHandler.getTransformer();
+ if ( encoding == null && version == null )
+ {
+ transformer.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "yes" );
+ }
+ else
+ {
+ transformer.setOutputProperty( OutputKeys.OMIT_XML_DECLARATION, "no" );
+
+ if ( encoding != null )
+ {
+ transformer.setOutputProperty( OutputKeys.ENCODING, encoding );
+ }
+ if ( version != null )
+ {
+ transformer.setOutputProperty( OutputKeys.VERSION, version );
+ }
+ }
+ }
+ catch ( XMLStreamException
+ | FactoryConfigurationError
+ | TransformerConfigurationException e )
+ {
+ throw new TransformException( "Failed to detect XML encoding and version", e );
+ }
+ return transformerHandler;
+ }
/**
* InternalConfig
diff --git a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java b/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
index 489019f..5b13aa5 100644
--- a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
+++ b/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
@@ -19,9 +19,7 @@ package org.apache.maven.xml.internal;
* under the License.
*/
-import javax.inject.Named;
-import javax.inject.Singleton;
-
+import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilterFactory;
/**
@@ -29,9 +27,11 @@ import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilterFactory;
* @author Robert Scholte
* @since 3.7.0
*/
-@Named
-@Singleton
public class DefaultConsumerPomXMLFilterFactory extends ConsumerPomXMLFilterFactory
{
+ public DefaultConsumerPomXMLFilterFactory( BuildPomXMLFilterFactory buildPomXMLFilterFactory )
+ {
+ super( buildPomXMLFilterFactory );
+ }
}
diff --git a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultBuildPomXMLFilterFactory.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultBuildPomXMLFilterFactory.java
similarity index 70%
rename from maven-core/src/main/java/org/apache/maven/xml/internal/DefaultBuildPomXMLFilterFactory.java
rename to maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultBuildPomXMLFilterFactory.java
index d359eb6..cc7b3b3 100644
--- a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultBuildPomXMLFilterFactory.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultBuildPomXMLFilterFactory.java
@@ -1,4 +1,4 @@
-package org.apache.maven.xml.internal;
+package org.apache.maven.model.building;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,17 +22,11 @@ package org.apache.maven.xml.internal;
import java.nio.file.Path;
import java.util.Optional;
+import java.util.function.BiFunction;
import java.util.function.Function;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.apache.maven.execution.MavenSession;
import org.apache.maven.model.Model;
-import org.apache.maven.model.building.ModelCacheManager;
import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
-import org.apache.maven.xml.sax.filter.DependencyKey;
import org.apache.maven.xml.sax.filter.RelativeProject;
/**
@@ -40,49 +34,43 @@ import org.apache.maven.xml.sax.filter.RelativeProject;
* @author Robert Scholte
* @since 3.7.0
*/
-@Named
-@Singleton
public class DefaultBuildPomXMLFilterFactory extends BuildPomXMLFilterFactory
{
- private MavenSession session;
-
- @Inject
- private ModelCacheManager rawModelCache;
+ private final TransformerContext context;
- @Inject
- public DefaultBuildPomXMLFilterFactory( MavenSession session )
+ public DefaultBuildPomXMLFilterFactory( TransformerContext context )
{
- this.session = session;
+ this.context = context;
}
-
+
@Override
protected Optional<String> getChangelist()
{
- return Optional.ofNullable( session.getUserProperties().getProperty( "changelist" ) );
+ return Optional.ofNullable( context.getUserProperty( "changelist" ) );
}
@Override
protected Optional<String> getRevision()
{
- return Optional.ofNullable( session.getUserProperties().getProperty( "revision" ) );
+ return Optional.ofNullable( context.getUserProperty( "revision" ) );
}
@Override
protected Optional<String> getSha1()
{
- return Optional.ofNullable( session.getUserProperties().getProperty( "sha1" ) );
+ return Optional.ofNullable( context.getUserProperty( "sha1" ) );
}
@Override
protected Function<Path, Optional<RelativeProject>> getRelativePathMapper()
{
- return p -> Optional.ofNullable( rawModelCache.get( p ) ).map( m -> toRelativeProject( m ) );
+ return p -> Optional.ofNullable( context.getRawModel( p ) ).map( m -> toRelativeProject( m ) );
}
@Override
- protected Function<DependencyKey, String> getDependencyKeyToVersionMapper()
+ protected BiFunction<String, String, String> getDependencyKeyToVersionMapper()
{
- return k -> Optional.ofNullable( rawModelCache.get( k ) )
+ return (g,a) -> Optional.ofNullable( context.getRawModel( g, a ) )
.map( m -> toVersion( m ) )
.orElse( null );
}
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 c635d05..4e71eb2 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,6 +27,7 @@ import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashSet;
@@ -688,7 +689,7 @@ public class DefaultModelBuilder
{
try
{
- Model rawModel = modelProcessor.read( pomFile.toPath(), buildPomXMLFilterFactory.get() );
+ Model rawModel = modelProcessor.read( pomFile, Collections.singletonMap( "transformerContext", buildPomXMLFilterFactory ) );
model.setPomFile( pomFile );
@@ -698,7 +699,7 @@ public class DefaultModelBuilder
// Apply enriched data
modelMerger.merge( model, rawModel, false, null );
}
- catch ( IOException | TransformerException | SAXException | ParserConfigurationException e )
+ catch ( IOException e )
{
problems.add( new ModelProblemCollectorRequest( Severity.WARNING, Version.V37 ).setException( e ) );
}
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 f84cc0d..cca0241 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,7 +64,6 @@ 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
@@ -82,7 +81,6 @@ public class DefaultModelBuilderFactory
DefaultModelProcessor processor = new DefaultModelProcessor();
processor.setModelLocator( newModelLocator() );
processor.setModelReader( newModelReader() );
- processor.setTransformer( newTransformer() );
return processor;
}
@@ -201,11 +199,6 @@ public class DefaultModelBuilderFactory
return new DefaultReportingConverter();
}
- protected ModelSourceTransformer newTransformer()
- {
- return new DefaultModelSourceTransformer();
- }
-
/**
* Creates a new model builder instance.
*
@@ -232,7 +225,6 @@ public class DefaultModelBuilderFactory
modelBuilder.setPluginConfigurationExpander( newPluginConfigurationExpander() );
modelBuilder.setReportConfigurationExpander( newReportConfigurationExpander() );
modelBuilder.setReportingConverter( newReportingConverter() );
- modelBuilder.setBuildPomXMLFilterFactory( new BuildPomXMLFilterFactory() );
modelBuilder.setModelCacheManager( new DefaultModelCacheManager() );
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 3cf3a89..b347eb4 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
@@ -73,6 +73,8 @@ public class DefaultModelBuildingRequest
private ModelCache modelCache;
private WorkspaceModelResolver workspaceResolver;
+
+ private TransformerContext context;
/**
* Creates an empty request.
@@ -421,4 +423,17 @@ public class DefaultModelBuildingRequest
this.workspaceResolver = workspaceResolver;
return this;
}
+
+ @Override
+ public TransformerContext getTransformerContext()
+ {
+ return context;
+ }
+
+ @Override
+ public ModelBuildingRequest setTransformerContext( TransformerContext context )
+ {
+ this.context = context;
+ return this;
+ }
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
index d87609b..9dfa8bd5 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelProcessor.java
@@ -23,21 +23,16 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
-import java.nio.file.Path;
import java.util.Map;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerConfigurationException;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.ModelReader;
import org.apache.maven.model.locator.ModelLocator;
-import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
import org.eclipse.sisu.Typed;
-import org.xml.sax.SAXException;
/**
*
@@ -77,9 +72,6 @@ public class DefaultModelProcessor
@Inject
private ModelReader reader;
- @Inject
- private ModelSourceTransformer transformer;
-
public DefaultModelProcessor setModelLocator( ModelLocator locator )
{
this.locator = locator;
@@ -91,12 +83,6 @@ public class DefaultModelProcessor
this.reader = reader;
return this;
}
-
- public DefaultModelProcessor setTransformer( ModelSourceTransformer transformer )
- {
- this.transformer = transformer;
- return this;
- }
@Override
public File locatePom( File projectDirectory )
@@ -124,10 +110,4 @@ public class DefaultModelProcessor
{
return reader.read( input, options );
}
-
- @Override
- public Model read( Path pomFile, BuildPomXMLFilterFactory factory ) throws IOException, TransformerConfigurationException, SAXException, ParserConfigurationException
- {
- return reader.read( transformer.transform( pomFile, factory ), null );
- }
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java
index 6171089..daf91ec 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/DefaultModelSourceTransformer.java
@@ -53,9 +53,10 @@ class DefaultModelSourceTransformer implements ModelSourceTransformer
private BuildPomXMLFilterListener xmlFilterListener;
@Override
- public InputStream transform( Path pomFile, BuildPomXMLFilterFactory buildPomXMLFilterFactory )
+ public InputStream transform( Path pomFile, TransformerContext context )
throws IOException, TransformerConfigurationException, SAXException, ParserConfigurationException
{
+ final BuildPomXMLFilterFactory buildPomXMLFilterFactory = new DefaultBuildPomXMLFilterFactory( context );
final TransformerFactory transformerFactory = Factories.newTransformerFactory() ;
final PipedOutputStream pipedOutputStream = new PipedOutputStream();
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 fb38f16..1dd2643 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
@@ -294,4 +294,17 @@ class FilterModelBuildingRequest
request.setWorkspaceModelResolver( workspaceResolver );
return this;
}
+
+ @Override
+ public TransformerContext getTransformerContext()
+ {
+ return request.getTransformerContext();
+ }
+
+ @Override
+ public ModelBuildingRequest setTransformerContext( TransformerContext context )
+ {
+ request.setTransformerContext( context );
+ 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 1e0b3da..0ae9694 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
@@ -349,4 +349,8 @@ public interface ModelBuildingRequest
WorkspaceModelResolver getWorkspaceModelResolver();
ModelBuildingRequest setWorkspaceModelResolver( WorkspaceModelResolver workspaceResolver );
+
+ TransformerContext getTransformerContext();
+
+ ModelBuildingRequest setTransformerContext( TransformerContext context );
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java
index 2adb2c0..c2c2ec0 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelProcessor.java
@@ -1,17 +1,5 @@
package org.apache.maven.model.building;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Path;
-import java.util.Map;
-import java.util.function.Function;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.TransformerConfigurationException;
-
-import org.apache.maven.model.Model;
-import org.apache.maven.model.io.ModelParseException;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -33,8 +21,6 @@ import org.apache.maven.model.io.ModelParseException;
import org.apache.maven.model.io.ModelReader;
import org.apache.maven.model.locator.ModelLocator;
-import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
-import org.xml.sax.SAXException;
/**
* ModelProcessor
@@ -45,10 +31,5 @@ public interface ModelProcessor
{
String SOURCE = "org.apache.maven.model.building.source";
-
- default Model read( Path pomFile, BuildPomXMLFilterFactory factory ) throws IOException, TransformerConfigurationException, SAXException, ParserConfigurationException
- {
- return read( pomFile.toFile(), null );
- }
}
diff --git a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSourceTransformer.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSourceTransformer.java
index 5ee3252..b505039 100644
--- a/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSourceTransformer.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/ModelSourceTransformer.java
@@ -26,7 +26,6 @@ import java.nio.file.Path;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
-import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
import org.xml.sax.SAXException;
/**
@@ -36,7 +35,5 @@ import org.xml.sax.SAXException;
*/
public interface ModelSourceTransformer
{
-
- InputStream transform( Path pomFile, BuildPomXMLFilterFactory buildPomXMLFilterFactory ) throws IOException, TransformerConfigurationException, SAXException, ParserConfigurationException;
-
+ InputStream transform( Path pomFile, TransformerContext context ) throws IOException, TransformerConfigurationException, SAXException, ParserConfigurationException;
}
diff --git a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java b/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerContext.java
similarity index 75%
copy from maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
copy to maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerContext.java
index 489019f..cad2d25 100644
--- a/maven-core/src/main/java/org/apache/maven/xml/internal/DefaultConsumerPomXMLFilterFactory.java
+++ b/maven-model-builder/src/main/java/org/apache/maven/model/building/TransformerContext.java
@@ -1,4 +1,4 @@
-package org.apache.maven.xml.internal;
+package org.apache.maven.model.building;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -19,19 +19,20 @@ package org.apache.maven.xml.internal;
* under the License.
*/
-import javax.inject.Named;
-import javax.inject.Singleton;
+import java.nio.file.Path;
-import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilterFactory;
+import org.apache.maven.model.Model;
/**
*
* @author Robert Scholte
* @since 3.7.0
*/
-@Named
-@Singleton
-public class DefaultConsumerPomXMLFilterFactory extends ConsumerPomXMLFilterFactory
+public interface TransformerContext
{
-
+ String getUserProperty( String key );
+
+ Model getRawModel( Path p );
+
+ Model getRawModel( String groupId, String artifactId );
}
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 b0778d8..2750ce0 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
@@ -27,11 +27,13 @@ import java.io.Reader;
import java.util.Map;
import java.util.Objects;
+import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
import org.apache.maven.model.InputSource;
import org.apache.maven.model.Model;
+import org.apache.maven.model.building.ModelSourceTransformer;
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
import org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx;
import org.codehaus.plexus.util.ReaderFactory;
@@ -48,6 +50,11 @@ import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
public class DefaultModelReader
implements ModelReader
{
+ @Inject
+ private ModelSourceTransformer transformer;
+
+
+
@Override
public Model read( File input, Map<String, ?> options )
diff --git a/maven-xml/pom.xml b/maven-xml/pom.xml
index 4541888..eb285eb 100644
--- a/maven-xml/pom.xml
+++ b/maven-xml/pom.xml
@@ -31,34 +31,8 @@ under the License.
<artifactId>maven-xml</artifactId>
<name>Maven XML</name>
- <properties>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>animal-sniffer-maven-plugin</artifactId>
- <configuration>
- <signature>
- <groupId>org.codehaus.mojo.signature</groupId>
- <artifactId>java18</artifactId>
- <version>1.0</version>
- </signature>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
<dependencies>
<dependency>
- <groupId>javax.inject</groupId>
- <artifactId>javax.inject</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-assertj</artifactId>
<scope>test</scope>
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 66c5fc9..2b8e16d 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
@@ -21,6 +21,7 @@ package org.apache.maven.xml.sax.filter;
import java.nio.file.Path;
import java.util.Optional;
+import java.util.function.BiFunction;
import java.util.function.Function;
import javax.xml.parsers.ParserConfigurationException;
@@ -43,6 +44,14 @@ import org.xml.sax.ext.LexicalHandler;
*/
public class BuildPomXMLFilterFactory
{
+ /**
+ *
+ * @param projectFile will be used by ConsumerPomXMLFilter to get the right filter
+ * @return
+ * @throws SAXException
+ * @throws ParserConfigurationException
+ * @throws TransformerConfigurationException
+ */
public final BuildPomXMLFilter get( Path projectFile )
throws SAXException, ParserConfigurationException, TransformerConfigurationException
{
@@ -127,7 +136,7 @@ public class BuildPomXMLFilterFactory
return null;
}
- protected Function<DependencyKey, String> getDependencyKeyToVersionMapper()
+ protected BiFunction<String, String, String> getDependencyKeyToVersionMapper()
{
return null;
}
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 612ddb9..2b2f542 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
@@ -21,8 +21,6 @@ package org.apache.maven.xml.sax.filter;
import java.nio.file.Path;
-import javax.inject.Inject;
-import javax.inject.Provider;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
@@ -33,17 +31,11 @@ import org.xml.sax.SAXException;
* @author Robert Scholte
* @since 3.7.0
*/
-public abstract class ConsumerPomXMLFilterFactory
+public class ConsumerPomXMLFilterFactory
{
- @Inject
- private Provider<BuildPomXMLFilterFactory> buildPomXMLFilterFactory;
+ private BuildPomXMLFilterFactory buildPomXMLFilterFactory;
- public ConsumerPomXMLFilterFactory()
- {
- }
-
- // For testing purpose
- ConsumerPomXMLFilterFactory( Provider<BuildPomXMLFilterFactory> buildPomXMLFilterFactory )
+ public ConsumerPomXMLFilterFactory( BuildPomXMLFilterFactory buildPomXMLFilterFactory )
{
this.buildPomXMLFilterFactory = buildPomXMLFilterFactory;
}
@@ -51,7 +43,7 @@ public abstract class ConsumerPomXMLFilterFactory
public final ConsumerPomXMLFilter get( Path projectPath )
throws SAXException, ParserConfigurationException, TransformerConfigurationException
{
- BuildPomXMLFilter parent = buildPomXMLFilterFactory.get().get( projectPath );
+ BuildPomXMLFilter parent = buildPomXMLFilterFactory.get( projectPath );
// Ensure that xs:any elements aren't touched by next filters
AbstractSAXFilter filter = new FastForwardFilter( parent );
diff --git a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java
index b37092f..6bc2663 100644
--- a/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java
+++ b/maven-xml/src/main/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilter.java
@@ -1,5 +1,7 @@
package org.apache.maven.xml.sax.filter;
+import java.util.function.BiFunction;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -19,8 +21,6 @@ package org.apache.maven.xml.sax.filter;
* under the License.
*/
-import java.util.function.Function;
-
import org.apache.maven.xml.sax.SAXEventUtils;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
@@ -44,9 +44,9 @@ public class ReactorDependencyXMLFilter extends AbstractEventXMLFilter
private String artifactId;
- private final Function<DependencyKey, String> reactorVersionMapper;
+ private final BiFunction<String, String, String> reactorVersionMapper;
- public ReactorDependencyXMLFilter( Function<DependencyKey, String> reactorVersionMapper )
+ public ReactorDependencyXMLFilter( BiFunction<String, String, String> reactorVersionMapper )
{
this.reactorVersionMapper = reactorVersionMapper;
}
@@ -136,7 +136,7 @@ public class ReactorDependencyXMLFilter extends AbstractEventXMLFilter
private String getVersion()
{
- return reactorVersionMapper.apply( new DependencyKey( groupId, artifactId ) );
+ return reactorVersionMapper.apply( groupId, artifactId );
}
@Override
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 50abfc8..df1a880 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
@@ -24,18 +24,12 @@ import static org.xmlunit.assertj.XmlAssert.assertThat;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Optional;
+import java.util.function.BiFunction;
import java.util.function.Function;
-import javax.inject.Provider;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
-import org.apache.maven.xml.sax.filter.AbstractSAXFilter;
-import org.apache.maven.xml.sax.filter.BuildPomXMLFilterFactory;
-import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilter;
-import org.apache.maven.xml.sax.filter.ConsumerPomXMLFilterFactory;
-import org.apache.maven.xml.sax.filter.DependencyKey;
-import org.apache.maven.xml.sax.filter.RelativeProject;
import org.junit.Test;
import org.xml.sax.SAXException;
@@ -77,23 +71,13 @@ public class ConsumerPomXMLFilterTest extends AbstractXMLFilterTests
}
@Override
- protected Function<DependencyKey, String> getDependencyKeyToVersionMapper()
+ protected BiFunction<String, String, String> getDependencyKeyToVersionMapper()
{
return null;
}
};
- Provider<BuildPomXMLFilterFactory> provider = new Provider<BuildPomXMLFilterFactory>()
- {
-
- @Override
- public BuildPomXMLFilterFactory get()
- {
- return buildPomXMLFilterFactory;
- }
- };
-
- ConsumerPomXMLFilter filter = new ConsumerPomXMLFilterFactory( provider )
+ ConsumerPomXMLFilter filter = new ConsumerPomXMLFilterFactory( buildPomXMLFilterFactory )
{
}.get( Paths.get( "pom.xml" ) );
filter.setFeature( "http://xml.org/sax/features/namespaces", true );
diff --git a/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java b/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java
index 4367982..db6606c 100644
--- a/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java
+++ b/maven-xml/src/test/java/org/apache/maven/xml/sax/filter/ReactorDependencyXMLFilterTest.java
@@ -18,13 +18,11 @@ package org.apache.maven.xml.sax.filter;
* specific language governing permissions and limitations
* under the License.
*/
-
-import static org.xmlunit.assertj.XmlAssert.*;
+import static org.xmlunit.assertj.XmlAssert.assertThat;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
-import org.apache.maven.xml.sax.filter.ReactorDependencyXMLFilter;
import org.junit.Test;
import org.xml.sax.SAXException;
@@ -34,7 +32,7 @@ public class ReactorDependencyXMLFilterTest extends AbstractXMLFilterTests
protected ReactorDependencyXMLFilter getFilter()
throws TransformerException, SAXException, ParserConfigurationException
{
- return new ReactorDependencyXMLFilter( r -> "1.0.0" );
+ return new ReactorDependencyXMLFilter( (g, a) -> "1.0.0" );
}
@Test
@@ -55,7 +53,7 @@ public class ReactorDependencyXMLFilterTest extends AbstractXMLFilterTests
@Test
public void testManagedDependency() throws Exception
{
- ReactorDependencyXMLFilter filter = new ReactorDependencyXMLFilter( r -> null );
+ ReactorDependencyXMLFilter filter = new ReactorDependencyXMLFilter( (g, a) -> null );
String input = "<dependency>"
+ "<groupId>GROUPID</groupId>"