Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gradle: Add validatePlugins task and fix identified issues #5404

Merged
merged 1 commit into from Oct 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions gradle-plugins/biz.aQute.bnd.gradle/build.gradle.kts
Expand Up @@ -246,3 +246,8 @@ tasks.test {
tasks.named<Delete>("cleanTest") {
delete(testresourcesOutput)
}

tasks.withType<ValidatePlugins>().configureEach {
failOnWarning.set(true)
enableStricterValidation.set(true)
}
Expand Up @@ -7,6 +7,7 @@
import static aQute.bnd.gradle.BndUtils.unwrap;
import static aQute.bnd.gradle.BndUtils.unwrapFile;
import static aQute.bnd.gradle.BndUtils.unwrapOptional;
import static org.gradle.api.tasks.PathSensitivity.NONE;
import static org.gradle.api.tasks.PathSensitivity.RELATIVE;

import java.io.File;
Expand Down Expand Up @@ -47,6 +48,7 @@
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.TaskAction;
import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.work.DisableCachingByDefault;
import org.gradle.work.NormalizeLineEndings;

/**
Expand All @@ -72,6 +74,7 @@
* builds.</li>
* </ul>
*/
@DisableCachingByDefault(because = "Abstract base class; not used directly")
public abstract class AbstractBndrun extends DefaultTask {
private final RegularFileProperty bndrun;
private final ConfigurableFileCollection bundles;
Expand Down Expand Up @@ -107,7 +110,7 @@ public RegularFileProperty getBndrun() {
* Workspace builds.
*/
@InputFiles
@PathSensitive(RELATIVE)
@PathSensitive(NONE)
public ConfigurableFileCollection getBundles() {
return bundles;
}
Expand Down
Expand Up @@ -4,7 +4,7 @@
import static aQute.bnd.gradle.BndUtils.unwrap;
import static aQute.bnd.gradle.BndUtils.unwrapFile;
import static java.util.stream.Collectors.toList;
import static org.gradle.api.tasks.PathSensitivity.RELATIVE;
import static org.gradle.api.tasks.PathSensitivity.NONE;

import java.io.File;
import java.nio.file.Path;
Expand Down Expand Up @@ -43,10 +43,12 @@
import org.gradle.api.provider.Provider;
import org.gradle.api.provider.ProviderFactory;
import org.gradle.api.reporting.ReportingExtension;
import org.gradle.api.tasks.CacheableTask;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.InputFile;
import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.OutputFile;
import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.TaskAction;
import org.gradle.language.base.plugins.LifecycleBasePlugin;

Expand Down Expand Up @@ -96,6 +98,7 @@
* The default is all exported packages.</li>
* </ul>
*/
@CacheableTask
public class Baseline extends DefaultTask {
private boolean ignoreFailures = false;
private final ListProperty<String> diffpackages;
Expand Down Expand Up @@ -242,7 +245,7 @@ public Baseline() {
bundleCollection = objects.fileCollection();
baselineCollection = objects.fileCollection();
getInputs().files(bundleCollection)
.withPathSensitivity(RELATIVE)
.withPathSensitivity(NONE)
.withPropertyName("bundleCollection");
getInputs().files(baselineCollection)
.withPropertyName("baselineCollection");
Expand All @@ -257,6 +260,7 @@ public Baseline() {
* @return The provider of the bundle file to be baselined.
*/
@InputFile
@PathSensitive(NONE)
public Provider<RegularFile> getBundle() {
return layout.file(providers.provider(bundleCollection::getSingleFile));
}
Expand All @@ -281,6 +285,7 @@ public void setBundle(Object file) {
* @return The provider of the baseline bundle file.
*/
@InputFile
@PathSensitive(NONE)
public Provider<RegularFile> getBaseline() {
return layout.file(providers.provider(baselineCollection::getSingleFile));
}
Expand Down
Expand Up @@ -72,6 +72,7 @@
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
import org.gradle.api.tasks.TaskContainer;
import org.gradle.api.tasks.TaskInputFilePropertyBuilder;
import org.gradle.api.tasks.TaskProvider;
import org.gradle.api.tasks.bundling.AbstractArchiveTask;
import org.gradle.api.tasks.compile.AbstractCompile;
Expand Down Expand Up @@ -214,10 +215,14 @@ public void apply(Project project) {
* Workspace and project configuration changes should
* trigger task
*/
t.getInputs()
TaskInputFilePropertyBuilder bndConfigurationInput = t.getInputs()
.files(bndConfiguration())
.withPathSensitivity(RELATIVE)
.withPropertyName("bndConfiguration");
if (isGradleCompatible("7.2")) {
bndConfigurationInput.normalizeLineEndings();
}

t.getOutputs()
.dirs(bndProject.getGenerate()
.getOutputDirs())
Expand Down Expand Up @@ -564,10 +569,13 @@ public void execute(Task tt) {
* Workspace and project configuration changes should
* trigger jar task
*/
t.getInputs()
TaskInputFilePropertyBuilder bndConfigurationInput = t.getInputs()
.files(bndConfiguration())
.withPathSensitivity(RELATIVE)
.withPropertyName("bndConfiguration");
if (isGradleCompatible("7.2")) {
bndConfigurationInput.normalizeLineEndings();
}
t.getOutputs()
.files(deliverables)
.withPropertyName("artifacts");
Expand Down
Expand Up @@ -2,7 +2,6 @@

import static aQute.bnd.gradle.BndUtils.defaultToolFor;
import static aQute.bnd.gradle.BndUtils.logReport;
import static aQute.bnd.gradle.BndUtils.unwrap;
import static aQute.bnd.gradle.BndUtils.unwrapFile;

import java.util.Objects;
Expand All @@ -19,9 +18,9 @@
import org.gradle.api.publish.plugins.PublishingPlugin;
import org.gradle.api.tasks.Nested;
import org.gradle.api.tasks.Optional;
import org.gradle.api.tasks.UntrackedTask;
import org.gradle.jvm.toolchain.JavaLauncher;
import org.gradle.jvm.toolchain.JavaToolchainService;
import org.gradle.work.DisableCachingByDefault;

/**
* OSGi Bndrun task type for Gradle.
Expand Down Expand Up @@ -57,7 +56,7 @@
* execution.</li>
* </ul>
*/
@UntrackedTask(because = "Task executes bndrun")
@DisableCachingByDefault(because = "Task executes bndrun")
public class Bndrun extends AbstractBndrun {
private final Property<JavaLauncher> javaLauncher;

Expand Down Expand Up @@ -97,7 +96,7 @@ public Bndrun() {
@Override
protected void worker(Project run) throws Exception {
if (getJavaLauncher().isPresent() && Objects.equals(run.getProperty("java", "java"), "java")) {
run.setProperty("java", IO.absolutePath(unwrapFile(unwrap(getJavaLauncher()).getExecutablePath())));
run.setProperty("java", IO.absolutePath(unwrapFile(getJavaLauncher().map(JavaLauncher::getExecutablePath))));
}
getLogger().info("Running {} in {}", run.getPropertiesFile(), run.getBase());
getLogger().debug("Run properties: {}", run.getProperties());
Expand Down
@@ -1,5 +1,6 @@
package aQute.bnd.gradle;

import org.gradle.api.tasks.CacheableTask;
import org.gradle.api.tasks.bundling.Jar;
import org.gradle.language.base.plugins.LifecycleBasePlugin;

Expand All @@ -26,6 +27,7 @@
* }
* </pre>
*/
@CacheableTask
public class Bundle extends Jar {
/**
* Create a Bundle task.
Expand Down
Expand Up @@ -25,6 +25,7 @@
import org.gradle.api.provider.Property;
import org.gradle.api.provider.Provider;
import org.gradle.api.publish.plugins.PublishingPlugin;
import org.gradle.api.tasks.CacheableTask;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.OutputDirectory;
Expand Down Expand Up @@ -76,6 +77,7 @@
* "bnd.executablejar".</li>
* </ul>
*/
@CacheableTask
public class Export extends AbstractBndrun {
private boolean bundlesOnly = false;
private final DirectoryProperty destinationDirectory;
Expand Down
Expand Up @@ -5,6 +5,7 @@
import static aQute.bnd.gradle.BndUtils.unwrap;
import static aQute.bnd.gradle.BndUtils.unwrapFile;
import static java.util.stream.Collectors.toList;
import static org.gradle.api.tasks.PathSensitivity.NONE;

import java.io.File;
import java.io.OutputStream;
Expand All @@ -24,10 +25,12 @@
import org.gradle.api.model.ObjectFactory;
import org.gradle.api.provider.Property;
import org.gradle.api.publish.plugins.PublishingPlugin;
import org.gradle.api.tasks.CacheableTask;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.InputFiles;
import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.OutputFile;
import org.gradle.api.tasks.PathSensitive;
import org.gradle.api.tasks.TaskAction;

/**
Expand Down Expand Up @@ -69,6 +72,7 @@
* is the name of the task.</li>
* </ul>
*/
@CacheableTask
public class Index extends DefaultTask {
private final Property<URI> base;
private final ConfigurableFileCollection bundles;
Expand Down Expand Up @@ -97,6 +101,7 @@ public Property<URI> getBase() {
* @return The property for the bundles to be indexed.
*/
@InputFiles
@PathSensitive(NONE)
public ConfigurableFileCollection getBundles() {
return bundles;
}
Expand Down
Expand Up @@ -16,6 +16,7 @@
import org.gradle.api.GradleException;
import org.gradle.api.file.RegularFileProperty;
import org.gradle.api.plugins.JavaBasePlugin;
import org.gradle.api.tasks.CacheableTask;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Internal;
import org.gradle.api.tasks.OutputFile;
Expand Down Expand Up @@ -65,6 +66,7 @@
* -runbundles property. The default is true.</li>
* </ul>
*/
@CacheableTask
public class Resolve extends AbstractBndrun {
private boolean failOnChanges = false;
private final RegularFileProperty outputBndrun;
Expand Down
Expand Up @@ -3,7 +3,6 @@
import static aQute.bnd.gradle.BndUtils.defaultToolFor;
import static aQute.bnd.gradle.BndUtils.logReport;
import static aQute.bnd.gradle.BndUtils.testResultsDir;
import static aQute.bnd.gradle.BndUtils.unwrap;
import static aQute.bnd.gradle.BndUtils.unwrapFile;

import java.io.File;
Expand All @@ -19,6 +18,7 @@
import org.gradle.api.plugins.JavaBasePlugin;
import org.gradle.api.provider.Property;
import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.CacheableTask;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.Nested;
import org.gradle.api.tasks.Optional;
Expand Down Expand Up @@ -67,6 +67,7 @@
* class.</li>
* </ul>
*/
@CacheableTask
public class TestOSGi extends AbstractBndrun {
/**
* Option to specify test names.
Expand Down Expand Up @@ -151,7 +152,7 @@ public TestOSGi() {
@Override
protected void worker(Project run) throws Exception {
if (getJavaLauncher().isPresent() && Objects.equals(run.getProperty("java", "java"), "java")) {
run.setProperty("java", IO.absolutePath(unwrapFile(unwrap(getJavaLauncher()).getExecutablePath())));
run.setProperty("java", IO.absolutePath(unwrapFile(getJavaLauncher().map(JavaLauncher::getExecutablePath))));
}
getLogger().info("Running tests for {} in {}", run.getPropertiesFile(), run.getBase());
getLogger().debug("Run properties: {}", run.getProperties());
Expand Down