Skip to content

Commit efda381

Browse files
authoredApr 4, 2025
Merge pull request #47066 from cdsap/extracting_before_test_configuration_cache
Extract beforeTest action to make task build compatible with configuration cache
2 parents 637af39 + 408dee6 commit efda381

File tree

9 files changed

+138
-93
lines changed

9 files changed

+138
-93
lines changed
 

‎devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/QuarkusPlugin.java

+14-15
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.quarkus.gradle;
22

3+
import static io.quarkus.gradle.extension.QuarkusPluginExtension.combinedOutputSourceDirs;
34
import static io.quarkus.gradle.tasks.QuarkusGradleUtils.getSourceSet;
45

56
import java.io.File;
@@ -12,7 +13,6 @@
1213

1314
import javax.inject.Inject;
1415

15-
import org.gradle.api.Action;
1616
import org.gradle.api.DefaultTask;
1717
import org.gradle.api.GradleException;
1818
import org.gradle.api.Plugin;
@@ -38,6 +38,7 @@
3838
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry;
3939
import org.gradle.util.GradleVersion;
4040

41+
import io.quarkus.gradle.actions.BeforeTestAction;
4142
import io.quarkus.gradle.dependency.ApplicationDeploymentClasspathBuilder;
4243
import io.quarkus.gradle.extension.QuarkusPluginExtension;
4344
import io.quarkus.gradle.extension.SourceSetExtension;
@@ -58,6 +59,7 @@
5859
import io.quarkus.gradle.tasks.QuarkusListCategories;
5960
import io.quarkus.gradle.tasks.QuarkusListExtensions;
6061
import io.quarkus.gradle.tasks.QuarkusListPlatforms;
62+
import io.quarkus.gradle.tasks.QuarkusPluginExtensionView;
6163
import io.quarkus.gradle.tasks.QuarkusRemoteDev;
6264
import io.quarkus.gradle.tasks.QuarkusRemoveExtension;
6365
import io.quarkus.gradle.tasks.QuarkusRun;
@@ -460,20 +462,16 @@ public boolean isSatisfiedBy(Task t) {
460462
});
461463

