|
13 | 13 | import org.gradle.api.Action; |
14 | 14 | import org.gradle.api.JavaVersion; |
15 | 15 | import org.gradle.api.Task; |
16 | | -import org.gradle.api.provider.Property; |
17 | 16 | import org.gradle.api.provider.Provider; |
18 | | -import org.gradle.api.provider.ProviderFactory; |
19 | 17 | import org.gradle.jvm.toolchain.JavaToolchainSpec; |
20 | 18 |
|
21 | 19 | import java.io.File; |
22 | | -import java.time.ZoneOffset; |
23 | 20 | import java.time.ZonedDateTime; |
24 | 21 | import java.util.List; |
25 | 22 | import java.util.Random; |
26 | | -import java.util.concurrent.atomic.AtomicReference; |
27 | | - |
28 | | -public abstract class BuildParameterExtension { |
29 | | - private final Provider<Boolean> inFipsJvm; |
30 | | - private final Provider<File> runtimeJavaHome; |
31 | | - private final Boolean isRuntimeJavaHomeSet; |
32 | | - private final List<JavaHome> javaVersions; |
33 | | - private final JavaVersion minimumCompilerVersion; |
34 | | - private final JavaVersion minimumRuntimeVersion; |
35 | | - private final JavaVersion gradleJavaVersion; |
36 | | - private final Provider<JavaVersion> runtimeJavaVersion; |
37 | | - private final Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec; |
38 | | - private final Provider<String> runtimeJavaDetails; |
39 | | - private final String gitRevision; |
40 | | - private transient AtomicReference<ZonedDateTime> buildDate = new AtomicReference<>(); |
41 | | - private final String testSeed; |
42 | | - private final Boolean isCi; |
43 | | - private final Integer defaultParallel; |
44 | | - private final Boolean isSnapshotBuild; |
45 | | - |
46 | | - public BuildParameterExtension( |
47 | | - ProviderFactory providers, |
48 | | - Provider<File> runtimeJavaHome, |
49 | | - Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec, |
50 | | - Provider<JavaVersion> runtimeJavaVersion, |
51 | | - boolean isRuntimeJavaHomeSet, |
52 | | - Provider<String> runtimeJavaDetails, |
53 | | - List<JavaHome> javaVersions, |
54 | | - JavaVersion minimumCompilerVersion, |
55 | | - JavaVersion minimumRuntimeVersion, |
56 | | - JavaVersion gradleJavaVersion, |
57 | | - String gitRevision, |
58 | | - String gitOrigin, |
59 | | - ZonedDateTime buildDate, |
60 | | - String testSeed, |
61 | | - boolean isCi, |
62 | | - int defaultParallel, |
63 | | - final boolean isSnapshotBuild, |
64 | | - Provider<BwcVersions> bwcVersions |
65 | | - ) { |
66 | | - this.inFipsJvm = providers.systemProperty("tests.fips.enabled").map(BuildParameterExtension::parseBoolean); |
67 | | - this.runtimeJavaHome = runtimeJavaHome; |
68 | | - this.javaToolChainSpec = javaToolChainSpec; |
69 | | - this.runtimeJavaVersion = runtimeJavaVersion; |
70 | | - this.isRuntimeJavaHomeSet = isRuntimeJavaHomeSet; |
71 | | - this.runtimeJavaDetails = runtimeJavaDetails; |
72 | | - this.javaVersions = javaVersions; |
73 | | - this.minimumCompilerVersion = minimumCompilerVersion; |
74 | | - this.minimumRuntimeVersion = minimumRuntimeVersion; |
75 | | - this.gradleJavaVersion = gradleJavaVersion; |
76 | | - this.gitRevision = gitRevision; |
77 | | - this.testSeed = testSeed; |
78 | | - this.isCi = isCi; |
79 | | - this.defaultParallel = defaultParallel; |
80 | | - this.isSnapshotBuild = isSnapshotBuild; |
81 | | - this.getBwcVersionsProperty().set(bwcVersions); |
82 | | - this.getGitOriginProperty().set(gitOrigin); |
83 | | - } |
84 | | - |
85 | | - private static boolean parseBoolean(String s) { |
86 | | - if (s == null) { |
87 | | - return false; |
88 | | - } |
89 | | - return Boolean.parseBoolean(s); |
90 | | - } |
91 | | - |
92 | | - public boolean getInFipsJvm() { |
93 | | - return inFipsJvm.getOrElse(false); |
94 | | - } |
95 | | - |
96 | | - public Provider<File> getRuntimeJavaHome() { |
97 | | - return runtimeJavaHome; |
98 | | - } |
99 | | - |
100 | | - public void withFipsEnabledOnly(Task task) { |
101 | | - task.onlyIf("FIPS mode disabled", task1 -> getInFipsJvm() == false); |
102 | | - } |
103 | | - |
104 | | - public Boolean getIsRuntimeJavaHomeSet() { |
105 | | - return isRuntimeJavaHomeSet; |
106 | | - } |
107 | | - |
108 | | - public List<JavaHome> getJavaVersions() { |
109 | | - return javaVersions; |
110 | | - } |
111 | | - |
112 | | - public JavaVersion getMinimumCompilerVersion() { |
113 | | - return minimumCompilerVersion; |
114 | | - } |
115 | | - |
116 | | - public JavaVersion getMinimumRuntimeVersion() { |
117 | | - return minimumRuntimeVersion; |
118 | | - } |
119 | | - |
120 | | - public JavaVersion getGradleJavaVersion() { |
121 | | - return gradleJavaVersion; |
122 | | - } |
123 | | - |
124 | | - public Provider<JavaVersion> getRuntimeJavaVersion() { |
125 | | - return runtimeJavaVersion; |
126 | | - } |
127 | | - |
128 | | - public Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec() { |
129 | | - return javaToolChainSpec; |
130 | | - } |
131 | | - |
132 | | - public Provider<String> getRuntimeJavaDetails() { |
133 | | - return runtimeJavaDetails; |
134 | | - } |
135 | | - |
136 | | - public String getGitRevision() { |
137 | | - return gitRevision; |
138 | | - } |
139 | | - |
140 | | - public String getGitOrigin() { |
141 | | - return getGitOriginProperty().get(); |
142 | | - } |
143 | | - |
144 | | - public ZonedDateTime getBuildDate() { |
145 | | - ZonedDateTime value = buildDate.get(); |
146 | | - if (value == null) { |
147 | | - value = ZonedDateTime.now(ZoneOffset.UTC); |
148 | | - if (buildDate.compareAndSet(null, value) == false) { |
149 | | - // If another thread initialized it first, return the initialized value |
150 | | - value = buildDate.get(); |
151 | | - } |
152 | | - } |
153 | | - return value; |
154 | | - } |
155 | | - |
156 | | - public String getTestSeed() { |
157 | | - return testSeed; |
158 | | - } |
159 | | - |
160 | | - public Boolean isCi() { |
161 | | - return isCi; |
162 | | - } |
163 | | - |
164 | | - public Integer getDefaultParallel() { |
165 | | - return defaultParallel; |
166 | | - } |
167 | | - |
168 | | - public Boolean isSnapshotBuild() { |
169 | | - return isSnapshotBuild; |
170 | | - } |
171 | | - |
172 | | - public BwcVersions getBwcVersions() { |
173 | | - return getBwcVersionsProperty().get(); |
174 | | - } |
175 | | - |
176 | | - public abstract Property<BwcVersions> getBwcVersionsProperty(); |
177 | | - |
178 | | - public abstract Property<String> getGitOriginProperty(); |
179 | | - |
180 | | - public Random getRandom() { |
181 | | - return new Random(Long.parseUnsignedLong(testSeed.split(":")[0], 16)); |
182 | | - } |
183 | | - |
184 | | - public Boolean isGraalVmRuntime() { |
185 | | - return runtimeJavaDetails.get().toLowerCase().contains("graalvm"); |
186 | | - } |
| 23 | + |
| 24 | +public interface BuildParameterExtension { |
| 25 | + String EXTENSION_NAME = "buildParams"; |
| 26 | + |
| 27 | + boolean getInFipsJvm(); |
| 28 | + |
| 29 | + Provider<File> getRuntimeJavaHome(); |
| 30 | + |
| 31 | + void withFipsEnabledOnly(Task task); |
| 32 | + |
| 33 | + Boolean getIsRuntimeJavaHomeSet(); |
| 34 | + |
| 35 | + List<JavaHome> getJavaVersions(); |
| 36 | + |
| 37 | + JavaVersion getMinimumCompilerVersion(); |
| 38 | + |
| 39 | + JavaVersion getMinimumRuntimeVersion(); |
| 40 | + |
| 41 | + JavaVersion getGradleJavaVersion(); |
| 42 | + |
| 43 | + Provider<JavaVersion> getRuntimeJavaVersion(); |
| 44 | + |
| 45 | + Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec(); |
| 46 | + |
| 47 | + Provider<String> getRuntimeJavaDetails(); |
| 48 | + |
| 49 | + String getGitRevision(); |
| 50 | + |
| 51 | + String getGitOrigin(); |
| 52 | + |
| 53 | + ZonedDateTime getBuildDate(); |
| 54 | + |
| 55 | + String getTestSeed(); |
| 56 | + |
| 57 | + Boolean isCi(); |
| 58 | + |
| 59 | + Integer getDefaultParallel(); |
| 60 | + |
| 61 | + Boolean isSnapshotBuild(); |
| 62 | + |
| 63 | + BwcVersions getBwcVersions(); |
| 64 | + |
| 65 | + Provider<BwcVersions> getBwcVersionsProvider(); |
| 66 | + |
| 67 | + Random getRandom(); |
| 68 | + |
| 69 | + Boolean isGraalVmRuntime(); |
187 | 70 | } |
0 commit comments