From 44f27f5c85fbef67b2a79a9937e68218c5d42b09 Mon Sep 17 00:00:00 2001 From: ndr_brt Date: Fri, 29 Mar 2024 10:55:36 +0100 Subject: [PATCH] feat: make edc-build register printClasspath plugin --- .../edc/plugins/edcbuild/EdcBuildPlugin.java | 4 +- .../edcbuild/conventions/Conventions.java | 5 ++- .../conventions/PrintClasspathConvention.java | 26 +++++++++++++ .../edcbuild/tasks/PrintClasspathTask.java | 37 +++++++++++++++++++ 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/PrintClasspathConvention.java create mode 100644 plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/tasks/PrintClasspathTask.java diff --git a/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/EdcBuildPlugin.java b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/EdcBuildPlugin.java index 5ab02ce..a2c7acc 100644 --- a/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/EdcBuildPlugin.java +++ b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/EdcBuildPlugin.java @@ -30,6 +30,7 @@ import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.mavenPublication; import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.mavenPublishing; import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.nexusPublishing; +import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.printClasspath; import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.repositories; import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.rootBuildScript; import static org.eclipse.edc.plugins.edcbuild.conventions.Conventions.signing; @@ -74,7 +75,8 @@ public void apply(Project target) { allDependencies(), tests(), jar(), - swagger() + swagger(), + printClasspath() ).forEach(c -> c.apply(project)); }); diff --git a/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/Conventions.java b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/Conventions.java index a3fc9fb..89cb3d6 100644 --- a/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/Conventions.java +++ b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/Conventions.java @@ -23,7 +23,6 @@ public static EdcConvention checkstyle() { return new CheckstyleConvention(); } - public static EdcConvention mavenPublishing() { return new MavenPublishingConvention(); } @@ -87,4 +86,8 @@ public static EdcConvention openApiMerger() { public static EdcConvention mavenPublication() { return new MavenPublicationConvention(); } + + public static EdcConvention printClasspath() { + return new PrintClasspathConvention(); + } } diff --git a/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/PrintClasspathConvention.java b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/PrintClasspathConvention.java new file mode 100644 index 0000000..1116426 --- /dev/null +++ b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/PrintClasspathConvention.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - initial API and implementation + * + */ + +package org.eclipse.edc.plugins.edcbuild.conventions; + +import org.eclipse.edc.plugins.edcbuild.tasks.PrintClasspathTask; +import org.gradle.api.Project; + +public class PrintClasspathConvention implements EdcConvention { + @Override + public void apply(Project target) { + target.getTasks().register("printClasspath", PrintClasspathTask.class) + .configure(t -> t.dependsOn("compileJava")); + } +} diff --git a/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/tasks/PrintClasspathTask.java b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/tasks/PrintClasspathTask.java new file mode 100644 index 0000000..9e09623 --- /dev/null +++ b/plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/tasks/PrintClasspathTask.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - initial API and implementation + * + */ + +package org.eclipse.edc.plugins.edcbuild.tasks; + +import org.gradle.api.DefaultTask; +import org.gradle.api.plugins.JavaPluginExtension; +import org.gradle.api.tasks.TaskAction; + +import static org.eclipse.edc.plugins.edcbuild.conventions.ConventionFunctions.requireExtension; + + +public class PrintClasspathTask extends DefaultTask { + + @TaskAction + public void printClasspath() { + var classpath = requireExtension(getProject(), JavaPluginExtension.class) + .getSourceSets() + .getByName("main") + .getRuntimeClasspath() + .getAsPath(); + + System.out.println(classpath); + } + +}