public class JreCompat extends Object
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.
|
KeyStore.LoadStoreParameter |
getDomainLoadStoreParameter(URI uri) |
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?
|
boolean |
isInstanceOfInaccessibleObjectException(Throwable t)
Test if the provided exception is an instance of
java.lang.reflect.InaccessibleObjectException.
|
static boolean |
isJre8Available() |
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
|
void |
setUseServerCipherSuitesOrder(SSLParameters engine,
boolean useCipherSuitesOrder) |
public static JreCompat getInstance()
public static boolean isJre8Available()
public void setUseServerCipherSuitesOrder(SSLParameters engine, boolean useCipherSuitesOrder)
public KeyStore.LoadStoreParameter getDomainLoadStoreParameter(URI uri)
public static boolean isAlpnSupported()
public static boolean isJre9Available()
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.