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/01/05 23:07:59 UTC

[maven] branch MNG-7263 updated: [MNG-7263] introduce AbstractLifecycleProvider

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

hboutemy pushed a commit to branch MNG-7263
in repository https://gitbox.apache.org/repos/asf/maven.git


The following commit(s) were added to refs/heads/MNG-7263 by this push:
     new 961c6c1  [MNG-7263] introduce AbstractLifecycleProvider
961c6c1 is described below

commit 961c6c15f23de22f50d0b0e0e2be37489e7cfa77
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Thu Jan 6 00:07:56 2022 +0100

    [MNG-7263] introduce AbstractLifecycleProvider
---
 ...rovider.java => AbstractLifecycleProvider.java} | 58 +++++++--------
 .../providers/CleanLifecycleProvider.java          | 55 +++++---------
 .../providers/DefaultLifecycleProvider.java        | 84 +++++++++-------------
 .../lifecycle/providers/SiteLifecycleProvider.java | 59 ++++++---------
 .../providers/WrapperLifecycleProvider.java        | 53 +++++---------
 5 files changed, 115 insertions(+), 194 deletions(-)

diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/CleanLifecycleProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/AbstractLifecycleProvider.java
similarity index 55%
copy from maven-core/src/main/java/org/apache/maven/lifecycle/providers/CleanLifecycleProvider.java
copy to maven-core/src/main/java/org/apache/maven/lifecycle/providers/AbstractLifecycleProvider.java
index 4b72b5e..eb80a58 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/CleanLifecycleProvider.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/AbstractLifecycleProvider.java
@@ -23,48 +23,42 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 
-import javax.inject.Inject;
-import javax.inject.Named;
 import javax.inject.Provider;
-import javax.inject.Singleton;
 
 import org.apache.maven.lifecycle.Lifecycle;
 import org.apache.maven.lifecycle.mapping.LifecyclePhase;
 
 /**
- * {@code clean} lifecycle provider.
+ * Base lifecycle provider.
  */
-@Named( "clean" )
-@Singleton
-public final class CleanLifecycleProvider
+public abstract class AbstractLifecycleProvider
     implements Provider<Lifecycle>
 {
-  private static final String LIFECYCLE_ID = "clean";
+    private final Lifecycle lifecycle;
 
-  private static final String[] PHASES = {
-      "pre-clean",
-      "clean",
-      "post-clean"
-  };
+    protected AbstractLifecycleProvider( String id, String[] phases, String[] pluginBindings )
+    {
+        HashMap<String, LifecyclePhase> defaultBindings = null;
+        if ( pluginBindings != null )
+        {
+            int len = pluginBindings.length;
+            defaultBindings = new HashMap<>();
+            for ( int i = 0; i < len; i++ )
+            {
+                defaultBindings.put( pluginBindings[i++], new LifecyclePhase( pluginBindings[i] ) );
+            }
+        }
 
-  private final Lifecycle lifecycle;
+        this.lifecycle = new Lifecycle(
+            id,
+            Collections.unmodifiableList( Arrays.asList( phases ) ),
+            defaultBindings == null ? null : Collections.unmodifiableMap( defaultBindings )
+        );
+    }
 
-  @Inject
-  public CleanLifecycleProvider()
-  {
-    HashMap<String, LifecyclePhase> defaultBindings = new HashMap<>();
-    defaultBindings.put( "clean", new LifecyclePhase( "org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean" ) );
-
-    this.lifecycle = new Lifecycle(
-        LIFECYCLE_ID,
-        Collections.unmodifiableList( Arrays.asList( PHASES ) ),
-        Collections.unmodifiableMap( defaultBindings )
-    );
-  }
-
-  @Override
-  public Lifecycle get()
-  {
-    return lifecycle;
-  }
+    @Override
+    public Lifecycle get()
+    {
+        return lifecycle;
+    }
 }
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/CleanLifecycleProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/CleanLifecycleProvider.java
index 4b72b5e..62924cd 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/CleanLifecycleProvider.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/CleanLifecycleProvider.java
@@ -19,52 +19,33 @@ package org.apache.maven.lifecycle.providers;
  * under the License.
  */
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.inject.Provider;
 import javax.inject.Singleton;
 
-import org.apache.maven.lifecycle.Lifecycle;
-import org.apache.maven.lifecycle.mapping.LifecyclePhase;
-
 /**
  * {@code clean} lifecycle provider.
  */
 @Named( "clean" )
 @Singleton
 public final class CleanLifecycleProvider
