1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.lifecycle.providers.packaging;
20
21 import javax.inject.Provider;
22
23 import java.util.Collections;
24 import java.util.HashMap;
25
26 import org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping;
27 import org.apache.maven.lifecycle.mapping.Lifecycle;
28 import org.apache.maven.lifecycle.mapping.LifecycleMapping;
29 import org.apache.maven.lifecycle.mapping.LifecyclePhase;
30
31 import static java.util.Objects.requireNonNull;
32
33
34
35
36 public abstract class AbstractLifecycleMappingProvider implements Provider<LifecycleMapping> {
37 protected static final String RESOURCES_PLUGIN_VERSION = "3.3.0";
38
39 protected static final String COMPILER_PLUGIN_VERSION = "3.10.1";
40
41 protected static final String SUREFIRE_PLUGIN_VERSION = "3.0.0-M8";
42
43 protected static final String INSTALL_PLUGIN_VERSION = "3.1.0";
44
45 protected static final String DEPLOY_PLUGIN_VERSION = "3.0.0";
46
47
48
49 protected static final String JAR_PLUGIN_VERSION = "3.3.0";
50
51 protected static final String EAR_PLUGIN_VERSION = "3.3.0";
52
53 protected static final String EJB_PLUGIN_VERSION = "3.2.1";
54
55 protected static final String PLUGIN_PLUGIN_VERSION = "3.7.1";
56
57 protected static final String RAR_PLUGIN_VERSION = "3.0.0";
58
59 protected static final String WAR_PLUGIN_VERSION = "3.3.2";
60
61 private final LifecycleMapping lifecycleMapping;
62
63 protected AbstractLifecycleMappingProvider(String[] pluginBindings) {
64 requireNonNull(pluginBindings);
65 final int len = pluginBindings.length;
66 if (len < 2 || len % 2 != 0) {
67 throw new IllegalArgumentException("Plugin bindings must have more than 0, even count of elements");
68 }
69
70 HashMap<String, LifecyclePhase> lifecyclePhaseBindings = new HashMap<>(len / 2);
71 for (int i = 0; i < len; i = i + 2) {
72 lifecyclePhaseBindings.put(pluginBindings[i], new LifecyclePhase(pluginBindings[i + 1]));
73 }
74
75 Lifecycle lifecycle = new Lifecycle();
76 lifecycle.setId("default");
77 lifecycle.setLifecyclePhases(Collections.unmodifiableMap(lifecyclePhaseBindings));
78
79 this.lifecycleMapping = new DefaultLifecycleMapping(Collections.singletonList(lifecycle));
80 }
81
82 @Override
83 public LifecycleMapping get() {
84 return lifecycleMapping;
85 }
86 }