Skip to content

Commit afb9647

Browse files
committed
Simplify, and add selector to all
1 parent 9e4abc8 commit afb9647

File tree

5 files changed

+24
-20
lines changed

5 files changed

+24
-20
lines changed

toolbox/src/main/java/eu/maveniverse/maven/toolbox/plugin/MPMojoSupport.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,7 @@ protected boolean isReactorDependency(Dependency dependency) {
105105
p.getVersion(), dependency.getArtifact().getVersion()));
106106
}
107107

108-
protected ReactorLocator getReactorLocator() {
109-
return new MavenReactorLocator(mavenSession);
110-
}
111-
112-
protected ReactorLocator getReactorLocatorWithSelector(String selector) {
113-
if (selector == null || selector.trim().isEmpty()) {
114-
return getReactorLocator();
115-
} else {
116-
return new MavenReactorLocator(mavenSession, selector);
117-
}
108+
protected ReactorLocator getReactorLocator(String selector) {
109+
return new MavenReactorLocator(mavenSession, selector);
118110
}
119111
}

toolbox/src/main/java/eu/maveniverse/maven/toolbox/plugin/MavenReactorLocator.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@ public class MavenReactorLocator implements ReactorLocator {
3636
private final Project current;
3737
private final List<Project> allProjects;
3838

39-
public MavenReactorLocator(MavenSession session) {
40-
this(session, null);
41-
}
42-
4339
public MavenReactorLocator(MavenSession session, String selector) {
4440
requireNonNull(session, "session");
4541
this.allProjects = session.getAllProjects().stream()
@@ -59,11 +55,11 @@ public MavenReactorLocator(MavenSession session, String selector) {
5955
throw new IllegalArgumentException("Could not find 1 matching project: " + matches);
6056
}
6157
this.current = locateProject(
62-
RepositoryUtils.toArtifact(candidates.get(0).getArtifact()))
58+
RepositoryUtils.toArtifact(candidates.get(0).getArtifact()))
6359
.orElseThrow();
6460
} else {
65-
this.current = locateProject(
66-
RepositoryUtils.toArtifact(session.getCurrentProject().getArtifact()))
61+
this.current = locateProject(RepositoryUtils.toArtifact(
62+
session.getCurrentProject().getArtifact()))
6763
.orElseThrow();
6864
}
6965
}

toolbox/src/main/java/eu/maveniverse/maven/toolbox/plugin/mp/ParentChildTreeMojo.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,23 @@
1010
import eu.maveniverse.maven.toolbox.plugin.MPMojoSupport;
1111
import eu.maveniverse.maven.toolbox.shared.Result;
1212
import org.apache.maven.plugins.annotations.Mojo;
13+
import org.apache.maven.plugins.annotations.Parameter;
1314
import org.eclipse.aether.collection.CollectResult;
1415

1516
/**
1617
* Displays project inheritance of Maven Projects.
1718
*/
1819
@Mojo(name = "parent-child-tree", aggregator = true, threadSafe = true)
1920
public class ParentChildTreeMojo extends MPMojoSupport {
21+
/**
22+
* Set the project selector, like {@code -rf} Maven command uses it, can be {@code :A}, {@code G:A}. The selector
23+
* string must match ONE project within reactor, otherwise (matches 0 or more than 1) it will fail.
24+
*/
25+
@Parameter(property = "selector")
26+
private String selector;
27+
2028
@Override
2129
protected Result<CollectResult> doExecute() throws Exception {
22-
return getToolboxCommando().parentChildTree(getReactorLocator());
30+
return getToolboxCommando().parentChildTree(getReactorLocator(selector));
2331
}
2432
}

toolbox/src/main/java/eu/maveniverse/maven/toolbox/plugin/mp/ProjectDependencyTreeMojo.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ public class ProjectDependencyTreeMojo extends MPMojoSupport {
3434

3535
@Override
3636
protected Result<CollectResult> doExecute() throws Exception {
37-
return getToolboxCommando().projectDependencyTree(getReactorLocatorWithSelector(selector), showExternal);
37+
return getToolboxCommando().projectDependencyTree(getReactorLocator(selector), showExternal);
3838
}
3939
}

toolbox/src/main/java/eu/maveniverse/maven/toolbox/plugin/mp/SubprojectTreeMojo.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,23 @@
1010
import eu.maveniverse.maven.toolbox.plugin.MPMojoSupport;
1111
import eu.maveniverse.maven.toolbox.shared.Result;
1212
import org.apache.maven.plugins.annotations.Mojo;
13+
import org.apache.maven.plugins.annotations.Parameter;
1314
import org.eclipse.aether.collection.CollectResult;
1415

1516
/**
1617
* Displays subproject collection of Maven Projects.
1718
*/
1819
@Mojo(name = "subproject-tree", aggregator = true, threadSafe = true)
1920
public class SubprojectTreeMojo extends MPMojoSupport {
21+
/**
22+
* Set the project selector, like {@code -rf} Maven command uses it, can be {@code :A} or {@code G:A}. The selector
23+
* string must match ONE project within reactor, otherwise (matches 0 or more than 1) it will fail.
24+
*/
25+
@Parameter(property = "selector")
26+
private String selector;
27+
2028
@Override
2129
protected Result<CollectResult> doExecute() throws Exception {
22-
return getToolboxCommando().subprojectTree(getReactorLocator());
30+
return getToolboxCommando().subprojectTree(getReactorLocator(selector));
2331
}
2432
}

0 commit comments

Comments
 (0)