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 );
+ }
}