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
38 protected static final String RESOURCES_PLUGIN_VERSION = "3.3.1";
39
40 protected static final String COMPILER_PLUGIN_VERSION = "3.13.0";
41
42 protected static final String SUREFIRE_PLUGIN_VERSION = "3.2.5";
43
44 protected static final String INSTALL_PLUGIN_VERSION = "3.1.1";
45
46 protected static final String DEPLOY_PLUGIN_VERSION = "3.1.1";
47
48
49
50 protected static final String JAR_PLUGIN_VERSION = "3.4.1";
51
52 protected static final String EAR_PLUGIN_VERSION = "3.3.0";
53
54 protected static final String EJB_PLUGIN_VERSION = "3.2.1";
55
56 protected static final String PLUGIN_PLUGIN_VERSION = "3.12.0";
57
58 protected static final String RAR_PLUGIN_VERSION = "3.0.0";
59
60 protected static final String WAR_PLUGIN_VERSION = "3.4.0";
61
62
63 private final LifecycleMapping lifecycleMapping;
64
65 protected AbstractLifecycleMappingProvider(String[] pluginBindings) {
66 requireNonNull(pluginBindings);
67 final int len = pluginBindings.length;
68 if (len < 2 || len % 2 != 0) {
69 throw new IllegalArgumentException("Plugin bindings must have more than 0, even count of elements");
70 }
71
72 HashMap<String, LifecyclePhase> lifecyclePhaseBindings = new HashMap<>(len / 2);
73 for (int i = 0; i < len; i = i + 2) {
74 lifecyclePhaseBindings.put(pluginBindings[i], new LifecyclePhase(pluginBindings[i + 1]));
75 }
76
77 Lifecycle lifecycle = new Lifecycle();
78 lifecycle.setId("default");
79 lifecycle.setLifecyclePhases(Collections.unmodifiableMap(lifecyclePhaseBindings));
80
81 this.lifecycleMapping = new DefaultLifecycleMapping(Collections.singletonList(lifecycle));
82 }
83
84 @Override
85 public LifecycleMapping get() {
86 return lifecycleMapping;
87 }
88 }