Add Java 25-ea to GitHub Actions

This commit is contained in:
md_5 2025-05-25 10:32:25 +10:00
parent 442ff808f3
commit 68f4f6bd40
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11
3 changed files with 32 additions and 20 deletions

View File

@ -4,12 +4,12 @@ on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
java: [8, 11, 17, 21]
java: [8, 11, 17, 21, 25-ea]
name: Java ${{ matrix.java }}

View File

@ -1,6 +1,8 @@
package net.md_5.bungee.jni;
import com.google.common.io.ByteStreams;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@ -93,7 +95,31 @@ public final class NativeCode<T>
return loaded;
}
public static boolean hasDirectBuffers()
{
ByteBuf directBuffer = null;
boolean hasMemoryAddress = false;
try
{
directBuffer = Unpooled.directBuffer();
hasMemoryAddress = directBuffer.hasMemoryAddress();
} finally
{
if ( directBuffer != null )
{
directBuffer.release();
}
}
return hasMemoryAddress;
}
public static boolean isSupported()
{
return isSupportedPlatformAndArch() && hasDirectBuffers();
}
private static boolean isSupportedPlatformAndArch()
{
return "Linux".equals( System.getProperty( "os.name" ) ) && ( isAmd64() || isAarch64() );
}

View File

@ -8,8 +8,6 @@ import com.google.common.collect.Sets;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.Channel;
import io.netty.channel.ChannelException;
import io.netty.channel.ChannelFuture;
@ -74,6 +72,7 @@ import net.md_5.bungee.compress.CompressFactory;
import net.md_5.bungee.conf.Configuration;
import net.md_5.bungee.conf.YamlConfig;
import net.md_5.bungee.forge.ForgeConstants;
import net.md_5.bungee.jni.NativeCode;
import net.md_5.bungee.log.BungeeLogger;
import net.md_5.bungee.log.LoggingForwardHandler;
import net.md_5.bungee.log.LoggingOutputStream;
@ -232,32 +231,19 @@ public class BungeeCord extends ProxyServer
if ( !Boolean.getBoolean( "net.md_5.bungee.native.disable" ) )
{
ByteBuf directBuffer = null;
boolean hasMemoryAddress = false;
try
{
directBuffer = Unpooled.directBuffer();
hasMemoryAddress = directBuffer.hasMemoryAddress();
} finally
{
if ( directBuffer != null )
{
directBuffer.release();
}
}
if ( !hasMemoryAddress )
if ( !NativeCode.hasDirectBuffers() )
{
logger.warning( "Memory addresses are not available in direct buffers" );
}
if ( hasMemoryAddress && EncryptionUtil.nativeFactory.load() )
if ( EncryptionUtil.nativeFactory.load() )
{
logger.info( "Using mbed TLS based native cipher." );
} else
{
logger.info( "Using standard Java JCE cipher." );
}
if ( hasMemoryAddress && CompressFactory.zlib.load() )
if ( CompressFactory.zlib.load() )
{
logger.info( "Using zlib based native compressor." );
} else