| 
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