462464
tasks.withType(Test.class).configureEach(t -> {
463-
// Calling this method tells Gradle that it should not fail the build.
464-
// Side effect is that the configuration cache will be at least degraded,
465-
// but the build will not fail.
466-
t.notCompatibleWithConfigurationCache(
467-
"The quarkus-plugin isn't compatible with the configuration cache");
468-
465+
t.getInputs().files(quarkusGenerateTestAppModelTask);
469466
// Quarkus test configuration action which should be executed before any Quarkus test
470-
// Use anonymous classes in order to leverage task avoidance.
471-
t.doFirst(new Action<Task>() {
472-
@Override
473-
public void execute(Task task) {
474-
quarkusExt.beforeTest((Test) task);
475-
}
476-
});
467+
t.doFirst(new BeforeTestAction(
468+
project.getProjectDir(),
469+
combinedOutputSourceDirs(project),
470+
quarkusGenerateTestAppModelTask.flatMap(QuarkusApplicationModelTask::getApplicationModel),
471+
quarkusBuild.map(QuarkusBuild::getNativeRunner),
472+
mainSourceSet.getOutput().getClassesDirs(),
473+
project.getObjects().newInstance(QuarkusPluginExtensionView.class, quarkusExt)));
474+
477475
// also make each task use the JUnit platform since it's the only supported test environment
478476
t.useJUnitPlatform();
479477
});
@@ -512,12 +510,13 @@ private static void configureApplicationModelTask(Project project, QuarkusApplic
512510
LaunchMode launchMode, String quarkusModelFile) {
513511
task.getProjectDescriptor().set(projectDescriptor);
514512
task.getLaunchMode().set(launchMode);
513+
task.getTypeModel().set(task.getPath());
515514
task.getOriginalClasspath().setFrom(classpath.getOriginalRuntimeClasspathAsInput());
516515
task.getAppClasspath().configureFrom(classpath.getRuntimeConfigurationWithoutResolvingDeployment());
517516
task.getPlatformConfiguration().configureFrom(classpath.getPlatformConfiguration());
518517
task.getDeploymentClasspath().configureFrom(classpath.getDeploymentConfiguration());
519518
task.getDeploymentResolvedWorkaround().from(classpath.getDeploymentConfiguration().getIncoming().getFiles());
520-
task.getPlatformImportProperties().set(classpath.getPlatformImportsWithoutResolvingPlatform().getPlatformProperties());
519+
task.getPlatformImports().set(classpath.getPlatformImportsWithoutResolvingPlatform());
521520
task.getApplicationModel().set(project.getLayout().getBuildDirectory().file(quarkusModelFile));
522521
}
523522

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
package io.quarkus.gradle.actions;
2+
3+
import static io.quarkus.gradle.extension.QuarkusPluginExtension.getLastFile;
4+
import static io.quarkus.runtime.LaunchMode.TEST;
5+
6+
import java.io.File;
7+
import java.nio.file.Path;
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
import java.util.StringJoiner;
11+
import java.util.stream.Collectors;
12+
13+
import org.gradle.api.Action;
14+
import org.gradle.api.Task;
15+
import org.gradle.api.file.FileCollection;
16+
import org.gradle.api.file.RegularFile;
17+
import org.gradle.api.provider.Provider;
18+
import org.gradle.api.tasks.testing.Test;
19+
20+
import io.quarkus.bootstrap.BootstrapConstants;
21+
import io.quarkus.bootstrap.model.ApplicationModel;
22+
import io.quarkus.gradle.tasks.QuarkusPluginExtensionView;
23+
import io.quarkus.gradle.tooling.ToolingUtils;
24+
import io.smallrye.config.SmallRyeConfig;
25+
26+
public class BeforeTestAction implements Action<Task> {
27+
28+
private final File projectDir;
29+
private final FileCollection combinedOutputSourceDirs;
30+
private final Provider<RegularFile> applicationModelPath;
31+
private final Provider<File> nativeRunnerPath;
32+
private final FileCollection mainSourceSetClassesDir;
33+
private final QuarkusPluginExtensionView extensionView;
34+
35+
public BeforeTestAction(File projectDir, FileCollection combinedOutputSourceDirs,
36+
Provider<RegularFile> applicationModelPath, Provider<File> nativeRunnerPath,
37+
FileCollection mainSourceSetClassesDir,
38+
QuarkusPluginExtensionView extensionView) {
39+
this.projectDir = projectDir;
40+
this.combinedOutputSourceDirs = combinedOutputSourceDirs;
41+
this.applicationModelPath = applicationModelPath;
42+
this.nativeRunnerPath = nativeRunnerPath;
43+
this.mainSourceSetClassesDir = mainSourceSetClassesDir;
44+
this.extensionView = extensionView;
45+
46+
}
47+
48+
@Override
49+
public void execute(Task t) {
50+
try {
51+
Test task = (Test) t;
52+
final Map<String, Object> props = task.getSystemProperties();
53+
54+
ApplicationModel applicationModel = ToolingUtils
55+
.deserializeAppModel(applicationModelPath.get().getAsFile().toPath());
56+
57+
SmallRyeConfig config = extensionView.buildEffectiveConfiguration(applicationModel, new HashMap<>()).getConfig();
58+
config.getOptionalValue(TEST.getProfileKey(), String.class)
59+
.ifPresent(value -> props.put(TEST.getProfileKey(), value));
60+
61+
final Path serializedModel = applicationModelPath.get().getAsFile().toPath();
62+
props.put(BootstrapConstants.SERIALIZED_TEST_APP_MODEL, serializedModel.toString());
63+
64+
StringJoiner outputSourcesDir = new StringJoiner(",");
65+
for (File outputSourceDir : combinedOutputSourceDirs.getFiles()) {
66+
outputSourcesDir.add(outputSourceDir.getAbsolutePath());
67+
}
68+
props.put(BootstrapConstants.OUTPUT_SOURCES_DIR, outputSourcesDir.toString());
69+
70+
final File outputDirectoryAsFile = getLastFile(mainSourceSetClassesDir);
71+
72+
Path projectDirPath = projectDir.toPath();
73+
74+
// Identify the folder containing the sources associated with this test task
75+
String fileList = task.getTestClassesDirs().getFiles().stream()
76+
.filter(File::exists)
77+
.distinct()
78+
.map(testSrcDir -> String.format("%s:%s",
79+
projectDirPath.relativize(testSrcDir.toPath()),
80+
projectDirPath.relativize(outputDirectoryAsFile.toPath())))
81+
.collect(Collectors.joining(","));
82+
task.environment(BootstrapConstants.TEST_TO_MAIN_MAPPINGS, fileList);
83+
task.getLogger().debug("test dir mapping - {}", fileList);
84+
85+
String nativeRunner = nativeRunnerPath.get().toPath().toAbsolutePath().toString();
86+
props.put("native.image.path", nativeRunner);
87+
} catch (Exception e) {
88+
throw new IllegalStateException("Failed to resolve deployment classpath", e);
89+
}
90+
}
91+
}

