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?
|
SocketAddress |
getUnixDomainSocketAddress(String path)
Return Unix domain socket address for given path.
|
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 |
isJre16Available() |
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() |
ServerSocketChannel |
openUnixDomainServerSocketChannel()
Create server socket channel using the Unix domain socket ProtocolFamily.
|
SocketChannel |
openUnixDomainSocketChannel()
Create socket channel using the Unix domain socket ProtocolFamily.
|
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 static boolean isJre16Available()
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+public String getModuleName(Class<?> type)
type
- The class to testtrue
for Java 8. true
if the enclosing
package is exported for Java 9+public SocketAddress getUnixDomainSocketAddress(String path)
path
- The pathpublic ServerSocketChannel openUnixDomainServerSocketChannel()
public SocketChannel openUnixDomainSocketChannel()
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.