Skip to content

Commit c0d7a06

Browse files
alpar-tkcm
authored andcommitted
Upgrade forbiddenapis to 2.6 (#33809)
* Upgrade forbiddenapis to 2.6 Closes #33759 * Switch forbiddenApis back to official plugin * Remove CLI based task * Fix forbiddenApisJava9
1 parent e2b4eda commit c0d7a06

File tree

11 files changed

+53
-235
lines changed

11 files changed

+53
-235
lines changed

buildSrc/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ dependencies {
106106
compile 'org.apache.rat:apache-rat:0.11'
107107
compile "org.elasticsearch:jna:4.5.1"
108108
compile 'com.github.jengelman.gradle.plugins:shadow:2.0.4'
109+
compile 'de.thetaphi:forbiddenapis:2.6'
109110
testCompile "junit:junit:${props.getProperty('junit')}"
110111
}
111112

buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/PrecommitTasks.groovy

Lines changed: 39 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,10 @@
1919
package org.elasticsearch.gradle.precommit
2020

2121
import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
22+
import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
23+
import de.thetaphi.forbiddenapis.gradle.ForbiddenApisPlugin
2224
import org.elasticsearch.gradle.ExportElasticsearchBuildResourcesTask
25+
import org.gradle.api.JavaVersion
2326
import org.gradle.api.Project
2427
import org.gradle.api.Task
2528
import org.gradle.api.plugins.JavaBasePlugin
@@ -33,7 +36,7 @@ class PrecommitTasks {
3336
public static Task create(Project project, boolean includeDependencyLicenses) {
3437
project.configurations.create("forbiddenApisCliJar")
3538
project.dependencies {
36-
forbiddenApisCliJar ('de.thetaphi:forbiddenapis:2.5')
39+
forbiddenApisCliJar ('de.thetaphi:forbiddenapis:2.6')
3740
}
3841

3942
List<Task> precommitTasks = [
@@ -109,47 +112,43 @@ class PrecommitTasks {
109112
}
110113

111114
private static Task configureForbiddenApisCli(Project project) {
112-
Task forbiddenApisCli = project.tasks.create('forbiddenApis')
113-
project.sourceSets.all { sourceSet ->
114-
forbiddenApisCli.dependsOn(
115-
project.tasks.create(sourceSet.getTaskName('forbiddenApis', null), ForbiddenApisCliTask) {
116-
ExportElasticsearchBuildResourcesTask buildResources = project.tasks.getByName('buildResources')
117-
dependsOn(buildResources)
118-
it.sourceSet = sourceSet
119-
javaHome = project.runtimeJavaHome
120-
targetCompatibility = project.compilerJavaVersion
121-
bundledSignatures = [
122-
"jdk-unsafe", "jdk-deprecated", "jdk-non-portable", "jdk-system-out"
123-
]
124-
signaturesFiles = project.files(
125-
buildResources.copy("forbidden/jdk-signatures.txt"),
126-
buildResources.copy("forbidden/es-all-signatures.txt")
127-
)
128-
suppressAnnotations = ['**.SuppressForbidden']
129-
if (sourceSet.name == 'test') {
130-
signaturesFiles += project.files(
131-
buildResources.copy("forbidden/es-test-signatures.txt"),
132-
buildResources.copy("forbidden/http-signatures.txt")
133-
)
134-
} else {
135-
signaturesFiles += project.files(buildResources.copy("forbidden/es-server-signatures.txt"))
136-
}
137-
dependsOn sourceSet.classesTaskName
138-
classesDirs = sourceSet.output.classesDirs
139-
ext.replaceSignatureFiles = { String... names ->
140-
signaturesFiles = project.files(
141-
names.collect { buildResources.copy("forbidden/${it}.txt") }
142-
)
143-
}
144-
ext.addSignatureFiles = { String... names ->
145-
signaturesFiles += project.files(
146-
names.collect { buildResources.copy("forbidden/${it}.txt") }
147-
)
148-
}
149-
}
115+
project.pluginManager.apply(ForbiddenApisPlugin)
116+
ExportElasticsearchBuildResourcesTask buildResources = project.tasks.getByName('buildResources')
117+
project.tasks.withType(CheckForbiddenApis) {
118+
dependsOn(buildResources)
119+
targetCompatibility = project.runtimeJavaVersion >= JavaVersion.VERSION_1_9 ?
120+
project.runtimeJavaVersion.getMajorVersion() :
121+
project.runtimeJavaVersion
122+
bundledSignatures = [
123+
"jdk-unsafe", "jdk-deprecated", "jdk-non-portable", "jdk-system-out"
124+
]
125+
signaturesFiles = project.files(
126+
buildResources.copy("forbidden/jdk-signatures.txt"),
127+
buildResources.copy("forbidden/es-all-signatures.txt")
150128
)
129+
suppressAnnotations = ['**.SuppressForbidden']
130+
if (name.endsWith('Test')) {
131+
signaturesFiles += project.files(
132+
buildResources.copy("forbidden/es-test-signatures.txt"),
133+
buildResources.copy("forbidden/http-signatures.txt")
134+
)
135+
} else {
136+
signaturesFiles += project.files(buildResources.copy("forbidden/es-server-signatures.txt"))
137+
}
138+
ext.replaceSignatureFiles = { String... names ->
139+
signaturesFiles = project.files(
140+
names.collect { buildResources.copy("forbidden/${it}.txt") }
141+
)
142+
}
143+
ext.addSignatureFiles = { String... names ->
144+
signaturesFiles += project.files(
145+
names.collect { buildResources.copy("forbidden/${it}.txt") }
146+
)
147+
}
151148
}
152-
return forbiddenApisCli
149+
Task forbiddenApis = project.tasks.getByName("forbiddenApis")
150+
forbiddenApis.group = ""
151+
return forbiddenApis
153152
}
154153

155154
private static Task configureCheckstyle(Project project) {

buildSrc/src/main/java/org/elasticsearch/gradle/precommit/ForbiddenApisCliTask.java

Lines changed: 0 additions & 177 deletions
This file was deleted.

buildSrc/src/main/java/org/elasticsearch/gradle/precommit/ThirdPartyAuditTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
public class ThirdPartyAuditTask extends DefaultTask {
5353

5454
private static final Pattern MISSING_CLASS_PATTERN = Pattern.compile(
55-
"WARNING: The referenced class '(.*)' cannot be loaded\\. Please fix the classpath!"
55+
"WARNING: Class '(.*)' cannot be loaded \\(.*\\)\\. Please fix the classpath!"
5656
);
5757

5858
private static final Pattern VIOLATION_PATTERN = Pattern.compile(

client/rest/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import org.elasticsearch.gradle.precommit.ForbiddenApisCliTask
1+
import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
22

33
/*
44
* Licensed to Elasticsearch under one or more contributor
@@ -52,7 +52,7 @@ dependencies {
5252
testCompile "org.elasticsearch:mocksocket:${versions.mocksocket}"
5353
}
5454

55-
tasks.withType(ForbiddenApisCliTask) {
55+
tasks.withType(CheckForbiddenApis) {
5656
//client does not depend on server, so only jdk and http signatures should be checked
5757
replaceSignatureFiles ('jdk-signatures', 'http-signatures')
5858
}

distribution/tools/launchers/build.gradle

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
20-
21-
22-
import org.elasticsearch.gradle.precommit.ForbiddenApisCliTask
19+
import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
2320

2421
apply plugin: 'elasticsearch.build'
2522

@@ -32,7 +29,7 @@ dependencies {
3229

3330
archivesBaseName = 'elasticsearch-launchers'
3431

35-
tasks.withType(ForbiddenApisCliTask) {
32+
tasks.withType(CheckForbiddenApis) {
3633
replaceSignatureFiles 'jdk-signatures'
3734
}
3835

libs/core/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ if (!isEclipse && !isIdea) {
4848

4949
forbiddenApisJava9 {
5050
if (project.runtimeJavaVersion < JavaVersion.VERSION_1_9) {
51-
targetCompatibility = JavaVersion.VERSION_1_9
52-
javaHome = project.java9Home
51+
targetCompatibility = JavaVersion.VERSION_1_9.getMajorVersion()
5352
}
5453
replaceSignatureFiles 'jdk-signatures'
5554
}

plugins/analysis-icu/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import org.elasticsearch.gradle.precommit.ForbiddenApisCliTask
1+
import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
22

33
/*
44
* Licensed to Elasticsearch under one or more contributor
@@ -25,7 +25,7 @@ esplugin {
2525
hasClientJar = true
2626
}
2727

28-
tasks.withType(ForbiddenApisCliTask) {
28+
tasks.withType(CheckForbiddenApis) {
2929
signatures += [
3030
"com.ibm.icu.text.Collator#getInstance() @ Don't use default locale, use getInstance(ULocale) instead"
3131
]

server/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ if (!isEclipse && !isIdea) {
6161

6262
forbiddenApisJava9 {
6363
if (project.runtimeJavaVersion < JavaVersion.VERSION_1_9) {
64-
targetCompatibility = JavaVersion.VERSION_1_9
65-
javaHome = project.java9Home
64+
targetCompatibility = JavaVersion.VERSION_1_9.getMajorVersion()
6665
}
6766
}
6867

x-pack/plugin/security/cli/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import org.elasticsearch.gradle.precommit.ForbiddenApisCliTask
1+
import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
22

33
apply plugin: 'elasticsearch.build'
44

@@ -26,7 +26,7 @@ if (project.inFipsJvm) {
2626
test.enabled = false
2727
// Forbiden APIs non-portable checks fail because bouncy castle classes being used from the FIPS JDK since those are
2828
// not part of the Java specification - all of this is as designed, so we have to relax this check for FIPS.
29-
tasks.withType(ForbiddenApisCliTask) {
29+
tasks.withType(CheckForbiddenApis) {
3030
bundledSignatures -= "jdk-non-portable"
3131
}
3232
// FIPS JVM includes manny classes from bouncycastle which count as jar hell for the third party audit,

0 commit comments

Comments
 (0)