This is an automated email from the ASF dual-hosted git repository.
gnodet 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 898e4e4b3c Simplify code (#1156)
898e4e4b3c is described below
commit 898e4e4b3ca57d674759fe608bea2023ca550093
Author: Guillaume Nodet <[email protected]>
AuthorDate: Tue Jun 13 22:45:33 2023 +0200
Simplify code (#1156)
---
.../main/java/org/apache/maven/DefaultMaven.java | 46 ++++++++--------------
1 file changed, 17 insertions(+), 29 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
index 1b32dfe048..d1312fe0d4 100644
--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
@@ -327,7 +327,7 @@ public class DefaultMaven implements Maven {
}
} finally {
try {
- afterSessionEnd(session.getProjects(), session);
+ afterSessionEnd(session);
} catch (MavenExecutionException e) {
return addExceptionToResult(result, e);
}
@@ -354,44 +354,29 @@ public class DefaultMaven implements Maven {
}
private void afterSessionStart(MavenSession session) throws
MavenExecutionException {
- // CHECKSTYLE_OFF: LineLength
- for (AbstractMavenLifecycleParticipant listener :
- getExtensionComponents(Collections.emptyList(),
AbstractMavenLifecycleParticipant.class))
- // CHECKSTYLE_ON: LineLength
- {
- listener.afterSessionStart(session);
- }
+ callListeners(session,
AbstractMavenLifecycleParticipant::afterSessionStart);
}
private void afterProjectsRead(MavenSession session) throws
MavenExecutionException {
- ClassLoader originalClassLoader =
Thread.currentThread().getContextClassLoader();
- try {
- // CHECKSTYLE_OFF: LineLength
- for (AbstractMavenLifecycleParticipant listener :
- getExtensionComponents(session.getProjects(),
AbstractMavenLifecycleParticipant.class))
- // CHECKSTYLE_ON: LineLength
- {
-
Thread.currentThread().setContextClassLoader(listener.getClass().getClassLoader());
+ callListeners(session,
AbstractMavenLifecycleParticipant::afterProjectsRead);
+ }
- listener.afterProjectsRead(session);
- }
- } finally {
- Thread.currentThread().setContextClassLoader(originalClassLoader);
- }
+ private void afterSessionEnd(MavenSession session) throws
MavenExecutionException {
+ callListeners(session,
AbstractMavenLifecycleParticipant::afterSessionEnd);
}
- private void afterSessionEnd(Collection<MavenProject> projects,
MavenSession session)
- throws MavenExecutionException {
+ @FunctionalInterface
+ interface ListenerMethod {
+ void run(AbstractMavenLifecycleParticipant listener, MavenSession
session) throws MavenExecutionException;
+ }
+
+ private void callListeners(MavenSession session, ListenerMethod method)
throws MavenExecutionException {
ClassLoader originalClassLoader =
Thread.currentThread().getContextClassLoader();
try {
- // CHECKSTYLE_OFF: LineLength
for (AbstractMavenLifecycleParticipant listener :
- getExtensionComponents(projects,
AbstractMavenLifecycleParticipant.class))
- // CHECKSTYLE_ON: LineLength
- {
+ getExtensionComponents(session.getProjects(),
AbstractMavenLifecycleParticipant.class)) {
Thread.currentThread().setContextClassLoader(listener.getClass().getClassLoader());
-
- listener.afterSessionEnd(session);
+ method.run(listener, session);
}
} finally {
Thread.currentThread().setContextClassLoader(originalClassLoader);
@@ -451,6 +436,9 @@ public class DefaultMaven implements Maven {
}
protected <T> Collection<T>
getProjectScopedExtensionComponents(Collection<MavenProject> projects, Class<T>
role) {
+ if (projects == null) {
+ return Collections.emptyList();
+ }
Collection<T> foundComponents = new LinkedHashSet<>();
Collection<ClassLoader> scannedRealms = new HashSet<>();