Package org.apache.tomcat.util.compat
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 TypeMethodDescriptionCreate a thread builder for virtual threads using the given name to name the threads.getExecutor(Thread thread) Obtains the executor, if any, used to create the provided thread.static JreCompatReturn Unix domain socket address for given path.static 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
 
- 
createVirtualThreadBuilderCreate a thread builder for virtual threads using the given name to name the threads.- Parameters:
- name- The base name for the threads
- Returns:
- The thread buidler for virtual threads
 
- 
threadBuilderStartCreate a thread with the given thread builder and use it to execute the given runnable.- Parameters:
- threadBuilder- The thread builder to use to create a thread
- command- The command to run
 
 
-