Package org.apache.tomcat.util.compat
Class Jre21Compat
- java.lang.Object
- 
- org.apache.tomcat.util.compat.JreCompat
- 
- org.apache.tomcat.util.compat.Jre19Compat
- 
- org.apache.tomcat.util.compat.Jre21Compat
 
 
 
- 
- Direct Known Subclasses:
- Jre22Compat
 
 public class Jre21Compat extends Jre19Compat 
- 
- 
Field Summary- 
Fields inherited from class org.apache.tomcat.util.compat.JreCompatgetApplicationProtocolMethod, setApplicationProtocolsMethod
 
- 
 - 
Constructor SummaryConstructors Constructor Description Jre21Compat()
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBootModulePath(java.util.Deque<java.net.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(java.lang.Object base, java.lang.reflect.AccessibleObject accessibleObject)Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?java.lang.ObjectcreateVirtualThreadBuilder(java.lang.String name)Create a thread builder for virtual threads using the given name to name the threads.voiddisableCachingForJarUrlConnections()Disables caching for JAR URL connections.java.lang.StringgetModuleName(java.lang.Class<?> type)What is the module of the given class?java.net.SocketAddressgetUnixDomainSocketAddress(java.lang.String path)Return Unix domain socket address for given path.booleanisExported(java.lang.Class<?> type)Is the given class in an exported package?booleanisInstanceOfInaccessibleObjectException(java.lang.Throwable t)Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.booleanjarFileIsMultiRelease(java.util.jar.JarFile jarFile)Is this JarFile a multi-release JAR file.java.util.jar.JarFilejarFileNewInstance(java.io.File f)Creates a new JarFile instance.intjarFileRuntimeMajorVersion()java.nio.channels.ServerSocketChannelopenUnixDomainServerSocketChannel()Create server socket channel using the Unix domain socket ProtocolFamily.java.nio.channels.SocketChannelopenUnixDomainSocketChannel()Create socket channel using the Unix domain socket ProtocolFamily.voidthreadBuilderStart(java.lang.Object threadBuilder, java.lang.Runnable command)Create a thread with the given thread builder and use it to execute the given runnable.- 
Methods inherited from class org.apache.tomcat.util.compat.Jre19CompatgetExecutor
 - 
Methods inherited from class org.apache.tomcat.util.compat.JreCompatgetApplicationProtocol, getInstance, isAlpnSupported, isGraalAvailable, isJre11Available, isJre16Available, isJre19Available, isJre21Available, isJre22Available, isJre9Available, jarFileNewInstance, setApplicationProtocols
 
- 
 
- 
- 
- 
Method Detail- 
createVirtualThreadBuilderpublic java.lang.Object createVirtualThreadBuilder(java.lang.String name) Description copied from class:JreCompatCreate a thread builder for virtual threads using the given name to name the threads.- Overrides:
- createVirtualThreadBuilderin class- JreCompat
- Parameters:
- name- The base name for the threads
- Returns:
- The thread buidler for virtual threads
 
 - 
threadBuilderStartpublic void threadBuilderStart(java.lang.Object threadBuilder, java.lang.Runnable command)Description copied from class:JreCompatCreate a thread with the given thread builder and use it to execute the given runnable.- Overrides:
- threadBuilderStartin class- JreCompat
- Parameters:
- threadBuilder- The thread builder to use to create a thread
- command- The command to run
 
 - 
getUnixDomainSocketAddresspublic java.net.SocketAddress getUnixDomainSocketAddress(java.lang.String path) Description copied from class:JreCompatReturn Unix domain socket address for given path.- Overrides:
- getUnixDomainSocketAddressin class- JreCompat
- Parameters:
- path- The path
- Returns:
- the socket address
 
 - 
openUnixDomainServerSocketChannelpublic java.nio.channels.ServerSocketChannel openUnixDomainServerSocketChannel() Description copied from class:JreCompatCreate server socket channel using the Unix domain socket ProtocolFamily.- Overrides:
- openUnixDomainServerSocketChannelin class- JreCompat
- Returns:
- the server socket channel
 
 - 
openUnixDomainSocketChannelpublic java.nio.channels.SocketChannel openUnixDomainSocketChannel() Description copied from class:JreCompatCreate socket channel using the Unix domain socket ProtocolFamily.- Overrides:
- openUnixDomainSocketChannelin class- JreCompat
- Returns:
- the socket channel
 
 - 
isInstanceOfInaccessibleObjectExceptionpublic boolean isInstanceOfInaccessibleObjectException(java.lang.Throwable t) Description copied from class:JreCompatTest if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.- Overrides:
- isInstanceOfInaccessibleObjectExceptionin class- JreCompat
- Parameters:
- t- The exception to test
- Returns:
- trueif the exception is an instance of InaccessibleObjectException, otherwise- false
 
 - 
disableCachingForJarUrlConnectionspublic void disableCachingForJarUrlConnections() throws java.io.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 class- JreCompat
- Throws:
- java.io.IOException- If a dummy JAR URLConnection can not be created
 
 - 
addBootModulePathpublic void addBootModulePath(java.util.Deque<java.net.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 class- JreCompat
- Parameters:
- classPathUrlsToProcess- The Deque to which the modules should be added
 
 - 
jarFileNewInstancepublic java.util.jar.JarFile jarFileNewInstance(java.io.File f) throws java.io.IOExceptionDescription 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 class- JreCompat
- Parameters:
- f- The JAR file to open
- Returns:
- A JarFile instance based on the provided file
- Throws:
- java.io.IOException- If an I/O error occurs creating the JarFile instance
 
 - 
jarFileIsMultiReleasepublic boolean jarFileIsMultiRelease(java.util.jar.JarFile jarFile) Description copied from class:JreCompatIs this JarFile a multi-release JAR file.- Overrides:
- jarFileIsMultiReleasein class- JreCompat
- Parameters:
- jarFile- The JarFile to test
- Returns:
- trueIf it is a multi-release JAR file and is configured to behave as such.
 
 - 
jarFileRuntimeMajorVersionpublic int jarFileRuntimeMajorVersion() - Overrides:
- jarFileRuntimeMajorVersionin class- JreCompat
 
 - 
canAccesspublic boolean canAccess(java.lang.Object base, java.lang.reflect.AccessibleObject accessibleObject)Description copied from class:JreCompatIs the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?
 - 
isExportedpublic boolean isExported(java.lang.Class<?> type) Description copied from class:JreCompatIs the given class in an exported package?- Overrides:
- isExportedin class- JreCompat
- Parameters:
- type- The class to test
- Returns:
- Always truefor Java 8.trueif the enclosing package is exported for Java 9+
 
 - 
getModuleNamepublic java.lang.String getModuleName(java.lang.Class<?> type) Description copied from class:JreCompatWhat is the module of the given class?- Overrides:
- getModuleNamein class- JreCompat
- Parameters:
- type- The class to test
- Returns:
- Always truefor Java 8.trueif the enclosing package is exported for Java 9+
 
 
- 
 
-