This is an automated email from the ASF dual-hosted git repository. mthmulders pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push: new ba7a037 Refactor ProjectsCollector.collectProjects ba7a037 is described below commit ba7a0376b17875bd3733d291a10beee9b039bfb3 Author: Maarten Mulders <mthmuld...@apache.org> AuthorDate: Fri Oct 23 14:46:26 2020 +0200 Refactor ProjectsCollector.collectProjects This method now returns it result instead of modifying one of its arguments. Closes #388. --- ...rojectsCollector.java => DefaultProjectsSelector.java} | 15 ++++++++++----- .../project/collector/MultiModuleCollectionStrategy.java | 9 ++++----- .../project/collector/PomlessCollectionStrategy.java | 6 ++---- .../{ProjectsCollector.java => ProjectsSelector.java} | 10 +++++----- .../project/collector/RequestPomCollectionStrategy.java | 11 ++++------- .../org/apache/maven/graph/DefaultGraphBuilderTest.java | 10 +++++----- 6 files changed, 30 insertions(+), 31 deletions(-) diff --git a/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsCollector.java b/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsSelector.java similarity index 87% rename from maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsCollector.java rename to maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsSelector.java index 297b4a0..3776c6f 100644 --- a/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsCollector.java +++ b/maven-core/src/main/java/org/apache/maven/project/collector/DefaultProjectsSelector.java @@ -35,26 +35,27 @@ import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; import java.io.File; +import java.util.ArrayList; import java.util.List; /** - * Utility to collect projects for a given set of pom.xml files. + * Utility to select projects for a given set of pom.xml files. */ @Named @Singleton -public class DefaultProjectsCollector implements ProjectsCollector +public class DefaultProjectsSelector implements ProjectsSelector { - private static final Logger LOGGER = LoggerFactory.getLogger( DefaultProjectsCollector.class ); + private static final Logger LOGGER = LoggerFactory.getLogger( DefaultProjectsSelector.class ); private final ProjectBuilder projectBuilder; @Inject - public DefaultProjectsCollector( ProjectBuilder projectBuilder ) + public DefaultProjectsSelector( ProjectBuilder projectBuilder ) { this.projectBuilder = projectBuilder; } @Override - public void collectProjects( List<MavenProject> projects, List<File> files, MavenExecutionRequest request ) + public List<MavenProject> selectProjects( List<File> files, MavenExecutionRequest request ) throws ProjectBuildingException { ProjectBuildingRequest projectBuildingRequest = request.getProjectBuildingRequest(); @@ -62,6 +63,8 @@ public class DefaultProjectsCollector implements ProjectsCollector List<ProjectBuildingResult> results = projectBuilder.build( files, request.isRecursive(), projectBuildingRequest ); + List<MavenProject> projects = new ArrayList<>( results.size() ); + boolean problems = false; for ( ProjectBuildingResult result : results ) @@ -94,5 +97,7 @@ public class DefaultProjectsCollector implements ProjectsCollector + " longer support building such malformed projects." ); LOGGER.warn( "" ); } + + return projects; } } diff --git a/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java b/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java index d05c02a..1aab11c 100644 --- a/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java +++ b/maven-core/src/main/java/org/apache/maven/project/collector/MultiModuleCollectionStrategy.java @@ -52,13 +52,13 @@ public class MultiModuleCollectionStrategy implements ProjectCollectionStrategy { private final Logger logger = LoggerFactory.getLogger( getClass() ); private final ModelLocator modelLocator; - private final ProjectsCollector projectsCollector; + private final ProjectsSelector projectsSelector; @Inject - public MultiModuleCollectionStrategy( ModelLocator modelLocator, ProjectsCollector projectsCollector ) + public MultiModuleCollectionStrategy( ModelLocator modelLocator, ProjectsSelector projectsSelector ) { this.modelLocator = modelLocator; - this.projectsCollector = projectsCollector; + this.projectsSelector = projectsSelector; } @Override @@ -68,8 +68,7 @@ public class MultiModuleCollectionStrategy implements ProjectCollectionStrategy List<File> files = Collections.singletonList( moduleProjectPomFile.getAbsoluteFile() ); try { - List<MavenProject> projects = new ArrayList<>(); - projectsCollector.collectProjects( projects, files, request ); + List<MavenProject> projects = projectsSelector.selectProjects( files, request ); boolean isRequestedProjectCollected = isRequestedProjectCollected( request, projects ); if ( isRequestedProjectCollected ) { diff --git a/maven-core/src/main/java/org/apache/maven/project/collector/PomlessCollectionStrategy.java b/maven-core/src/main/java/org/apache/maven/project/collector/PomlessCollectionStrategy.java index d86de74..394743f 100644 --- a/maven-core/src/main/java/org/apache/maven/project/collector/PomlessCollectionStrategy.java +++ b/maven-core/src/main/java/org/apache/maven/project/collector/PomlessCollectionStrategy.java @@ -31,7 +31,7 @@ import org.apache.maven.project.ProjectBuildingRequest; import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; -import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -60,8 +60,6 @@ public class PomlessCollectionStrategy project.setExecutionRoot( true ); request.setProjectPresent( false ); - final List<MavenProject> result = new ArrayList<>(); - result.add( project ); - return result; + return Arrays.asList( project ); } } diff --git a/maven-core/src/main/java/org/apache/maven/project/collector/ProjectsCollector.java b/maven-core/src/main/java/org/apache/maven/project/collector/ProjectsSelector.java similarity index 79% rename from maven-core/src/main/java/org/apache/maven/project/collector/ProjectsCollector.java rename to maven-core/src/main/java/org/apache/maven/project/collector/ProjectsSelector.java index 10b139a..1731021 100644 --- a/maven-core/src/main/java/org/apache/maven/project/collector/ProjectsCollector.java +++ b/maven-core/src/main/java/org/apache/maven/project/collector/ProjectsSelector.java @@ -27,17 +27,17 @@ import java.io.File; import java.util.List; /** - * Facade to collect projects for a given set of pom.xml files. + * Facade to select projects for a given set of pom.xml files. */ -public interface ProjectsCollector +public interface ProjectsSelector { /** - * Collect Maven projects from a list of POM files. - * @param projects List that will be filled with the found projects. + * Select Maven projects from a list of POM files. * @param files List of POM files. * @param request The {@link MavenExecutionRequest} + * @return A list of projects that have been found in the specified POM files. * @throws ProjectBuildingException In case the POMs are not used. */ - void collectProjects( List<MavenProject> projects, List<File> files, MavenExecutionRequest request ) + List<MavenProject> selectProjects( List<File> files, MavenExecutionRequest request ) throws ProjectBuildingException; } diff --git a/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java b/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java index 030b812..bf50856 100644 --- a/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java +++ b/maven-core/src/main/java/org/apache/maven/project/collector/RequestPomCollectionStrategy.java @@ -27,7 +27,6 @@ import javax.inject.Inject; import javax.inject.Named; import javax.inject.Singleton; import java.io.File; -import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -38,20 +37,18 @@ import java.util.List; @Singleton public class RequestPomCollectionStrategy implements ProjectCollectionStrategy { - private final ProjectsCollector projectsCollector; + private final ProjectsSelector projectsSelector; @Inject - public RequestPomCollectionStrategy( ProjectsCollector projectsCollector ) + public RequestPomCollectionStrategy( ProjectsSelector projectsSelector ) { - this.projectsCollector = projectsCollector; + this.projectsSelector = projectsSelector; } @Override public List<MavenProject> collectProjects( MavenExecutionRequest request ) throws ProjectBuildingException { List<File> files = Collections.singletonList( request.getPom().getAbsoluteFile() ); - List<MavenProject> projects = new ArrayList<>(); - projectsCollector.collectProjects( projects, files, request ); - return projects; + return projectsSelector.selectProjects( files, request ); } } diff --git a/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java b/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java index 7b13c80..6a8320b 100644 --- a/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java +++ b/maven-core/src/test/java/org/apache/maven/graph/DefaultGraphBuilderTest.java @@ -32,10 +32,10 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.project.ProjectBuilder; import org.apache.maven.project.ProjectBuildingRequest; import org.apache.maven.project.ProjectBuildingResult; -import org.apache.maven.project.collector.DefaultProjectsCollector; +import org.apache.maven.project.collector.DefaultProjectsSelector; import org.apache.maven.project.collector.MultiModuleCollectionStrategy; import org.apache.maven.project.collector.PomlessCollectionStrategy; -import org.apache.maven.project.collector.ProjectsCollector; +import org.apache.maven.project.collector.ProjectsSelector; import org.apache.maven.project.collector.RequestPomCollectionStrategy; import org.codehaus.plexus.util.StringUtils; import org.junit.Before; @@ -92,14 +92,14 @@ public class DefaultGraphBuilderTest private final MavenSession session = mock( MavenSession.class ); private final MavenExecutionRequest mavenExecutionRequest = mock( MavenExecutionRequest.class ); - private final ProjectsCollector projectsCollector = new DefaultProjectsCollector( projectBuilder ); + private final ProjectsSelector projectsSelector = new DefaultProjectsSelector( projectBuilder ); // Not using mocks for these strategies - a mock would just copy the actual implementation. private final ModelLocator modelLocator = new DefaultModelLocator(); private final PomlessCollectionStrategy pomlessCollectionStrategy = new PomlessCollectionStrategy( projectBuilder ); - private final MultiModuleCollectionStrategy multiModuleCollectionStrategy = new MultiModuleCollectionStrategy( modelLocator, projectsCollector ); - private final RequestPomCollectionStrategy requestPomCollectionStrategy = new RequestPomCollectionStrategy( projectsCollector ); + private final MultiModuleCollectionStrategy multiModuleCollectionStrategy = new MultiModuleCollectionStrategy( modelLocator, projectsSelector ); + private final RequestPomCollectionStrategy requestPomCollectionStrategy = new RequestPomCollectionStrategy( projectsSelector ); private Map<String, MavenProject> artifactIdProjectMap;