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 7b758f5457..98c5fe6f6c 100644 --- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java +++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java @@ -227,12 +227,7 @@ public class DefaultMaven { try { - // CHECKSTYLE_OFF: LineLength - for ( AbstractMavenLifecycleParticipant listener : getLifecycleParticipants( Collections.emptyList() ) ) - { - listener.afterSessionStart( session ); - } - // CHECKSTYLE_ON: LineLength + afterSessionStart( session ); } catch ( MavenExecutionException e ) { @@ -279,24 +274,14 @@ public class DefaultMaven repoSession.setReadOnly(); - ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); try { - for ( AbstractMavenLifecycleParticipant listener : getLifecycleParticipants( session.getProjects() ) ) - { - Thread.currentThread().setContextClassLoader( listener.getClass().getClassLoader() ); - - listener.afterProjectsRead( session ); - } + afterProjectsRead( session ); } catch ( MavenExecutionException e ) { return addExceptionToResult( result, e ); } - finally - { - Thread.currentThread().setContextClassLoader( originalClassLoader ); - } // // The projects need to be topologically after the participants have run their afterProjectsRead(session) @@ -368,6 +353,36 @@ public class DefaultMaven return result; } + private void afterSessionStart( MavenSession session ) + throws MavenExecutionException + { + // CHECKSTYLE_OFF: LineLength + for ( AbstractMavenLifecycleParticipant listener : getLifecycleParticipants( Collections.emptyList() ) ) + // CHECKSTYLE_ON: LineLength + { + listener.afterSessionStart( session ); + } + } + + private void afterProjectsRead( MavenSession session ) + throws MavenExecutionException + { + ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader(); + try + { + for ( AbstractMavenLifecycleParticipant listener : getLifecycleParticipants( session.getProjects() ) ) + { + Thread.currentThread().setContextClassLoader( listener.getClass().getClassLoader() ); + + listener.afterProjectsRead( session ); + } + } + finally + { + Thread.currentThread().setContextClassLoader( originalClassLoader ); + } + } + private void afterSessionEnd( Collection projects, MavenSession session ) throws MavenExecutionException {