‎devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/extension/QuarkusPluginExtension.java

-59
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
import java.nio.file.Paths;
88
import java.util.LinkedHashSet;
99
import java.util.List;
10-
import java.util.Map;
11-
import java.util.Objects;
1210
import java.util.Set;
13-
import java.util.StringJoiner;
14-
import java.util.stream.Collectors;
1511

1612
import javax.annotation.Nullable;
1713

@@ -27,22 +23,17 @@
2723
import org.gradle.api.provider.Provider;
2824
import org.gradle.api.tasks.SourceSet;
2925
import org.gradle.api.tasks.SourceSetContainer;
30-
import org.gradle.api.tasks.testing.Test;
3126
import org.gradle.jvm.tasks.Jar;
3227
import org.gradle.process.JavaForkOptions;
3328

34-
import io.quarkus.bootstrap.BootstrapConstants;
3529
import io.quarkus.bootstrap.model.ApplicationModel;
3630
import io.quarkus.bootstrap.resolver.AppModelResolver;
3731
import io.quarkus.gradle.AppModelGradleResolver;
38-
import io.quarkus.gradle.QuarkusPlugin;
3932
import io.quarkus.gradle.dsl.Manifest;
4033
import io.quarkus.gradle.tasks.AbstractQuarkusExtension;
41-
import io.quarkus.gradle.tasks.QuarkusBuild;
4234
import io.quarkus.gradle.tasks.QuarkusGradleUtils;
4335
import io.quarkus.gradle.tooling.ToolingUtils;
4436
import io.quarkus.runtime.LaunchMode;
45-
import io.smallrye.config.SmallRyeConfig;
4637

