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
37
38 public abstract class AbstractLifecycleMappingProvider implements Provider<LifecycleMapping> {
39 private final LifecycleMapping lifecycleMapping;
40
41 protected AbstractLifecycleMappingProvider(String[] pluginBindings) {
42 requireNonNull(pluginBindings);
43 final int len = pluginBindings.length;
44 if (len < 2 || len % 2 != 0) {
45 throw new IllegalArgumentException("Plugin bindings must have more than 0, even count of elements");
46 }
47 HashMap<String, LifecyclePhase> lifecyclePhaseBindings = new HashMap<>(len / 2);
48 for (int i = 0; i < len; i = i + 2) {
49 lifecyclePhaseBindings.put(pluginBindings[i], new LifecyclePhase(pluginBindings[i + 1]));
50 }
51 Lifecycle lifecycle = new Lifecycle();
52 lifecycle.setId("default");
53 lifecycle.setLifecyclePhases(Collections.unmodifiableMap(lifecyclePhaseBindings));
54 this.lifecycleMapping = new DefaultLifecycleMapping(Collections.singletonList(lifecycle));
55 }
56
57 @Override
58 public LifecycleMapping get() {
59 return lifecycleMapping;
60 }
61 }