[ https://issues.apache.org/jira/browse/MNG-7443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17556252#comment-17556252 ]
ASF GitHub Bot commented on MNG-7443: ------------------------------------- michael-o commented on code in PR #701: URL: https://github.com/apache/maven/pull/701#discussion_r901366846 ########## maven-core/src/main/java/org/apache/maven/DefaultMaven.java: ########## @@ -132,6 +137,7 @@ public DefaultMaven( this.buildResumptionAnalyzer = buildResumptionAnalyzer; this.buildResumptionDataRepository = buildResumptionDataRepository; this.superPomProvider = superPomProvider; + this.projectSelector = new ProjectSelector(); Review Comment: This isn't subject to DI? ########## maven-core/src/main/java/org/apache/maven/DefaultMaven.java: ########## @@ -631,6 +638,21 @@ private void validateRequiredProfiles( MavenSession session, ProfileActivation p } } + /** + * Check whether any of the requested optional projects were not activated or deactivated. + * @param request the {@link MavenExecutionRequest}. + * @param session the {@link MavenSession}. + */ + private void validateOptionalProjects( MavenExecutionRequest request, MavenSession session ) + { + final ProjectActivation projectActivation = request.getProjectActivation(); + final Set<String> allOptionalSelectors = Sets.union( projectActivation.getOptionalActiveProjectSelectors(), + projectActivation.getOptionalInactiveProjectSelectors() ); + // We intentionally ignore the results of this method. + // As a side effect it will log the optional projects that could not be resolve. Review Comment: ...not be resolved. ########## maven-core/src/main/java/org/apache/maven/graph/ProjectSelector.java: ########## @@ -0,0 +1,143 @@ +package org.apache.maven.graph; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.maven.MavenExecutionException; +import org.apache.maven.execution.MavenExecutionRequest; +import org.apache.maven.project.MavenProject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.File; +import java.util.HashSet; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import static com.google.common.base.Strings.isNullOrEmpty; + +public final class ProjectSelector +{ + private static final Logger LOGGER = LoggerFactory.getLogger( ProjectSelector.class ); + + public Set<MavenProject> getRequiredProjectsBySelectors( MavenExecutionRequest request, List<MavenProject> projects, + Set<String> projectSelectors ) + throws MavenExecutionException + { + Set<MavenProject> selectedProjects = new LinkedHashSet<>(); + File baseDirectory = !isNullOrEmpty( request.getBaseDirectory() ) + ? new File( request.getBaseDirectory() ) : null; Review Comment: Since this is used multiple times, would it make sense to move toa private method? ########## maven-core/src/main/java/org/apache/maven/graph/DefaultGraphBuilder.java: ########## @@ -254,12 +215,13 @@ private List<MavenProject> trimResumedProjects( List<MavenProject> projects, Pro if ( StringUtils.isNotEmpty( request.getResumeFrom() ) ) { - File reactorDirectory = getReactorDirectory( request ); + File reactorDirectory = !isNullOrEmpty( request.getBaseDirectory() ) Review Comment: Certain? `new File( "" )` isn't wrong, no? > Consistent logging between optional projects and optional profiles > ------------------------------------------------------------------ > > Key: MNG-7443 > URL: https://issues.apache.org/jira/browse/MNG-7443 > Project: Maven > Issue Type: Improvement > Components: Core, Logging > Affects Versions: 4.0.0-alpha-1 > Reporter: Giovanni van der Schelde > Priority: Minor > Attachments: example.png > > > Maven 4 introduces optional profiles and optional projects. However, the > feedback provided to the user on whether a project or profile has been > skipped is inconsistent between the two (see image attached). > For profiles, it will be logged twice: before and after the build. > For projects, it will be logged once: before the build. > The idea would be to log the information for skipped optional projects after > the build as well. > !example.png! -- This message was sent by Atlassian Jira (v8.20.7#820007)