You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2021/09/23 10:49:12 UTC
[maven] 01/01: Convert maven-core default-bindings to Providers
This is an automated email from the ASF dual-hosted git repository.
cstamas pushed a commit to branch drop-default-bindings.xml
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 9ec3f5164c713004bce6cd3de09910878adcd31e
Author: Tamas Cservenak <ta...@cservenak.net>
AuthorDate: Thu Sep 23 12:48:15 2021 +0200
Convert maven-core default-bindings to Providers
This change get rids of another set of Plexus components
defined in XML.
---
.../lifecycle/mapping/LifecycleMappingImpl.java | 62 ++++
.../providers/EarLifecycleMappingProvider.java | 83 ++++++
.../providers/EjbLifecycleMappingProvider.java | 95 ++++++
.../providers/JarLifecycleMappingProvider.java | 95 ++++++
.../MavenPluginLifecycleMappingProvider.java | 102 +++++++
.../providers/PomLifecycleMappingProvider.java | 71 +++++
.../providers/RarLifecycleMappingProvider.java | 95 ++++++
.../providers/WarLifecycleMappingProvider.java | 95 ++++++
.../resources/META-INF/plexus/default-bindings.xml | 318 ---------------------
9 files changed, 698 insertions(+), 318 deletions(-)
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecycleMappingImpl.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecycleMappingImpl.java
new file mode 100644
index 0000000..362606f
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/LifecycleMappingImpl.java
@@ -0,0 +1,62 @@
+package org.apache.maven.lifecycle.mapping;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import static java.util.stream.Collectors.toMap;
+
+/**
+ * Alternate implementation of {@link LifecycleMapping} as default one is too much plexus-suited.
+ */
+public final class LifecycleMappingImpl
+ implements LifecycleMapping
+{
+ private final Map<String, Lifecycle> lifecycles;
+
+ public LifecycleMappingImpl( final List<Lifecycle> lifecycles )
+ {
+ this.lifecycles = Collections.unmodifiableMap(
+ lifecycles.stream().collect( toMap( Lifecycle::getId, l -> l ) )
+ );
+ }
+
+ @Override
+ public Map<String, Lifecycle> getLifecycles()
+ {
+ return lifecycles;
+ }
+
+ @Deprecated
+ @Override
+ public List<String> getOptionalMojos( final String lifecycle )
+ {
+ return null;
+ }
+
+ @Deprecated
+ @Override
+ public Map<String, String> getPhases( final String lifecycle )
+ {
+ return null;
+ }
+}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/EarLifecycleMappingProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/EarLifecycleMappingProvider.java
new file mode 100644
index 0000000..8bee455
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/EarLifecycleMappingProvider.java
@@ -0,0 +1,83 @@
+package org.apache.maven.lifecycle.mapping.providers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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.mapping.Lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.mapping.LifecycleMappingImpl;
+import org.apache.maven.lifecycle.mapping.LifecyclePhase;
+
+@Named( "ear" )
+@Singleton
+public final class EarLifecycleMappingProvider
+ implements Provider<LifecycleMapping>
+{
+ private final LifecycleMapping lifecycleMapping;
+
+ @Inject
+ public EarLifecycleMappingProvider()
+ {
+ HashMap<String, LifecyclePhase> lifecyclePhases = new HashMap<>();
+ lifecyclePhases.put(
+ "generate-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-ear-plugin:3.1.2:generate-application-xml" )
+ );
+ lifecyclePhases.put(
+ "process-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources" )
+ );
+ lifecyclePhases.put(
+ "package",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-ear-plugin:3.1.2:ear" )
+ );
+ lifecyclePhases.put(
+ "install",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install" )
+ );
+ lifecyclePhases.put(
+ "deploy",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy" )
+ );
+
+ Lifecycle lifecycle = new Lifecycle();
+ lifecycle.setId( "default" );
+ lifecycle.setLifecyclePhases( Collections.unmodifiableMap( lifecyclePhases ) );
+
+ this.lifecycleMapping = new LifecycleMappingImpl(
+ Collections.singletonList(
+ lifecycle
+ )
+ );
+ }
+
+ @Override
+ public LifecycleMapping get()
+ {
+ return lifecycleMapping;
+ }
+}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/EjbLifecycleMappingProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/EjbLifecycleMappingProvider.java
new file mode 100644
index 0000000..37ab6d7
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/EjbLifecycleMappingProvider.java
@@ -0,0 +1,95 @@
+package org.apache.maven.lifecycle.mapping.providers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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.mapping.Lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.mapping.LifecycleMappingImpl;
+import org.apache.maven.lifecycle.mapping.LifecyclePhase;
+
+@Named( "ejb" )
+@Singleton
+public final class EjbLifecycleMappingProvider
+ implements Provider<LifecycleMapping>
+{
+ private final LifecycleMapping lifecycleMapping;
+
+ @Inject
+ public EjbLifecycleMappingProvider()
+ {
+ HashMap<String, LifecyclePhase> lifecyclePhases = new HashMap<>();
+ lifecyclePhases.put(
+ "process-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources" )
+ );
+ lifecyclePhases.put(
+ "compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile" )
+ );
+ lifecyclePhases.put(
+ "process-test-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources" )
+ );
+ lifecyclePhases.put(
+ "test-compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile" )
+ );
+ lifecyclePhases.put(
+ "test",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test" )
+ );
+ lifecyclePhases.put(
+ "package",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-ejb-plugin:3.1.0:ejb" )
+ );
+ lifecyclePhases.put(
+ "install",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install" )
+ );
+ lifecyclePhases.put(
+ "deploy",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy" )
+ );
+
+ Lifecycle lifecycle = new Lifecycle();
+ lifecycle.setId( "default" );
+ lifecycle.setLifecyclePhases( Collections.unmodifiableMap( lifecyclePhases ) );
+
+ this.lifecycleMapping = new LifecycleMappingImpl(
+ Collections.singletonList(
+ lifecycle
+ )
+ );
+ }
+
+ @Override
+ public LifecycleMapping get()
+ {
+ return lifecycleMapping;
+ }
+}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/JarLifecycleMappingProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/JarLifecycleMappingProvider.java
new file mode 100644
index 0000000..afd10b1
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/JarLifecycleMappingProvider.java
@@ -0,0 +1,95 @@
+package org.apache.maven.lifecycle.mapping.providers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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.mapping.Lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.mapping.LifecycleMappingImpl;
+import org.apache.maven.lifecycle.mapping.LifecyclePhase;
+
+@Named( "jar" )
+@Singleton
+public final class JarLifecycleMappingProvider
+ implements Provider<LifecycleMapping>
+{
+ private final LifecycleMapping lifecycleMapping;
+
+ @Inject
+ public JarLifecycleMappingProvider()
+ {
+ HashMap<String, LifecyclePhase> lifecyclePhases = new HashMap<>();
+ lifecyclePhases.put(
+ "process-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources" )
+ );
+ lifecyclePhases.put(
+ "compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile" )
+ );
+ lifecyclePhases.put(
+ "process-test-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources" )
+ );
+ lifecyclePhases.put(
+ "test-compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile" )
+ );
+ lifecyclePhases.put(
+ "test",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test" )
+ );
+ lifecyclePhases.put(
+ "package",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-jar-plugin:3.2.0:jar" )
+ );
+ lifecyclePhases.put(
+ "install",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install" )
+ );
+ lifecyclePhases.put(
+ "deploy",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy" )
+ );
+
+ Lifecycle lifecycle = new Lifecycle();
+ lifecycle.setId( "default" );
+ lifecycle.setLifecyclePhases( Collections.unmodifiableMap( lifecyclePhases ) );
+
+ this.lifecycleMapping = new LifecycleMappingImpl(
+ Collections.singletonList(
+ lifecycle
+ )
+ );
+ }
+
+ @Override
+ public LifecycleMapping get()
+ {
+ return lifecycleMapping;
+ }
+}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/MavenPluginLifecycleMappingProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/MavenPluginLifecycleMappingProvider.java
new file mode 100644
index 0000000..0b9f133
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/MavenPluginLifecycleMappingProvider.java
@@ -0,0 +1,102 @@
+package org.apache.maven.lifecycle.mapping.providers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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.mapping.Lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.mapping.LifecycleMappingImpl;
+import org.apache.maven.lifecycle.mapping.LifecyclePhase;
+
+@Named( "maven-plugin" )
+@Singleton
+public final class MavenPluginLifecycleMappingProvider
+ implements Provider<LifecycleMapping>
+{
+ private final LifecycleMapping lifecycleMapping;
+
+ @Inject
+ public MavenPluginLifecycleMappingProvider()
+ {
+ HashMap<String, LifecyclePhase> lifecyclePhases = new HashMap<>();
+ lifecyclePhases.put(
+ "process-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources" )
+ );
+ lifecyclePhases.put(
+ "compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile" )
+ );
+ lifecyclePhases.put(
+ "process-classes",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-plugin-plugin:3.6.0:descriptor" )
+ );
+ lifecyclePhases.put(
+ "process-test-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources" )
+ );
+ lifecyclePhases.put(
+ "test-compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile" )
+ );
+ lifecyclePhases.put(
+ "test",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test" )
+ );
+ lifecyclePhases.put(
+ "package",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-jar-plugin:3.2.0:jar,"
+ + "org.apache.maven.plugins:maven-plugin-plugin:3.6.0:addPluginArtifactMetadata" )
+ );
+ lifecyclePhases.put(
+ "install",
+ // TODO: MNG-6556: Do not upgrade to 3.0.0-M1 is does not install the plugin prefix metadata
+ new LifecyclePhase( "org.apache.maven.plugins:maven-install-plugin:2.5.2:install" )
+ );
+ lifecyclePhases.put(
+ "deploy",
+ // TODO: MNG-6556: Do not upgrade to 3.0.0-M1 is does not install the plugin prefix metadata
+ new LifecyclePhase( "org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy" )
+ );
+
+ Lifecycle lifecycle = new Lifecycle();
+ lifecycle.setId( "default" );
+ lifecycle.setLifecyclePhases( Collections.unmodifiableMap( lifecyclePhases ) );
+
+ this.lifecycleMapping = new LifecycleMappingImpl(
+ Collections.singletonList(
+ lifecycle
+ )
+ );
+ }
+
+ @Override
+ public LifecycleMapping get()
+ {
+ return lifecycleMapping;
+ }
+}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/PomLifecycleMappingProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/PomLifecycleMappingProvider.java
new file mode 100644
index 0000000..63990fb
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/PomLifecycleMappingProvider.java
@@ -0,0 +1,71 @@
+package org.apache.maven.lifecycle.mapping.providers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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.mapping.Lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.mapping.LifecycleMappingImpl;
+import org.apache.maven.lifecycle.mapping.LifecyclePhase;
+
+@Named( "pom" )
+@Singleton
+public final class PomLifecycleMappingProvider
+ implements Provider<LifecycleMapping>
+{
+ private final LifecycleMapping lifecycleMapping;
+
+ @Inject
+ public PomLifecycleMappingProvider()
+ {
+ HashMap<String, LifecyclePhase> lifecyclePhases = new HashMap<>();
+ lifecyclePhases.put(
+ "install",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install" )
+ );
+ lifecyclePhases.put(
+ "deploy",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy" )
+ );
+
+ Lifecycle lifecycle = new Lifecycle();
+ lifecycle.setId( "default" );
+ lifecycle.setLifecyclePhases( Collections.unmodifiableMap( lifecyclePhases ) );
+
+ this.lifecycleMapping = new LifecycleMappingImpl(
+ Collections.singletonList(
+ lifecycle
+ )
+ );
+ }
+
+ @Override
+ public LifecycleMapping get()
+ {
+ return lifecycleMapping;
+ }
+}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/RarLifecycleMappingProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/RarLifecycleMappingProvider.java
new file mode 100644
index 0000000..6670ee5
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/RarLifecycleMappingProvider.java
@@ -0,0 +1,95 @@
+package org.apache.maven.lifecycle.mapping.providers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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.mapping.Lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.mapping.LifecycleMappingImpl;
+import org.apache.maven.lifecycle.mapping.LifecyclePhase;
+
+@Named( "rar" )
+@Singleton
+public final class RarLifecycleMappingProvider
+ implements Provider<LifecycleMapping>
+{
+ private final LifecycleMapping lifecycleMapping;
+
+ @Inject
+ public RarLifecycleMappingProvider()
+ {
+ HashMap<String, LifecyclePhase> lifecyclePhases = new HashMap<>();
+ lifecyclePhases.put(
+ "process-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources" )
+ );
+ lifecyclePhases.put(
+ "compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile" )
+ );
+ lifecyclePhases.put(
+ "process-test-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources" )
+ );
+ lifecyclePhases.put(
+ "test-compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile" )
+ );
+ lifecyclePhases.put(
+ "test",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test" )
+ );
+ lifecyclePhases.put(
+ "package",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-rar-plugin:2.4:rar" )
+ );
+ lifecyclePhases.put(
+ "install",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install" )
+ );
+ lifecyclePhases.put(
+ "deploy",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy" )
+ );
+
+ Lifecycle lifecycle = new Lifecycle();
+ lifecycle.setId( "default" );
+ lifecycle.setLifecyclePhases( Collections.unmodifiableMap( lifecyclePhases ) );
+
+ this.lifecycleMapping = new LifecycleMappingImpl(
+ Collections.singletonList(
+ lifecycle
+ )
+ );
+ }
+
+ @Override
+ public LifecycleMapping get()
+ {
+ return lifecycleMapping;
+ }
+}
diff --git a/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/WarLifecycleMappingProvider.java b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/WarLifecycleMappingProvider.java
new file mode 100644
index 0000000..86b1155
--- /dev/null
+++ b/maven-core/src/main/java/org/apache/maven/lifecycle/mapping/providers/WarLifecycleMappingProvider.java
@@ -0,0 +1,95 @@
+package org.apache.maven.lifecycle.mapping.providers;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+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.mapping.Lifecycle;
+import org.apache.maven.lifecycle.mapping.LifecycleMapping;
+import org.apache.maven.lifecycle.mapping.LifecycleMappingImpl;
+import org.apache.maven.lifecycle.mapping.LifecyclePhase;
+
+@Named( "war" )
+@Singleton
+public final class WarLifecycleMappingProvider
+ implements Provider<LifecycleMapping>
+{
+ private final LifecycleMapping lifecycleMapping;
+
+ @Inject
+ public WarLifecycleMappingProvider()
+ {
+ HashMap<String, LifecyclePhase> lifecyclePhases = new HashMap<>();
+ lifecyclePhases.put(
+ "process-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources" )
+ );
+ lifecyclePhases.put(
+ "compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile" )
+ );
+ lifecyclePhases.put(
+ "process-test-resources",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources" )
+ );
+ lifecyclePhases.put(
+ "test-compile",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile" )
+ );
+ lifecyclePhases.put(
+ "test",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test" )
+ );
+ lifecyclePhases.put(
+ "package",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-war-plugin:3.3.1:war" )
+ );
+ lifecyclePhases.put(
+ "install",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install" )
+ );
+ lifecyclePhases.put(
+ "deploy",
+ new LifecyclePhase( "org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy" )
+ );
+
+ Lifecycle lifecycle = new Lifecycle();
+ lifecycle.setId( "default" );
+ lifecycle.setLifecyclePhases( Collections.unmodifiableMap( lifecyclePhases ) );
+
+ this.lifecycleMapping = new LifecycleMappingImpl(
+ Collections.singletonList(
+ lifecycle
+ )
+ );
+ }
+
+ @Override
+ public LifecycleMapping get()
+ {
+ return lifecycleMapping;
+ }
+}
diff --git a/maven-core/src/main/resources/META-INF/plexus/default-bindings.xml b/maven-core/src/main/resources/META-INF/plexus/default-bindings.xml
deleted file mode 100644
index 79c62e5..0000000
--- a/maven-core/src/main/resources/META-INF/plexus/default-bindings.xml
+++ /dev/null
@@ -1,318 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
--->
-
-<!--
-
-Mappings to default lifecycle, specific for each packaging.
-
--->
-
-<component-set>
- <components>
- <!--
- | POM
- |-->
- <component>
- <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
- <role-hint>pom</role-hint>
- <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
- <configuration>
- <lifecycles>
- <lifecycle>
- <id>default</id>
- <!-- START SNIPPET: pom-lifecycle -->
- <phases>
- <install>
- org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install
- </install>
- <deploy>
- org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy
- </deploy>
- </phases>
- <!-- END SNIPPET: pom-lifecycle -->
- </lifecycle>
- </lifecycles>
- </configuration>
- </component>
-
- <!--
- | JAR
- |-->
- <component>
- <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
- <role-hint>jar</role-hint>
- <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
- <configuration>
- <lifecycles>
- <lifecycle>
- <id>default</id>
- <!-- START SNIPPET: jar-lifecycle -->
- <phases>
- <process-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- </process-resources>
- <compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
- </compile>
- <process-test-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources
- </process-test-resources>
- <test-compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile
- </test-compile>
- <test>
- org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test
- </test>
- <package>
- org.apache.maven.plugins:maven-jar-plugin:3.2.0:jar
- </package>
- <install>
- org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install
- </install>
- <deploy>
- org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy
- </deploy>
- </phases>
- <!-- END SNIPPET: jar-lifecycle -->
- </lifecycle>
- </lifecycles>
- </configuration>
- </component>
-
- <!--
- | EJB
- |-->
- <component>
- <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
- <role-hint>ejb</role-hint>
- <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
- <configuration>
- <lifecycles>
- <lifecycle>
- <id>default</id>
- <!-- START SNIPPET: ejb-lifecycle -->
- <phases>
- <process-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- </process-resources>
- <compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
- </compile>
- <process-test-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources
- </process-test-resources>
- <test-compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile
- </test-compile>
- <test>
- org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test
- </test>
- <package>
- org.apache.maven.plugins:maven-ejb-plugin:3.1.0:ejb
- </package>
- <install>
- org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install
- </install>
- <deploy>
- org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy
- </deploy>
- </phases>
- <!-- END SNIPPET: ejb-lifecycle -->
- </lifecycle>
- </lifecycles>
- </configuration>
- </component>
-
- <!--
- | MAVEN PLUGIN
- |-->
- <component>
- <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
- <role-hint>maven-plugin</role-hint>
- <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
- <configuration>
- <lifecycles>
- <lifecycle>
- <id>default</id>
- <!-- START SNIPPET: maven-plugin-lifecycle -->
- <phases>
- <process-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- </process-resources>
- <compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
- </compile>
- <process-classes>
- org.apache.maven.plugins:maven-plugin-plugin:3.6.0:descriptor
- </process-classes>
- <process-test-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources
- </process-test-resources>
- <test-compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile
- </test-compile>
- <test>
- org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test
- </test>
- <package>
- org.apache.maven.plugins:maven-jar-plugin:3.2.0:jar,
- org.apache.maven.plugins:maven-plugin-plugin:3.6.0:addPluginArtifactMetadata
- </package>
- <!-- MNG-6556: Do not upgrade to 3.0.0-M1 is does not install the plugin prefix metadata -->
- <install>
- org.apache.maven.plugins:maven-install-plugin:2.5.2:install
- </install>
- <!-- MNG-6556: Do not upgrade to 3.0.0-M1 is does not deploy the plugin prefix metadata -->
- <deploy>
- org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy
- </deploy>
- </phases>
- <!-- END SNIPPET: maven-plugin-lifecycle -->
- </lifecycle>
- </lifecycles>
- </configuration>
- </component>
-
- <!--
- | WAR
- |-->
- <component>
- <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
- <role-hint>war</role-hint>
- <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
- <configuration>
- <lifecycles>
- <lifecycle>
- <id>default</id>
- <!-- START SNIPPET: war-lifecycle -->
- <phases>
- <process-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- </process-resources>
- <compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
- </compile>
- <process-test-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources
- </process-test-resources>
- <test-compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile
- </test-compile>
- <test>
- org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test
- </test>
- <package>
- org.apache.maven.plugins:maven-war-plugin:3.3.1:war
- </package>
- <install>
- org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install
- </install>
- <deploy>
- org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy
- </deploy>
- </phases>
- <!-- END SNIPPET: war-lifecycle -->
- </lifecycle>
- </lifecycles>
- </configuration>
- </component>
-
- <!--
- | EAR
- |-->
- <component>
- <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
- <role-hint>ear</role-hint>
- <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
- <configuration>
- <lifecycles>
- <lifecycle>
- <id>default</id>
- <!-- START SNIPPET: ear-lifecycle -->
- <phases>
- <generate-resources>
- org.apache.maven.plugins:maven-ear-plugin:3.1.2:generate-application-xml
- </generate-resources>
- <process-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- </process-resources>
- <package>
- org.apache.maven.plugins:maven-ear-plugin:3.1.2:ear
- </package>
- <install>
- org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install
- </install>
- <deploy>
- org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy
- </deploy>
- </phases>
- <!-- END SNIPPET: ear-lifecycle -->
- </lifecycle>
- </lifecycles>
- </configuration>
- </component>
-
- <!--
- | RAR
- |-->
- <component>
- <role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
- <role-hint>rar</role-hint>
- <implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
- <configuration>
- <lifecycles>
- <lifecycle>
- <id>default</id>
- <!-- START SNIPPET: rar-lifecycle -->
- <phases>
- <process-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources
- </process-resources>
- <compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
- </compile>
- <process-test-resources>
- org.apache.maven.plugins:maven-resources-plugin:3.2.0:testResources
- </process-test-resources>
- <test-compile>
- org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile
- </test-compile>
- <test>
- org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M5:test
- </test>
- <package>
- org.apache.maven.plugins:maven-rar-plugin:2.4:rar
- </package>
- <install>
- org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install
- </install>
- <deploy>
- org.apache.maven.plugins:maven-deploy-plugin:3.0.0-M1:deploy
- </deploy>
- </phases>
- <!-- END SNIPPET: rar-lifecycle -->
- </lifecycle>
- </lifecycles>
- </configuration>
- </component>
-
- </components>
-</component-set>