Package org.apache.tomcat.util.compat
Class Jre19Compat
java.lang.Object
org.apache.tomcat.util.compat.JreCompat
org.apache.tomcat.util.compat.Jre19Compat
- Direct Known Subclasses:
Jre21Compat
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBootModulePath(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?voidDisables caching for JAR URL connections.getApplicationProtocol(SSLEngine sslEngine) Get the application protocol that has been negotiated for connection associated with the given SSLEngine.getExecutor(Thread thread) Obtains the executor, if any, used to create the provided thread.getModuleName(Class<?> type) What is the module of the given class?static booleanbooleanisExported(Class<?> type) Is the given class in an exported package?booleanTest if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.booleanjarFileIsMultiRelease(JarFile jarFile) Is this JarFile a multi-release JAR file.Creates a new JarFile instance.intvoidsetApplicationProtocols(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
createVirtualThreadBuilder, getInstance, isJre11Available, isJre16Available, isJre19Available, isJre21Available, isJre8Available, isJre9Available, jarFileNewInstance, threadBuilderStart
-
Field Details
-
setApplicationProtocolsMethod
-
getApplicationProtocolMethod
-
-
Constructor Details
-
Jre19Compat
public Jre19Compat()
-
-
Method Details
-
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
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
Description 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
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
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
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
Description copied from class:JreCompatIs the accessibleObject accessible (as a result of appropriate module exports) on the provided instance? -
isExported
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
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
- Overrides:
getDomainLoadStoreParameterin classJreCompat
-
setApplicationProtocols
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
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()
-