From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 1 Mar 2016 00:16:08 +0100 Subject: [PATCH] Build system changes diff --git a/build.gradle.kts b/build.gradle.kts index 4b7f005519d8856fc35a94401636ae8d9bf41f10..bb6e3afe8e8bc1a3b598b085286ffcdaf3574072 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,15 +15,27 @@ dependencies { api("net.md-5:bungeecord-chat:1.16-R0.4") api("org.yaml:snakeyaml:1.33") api("org.joml:joml:1.10.5") + // Paper start + api("com.googlecode.json-simple:json-simple:1.1.1") { + isTransitive = false // includes junit + } + // Paper end compileOnly("org.apache.maven:maven-resolver-provider:3.8.5") compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.3") compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.7.3") + compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper - val annotations = "org.jetbrains:annotations-java5:23.0.0" + val annotations = "org.jetbrains:annotations:23.0.0" // Paper - we don't want Java 5 annotations... compileOnly(annotations) testCompileOnly(annotations) + // Paper start - add checker + val checkerQual = "org.checkerframework:checker-qual:3.21.0" + compileOnlyApi(checkerQual) + testCompileOnly(checkerQual) + // Paper end + testImplementation("org.apache.commons:commons-lang3:3.12.0") testImplementation("junit:junit:4.13.2") testImplementation("org.hamcrest:hamcrest-library:1.3") @@ -65,7 +77,7 @@ tasks.withType { options.links( "https://guava.dev/releases/31.1-jre/api/docs/", "https://javadoc.io/doc/org.yaml/snakeyaml/1.33/", - "https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/", + "https://javadoc.io/doc/org.jetbrains/annotations/23.0.0/", // Paper - we don't want Java 5 annotations "https://javadoc.io/doc/net.md-5/bungeecord-chat/1.16-R0.4/", ) options.tags("apiNote:a:API Note:") @@ -81,3 +93,14 @@ tasks.withType { } } } + +// Paper start +val scanJar = tasks.register("scanJarForBadCalls", io.papermc.paperweight.tasks.ScanJarForBadCalls::class) { + badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;") + jarToScan.set(tasks.jar.flatMap { it.archiveFile }) + classpath.from(configurations.compileClasspath) +} +tasks.check { + dependsOn(scanJar) +} +// Paper end diff --git a/src/main/java/io/papermc/paper/annotation/DoNotUse.java b/src/main/java/io/papermc/paper/annotation/DoNotUse.java new file mode 100644 index 0000000000000000000000000000000000000000..4766e49d819e75e5c2127c698b44078bf2fd6219 --- /dev/null +++ b/src/main/java/io/papermc/paper/annotation/DoNotUse.java @@ -0,0 +1,18 @@ +package io.papermc.paper.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import org.jetbrains.annotations.ApiStatus; + +/** + * Annotation used to mark methods or constructors which should not be called. + * + *

Separate from {@link Deprecated} to differentiate from the large amount of deprecations.

+ */ +@ApiStatus.Internal +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) +public @interface DoNotUse { +}