1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.invoker;
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 import org.apache.maven.plugins.invoker.AbstractInvokerMojo.ToolchainPrivateManager;
41
42
43
44
45
46
47 class Selector {
48 static final int SELECTOR_MAVENVERSION = 1;
49
50 static final int SELECTOR_JREVERSION = 2;
51
52 static final int SELECTOR_OSFAMILY = 4;
53
54 static final int SELECTOR_TOOLCHAIN = 8;
55
56 static final int SELECTOR_MULTI = 16;
57
58 private final String actualMavenVersion;
59
60 private final String actualJavaVersion;
61
62 private final ToolchainPrivateManager toolchainPrivateManager;
63
64 Selector(String actualMavenVersion, String actualJavaVersion, ToolchainPrivateManager toolchainPrivateManager) {
65 this.actualMavenVersion = actualMavenVersion;
66 this.actualJavaVersion = actualJavaVersion;
67 this.toolchainPrivateManager = toolchainPrivateManager;
68 }
69
70 public int getSelection(InvokerProperties invokerProperties) {
71 if (!invokerProperties.isSelectorDefined(1)) {
72 return getGlobal(invokerProperties);
73 }
74
75 for (int selectorIndex = 1; ; selectorIndex++) {
76 if (selectorIndex > 1 && !invokerProperties.isSelectorDefined(selectorIndex)) {
77 break;
78 }
79
80 int selection = 0;
81 if (!SelectorUtils.isMavenVersion(invokerProperties.getMavenVersion(selectorIndex), actualMavenVersion)) {
82 selection |= SELECTOR_MAVENVERSION;
83 }
84
85 if (!SelectorUtils.isJreVersion(invokerProperties.getJreVersion(selectorIndex), actualJavaVersion)) {
86 selection |= SELECTOR_JREVERSION;
87 }
88
89 if (!SelectorUtils.isOsFamily(invokerProperties.getOsFamily(selectorIndex))) {
90 selection |= SELECTOR_OSFAMILY;
91 }
92
93 if (!SelectorUtils.isToolchain(toolchainPrivateManager, invokerProperties.getToolchains(selectorIndex))) {
94 selection |= SELECTOR_TOOLCHAIN;
95 }
96
97 if (selection == 0) {
98 return 0;
99 }
100 }
101 return SELECTOR_MULTI;
102 }
103
104
105
106
107
108
109
110
111 private int getGlobal(InvokerProperties invokerProperties) {
112 int selection = 0;
113 if (!SelectorUtils.isMavenVersion(invokerProperties.getMavenVersion(), actualMavenVersion)) {
114 selection |= SELECTOR_MAVENVERSION;
115 }
116
117 if (!SelectorUtils.isJreVersion(invokerProperties.getJreVersion(), actualJavaVersion)) {
118 selection |= SELECTOR_JREVERSION;
119 }
120
121 if (!SelectorUtils.isOsFamily(invokerProperties.getOsFamily())) {
122 selection |= SELECTOR_OSFAMILY;
123 }
124
125 if (!SelectorUtils.isToolchain(toolchainPrivateManager, invokerProperties.getToolchains())) {
126 selection |= SELECTOR_TOOLCHAIN;
127 }
128
129 return selection;
130 }
131 }