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 |
canAcccess(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.
|
static JreCompat |
getInstance() |
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 |
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() |
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 boolean isInstanceOfInaccessibleObjectException(java.lang.Throwable t)
t
- The exception to testtrue
if the exception is an instance of
InaccessibleObjectException, otherwise false
public 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 canAcccess(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+Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.