-    implements Provider<Lifecycle>
+    extends AbstractLifecycleProvider
 {
-  private static final String LIFECYCLE_ID = "clean";
-
-  private static final String[] PHASES = {
-      "pre-clean",
-      "clean",
-      "post-clean"
-  };
-
-  private final Lifecycle lifecycle;
-
-  @Inject
-  public CleanLifecycleProvider()
-  {
-    HashMap<String, LifecyclePhase> defaultBindings = new HashMap<>();
-    defaultBindings.put( "clean", new LifecyclePhase( "org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean" ) );
-
-    this.lifecycle = new Lifecycle(
-        LIFECYCLE_ID,
-        Collections.unmodifiableList( Arrays.asList( PHASES ) ),
-        Collections.unmodifiableMap( defaultBindings )
-    );
-  }
-
-  @Override
-  public Lifecycle get()
-  {
-    return lifecycle;
-  }
+    private static final String LIFECYCLE_ID = "clean";
+
+    private static final String[] PHASES = {
+        "pre-clean",
+        "clean",
+        "post-clean"
+    };
+
+    private static final String[] BINDINGS = {
+        "clean", "org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean"
+    };
+
+    @Inject
+    public CleanLifecycleProvider()
+    {
+        super( LIFECYCLE_ID, PHASES, BINDINGS );
+    }
 }
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/DefaultLifecycleProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/DefaultLifecycleProvider.java
index 29d5483..aa6f75c 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/DefaultLifecycleProvider.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/DefaultLifecycleProvider.java
@@ -19,67 +19,51 @@ package org.apache.maven.lifecycle.providers;
  * under the License.
  */
 
-import java.util.Arrays;
-import java.util.Collections;
-
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.inject.Provider;
 import javax.inject.Singleton;
 
-import org.apache.maven.lifecycle.Lifecycle;
-
 /**
  * {@code default} lifecycle provider.
  */
 @Named( "default" )
 @Singleton
 public final class DefaultLifecycleProvider
-    implements Provider<Lifecycle>
+    extends AbstractLifecycleProvider
 {
-  private static final String LIFECYCLE_ID = "default";
-
-  private static final String[] PHASES = {
-      "validate",
-      "initialize",
-      "generate-sources",
-      "process-sources",
-      "generate-resources",
-      "process-resources",
-      "compile",
-      "process-classes",
-      "generate-test-sources",
-      "process-test-sources",
-      "generate-test-resources",
-      "process-test-resources",
-      "test-compile",
-      "process-test-classes",
-      "test",
-      "prepare-package",
-      "package",
-      "pre-integration-test",
-      "integration-test",
-      "post-integration-test",
-      "verify",
-      "install",
-      "deploy"
-  };
-
-  private final Lifecycle lifecycle;
+    private static final String LIFECYCLE_ID = "default";
 
-  @Inject
-  public DefaultLifecycleProvider()
-  {
-    this.lifecycle = new Lifecycle(
-        LIFECYCLE_ID,
-        Collections.unmodifiableList( Arrays.asList( PHASES ) ),
-        null // no global plugin bindings for default lifecycle: they are defined per-packaging in separate providers
-    );
-  }
+    private static final String[] PHASES = {
+        "validate",
+        "initialize",
+        "generate-sources",
+        "process-sources",
+        "generate-resources",
+        "process-resources",
+        "compile",
+        "process-classes",
+        "generate-test-sources",
+        "process-test-sources",
+        "generate-test-resources",
+        "process-test-resources",
+        "test-compile",
+        "process-test-classes",
+        "test",
+        "prepare-package",
+        "package",
+        "pre-integration-test",
+        "integration-test",
+        "post-integration-test",
+        "verify",
+        "install",
+        "deploy"
+    };
 
-  @Override
-  public Lifecycle get()
-  {
-    return lifecycle;
-  }
+    @Inject
+    public DefaultLifecycleProvider()
+    {
+      super( LIFECYCLE_ID, PHASES,
+          null // no global plugin bindings for default lifecycle: they are defined per-packaging in separate providers
+      );
+    }
 }
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/SiteLifecycleProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/SiteLifecycleProvider.java
index d7ff563..142ac1c 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/SiteLifecycleProvider.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/SiteLifecycleProvider.java
@@ -19,54 +19,35 @@ package org.apache.maven.lifecycle.providers;
  * under the License.
  */
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.inject.Provider;
 import javax.inject.Singleton;
 