4738
public abstract class QuarkusPluginExtension extends AbstractQuarkusExtension {
4839
// TODO dynamically load generation provider, or make them write code directly in quarkus-generated-sources
@@ -79,56 +70,6 @@ public void manifest(Action<Manifest> action) {
7970
action.execute(this.getManifest());
8071
}
8172

82-
public void beforeTest(Test task) {
83-
try {
84-
Map<String, Object> props = task.getSystemProperties();
85-
ApplicationModel appModel = getApplicationModel(TEST);
86-
87-
SmallRyeConfig config = buildEffectiveConfiguration(appModel)
88-
.getConfig();
89-
config.getOptionalValue(TEST.getProfileKey(), String.class)
90-
.ifPresent(value -> props.put(TEST.getProfileKey(), value));
91-
92-
Path serializedModel = ToolingUtils.serializeAppModel(appModel, task, true);
93-
props.put(BootstrapConstants.SERIALIZED_TEST_APP_MODEL, serializedModel.toString());
94-
95-
StringJoiner outputSourcesDir = new StringJoiner(",");
96-
for (File outputSourceDir : combinedOutputSourceDirs()) {
97-
outputSourcesDir.add(outputSourceDir.getAbsolutePath());
98-
}
99-
props.put(BootstrapConstants.OUTPUT_SOURCES_DIR, outputSourcesDir.toString());
100-
101-
SourceSetContainer sourceSets = getSourceSets();
102-
SourceSet mainSourceSet = sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
103-
104-
File outputDirectoryAsFile = getLastFile(mainSourceSet.getOutput().getClassesDirs());
105-
106-
Path projectDirPath = projectDir.toPath();
107-
108-
// Identify the folder containing the sources associated with this test task
109-
String fileList = sourceSets.stream()
110-
.filter(sourceSet -> Objects.equals(
111-
task.getTestClassesDirs().getAsPath(),
112-
sourceSet.getOutput().getClassesDirs().getAsPath()))
113-
.flatMap(sourceSet -> sourceSet.getOutput().getClassesDirs().getFiles().stream())
114-
.filter(File::exists)
115-
.distinct()
116-
.map(testSrcDir -> String.format("%s:%s",
117-
projectDirPath.relativize(testSrcDir.toPath()),
118-
projectDirPath.relativize(outputDirectoryAsFile.toPath())))
119-
.collect(Collectors.joining(","));
120-
task.environment(BootstrapConstants.TEST_TO_MAIN_MAPPINGS, fileList);
121-
task.getLogger().debug("test dir mapping - {}", fileList);
122-
123-
QuarkusBuild quarkusBuild = project.getTasks().named(QuarkusPlugin.QUARKUS_BUILD_TASK_NAME, QuarkusBuild.class)
124-
.get();
125-
String nativeRunner = quarkusBuild.getNativeRunner().toPath().toAbsolutePath().toString();
126-
props.put("native.image.path", nativeRunner);
127-
} catch (Exception e) {
128-
throw new IllegalStateException("Failed to resolve deployment classpath", e);
129-
}
130-
}
131-
13273
public Property<String> getFinalName() {
13374
return finalName;
13475
}

‎devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/BaseConfig.java

+11
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,22 @@ Manifest manifest() {
5858
Map<String, String> cachingRelevantProperties(List<String> propertyPatterns) {
5959
List<Pattern> patterns = propertyPatterns.stream().map(s -> "^(" + s + ")$").map(Pattern::compile)
6060
.collect(Collectors.toList());
61+
readMissingEnvVariables(propertyPatterns);
6162
Predicate<Map.Entry<String, ?>> keyPredicate = e -> patterns.stream().anyMatch(p -> p.matcher(e.getKey()).matches());
6263
return values.entrySet().stream()
6364
.filter(keyPredicate)
6465
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (s, s2) -> {
6566
throw new IllegalArgumentException("Duplicate key");
6667
}, TreeMap::new));
6768
}
69+
70+
/**
71+
* Reads missing environment variables that have been defined as `cachingRelevantProperties`.
72+
* This ensures that the configuration cache tracks these variables as inputs and detects changes in them.
73+
*/
74+
private void readMissingEnvVariables(List<String> cachingRelevantProperties) {
75+
cachingRelevantProperties.stream()
76+
.filter(name -> !values.containsKey(name))
77+
.forEach(name -> System.getenv(name));
78+
}
6879
}

‎devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusApplicationModelTask.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,16 @@
4545
import org.gradle.api.file.FileCollection;
4646
import org.gradle.api.file.ProjectLayout;
4747
import org.gradle.api.file.RegularFileProperty;
48-
import org.gradle.api.provider.MapProperty;
4948
import org.gradle.api.provider.Property;
49+
import org.gradle.api.tasks.CacheableTask;
5050
import org.gradle.api.tasks.CompileClasspath;
5151
import org.gradle.api.tasks.Input;
5252
import org.gradle.api.tasks.InputFiles;
5353
import org.gradle.api.tasks.Internal;
5454
import org.gradle.api.tasks.Nested;
5555
import org.gradle.api.tasks.OutputFile;
56+
import org.gradle.api.tasks.PathSensitive;
57+
import org.gradle.api.tasks.PathSensitivity;
5658
import org.gradle.api.tasks.SourceSet;
5759
import org.gradle.api.tasks.TaskAction;
5860

@@ -85,6 +87,7 @@
8587
import io.quarkus.runtime.LaunchMode;
8688
import io.quarkus.runtime.util.HashUtil;
8789

