public class JreCompat
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
protected static java.lang.reflect.Method |
getApplicationProtocolMethod |
protected static java.lang.reflect.Method |
setApplicationProtocolsMethod |
| Constructor and Description |
|---|
JreCompat() |
| Modifier and Type | Method and Description |
|---|---|
void |
addBootModulePath(java.util.Deque<java.net.URL> classPathUrlsToProcess)
Obtains the URLs for all the JARs on the module path when the JVM starts
and adds them to the provided Deque.
|
boolean |
canAccess(java.lang.Object base,
java.lang.reflect.AccessibleObject accessibleObject)
Is the accessibleObject accessible (as a result of appropriate module
exports) on the provided instance?
|
void |
disableCachingForJarUrlConnections()
Disables caching for JAR URL connections.
|
java.lang.String |
getApplicationProtocol(javax.net.ssl.SSLEngine sslEngine)
Get the application protocol that has been negotiated for connection
associated with the given SSLEngine.
|
java.lang.Object |
getExecutor(java.lang.Thread thread)
Obtains the executor, if any, used to create the provided thread.
|
static JreCompat |
getInstance() |
java.lang.String |
getModuleName(java.lang.Class<?> type)
What is the module of the given class?
|
java.net.SocketAddress |
getUnixDomainSocketAddress(java.lang.String path)
Return Unix domain socket address for given path.
|
static boolean |
isAlpnSupported() |
boolean |
isExported(java.lang.Class<?> type)
Is the given class in an exported package?
|
static boolean |
isGraalAvailable() |
boolean |
isInstanceOfInaccessibleObjectException(java.lang.Throwable t)
Test if the provided exception is an instance of
java.lang.reflect.InaccessibleObjectException.
|
static boolean |
isJre11Available() |
static boolean |
isJre16Available() |
static boolean |
isJre19Available() |
static boolean |
isJre9Available() |
boolean |
jarFileIsMultiRelease(java.util.jar.JarFile jarFile)
Is this JarFile a multi-release JAR file.
|
java.util.jar.JarFile |
jarFileNewInstance(java.io.File f)
Creates a new JarFile instance.
|
java.util.jar.JarFile |
jarFileNewInstance(java.lang.String s)
Creates a new JarFile instance.
|
int |
jarFileRuntimeMajorVersion() |
java.nio.channels.ServerSocketChannel |
openUnixDomainServerSocketChannel()
Create server socket channel using the Unix domain socket ProtocolFamily.
|
java.nio.channels.SocketChannel |
openUnixDomainSocketChannel()
Create socket channel using the Unix domain socket ProtocolFamily.
|
void |
setApplicationProtocols(javax.net.ssl.SSLParameters sslParameters,
java.lang.String[] protocols)
Set the application protocols the server will accept for ALPN
|
protected static final java.lang.reflect.Method setApplicationProtocolsMethod
protected static final java.lang.reflect.Method getApplicationProtocolMethod
public static JreCompat getInstance()
public static boolean isGraalAvailable()
public static boolean isAlpnSupported()
public static boolean isJre9Available()
public static boolean isJre11Available()
public static boolean isJre16Available()
public static boolean isJre19Available()
public boolean isInstanceOfInaccessibleObjectException(java.lang.Throwable t)
t - The exception to testtrue if the exception is an instance of
InaccessibleObjectException, otherwise falsepublic void setApplicationProtocols(javax.net.ssl.SSLParameters sslParameters,
java.lang.String[] protocols)
sslParameters - The SSL parameters for a connectionprotocols - The application protocols to be allowed for that
connectionpublic java.lang.String getApplicationProtocol(javax.net.ssl.SSLEngine sslEngine)
sslEngine - The SSLEngine for which to obtain the negotiated
protocolpublic void disableCachingForJarUrlConnections()
throws java.io.IOException
java.io.IOException - If a dummy JAR URLConnection can not be createdpublic void addBootModulePath(java.util.Deque<java.net.URL> classPathUrlsToProcess)
classPathUrlsToProcess - The Deque to which the modules should be
addedpublic final java.util.jar.JarFile jarFileNewInstance(java.lang.String s)
throws java.io.IOException
s - The JAR file to openjava.io.IOException - If an I/O error occurs creating the JarFile instancepublic java.util.jar.JarFile jarFileNewInstance(java.io.File f)
throws java.io.IOException
f - The JAR file to openjava.io.IOException - If an I/O error occurs creating the JarFile instancepublic boolean jarFileIsMultiRelease(java.util.jar.JarFile jarFile)
jarFile - The JarFile to testtrue If it is a multi-release JAR file and is configured
to behave as such.public int jarFileRuntimeMajorVersion()
public boolean canAccess(java.lang.Object base,
java.lang.reflect.AccessibleObject accessibleObject)
base - The specific instance to be tested.accessibleObject - The method/field/constructor to be tested.public boolean isExported(java.lang.Class<?> type)
type - The class to testtrue for Java 8. true if the enclosing
package is exported for Java 9+public java.lang.String getModuleName(java.lang.Class<?> type)
type - The class to testtrue for Java 8. true if the enclosing
package is exported for Java 9+public java.net.SocketAddress getUnixDomainSocketAddress(java.lang.String path)
path - The pathpublic java.nio.channels.ServerSocketChannel openUnixDomainServerSocketChannel()
public java.nio.channels.SocketChannel openUnixDomainSocketChannel()
public java.lang.Object getExecutor(java.lang.Thread thread)
throws java.lang.NoSuchFieldException,
java.lang.SecurityException,
java.lang.IllegalArgumentException,
java.lang.IllegalAccessException
thread - The thread to examinejava.lang.NoSuchFieldException - If a field used via reflection to obtain the executor cannot
be foundjava.lang.SecurityException - If a security exception occurs while trying to identify the
executorjava.lang.IllegalArgumentException - If the instance object does not match the class of the field
when obtaining a field value via reflectionjava.lang.IllegalAccessException - If a field is not accessible due to access restrictionsCopyright © 2000-2023 Apache Software Foundation. All Rights Reserved.