Browse Source

Apply conventions to custom-checks project (#5308)

Anuraag Agrawal 3 years ago
parent
commit
78f21294ea

+ 40 - 15
custom-checks/build.gradle.kts

@@ -1,29 +1,54 @@
 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)
+}
+
+// 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 {
-  test {
-    useJUnitPlatform()
+  withType<JavaCompile>().configureEach {
+    with(options) {
+      release.set(null as Int?)
+
+      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"
+        )
+      )
+    }
   }
+}
 
-  withType<JavaCompile> {
-    options.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
+    }
   }
 }

+ 5 - 2
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();
   }
 

+ 1 - 1
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",