public class JreCompat extends Object
Modifier and Type | Field and Description |
---|---|
protected static Method |
getApplicationProtocolMethod |
protected static Method |
setApplicationProtocolsMethod |
Constructor and Description |
---|
JreCompat() |
Modifier and Type | Method and Description |
---|---|
void |
addBootModulePath(Deque<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(Object base,
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.
|
String |
getApplicationProtocol(SSLEngine sslEngine)
Get the application protocol that has been negotiated for connection
associated with the given SSLEngine.
|
static JreCompat |
getInstance() |
String |
getModuleName(Class<?> type)
What is the module of the given class?
|
static boolean |
isAlpnSupported() |
boolean |
isExported(Class<?> type)
Is the given class in an exported package?
|
static boolean |
isGraalAvailable() |
boolean |
isInstanceOfInaccessibleObjectException(Throwable t)
Test if the provided exception is an instance of
java.lang.reflect.InaccessibleObjectException.
|
static boolean |
isJre11Available() |
static boolean |
isJre9Available() |
boolean |
jarFileIsMultiRelease(JarFile jarFile)
Is this JarFile a multi-release JAR file.
|
JarFile |
jarFileNewInstance(File f)
Creates a new JarFile instance.
|
JarFile |
jarFileNewInstance(String s)
Creates a new JarFile instance.
|
int |
jarFileRuntimeMajorVersion() |
void |
setApplicationProtocols(SSLParameters sslParameters,
String[] protocols)
Set the application protocols the server will accept for ALPN
|
protected static final Method setApplicationProtocolsMethod
protected static final 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(Throwable t)
t
- The exception to testtrue
if the exception is an instance of
InaccessibleObjectException, otherwise false
public void setApplicationProtocols(SSLParameters sslParameters, String[] protocols)
sslParameters
- The SSL parameters for a connectionprotocols
- The application protocols to be allowed for that
connectionpublic String getApplicationProtocol(SSLEngine sslEngine)
sslEngine
- The SSLEngine for which to obtain the negotiated
protocolpublic void disableCachingForJarUrlConnections() throws IOException
IOException
- If a dummy JAR URLConnection can not be createdpublic void addBootModulePath(Deque<URL> classPathUrlsToProcess)
classPathUrlsToProcess
- The Deque to which the modules should be
addedpublic final JarFile jarFileNewInstance(String s) throws IOException
s
- The JAR file to openIOException
- If an I/O error occurs creating the JarFile instancepublic JarFile jarFileNewInstance(File f) throws IOException
f
- The JAR file to openIOException
- If an I/O error occurs creating the JarFile instancepublic boolean jarFileIsMultiRelease(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(Object base, AccessibleObject accessibleObject)
base
- The specific instance to be tested.accessibleObject
- The method/field/constructor to be tested.public boolean isExported(Class<?> type)
type
- The class to testtrue
for Java 8. true
if the enclosing
package is exported for Java 9+Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.