-import org.apache.maven.lifecycle.Lifecycle;
-import org.apache.maven.lifecycle.mapping.LifecyclePhase;
-
 /**
  * {@code site} lifecycle provider.
  */
 @Named( "site" )
 @Singleton
 public final class SiteLifecycleProvider
-    implements Provider<Lifecycle>
+    extends AbstractLifecycleProvider
 {
-  private static final String LIFECYCLE_ID = "site";
-
-  private static final String[] PHASES = {
-      "pre-site",
-      "site",
-      "post-site",
-      "site-deploy"
-  };
-
-  private final Lifecycle lifecycle;
-
-  @Inject
-  public SiteLifecycleProvider()
-  {
-    HashMap<String, LifecyclePhase> defaultBindings = new HashMap<>();
-    defaultBindings.put( "site", new LifecyclePhase( "org.apache.maven.plugins:maven-site-plugin:3.9.1:site" ) );
-    defaultBindings.put( "site-deploy", new LifecyclePhase( "org.apache.maven.plugins:maven-site-plugin:3.9.1:deploy" ) );
-
-    this.lifecycle = new Lifecycle(
-        LIFECYCLE_ID,
-        Collections.unmodifiableList( Arrays.asList( PHASES ) ),
-        Collections.unmodifiableMap( defaultBindings )
-    );
-  }
-
-  @Override
-  public Lifecycle get()
-  {
-    return lifecycle;
-  }
+    private static final String LIFECYCLE_ID = "site";
+
+    private static final String[] PHASES = {
+        "pre-site",
+        "site",
+        "post-site",
+        "site-deploy"
+    };
+
+    private static final String[] BINDINGS = {
+        "site", "org.apache.maven.plugins:maven-site-plugin:3.9.1:site",
+        "site-deploy", "org.apache.maven.plugins:maven-site-plugin:3.9.1:deploy"
+    };
+
+    @Inject
+    public SiteLifecycleProvider()
+    {
+        super( LIFECYCLE_ID, PHASES, BINDINGS );
+    }
 }
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/WrapperLifecycleProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/WrapperLifecycleProvider.java
index b88dcc1..aa383ab 100644
--- a/maven-core/src/main/java/org/apache/maven/lifecycle/providers/WrapperLifecycleProvider.java
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/providers/WrapperLifecycleProvider.java
@@ -19,51 +19,32 @@ package org.apache.maven.lifecycle.providers;
  * under the License.
  */
 
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-
 import javax.inject.Inject;
 import javax.inject.Named;
-import javax.inject.Provider;
 import javax.inject.Singleton;
 
-import org.apache.maven.lifecycle.Lifecycle;
-import org.apache.maven.lifecycle.mapping.LifecyclePhase;
-
 /**
  * {@code wrapper} lifecycle provider.
  */
 @Named( "wrapper" )
 @Singleton
 public final class WrapperLifecycleProvider
-    implements Provider<Lifecycle>
+    extends AbstractLifecycleProvider
 {
-  private static final String LIFECYCLE_ID = "wrapper";
-
-  private static final String[] PHASES =
-  {
-      "wrapper"
-  };
-
-  private final Lifecycle lifecycle;
-
-  @Inject
-  public WrapperLifecycleProvider()
-  {
-    HashMap<String, LifecyclePhase> defaultBindings = new HashMap<>();
-    defaultBindings.put( "wrapper", new LifecyclePhase( "org.apache.maven.plugins:maven-wrapper-plugin:3.1.0:wrapper" ) );
-
-    this.lifecycle = new Lifecycle(
-        LIFECYCLE_ID,
-        Collections.unmodifiableList( Arrays.asList( PHASES ) ),
-        Collections.unmodifiableMap( defaultBindings )
-    );
-  }
-
-  @Override
-  public Lifecycle get()
-  {
-    return lifecycle;
-  }
+    private static final String LIFECYCLE_ID = "wrapper";
+
+    private static final String[] PHASES =
+    {
+        "wrapper"
+    };
+
+    private static final String[] BINDINGS = {
+        "wrapper", "org.apache.maven.plugins:maven-wrapper-plugin:3.1.0:wrapper"
+    };
+
+    @Inject
+    public WrapperLifecycleProvider()
+    {
+        super( LIFECYCLE_ID, PHASES, BINDINGS );
+    }
 }