This commit doesn't do much on its own, but adds a new Java Cleaner API that lets us hook into Garbage Collector events to reclaim pooled objects and return them to the pool. Adds framework for Network Packets to know when a packet has finished dispatching to get an idea when a packet is done sending to players. Rewrites PooledObjects impl to properly respect max pool size and remove almost all risk of contention. Bumps the Paper Async Task Queue to use 2 threads, and properly shuts it down on shutdown.
198 lines
9.9 KiB
Diff
198 lines
9.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Zach Brown <zach.brown@destroystokyo.com>
|
|
Date: Mon, 29 Feb 2016 20:40:33 -0600
|
|
Subject: [PATCH] POM Changes
|
|
|
|
|
|
diff --git a/pom.xml b/pom.xml
|
|
index 9fc92e347f24a0210a9190513e93cba3b6772557..adf32845001fae7a870f588184c2efaf0ab41504 100644
|
|
--- a/pom.xml
|
|
+++ b/pom.xml
|
|
@@ -1,15 +1,14 @@
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
- <groupId>org.spigotmc</groupId>
|
|
- <artifactId>spigot</artifactId>
|
|
+ <artifactId>paper</artifactId>
|
|
<packaging>jar</packaging>
|
|
<version>1.15.2-R0.1-SNAPSHOT</version>
|
|
- <name>Spigot</name>
|
|
- <url>https://www.spigotmc.org/</url>
|
|
+ <name>Paper</name>
|
|
+ <url>https://papermc.io</url>
|
|
|
|
<properties>
|
|
- <skipTests>true</skipTests>
|
|
+ <!-- <skipTests>true</skipTests> Paper - This [was] not going to end well -->
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<api.version>unknown</api.version>
|
|
<minecraft.version>1.15.2</minecraft.version>
|
|
@@ -19,16 +18,22 @@
|
|
</properties>
|
|
|
|
<parent>
|
|
- <groupId>org.spigotmc</groupId>
|
|
- <artifactId>spigot-parent</artifactId>
|
|
+ <groupId>com.destroystokyo.paper</groupId>
|
|
+ <artifactId>paper-parent</artifactId>
|
|
<version>dev-SNAPSHOT</version>
|
|
<relativePath>../pom.xml</relativePath>
|
|
</parent>
|
|
|
|
<dependencies>
|
|
<dependency>
|
|
- <groupId>org.spigotmc</groupId>
|
|
- <artifactId>spigot-api</artifactId>
|
|
+ <groupId>com.destroystokyo.paper</groupId>
|
|
+ <artifactId>paper-api</artifactId>
|
|
+ <version>${project.version}</version>
|
|
+ <scope>compile</scope>
|
|
+ </dependency>
|
|
+ <dependency>
|
|
+ <groupId>com.destroystokyo.paper</groupId>
|
|
+ <artifactId>paper-mojangapi</artifactId>
|
|
<version>${project.version}</version>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
@@ -50,6 +55,12 @@
|
|
<version>7.3.1</version>
|
|
<scope>compile</scope>
|
|
</dependency>
|
|
+ <dependency>
|
|
+ <!-- wrapper to use either java 8 sun cleaner or java9+ official cleaner -->
|
|
+ <groupId>co.aikar</groupId>
|
|
+ <artifactId>cleaner</artifactId>
|
|
+ <version>1.0-SNAPSHOT</version>
|
|
+ </dependency>
|
|
<!-- deprecated API depend -->
|
|
<dependency>
|
|
<groupId>com.googlecode.json-simple</groupId>
|
|
@@ -106,34 +117,22 @@
|
|
|
|
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
|
|
<build>
|
|
+ <finalName>paper-${minecraft.version}</finalName>
|
|
+ <defaultGoal>clean install</defaultGoal> <!-- Paper -->
|
|
<plugins>
|
|
<plugin>
|
|
- <groupId>net.md-5</groupId>
|
|
- <artifactId>scriptus</artifactId>
|
|
- <version>0.4.1</version>
|
|
+ <groupId>com.lukegb.mojo</groupId>
|
|
+ <artifactId>gitdescribe-maven-plugin</artifactId>
|
|
+ <version>1.3</version>
|
|
+ <configuration>
|
|
+ <outputPrefix>git-Paper-</outputPrefix>
|
|
+ <scmDirectory>..</scmDirectory>
|
|
+ </configuration>
|
|
<executions>
|
|
<execution>
|
|
- <id>ex-spigot</id>
|
|
- <configuration>
|
|
- <format>git-Spigot-%s</format>
|
|
- <scmDirectory>../</scmDirectory>
|
|
- <descriptionProperty>spigot.desc</descriptionProperty>
|
|
- </configuration>
|
|
- <phase>initialize</phase>
|
|
+ <phase>compile</phase>
|
|
<goals>
|
|
- <goal>describe</goal>
|
|
- </goals>
|
|
- </execution>
|
|
- <execution>
|
|
- <id>ex-craftbukkit</id>
|
|
- <configuration>
|
|
- <format>-%s</format>
|
|
- <scmDirectory>../../CraftBukkit</scmDirectory>
|
|
- <descriptionProperty>craftbukkit.desc</descriptionProperty>
|
|
- </configuration>
|
|
- <phase>initialize</phase>
|
|
- <goals>
|
|
- <goal>describe</goal>
|
|
+ <goal>gitdescribe</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
@@ -143,6 +142,7 @@
|
|
<artifactId>maven-jar-plugin</artifactId>
|
|
<version>3.2.0</version>
|
|
<configuration>
|
|
+ <forceCreation>true</forceCreation> <!-- Required to prevent shading the jar multiple times -->
|
|
<archive>
|
|
<manifest>
|
|
<addDefaultEntries>false</addDefaultEntries>
|
|
@@ -150,8 +150,9 @@
|
|
<manifestEntries>
|
|
<Main-Class>org.bukkit.craftbukkit.Main</Main-Class>
|
|
<Implementation-Title>CraftBukkit</Implementation-Title>
|
|
- <Implementation-Version>${spigot.desc}${craftbukkit.desc}</Implementation-Version>
|
|
- <Implementation-Vendor>${project.build.outputTimestamp}</Implementation-Vendor>
|
|
+ <!--suppress MavenModelInspection -->
|
|
+ <Implementation-Version>${describe}</Implementation-Version>
|
|
+ <Implementation-Vendor>${maven.build.timestamp}</Implementation-Vendor>
|
|
<Specification-Title>Bukkit</Specification-Title>
|
|
<Specification-Version>${api.version}</Specification-Version>
|
|
<Specification-Vendor>Bukkit Team</Specification-Vendor>
|
|
@@ -190,6 +191,7 @@
|
|
<goal>shade</goal>
|
|
</goals>
|
|
<configuration>
|
|
+ <dependencyReducedPomLocation>${project.build.directory}/dependency-reduced-pom.xml</dependencyReducedPomLocation> <!-- Paper -->
|
|
<createSourcesJar>${shadeSourcesJar}</createSourcesJar>
|
|
<filters>
|
|
<filter>
|
|
@@ -213,10 +215,11 @@
|
|
<pattern>jline</pattern>
|
|
<shadedPattern>org.bukkit.craftbukkit.libs.jline</shadedPattern>
|
|
</relocation>
|
|
- <relocation>
|
|
- <pattern>it.unimi</pattern>
|
|
- <shadedPattern>org.bukkit.craftbukkit.libs.it.unimi</shadedPattern>
|
|
- </relocation>
|
|
+ <!-- Paper - Don't relocate fastutil in order to prevent api breakage -->
|
|
+ <!--<relocation>-->
|
|
+ <!--<pattern>it.unimi</pattern>-->
|
|
+ <!--<shadedPattern>org.bukkit.craftbukkit.libs.it.unimi</shadedPattern>-->
|
|
+ <!--</relocation>-->
|
|
<relocation>
|
|
<pattern>org.apache.commons.codec</pattern>
|
|
<shadedPattern>org.bukkit.craftbukkit.libs.org.apache.commons.codec</shadedPattern>
|
|
@@ -258,10 +261,6 @@
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.8.1</version>
|
|
- <configuration>
|
|
- <!-- we use the Eclipse compiler as it doesn't need a JDK -->
|
|
- <compilerId>eclipse</compilerId>
|
|
- </configuration>
|
|
<dependencies>
|
|
<!-- we need our custom version as it fixes some bugs on case sensitive file systems -->
|
|
<dependency>
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
index 88223a53cb547727bacbba2d6006ecabf92bb524..cb5d0f5378418655eee2cd68bab8dc39a7b7052b 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
@@ -186,7 +186,7 @@ public class Main {
|
|
}
|
|
|
|
if (Main.class.getPackage().getImplementationVendor() != null && System.getProperty("IReallyKnowWhatIAmDoingISwear") == null) {
|
|
- Date buildDate = new Date(Integer.parseInt(Main.class.getPackage().getImplementationVendor()) * 1000L);
|
|
+ Date buildDate = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(Main.class.getPackage().getImplementationVendor()); // Paper
|
|
|
|
Calendar deadline = Calendar.getInstance();
|
|
deadline.add(Calendar.DAY_OF_YEAR, -21);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
|
index 93046379d0cefd5d3236fc59e698809acdc18f80..674096cab190d62622f9947853b056f57d43a2a5 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
|
@@ -11,7 +11,7 @@ public final class Versioning {
|
|
public static String getBukkitVersion() {
|
|
String result = "Unknown-Version";
|
|
|
|
- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/org.spigotmc/spigot-api/pom.properties");
|
|
+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/com.destroystokyo.paper/paper-api/pom.properties");
|
|
Properties properties = new Properties();
|
|
|
|
if (stream != null) {
|