Apply conventions to custom-checks project
MODIFY
custom-checks/build.gradle.kts
custom-checks/build.gradle.kts
plugins {
- `java-library`
+ id("otel.java-conventions")
}
dependencies {
- implementation("com.google.errorprone:error_prone_core:2.10.0")
+ implementation("com.google.errorprone:error_prone_core")
- annotationProcessor("com.google.auto.service:auto-service:1.0.1")
- compileOnly("com.google.auto.service:auto-service-annotations:1.0.1")
+ annotationProcessor("com.google.auto.service:auto-service")
+ compileOnly("com.google.auto.service:auto-service-annotations")
- testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.2")
- testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.2")
+ testImplementation("com.google.errorprone:error_prone_test_helpers")
+}
- testImplementation("com.google.errorprone:error_prone_test_helpers:2.11.0")
+otelJava {
+ minJavaVersionSupported.set(JavaVersion.VERSION_11)
}
-tasks {
- test {
- useJUnitPlatform()
+// We cannot use "--release" javac option here because that will forbid exporting com.sun.tools package.
+// We also can't seem to use the toolchain without the "--release" option. So disable everything.
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ toolchain {
+ languageVersion.set(null as JavaLanguageVersion?)
}
+}
+
+tasks {
+ withType<JavaCompile>().configureEach {
+ with(options) {
+ release.set(null as Int?)
- withType<JavaCompile> {
- options.compilerArgs.addAll(listOf(
+ compilerArgs.addAll(
+ listOf(
"--add-exports", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED",
"--add-exports", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
"--add-exports", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED"
- ))
+ )
+ )
+ }
+ }
+}
+
+// Our conventions apply this project as a dependency in the errorprone configuration, which would cause
+// a circular dependency if trying to compile this project with that still there. So we filter this
+// project out.
+configurations {
+ named("errorprone") {
+ dependencies.removeIf {
+ it is ProjectDependency && it.dependencyProject == project
+ }
}
}

MODIFY
custom-checks/src/main/java/io/opentelemetry/javaagent/customchecks/InternalJavadoc.java
custom-checks/src/main/java/io/opentelemetry/javaagent/customchecks/InternalJavadoc.java
@@ -30,6 +30,8 @@ import javax.lang.model.element.Modifier;
severity = WARNING)
public class InternalJavadoc extends BugChecker implements BugChecker.ClassTreeMatcher {
+ private static final long serialVersionUID = 1L;
+
private static final Pattern INTERNAL_PACKAGE_PATTERN = Pattern.compile("\\binternal\\b");
private static final Pattern EXCLUDE_PACKAGE_PATTERN =
@@ -60,8 +62,9 @@ public class InternalJavadoc extends BugChecker implements BugChecker.ClassTreeM
if (packageTree == null) {
return false;
}
- String packageName = packageTree.getPackageName().toString();
- return INTERNAL_PACKAGE_PATTERN.matcher(packageName).find()
+ String packageName = state.getSourceForNode(packageTree.getPackageName());
+ return packageName != null
+ && INTERNAL_PACKAGE_PATTERN.matcher(packageName).find()
&& !EXCLUDE_PACKAGE_PATTERN.matcher(packageName).find();
}

MODIFY
dependencyManagement/build.gradle.kts
dependencyManagement/build.gradle.kts
@@ -52,7 +52,7 @@ val DEPENDENCY_SETS = listOf(
DependencySet(
"com.google.errorprone",
"2.10.0",
- listOf("error_prone_annotations", "error_prone_core")
+ listOf("error_prone_annotations", "error_prone_core", "error_prone_test_helpers")
),
DependencySet(
"io.prometheus",

Apply conventions to custom-checks project (#5308)