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 b1634fe921f5cd4e0b76823e33db5bc3ca50a8b5..61e15811e94effd303d55f8fa14c9fbf0ca6438e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,15 +17,27 @@ dependencies { api("net.md-5:bungeecord-chat:1.16-R0.4") api("org.yaml:snakeyaml:2.0") 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.9.2") compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.10") compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.10") + compileOnly("com.google.code.findbugs:jsr305:1.3.9") // Paper - val annotations = "org.jetbrains:annotations-java5:$annotationsVersion" + val annotations = "org.jetbrains:annotations:$annotationsVersion" // 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") @@ -68,7 +80,7 @@ tasks.withType { options.links( "https://guava.dev/releases/31.1-jre/api/docs/", "https://javadoc.io/doc/org.yaml/snakeyaml/2.0/", - "https://javadoc.io/doc/org.jetbrains/annotations-java5/$annotationsVersion/", + "https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/", // 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:") @@ -84,3 +96,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 { +}