Class JreCompat
java.lang.Object
org.apache.tomcat.util.compat.JreCompat
- Direct Known Subclasses:
- Jre19Compat
This is the base implementation class for JRE compatibility and provides an implementation based on Java 11.
 Sub-classes may extend this class and provide alternative implementations for later JRE versions
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescription<T> TCreate a thread builder for virtual threads using the given name to name the threads.booleanDisable the global canonical file cache.getExecutor(Thread thread) Obtains the executor, if any, used to create the provided thread.static JreCompatReturn Unix domain socket address for given path.booleanstatic booleanstatic booleanstatic booleanstatic booleanstatic booleanCreate 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.
- 
Constructor Details- 
JreCompatpublic JreCompat()
 
- 
- 
Method Details- 
getInstance
- 
isGraalAvailablepublic static boolean isGraalAvailable()
- 
isJre16Availablepublic static boolean isJre16Available()
- 
isJre19Availablepublic static boolean isJre19Available()
- 
isJre21Availablepublic static boolean isJre21Available()
- 
isJre22Availablepublic static boolean isJre22Available()
- 
getUnixDomainSocketAddressReturn Unix domain socket address for given path.- Parameters:
- path- The path
- Returns:
- the socket address
 
- 
openUnixDomainServerSocketChannelCreate server socket channel using the Unix domain socket ProtocolFamily.- Returns:
- the server socket channel
 
- 
openUnixDomainSocketChannelCreate socket channel using the Unix domain socket ProtocolFamily.- Returns:
- the socket channel
 
- 
getExecutorpublic Object getExecutor(Thread thread) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException Obtains the executor, if any, used to create the provided thread.- 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 found
- SecurityException- If a security exception occurs while trying to identify the executor
- IllegalArgumentException- If the instance object does not match the class of the field when obtaining a field value via reflection
- IllegalAccessException- If a field is not accessible due to access restrictions
 
- 
createVirtualThreadBuilder
- 
threadBuilderStart
- 
callAs- Throws:
- CompletionException
 
- 
isCanonCachesDisabledpublic boolean isCanonCachesDisabled()
- 
disableCanonCachespublic boolean disableCanonCaches()Disable the global canonical file cache.- Returns:
- trueif the global canonical file cache was already disabled prior to this call or was disabled as a result of this call, otherwise- false
 
 
-