Package org.apache.tomcat.util.compat
Class Jre21Compat
java.lang.Object
org.apache.tomcat.util.compat.JreCompat
org.apache.tomcat.util.compat.Jre12Compat
org.apache.tomcat.util.compat.Jre19Compat
org.apache.tomcat.util.compat.Jre21Compat
- Direct Known Subclasses:
Jre22Compat
-
Field Summary
Fields inherited from class org.apache.tomcat.util.compat.JreCompat
canonCachesDisabled, canonCachesDisabledLock, getApplicationProtocolMethod, setApplicationProtocolsMethod, USE_CANON_CACHES_CMD_ARG, useCanonCachesField, useCanonCachesFieldLock -
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.<T> TbooleancanAccess(Object base, AccessibleObject accessibleObject) Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?Create a thread builder for virtual threads using the given name to name the threads.voidDisables caching for JAR URL connections.booleanDisable the global canonical file cache.getModuleName(Class<?> type) What is the module of the given class?Return Unix domain socket address for given path.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.intCreate server socket channel using the Unix domain socket ProtocolFamily.Create socket channel using the Unix domain socket ProtocolFamily.voidthreadBuilderStart(Object threadBuilder, 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.Jre19Compat
getExecutorMethods inherited from class org.apache.tomcat.util.compat.Jre12Compat
ensureUseCanonCachesFieldIsPopulatedMethods inherited from class org.apache.tomcat.util.compat.JreCompat
getApplicationProtocol, getInstance, isAlpnSupported, isGraalAvailable, isJre11Available, isJre12Available, isJre16Available, isJre19Available, isJre21Available, isJre22Available, isJre9Available, jarFileNewInstance, setApplicationProtocols
-
Constructor Details
-
Jre21Compat
public Jre21Compat()
-
-
Method Details
-
createVirtualThreadBuilder
Description copied from class:JreCompatCreate a thread builder for virtual threads using the given name to name the threads.- Overrides:
createVirtualThreadBuilderin classJreCompat- Parameters:
name- The base name for the threads- Returns:
- The thread buidler for virtual threads
-
threadBuilderStart
Description copied from class:JreCompatCreate a thread with the given thread builder and use it to execute the given runnable.- Overrides:
threadBuilderStartin classJreCompat- Parameters:
threadBuilder- The thread builder to use to create a threadcommand- The command to run
-
callAs
- Overrides:
callAsin classJreCompat- Throws:
CompletionException
-
isCanonCachesDisabled
public boolean isCanonCachesDisabled()- Overrides:
isCanonCachesDisabledin classJre12Compat
-
disableCanonCaches
public boolean disableCanonCaches()Description copied from class:JreCompatDisable the global canonical file cache.- Overrides:
disableCanonCachesin classJreCompat- Returns:
trueif the global canonical file cache was already disabled prior to this call or was disabled as a result of this call, otherwisefalse
-
getUnixDomainSocketAddress
Description copied from class:JreCompatReturn Unix domain socket address for given path.- Overrides:
getUnixDomainSocketAddressin classJreCompat- Parameters:
path- The path- Returns:
- the socket address
-
openUnixDomainServerSocketChannel
Description copied from class:JreCompatCreate server socket channel using the Unix domain socket ProtocolFamily.- Overrides:
openUnixDomainServerSocketChannelin classJreCompat- Returns:
- the server socket channel
-
openUnixDomainSocketChannel
Description copied from class:JreCompatCreate socket channel using the Unix domain socket ProtocolFamily.- Overrides:
openUnixDomainSocketChannelin classJreCompat- Returns:
- the socket channel
-
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()- Overrides:
jarFileRuntimeMajorVersionin classJreCompat
-
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+
-