Skip to content

Commit

Permalink
Fix clone problems caused by PatternFilterable interface in the exten…
Browse files Browse the repository at this point in the history
…sion.
  • Loading branch information
uschindler committed Sep 9, 2015
1 parent 7c98f72 commit d321804
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 95 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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.
*/
Expand Down Expand Up @@ -126,7 +126,8 @@ public List<String> getSignatures() {

/** @see #getSignatures */
public void setSignatures(List<String> signatures) {
data.signatures = signatures;
data.signatures.clear();
data.signatures.addAll(signatures);
}

/**
Expand All @@ -142,7 +143,8 @@ public List<String> getBundledSignatures() {

/** @see #getBundledSignatures */
public void setBundledSignatures(List<String> bundledSignatures) {
data.bundledSignatures = bundledSignatures;
data.bundledSignatures.clear();
data.bundledSignatures.addAll(bundledSignatures);
}

/**
Expand Down Expand Up @@ -240,7 +242,8 @@ public List<String> getSuppressAnnotations() {

/** @see #getSuppressAnnotations */
public void setSuppressAnnotations(List<String> suppressAnnotations) {
data.suppressAnnotations = suppressAnnotations;
data.suppressAnnotations.clear();
data.suppressAnnotations.addAll(suppressAnnotations);
}

// PatternFilterable implementation:
Expand All @@ -255,11 +258,11 @@ public void setSuppressAnnotations(List<String> suppressAnnotations) {
*/
@Input
public Set<String> getIncludes() {
return data.getIncludes();
return getPatternSet().getIncludes();
}

public CheckForbiddenApis setIncludes(Iterable<String> includes) {
data.setIncludes(includes);
getPatternSet().setIncludes(includes);
return this;
}

Expand All @@ -271,60 +274,60 @@ public CheckForbiddenApis setIncludes(Iterable<String> includes) {
*/
@Input
public Set<String> getExcludes() {
return data.getExcludes();
return getPatternSet().getExcludes();
}

public CheckForbiddenApis setExcludes(Iterable<String> 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<String> arg0) {
data.exclude(arg0);
getPatternSet().exclude(arg0);
return this;
}

public CheckForbiddenApis exclude(Spec<FileTreeElement> 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<String> arg0) {
data.include(arg0);
getPatternSet().include(arg0);
return this;
}

public CheckForbiddenApis include(Spec<FileTreeElement> 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. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<String> PROPS = Arrays.asList(
Expand All @@ -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<String> signatures,
bundledSignatures,
suppressAnnotations;
public List<String> signatures = new ArrayList<String>(),
bundledSignatures = new ArrayList<String>(),
suppressAnnotations = new ArrayList<String>();
public boolean internalRuntimeForbidden = false,
failOnUnsupportedJava = false,
failOnMissingClasses = true,
failOnUnresolvableSignatures = true,
ignoreFailures = false;

// PatternFilterable implementation:

public Set<String> getIncludes() {
return patternSet.getIncludes();
}

public CheckForbiddenApisExtension setIncludes(Iterable<String> includes) {
patternSet.setIncludes(includes);
return this;
}

public Set<String> getExcludes() {
return patternSet.getExcludes();
}

public CheckForbiddenApisExtension setExcludes(Iterable<String> excludes) {
patternSet.setExcludes(excludes);
return this;
}

public CheckForbiddenApisExtension exclude(String... arg0) {
patternSet.exclude(arg0);
return this;
}

public CheckForbiddenApisExtension exclude(Iterable<String> arg0) {
patternSet.exclude(arg0);
return this;
}

public CheckForbiddenApisExtension exclude(Spec<FileTreeElement> 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<String> arg0) {
patternSet.include(arg0);
return this;
}

public CheckForbiddenApisExtension include(Spec<FileTreeElement> arg0) {
patternSet.include(arg0);
return this;
}

public CheckForbiddenApisExtension include(@SuppressWarnings("rawtypes") Closure arg0) {
patternSet.include(arg0);
return this;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit d321804

Please sign in to comment.