Skip to content

Commit

Permalink
applying conditional dependencies based on property extension
Browse files Browse the repository at this point in the history
  • Loading branch information
cdsap committed Dec 9, 2024
1 parent 7125e4c commit 6c0830a
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -189,20 +189,20 @@ private void registerTasks(Project project, QuarkusPluginExtension quarkusExt) {
"quarkusGenerateTestAppModel",
QuarkusApplicationModelTask.class, task -> {
configureApplicationModelTask(project, task, projectDescriptor, testClasspath, LaunchMode.TEST,
"quarkus/application-model/quarkus-app-test-model.dat");
"quarkus/application-model/quarkus-app-test-model.dat", quarkusExt.getConditionalExtensions());
});
TaskProvider<QuarkusApplicationModelTask> quarkusGenerateDevAppModelTask = tasks.register("quarkusGenerateDevAppModel",
QuarkusApplicationModelTask.class, task -> {
configureApplicationModelTask(project, task, projectDescriptor, devClasspath, LaunchMode.DEVELOPMENT,
"quarkus/application-model/quarkus-app-dev-model.dat");
"quarkus/application-model/quarkus-app-dev-model.dat", quarkusExt.getConditionalExtensions());
});

TaskProvider<QuarkusApplicationModelTask> quarkusGenerateAppModelTask = tasks.register("quarkusGenerateAppModel",
QuarkusApplicationModelTask.class, task -> {
configureApplicationModelTask(project, task, projectDescriptor
.map(d -> d.withSourceSetView(Collections.singleton(SourceSet.MAIN_SOURCE_SET_NAME))),
normalClasspath, LaunchMode.NORMAL,
"quarkus/application-model/quarkus-app-model.dat");
"quarkus/application-model/quarkus-app-model.dat", quarkusExt.getConditionalExtensions());
});

// quarkusGenerateCode
Expand Down Expand Up @@ -232,7 +232,7 @@ private void registerTasks(Project project, QuarkusPluginExtension quarkusExt) {
configureApplicationModelTask(project, task, projectDescriptor
.map(d -> d.withSourceSetView(Collections.singleton(SourceSet.MAIN_SOURCE_SET_NAME))),
normalClasspath, LaunchMode.NORMAL,
"quarkus/application-model/quarkus-app-model-build.dat");
"quarkus/application-model/quarkus-app-model-build.dat", quarkusExt.getConditionalExtensions());
});
tasks.register(QUARKUS_SHOW_EFFECTIVE_CONFIG_TASK_NAME,
QuarkusShowEffectiveConfig.class, task -> {
Expand Down Expand Up @@ -500,14 +500,16 @@ public void execute(Task task) {
private static void configureApplicationModelTask(Project project, QuarkusApplicationModelTask task,
Provider<DefaultProjectDescriptor> projectDescriptor,
ApplicationDeploymentClasspathBuilder classpath,
LaunchMode launchMode, String quarkusModelFile) {
LaunchMode launchMode, String quarkusModelFile, Property<Boolean> conditionalExtensions) {
task.getProjectDescriptor().set(projectDescriptor);
task.getLaunchMode().set(launchMode);
task.getOriginalClasspath().setFrom(classpath.getOriginalRuntimeClasspathAsInput());
task.getAppClasspath().configureFrom(classpath.getRuntimeConfigurationWithoutResolvingDeployment());
task.getPlatformConfiguration().configureFrom(classpath.getPlatformConfiguration());
task.getDeploymentClasspath().configureFrom(classpath.getDeploymentConfiguration());
task.getDeploymentResolvedWorkaround().from(classpath.getDeploymentConfiguration().getIncoming().getFiles());
if (conditionalExtensions.get()) {
task.getDeploymentResolvedWorkaround().from(classpath.getDeploymentConfiguration().getIncoming().getFiles());
}
task.getPlatformImportProperties().set(classpath.getPlatformImportsWithoutResolvingPlatform().getPlatformProperties());
task.getApplicationModel().set(project.getLayout().getBuildDirectory().file(quarkusModelFile));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ public abstract class QuarkusPluginExtension extends AbstractQuarkusExtension {

private final Property<Boolean> cacheLargeArtifacts;
private final Property<Boolean> cleanupBuildOutput;
private final Property<Boolean> conditionalExtensions;

public QuarkusPluginExtension(Project project) {
super(project);
Expand All @@ -56,6 +57,8 @@ public QuarkusPluginExtension(Project project) {
.convention(true);
this.cacheLargeArtifacts = project.getObjects().property(Boolean.class)
.convention(!System.getenv().containsKey("CI"));
this.conditionalExtensions = project.getObjects().property(Boolean.class)
.convention(false);

this.sourceSetExtension = new SourceSetExtension();
}
Expand Down Expand Up @@ -130,6 +133,10 @@ public Property<Boolean> getCleanupBuildOutput() {
return cleanupBuildOutput;
}

public Property<Boolean> getConditionalExtensions() {
return conditionalExtensions;
}

public void setCleanupBuildOutput(boolean cleanupBuildOutput) {
this.cleanupBuildOutput.set(cleanupBuildOutput);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
import org.gradle.api.tasks.InputFiles;
import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.Nested;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.OutputFile;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.TaskAction;
Expand Down Expand Up @@ -109,6 +110,7 @@ public abstract class QuarkusApplicationModelTask extends DefaultTask {
public abstract ConfigurableFileCollection getOriginalClasspath();

@InputFiles
@Optional
public abstract ConfigurableFileCollection getDeploymentResolvedWorkaround();

@Nested
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ repositories {
mavenCentral()
}

quarkus {
conditionalExtensions = true
}

dependencies {
implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,7 @@ dependencies {
testImplementation 'io.quarkus:quarkus-junit5'
testImplementation 'io.rest-assured:rest-assured'
}

quarkus {
conditionalExtensions = true
}

0 comments on commit 6c0830a

Please sign in to comment.