Skip to content

Commit

Permalink
Merge pull request #5404 from bjhargrave/gradle-plugin-validation
Browse files Browse the repository at this point in the history
gradle: Add validatePlugins task and fix identified issues
  • Loading branch information
bjhargrave committed Oct 20, 2022
2 parents 263ce4d + e267957 commit 8c190c7
Show file tree
Hide file tree
Showing 10 changed files with 43 additions and 11 deletions.
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

0 comments on commit 8c190c7

Please sign in to comment.