mirror of https://github.com/apache/lucene.git
Add verification check that gradle and ant rules are in sync.
This commit is contained in:
parent
7c26c6de02
commit
64e1499bc7
|
@ -53,4 +53,4 @@ apply from: file('gradle/ant-compat/post-jar.gradle')
|
|||
apply from: file('gradle/ant-compat/test-classes-cross-deps.gradle')
|
||||
apply from: file('gradle/ant-compat/artifact-naming.gradle')
|
||||
apply from: file('gradle/ant-compat/solr-forbidden-apis.gradle')
|
||||
|
||||
apply from: file('gradle/ant-compat/forbidden-api-rules-in-sync.gradle')
|
|
@ -0,0 +1,37 @@
|
|||
|
||||
// Just make sure the forbidden API rules are in sync between gradle and ant versions until
|
||||
// we get rid of ant build.
|
||||
|
||||
def linesOf(FileTree ftree) {
|
||||
return ftree.collectMany { path ->
|
||||
path.readLines("UTF-8")
|
||||
.collect { line -> line.trim() }
|
||||
.findAll { line -> !line.startsWith("#") }
|
||||
.unique()
|
||||
.collect { line -> [path: path, line: line] }
|
||||
}.groupBy { e -> e.line }
|
||||
}
|
||||
|
||||
configure(rootProject) {
|
||||
task verifyForbiddenApiRulesInSync() {
|
||||
doFirst {
|
||||
// Read all rules line by line from ant, gradle, remove comments, uniq.
|
||||
// Rule sets should be identical.
|
||||
def gradleRules = linesOf(fileTree("gradle/validation/forbidden-apis", { include "**/*.txt" }))
|
||||
def antRules = linesOf(project(":lucene").fileTree("tools/forbiddenApis", { include "**/*.txt" }))
|
||||
|
||||
def antOnlyLines = antRules.keySet() - gradleRules.keySet()
|
||||
def gradleOnlyLines = gradleRules.keySet() - antRules.keySet()
|
||||
|
||||
if (!gradleOnlyLines.isEmpty() || !antOnlyLines.isEmpty()) {
|
||||
project.logger.log(LogLevel.ERROR, "The following rules don't have counterparts:\n" +
|
||||
(gradleRules.findAll { gradleOnlyLines.contains(it.key) } + antRules.findAll { antOnlyLines.contains(it.key)})
|
||||
.collectMany { it.value }
|
||||
.join("\n"))
|
||||
throw new GradleException("Forbidden APIs rules out of sync.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
check.dependsOn verifyForbiddenApiRulesInSync
|
||||
}
|
Loading…
Reference in New Issue