You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2022/07/02 09:30:17 UTC

[maven-install-plugin] branch install-at-end updated: create state management methods to clarify

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch install-at-end
in repository https://gitbox.apache.org/repos/asf/maven-install-plugin.git


The following commit(s) were added to refs/heads/install-at-end by this push:
     new b6cd186  create state management methods to clarify
b6cd186 is described below

commit b6cd186fb53b4558bffd913ab3c3ff37602e34f9
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sat Jul 2 11:30:12 2022 +0200

    create state management methods to clarify
---
 .../apache/maven/plugins/install/InstallMojo.java  | 39 ++++++++++++++--------
 1 file changed, 25 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/install/InstallMojo.java b/src/main/java/org/apache/maven/plugins/install/InstallMojo.java
index 7cd47a2..8ea2f30 100644
--- a/src/main/java/org/apache/maven/plugins/install/InstallMojo.java
+++ b/src/main/java/org/apache/maven/plugins/install/InstallMojo.java
@@ -23,7 +23,6 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.descriptor.PluginDescriptor;
@@ -47,17 +46,12 @@ import org.apache.maven.shared.transfer.project.install.ProjectInstallerRequest;
 public class InstallMojo
     extends AbstractInstallMojo
 {
-    private static final String INSTALL_PROCESSED_MARKER = InstallMojo.class.getName() + ".processed";
-
     @Parameter( defaultValue = "${project}", readonly = true, required = true )
     private MavenProject project;
 
     @Parameter( defaultValue = "${reactorProjects}", required = true, readonly = true )
     private List<MavenProject> reactorProjects;
 
-    @Parameter( defaultValue = "${session}", required = true, readonly = true )
-    private MavenSession session;
-
     @Parameter( defaultValue = "${plugin}", required = true, readonly = true )
     private PluginDescriptor pluginDescriptor;
 
@@ -88,25 +82,44 @@ public class InstallMojo
         SKIPPED, INSTALLED, TO_BE_INSTALLED
     }
 
+    private static final String INSTALL_PROCESSED_MARKER = InstallMojo.class.getName() + ".processed";
+
+    private void putState( State state )
+    {
+        getPluginContext().put( INSTALL_PROCESSED_MARKER, state.name() );
+    }
+
+    private State getState( MavenProject project )
+    {
+        Map<String, Object> pluginContext = session.getPluginContext( pluginDescriptor, project );
+        return State.valueOf( (String) pluginContext.get( INSTALL_PROCESSED_MARKER ) );
+    }
+
+    private boolean hasState( MavenProject project )
+    {
+        Map<String, Object> pluginContext = session.getPluginContext( pluginDescriptor, project );
+        return pluginContext.containsKey( INSTALL_PROCESSED_MARKER );
+    }
+
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
         if ( skip )
         {
             getLog().info( "Skipping artifact installation" );
-            getPluginContext().put( INSTALL_PROCESSED_MARKER, State.SKIPPED.name() );
+            putState( State.SKIPPED );
         }
         else
         {
             if ( !installAtEnd )
             {
                 installProject( project );
-                getPluginContext().put( INSTALL_PROCESSED_MARKER, State.INSTALLED.name() );
+                putState( State.INSTALLED );
             }
             else
             {
-                getLog().info( "Installing " + getProjectReferenceId( project ) + " at end" );
-                getPluginContext().put( INSTALL_PROCESSED_MARKER, State.TO_BE_INSTALLED.name() );
+                getLog().info( "Deferring install for " + getProjectReferenceId( project ) + " at end" );
+                putState( State.TO_BE_INSTALLED );
             }
         }
 
@@ -114,8 +127,7 @@ public class InstallMojo
         {
             for ( MavenProject reactorProject : reactorProjects )
             {
-                Map<String, Object> pluginContext = session.getPluginContext( pluginDescriptor, reactorProject );
-                State state =  State.valueOf( (String) pluginContext.get( INSTALL_PROCESSED_MARKER ) );
+                State state = getState( reactorProject );
                 if ( state == State.TO_BE_INSTALLED )
                 {
                     installProject( reactorProject );
@@ -133,8 +145,7 @@ public class InstallMojo
     {
         for ( MavenProject reactorProject : reactorProjects )
         {
-            Map<String, Object> pluginContext = session.getPluginContext( pluginDescriptor, reactorProject );
-            if ( !pluginContext.containsKey( INSTALL_PROCESSED_MARKER ) )
+            if ( !hasState( reactorProject ) )
             {
                 return false;
             }