diff --git a/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApis.java b/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApis.java index 5a79d0b4..84d19498 100644 --- a/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApis.java +++ b/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApis.java @@ -20,7 +20,6 @@ import static de.thetaphi.forbiddenapis.Checker.Option.FAIL_ON_UNRESOLVABLE_SIGNATURES; import static de.thetaphi.forbiddenapis.Checker.Option.FAIL_ON_VIOLATION; import static de.thetaphi.forbiddenapis.Checker.Option.INTERNAL_RUNTIME_FORBIDDEN; - import groovy.lang.Closure; import java.io.Closeable; @@ -67,9 +66,10 @@ public class CheckForbiddenApis extends DefaultTask implements PatternFilterable,VerificationTask { private final CheckForbiddenApisExtension data = new CheckForbiddenApisExtension(); + private final PatternSet patternSet = new PatternSet().include("**/*.class"); private File classesDir; private FileCollection classpath; - + /** * Directory with the class files to check. */ @@ -126,7 +126,8 @@ public List getSignatures() { /** @see #getSignatures */ public void setSignatures(List signatures) { - data.signatures = signatures; + data.signatures.clear(); + data.signatures.addAll(signatures); } /** @@ -142,7 +143,8 @@ public List getBundledSignatures() { /** @see #getBundledSignatures */ public void setBundledSignatures(List bundledSignatures) { - data.bundledSignatures = bundledSignatures; + data.bundledSignatures.clear(); + data.bundledSignatures.addAll(bundledSignatures); } /** @@ -240,7 +242,8 @@ public List getSuppressAnnotations() { /** @see #getSuppressAnnotations */ public void setSuppressAnnotations(List suppressAnnotations) { - data.suppressAnnotations = suppressAnnotations; + data.suppressAnnotations.clear(); + data.suppressAnnotations.addAll(suppressAnnotations); } // PatternFilterable implementation: @@ -255,11 +258,11 @@ public void setSuppressAnnotations(List suppressAnnotations) { */ @Input public Set getIncludes() { - return data.getIncludes(); + return getPatternSet().getIncludes(); } public CheckForbiddenApis setIncludes(Iterable includes) { - data.setIncludes(includes); + getPatternSet().setIncludes(includes); return this; } @@ -271,60 +274,60 @@ public CheckForbiddenApis setIncludes(Iterable includes) { */ @Input public Set getExcludes() { - return data.getExcludes(); + return getPatternSet().getExcludes(); } public CheckForbiddenApis setExcludes(Iterable excludes) { - data.setExcludes(excludes); + getPatternSet().setExcludes(excludes); return this; } public CheckForbiddenApis exclude(String... arg0) { - data.exclude(arg0); + getPatternSet().exclude(arg0); return this; } public CheckForbiddenApis exclude(Iterable arg0) { - data.exclude(arg0); + getPatternSet().exclude(arg0); return this; } public CheckForbiddenApis exclude(Spec arg0) { - data.exclude(arg0); + getPatternSet().exclude(arg0); return this; } public CheckForbiddenApis exclude(@SuppressWarnings("rawtypes") Closure arg0) { - data.exclude(arg0); + getPatternSet().exclude(arg0); return this; } public CheckForbiddenApis include(String... arg0) { - data.include(arg0); + getPatternSet().include(arg0); return this; } public CheckForbiddenApis include(Iterable arg0) { - data.include(arg0); + getPatternSet().include(arg0); return this; } public CheckForbiddenApis include(Spec arg0) { - data.include(arg0); + getPatternSet().include(arg0); return this; } public CheckForbiddenApis include(@SuppressWarnings("rawtypes") Closure arg0) { - data.include(arg0); + getPatternSet().include(arg0); return this; } public PatternSet getPatternSet() { - return data.patternSet; + return patternSet; } public void setPatternSet(PatternSet patternSet) { - data.patternSet = patternSet; + patternSet.copyFrom(patternSet); } /** Returns the classes to check. */ diff --git a/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApisExtension.java b/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApisExtension.java index 3282659d..36b29244 100644 --- a/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApisExtension.java +++ b/src/main/java/de/thetaphi/forbiddenapis/gradle/CheckForbiddenApisExtension.java @@ -16,24 +16,18 @@ * limitations under the License. */ -import groovy.lang.Closure; - +import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.Set; import org.gradle.api.file.FileCollection; -import org.gradle.api.file.FileTreeElement; -import org.gradle.api.specs.Spec; -import org.gradle.api.tasks.util.PatternFilterable; -import org.gradle.api.tasks.util.PatternSet; /** * Extension for the ForbiddenApis Gradle Task to store defaults. * For description of the properties refer to the {@link CheckForbiddenApis} * task documentation. */ -public class CheckForbiddenApisExtension implements PatternFilterable { +public class CheckForbiddenApisExtension { /** Fields used for the convention mapping, keep up-to-date with class members! */ static final List PROPS = Arrays.asList( @@ -45,80 +39,17 @@ public class CheckForbiddenApisExtension implements PatternFilterable { "failOnUnsupportedJava", "failOnMissingClasses", "failOnUnresolvableSignatures", - "ignoreFailures", - "patternSet" + "ignoreFailures" ); - public PatternSet patternSet = new PatternSet().include("**/*.class"); - public FileCollection signaturesFiles; - public List signatures, - bundledSignatures, - suppressAnnotations; + public List signatures = new ArrayList(), + bundledSignatures = new ArrayList(), + suppressAnnotations = new ArrayList(); public boolean internalRuntimeForbidden = false, failOnUnsupportedJava = false, failOnMissingClasses = true, failOnUnresolvableSignatures = true, ignoreFailures = false; - // PatternFilterable implementation: - - public Set getIncludes() { - return patternSet.getIncludes(); - } - - public CheckForbiddenApisExtension setIncludes(Iterable includes) { - patternSet.setIncludes(includes); - return this; - } - - public Set getExcludes() { - return patternSet.getExcludes(); - } - - public CheckForbiddenApisExtension setExcludes(Iterable excludes) { - patternSet.setExcludes(excludes); - return this; - } - - public CheckForbiddenApisExtension exclude(String... arg0) { - patternSet.exclude(arg0); - return this; - } - - public CheckForbiddenApisExtension exclude(Iterable arg0) { - patternSet.exclude(arg0); - return this; - } - - public CheckForbiddenApisExtension exclude(Spec arg0) { - patternSet.exclude(arg0); - return this; - } - - public CheckForbiddenApisExtension exclude(@SuppressWarnings("rawtypes") Closure arg0) { - patternSet.exclude(arg0); - return this; - } - - public CheckForbiddenApisExtension include(String... arg0) { - patternSet.include(arg0); - return this; - } - - public CheckForbiddenApisExtension include(Iterable arg0) { - patternSet.include(arg0); - return this; - } - - public CheckForbiddenApisExtension include(Spec arg0) { - patternSet.include(arg0); - return this; - } - - public CheckForbiddenApisExtension include(@SuppressWarnings("rawtypes") Closure arg0) { - patternSet.include(arg0); - return this; - } - } diff --git a/src/main/java/de/thetaphi/forbiddenapis/gradle/ForbiddenApisPlugin.java b/src/main/java/de/thetaphi/forbiddenapis/gradle/ForbiddenApisPlugin.java index 73da8168..b5dc856c 100644 --- a/src/main/java/de/thetaphi/forbiddenapis/gradle/ForbiddenApisPlugin.java +++ b/src/main/java/de/thetaphi/forbiddenapis/gradle/ForbiddenApisPlugin.java @@ -56,7 +56,7 @@ public void apply(final Project project) { } scriptText = ResourceGroovyMethods.getText(scriptUrl, "UTF-8"); } catch (IOException ioe) { - throw new PluginInstantiationException("Cannot execute " + PLUGIN_INIT_SCRIPT + " script.", ioe); + throw new PluginInstantiationException("Cannot load " + PLUGIN_INIT_SCRIPT + " script.", ioe); } final ImportCustomizer importCustomizer = new ImportCustomizer().addStarImports(ForbiddenApisPlugin.class.getPackage().getName()); final CompilerConfiguration configuration = new CompilerConfiguration().addCompilationCustomizers(importCustomizer);