Package org.apache.tomcat.util.compat
Class Jre19Compat
- java.lang.Object
-
- org.apache.tomcat.util.compat.JreCompat
-
- org.apache.tomcat.util.compat.Jre19Compat
-
public class Jre19Compat extends JreCompat
-
-
Field Summary
Fields Modifier and Type Field Description protected static MethodgetApplicationProtocolMethodprotected static MethodsetApplicationProtocolsMethod
-
Constructor Summary
Constructors Constructor Description Jre19Compat()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBootModulePath(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.booleancanAccess(Object base, AccessibleObject accessibleObject)Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?voiddisableCachingForJarUrlConnections()Disables caching for JAR URL connections.StringgetApplicationProtocol(SSLEngine sslEngine)Get the application protocol that has been negotiated for connection associated with the given SSLEngine.KeyStore.LoadStoreParametergetDomainLoadStoreParameter(URI uri)ObjectgetExecutor(Thread thread)Obtains the executor, if any, used to create the provided thread.StringgetModuleName(Class<?> type)What is the module of the given class?static booleanisAlpnSupported()booleanisExported(Class<?> type)Is the given class in an exported package?booleanisInstanceOfInaccessibleObjectException(Throwable t)Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.booleanjarFileIsMultiRelease(JarFile jarFile)Is this JarFile a multi-release JAR file.JarFilejarFileNewInstance(File f)Creates a new JarFile instance.intjarFileRuntimeMajorVersion()voidsetApplicationProtocols(SSLParameters sslParameters, String[] protocols)Set the application protocols the server will accept for ALPNvoidsetUseServerCipherSuitesOrder(SSLParameters sslParameters, boolean useCipherSuitesOrder)-
Methods inherited from class org.apache.tomcat.util.compat.JreCompat
getInstance, isJre11Available, isJre19Available, isJre8Available, isJre9Available, jarFileNewInstance
-
-
-
-
Method Detail
-
getExecutor
public Object getExecutor(Thread thread) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException
Description copied from class:JreCompatObtains the executor, if any, used to create the provided thread.- Overrides:
getExecutorin classJreCompat- Parameters:
thread- The thread to examine- Returns:
- The executor, if any, that created the provided thread
- Throws:
NoSuchFieldException- If a field used via reflection to obtain the executor cannot be foundSecurityException- If a security exception occurs while trying to identify the executorIllegalArgumentException- If the instance object does not match the class of the field when obtaining a field value via reflectionIllegalAccessException- If a field is not accessible due to access restrictions
-
isInstanceOfInaccessibleObjectException
public boolean isInstanceOfInaccessibleObjectException(Throwable t)
Description copied from class:JreCompatTest if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.- Overrides:
isInstanceOfInaccessibleObjectExceptionin classJreCompat- Parameters:
t- The exception to test- Returns:
trueif the exception is an instance of InaccessibleObjectException, otherwisefalse
-
disableCachingForJarUrlConnections
public void disableCachingForJarUrlConnections() throws IOExceptionDescription copied from class:JreCompatDisables caching for JAR URL connections. For Java 8 and earlier, this also disables caching for ALL URL connections.- Overrides:
disableCachingForJarUrlConnectionsin classJreCompat- Throws:
IOException- If a dummy JAR URLConnection can not be created
-
addBootModulePath
public void addBootModulePath(Deque<URL> classPathUrlsToProcess)
Description copied from class:JreCompatObtains the URLs for all the JARs on the module path when the JVM starts and adds them to the provided Deque.- Overrides:
addBootModulePathin classJreCompat- Parameters:
classPathUrlsToProcess- The Deque to which the modules should be added
-
jarFileNewInstance
public JarFile jarFileNewInstance(File f) throws IOException
Description copied from class:JreCompatCreates a new JarFile instance. When running on Java 9 and later, the JarFile will be multi-release JAR aware.- Overrides:
jarFileNewInstancein classJreCompat- Parameters:
f- The JAR file to open- Returns:
- A JarFile instance based on the provided file
- Throws:
IOException- If an I/O error occurs creating the JarFile instance
-
jarFileIsMultiRelease
public boolean jarFileIsMultiRelease(JarFile jarFile)
Description copied from class:JreCompatIs this JarFile a multi-release JAR file.- Overrides:
jarFileIsMultiReleasein classJreCompat- Parameters:
jarFile- The JarFile to test- Returns:
trueIf it is a multi-release JAR file and is configured to behave as such.
-
jarFileRuntimeMajorVersion
public int jarFileRuntimeMajorVersion()
-
canAccess
public boolean canAccess(Object base, AccessibleObject accessibleObject)
Description copied from class:JreCompatIs the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?
-
isExported
public boolean isExported(Class<?> type)
Description copied from class:JreCompatIs the given class in an exported package?- Overrides:
isExportedin classJreCompat- Parameters:
type- The class to test- Returns:
- Always
truefor Java 8.trueif the enclosing package is exported for Java 9+
-
getModuleName
public String getModuleName(Class<?> type)
Description copied from class:JreCompatWhat is the module of the given class?- Overrides:
getModuleNamein classJreCompat- Parameters:
type- The class to test- Returns:
- Always
truefor Java 8.trueif the enclosing package is exported for Java 9+
-
setUseServerCipherSuitesOrder
public void setUseServerCipherSuitesOrder(SSLParameters sslParameters, boolean useCipherSuitesOrder)
- Overrides:
setUseServerCipherSuitesOrderin classJreCompat
-
getDomainLoadStoreParameter
public KeyStore.LoadStoreParameter getDomainLoadStoreParameter(URI uri)
- Overrides:
getDomainLoadStoreParameterin classJreCompat
-
setApplicationProtocols
public void setApplicationProtocols(SSLParameters sslParameters, String[] protocols)
Description copied from class:JreCompatSet the application protocols the server will accept for ALPN- Overrides:
setApplicationProtocolsin classJreCompat- Parameters:
sslParameters- The SSL parameters for a connectionprotocols- The application protocols to be allowed for that connection
-
getApplicationProtocol
public String getApplicationProtocol(SSLEngine sslEngine)
Description copied from class:JreCompatGet the application protocol that has been negotiated for connection associated with the given SSLEngine.- Overrides:
getApplicationProtocolin classJreCompat- Parameters:
sslEngine- The SSLEngine for which to obtain the negotiated protocol- Returns:
- The name of the negotiated protocol
-
isAlpnSupported
public static boolean isAlpnSupported()
-
-