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 386d8c36510e69a69ce4536e67af4a6e4e886685..75d59838512a8385c95222083a67b81d060b6a90 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,15 +14,27 @@ dependencies { api("com.google.code.gson:gson:2.10") api("net.md-5:bungeecord-chat:1.16-R0.4") api("org.yaml:snakeyaml:1.33") + // 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") @@ -64,7 +76,7 @@ tasks.withType { options.links( "https://guava.dev/releases/31.0.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/", ) @@ -79,3 +91,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 { +}