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 Summary
-
Method Summary
Modifier and TypeMethodDescription<T> T
Create 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 JreCompat
Return Unix domain socket address for given path.static boolean
static boolean
static boolean
static boolean
static boolean
Create server socket channel using the Unix domain socket ProtocolFamily.Create socket channel using the Unix domain socket ProtocolFamily.void
threadBuilderStart
(Object threadBuilder, Runnable command) Create a thread with the given thread builder and use it to execute the given runnable.
-
Constructor Details
-
JreCompat
public JreCompat()
-
-
Method Details
-
getInstance
-
isGraalAvailable
public static boolean isGraalAvailable() -
isJre16Available
public static boolean isJre16Available() -
isJre19Available
public static boolean isJre19Available() -
isJre21Available
public static boolean isJre21Available() -
isJre22Available
public static boolean isJre22Available() -
getUnixDomainSocketAddress
Return Unix domain socket address for given path.- Parameters:
path
- The path- Returns:
- the socket address
-
openUnixDomainServerSocketChannel
Create server socket channel using the Unix domain socket ProtocolFamily.- Returns:
- the server socket channel
-
openUnixDomainSocketChannel
Create socket channel using the Unix domain socket ProtocolFamily.- Returns:
- the socket channel
-
getExecutor
public 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 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
-
createVirtualThreadBuilder
-
threadBuilderStart
-
callAs
- Throws:
CompletionException
-