90+
@CacheableTask
8891
public abstract class QuarkusApplicationModelTask extends DefaultTask {
8992

9093
/* @formatter:off */
@@ -109,6 +112,7 @@ public abstract class QuarkusApplicationModelTask extends DefaultTask {
109112
public abstract ConfigurableFileCollection getOriginalClasspath();
110113

111114
@InputFiles
115+
@PathSensitive(PathSensitivity.RELATIVE)
112116
public abstract ConfigurableFileCollection getDeploymentResolvedWorkaround();
113117

114118
@Nested
@@ -124,7 +128,10 @@ public abstract class QuarkusApplicationModelTask extends DefaultTask {
124128
public abstract Property<LaunchMode> getLaunchMode();
125129

126130
@Input
127-
public abstract MapProperty<String, String> getPlatformImportProperties();
131+
public abstract Property<String> getTypeModel();
132+
133+
@Internal
134+
public abstract Property<PlatformImportsImpl> getPlatformImports();
128135

129136
/**
130137
* If any project task changes, we will invalidate this task anyway
@@ -162,18 +169,16 @@ private void collectPlatforms(ResolvedDependencyResult resolvedDependency,
162169
@TaskAction
163170
public void execute() throws IOException {
164171
final ResolvedDependencyBuilder appArtifact = getProjectArtifact();
165-
PlatformImportsImpl platformImports = new PlatformImportsImpl();
166-
platformImports.setPlatformProperties(getPlatformImportProperties().get());
167172
Map<ComponentIdentifier, List<QuarkusResolvedArtifact>> artifactsByCapability = getPlatformConfiguration()
168173
.resolvedArtifactsByComponentIdentifier();
169174
getPlatformConfiguration().getRoot().get().getDependencies().forEach(d -> {
170175
if (d instanceof ResolvedDependencyResult) {
171-
collectPlatforms((ResolvedDependencyResult) d, artifactsByCapability, platformImports);
176+
collectPlatforms((ResolvedDependencyResult) d, artifactsByCapability, getPlatformImports().get());
172177
}
173178
});
174179
final ApplicationModelBuilder modelBuilder = new ApplicationModelBuilder()
175180
.setAppArtifact(appArtifact)
176-
.setPlatformImports(platformImports)
181+
.setPlatformImports(getPlatformImports().get())
177182
.addReloadableWorkspaceModule(appArtifact.getKey());
178183

179184
collectDependencies(getAppClasspath(), modelBuilder, appArtifact.getWorkspaceModule().mutable());

‎devtools/gradle/gradle-application-plugin/src/main/java/io/quarkus/gradle/tasks/QuarkusPluginExtensionView.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ private void exportCustomManifestProperties(Map<String, Object> properties) {
210210
}
211211
}
212212

213-
protected EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel,
213+
public EffectiveConfig buildEffectiveConfiguration(ApplicationModel appModel,
214214
Map<String, ?> additionalForcedProperties) {
215215
ResolvedDependency appArtifact = appModel.getAppArtifact();
216216

‎devtools/gradle/gradle-application-plugin/src/test/java/io/quarkus/gradle/tasks/CachingTest.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ void envChangeInvalidatesBuild() throws Exception {
8282
.toArray(new String[0]);
8383

8484
Map<String, String> env = Map.of();
85-
8685
assertBuildResult("initial", gradleBuild(rerunTasks(arguments), env), ALL_SUCCESS);
8786
assertBuildResult("initial rebuild", gradleBuild(arguments, env), ALL_UP_TO_DATE);
8887

@@ -97,8 +96,8 @@ void envChangeInvalidatesBuild() throws Exception {
9796
assertBuildResult("change FOO_ENV_VAR rebuild", gradleBuild(arguments, env), ALL_UP_TO_DATE);
9897

9998
// Change an unrelated environment variable, all up-to-date
100-
env = Map.of("SOME_UNRELATED", "meep");
101-
assertBuildResult("SOME_UNRELATED", gradleBuild(arguments, env), FROM_CACHE);
99+
env = Map.of("FOO_ENV_VAR", "some-other-value", "SOME_UNRELATED", "meep");
100+
assertBuildResult("SOME_UNRELATED", gradleBuild(arguments, env), ALL_UP_TO_DATE);
102101
}
103102

104103
@Test
@@ -170,7 +169,7 @@ void gradleCaching(String packageType, boolean simulateCI, String outputDir, @Te
170169
Map<String, String> env = simulateCI ? Map.of("CI", "yes") : Map.of();
171170

172171
List<String> args = new ArrayList<>();
173-
Collections.addAll(args, "build", "--info", "--stacktrace", "--build-cache", "--configuration-cache");
172+
Collections.addAll(args, "build", "--info", "--stacktrace", "--build-cache", "--no-configuration-cache");
174173
if (packageType.equals("native-sources")) {
175174
args.add("-Dquarkus.native.enabled=true");
176175
args.add("-Dquarkus.native.sources-only=true");

‎devtools/gradle/gradle-application-plugin/src/test/java/io/quarkus/gradle/tasks/TasksConfigurationCacheCompatibilityTest.java

+6-7
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,13 @@ public class TasksConfigurationCacheCompatibilityTest {
3737
private static Stream<String> compatibleTasks() {
3838
return Stream.of(
3939
QUARKUS_GENERATE_CODE_TASK_NAME,
40+
QUARKUS_GENERATE_CODE_TESTS_TASK_NAME,
4041
QUARKUS_GENERATE_CODE_DEV_TASK_NAME,
4142
QUARKUS_BUILD_DEP_TASK_NAME,
4243
QUARKUS_BUILD_APP_PARTS_TASK_NAME,
4344
QUARKUS_SHOW_EFFECTIVE_CONFIG_TASK_NAME,
4445
QUARKUS_BUILD_TASK_NAME,
45-
QUARKUS_GENERATE_CODE_TESTS_TASK_NAME);
46+
"build");
4647
}
4748

4849
private static Stream<String> nonCompatibleQuarkusBuildTasks() {
@@ -66,15 +67,13 @@ public void quarkusBuildFooTest() throws IOException, URISyntaxException {
6667
}
6768

6869
@ParameterizedTest
69-
@Order(4)
70+
@Order(2)
7071
@MethodSource("compatibleTasks")
7172
public void configurationCacheIsReusedTest(String taskName) throws IOException, URISyntaxException {
7273
URL url = getClass().getClassLoader().getResource("io/quarkus/gradle/tasks/configurationcache/main");
7374
FileUtils.copyDirectory(new File(url.toURI()), testProjectDir.toFile());
7475
FileUtils.copyFile(new File("../gradle.properties"), testProjectDir.resolve("gradle.properties").toFile());
7576

76-
buildResult(":help", "--configuration-cache");
77-
7877
BuildResult firstBuild = buildResult(taskName, "--configuration-cache");
7978
assertTrue(firstBuild.getOutput().contains("Configuration cache entry stored"));
8079

@@ -83,7 +82,7 @@ public void configurationCacheIsReusedTest(String taskName) throws IOException,
8382
}
8483

8584
@ParameterizedTest
86-
@Order(5)
85+
@Order(3)
8786
@MethodSource("compatibleTasks")
8887
public void configurationCacheIsReusedWhenProjectIsolationIsUsedTest(String taskName)
8988
throws IOException, URISyntaxException {
@@ -99,7 +98,7 @@ public void configurationCacheIsReusedWhenProjectIsolationIsUsedTest(String task
9998
}
10099

101100
@ParameterizedTest
102-
@Order(2)
101+
@Order(4)
103102
@MethodSource("nonCompatibleQuarkusBuildTasks")
104103
public void quarkusBuildTasksNonCompatibleWithConfigurationCacheNotFail(String taskName)
105104
throws IOException, URISyntaxException {
@@ -114,7 +113,7 @@ public void quarkusBuildTasksNonCompatibleWithConfigurationCacheNotFail(String t
114113

115114
@ParameterizedTest
116115
@MethodSource("nonCompatibleQuarkusBuildTasks")
117-
@Order(3)
116+
@Order(5)
118117
public void quarkusBuildTasksNonCompatibleWithConfigurationCacheNotFailWhenUsingConfigurationCache(String taskName)
119118
throws IOException, URISyntaxException {
120119
URL url = getClass().getClassLoader().getResource("io/quarkus/gradle/tasks/configurationcache/main");

‎devtools/gradle/gradle-model/src/main/java/io/quarkus/gradle/dependency/ApplicationDeploymentClasspathBuilder.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ public PlatformImports getPlatformImports() {
322322
return platformImports.get(this.platformImportName);
323323
}
324324

325-
public PlatformImports getPlatformImportsWithoutResolvingPlatform() {
325+
public PlatformImportsImpl getPlatformImportsWithoutResolvingPlatform() {
326326
return platformImports.get(this.platformImportName);
327327
}
328328

0 commit comments

Comments
 (0)
Please sign in to comment.