Package org.apache.tomcat.util.compat
Class Jre19Compat
- java.lang.Object
-
- org.apache.tomcat.util.compat.JreCompat
-
- org.apache.tomcat.util.compat.Jre19Compat
-
public class Jre19Compat extends JreCompat
-
-
Field Summary
-
Fields inherited from class org.apache.tomcat.util.compat.JreCompat
getApplicationProtocolMethod, setApplicationProtocolsMethod
-
-
Constructor Summary
Constructors Constructor Description Jre19Compat()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addBootModulePath(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.boolean
canAccess(java.lang.Object base, java.lang.reflect.AccessibleObject accessibleObject)
Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?void
disableCachingForJarUrlConnections()
Disables caching for JAR URL connections.java.lang.Object
getExecutor(java.lang.Thread thread)
Obtains the executor, if any, used to create the provided thread.java.lang.String
getModuleName(java.lang.Class<?> type)
What is the module of the given class?java.net.SocketAddress
getUnixDomainSocketAddress(java.lang.String path)
Return Unix domain socket address for given path.boolean
isExported(java.lang.Class<?> type)
Is the given class in an exported package?boolean
isInstanceOfInaccessibleObjectException(java.lang.Throwable t)
Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.boolean
jarFileIsMultiRelease(java.util.jar.JarFile jarFile)
Is this JarFile a multi-release JAR file.java.util.jar.JarFile
jarFileNewInstance(java.io.File f)
Creates a new JarFile instance.int
jarFileRuntimeMajorVersion()
java.nio.channels.ServerSocketChannel
openUnixDomainServerSocketChannel()
Create server socket channel using the Unix domain socket ProtocolFamily.java.nio.channels.SocketChannel
openUnixDomainSocketChannel()
Create socket channel using the Unix domain socket ProtocolFamily.-
Methods inherited from class org.apache.tomcat.util.compat.JreCompat
getApplicationProtocol, getInstance, isAlpnSupported, isGraalAvailable, isJre11Available, isJre16Available, isJre19Available, isJre9Available, jarFileNewInstance, setApplicationProtocols
-
-
-
-
Method Detail
-
getExecutor
public java.lang.Object getExecutor(java.lang.Thread thread) throws java.lang.NoSuchFieldException, java.lang.SecurityException, java.lang.IllegalArgumentException, java.lang.IllegalAccessException
Description copied from class:JreCompat
Obtains the executor, if any, used to create the provided thread.- Overrides:
getExecutor
in classJreCompat
- Parameters:
thread
- The thread to examine- Returns:
- The executor, if any, that created the provided thread
- Throws:
java.lang.NoSuchFieldException
- If a field used via reflection to obtain the executor cannot be foundjava.lang.SecurityException
- If a security exception occurs while trying to identify the executorjava.lang.IllegalArgumentException
- If the instance object does not match the class of the field when obtaining a field value via reflectionjava.lang.IllegalAccessException
- If a field is not accessible due to access restrictions
-
getUnixDomainSocketAddress
public java.net.SocketAddress getUnixDomainSocketAddress(java.lang.String path)
Description copied from class:JreCompat
Return Unix domain socket address for given path.- Overrides:
getUnixDomainSocketAddress
in classJreCompat
- Parameters:
path
- The path- Returns:
- the socket address
-
openUnixDomainServerSocketChannel
public java.nio.channels.ServerSocketChannel openUnixDomainServerSocketChannel()
Description copied from class:JreCompat
Create server socket channel using the Unix domain socket ProtocolFamily.- Overrides:
openUnixDomainServerSocketChannel
in classJreCompat
- Returns:
- the server socket channel
-
openUnixDomainSocketChannel
public java.nio.channels.SocketChannel openUnixDomainSocketChannel()
Description copied from class:JreCompat
Create socket channel using the Unix domain socket ProtocolFamily.- Overrides:
openUnixDomainSocketChannel
in classJreCompat
- Returns:
- the socket channel
-
isInstanceOfInaccessibleObjectException
public boolean isInstanceOfInaccessibleObjectException(java.lang.Throwable t)
Description copied from class:JreCompat
Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.- Overrides:
isInstanceOfInaccessibleObjectException
in classJreCompat
- Parameters:
t
- The exception to test- Returns:
true
if the exception is an instance of InaccessibleObjectException, otherwisefalse
-
disableCachingForJarUrlConnections
public void disableCachingForJarUrlConnections() throws java.io.IOException
Description copied from class:JreCompat
Disables caching for JAR URL connections. For Java 8 and earlier, this also disables caching for ALL URL connections.- Overrides:
disableCachingForJarUrlConnections
in classJreCompat
- Throws:
java.io.IOException
- If a dummy JAR URLConnection can not be created
-
addBootModulePath
public void addBootModulePath(java.util.Deque<java.net.URL> classPathUrlsToProcess)
Description copied from class:JreCompat
Obtains the URLs for all the JARs on the module path when the JVM starts and adds them to the provided Deque.- Overrides:
addBootModulePath
in classJreCompat
- Parameters:
classPathUrlsToProcess
- The Deque to which the modules should be added
-
jarFileNewInstance
public java.util.jar.JarFile jarFileNewInstance(java.io.File f) throws java.io.IOException
Description copied from class:JreCompat
Creates a new JarFile instance. When running on Java 9 and later, the JarFile will be multi-release JAR aware.- Overrides:
jarFileNewInstance
in classJreCompat
- 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
-
jarFileIsMultiRelease
public boolean jarFileIsMultiRelease(java.util.jar.JarFile jarFile)
Description copied from class:JreCompat
Is this JarFile a multi-release JAR file.- Overrides:
jarFileIsMultiRelease
in classJreCompat
- Parameters:
jarFile
- The JarFile to test- Returns:
true
If it is a multi-release JAR file and is configured to behave as such.
-
jarFileRuntimeMajorVersion
public int jarFileRuntimeMajorVersion()
- Overrides:
jarFileRuntimeMajorVersion
in classJreCompat
-
canAccess
public boolean canAccess(java.lang.Object base, java.lang.reflect.AccessibleObject accessibleObject)
Description copied from class:JreCompat
Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?
-
isExported
public boolean isExported(java.lang.Class<?> type)
Description copied from class:JreCompat
Is the given class in an exported package?- Overrides:
isExported
in classJreCompat
- Parameters:
type
- The class to test- Returns:
- Always
true
for Java 8.true
if the enclosing package is exported for Java 9+
-
getModuleName
public java.lang.String getModuleName(java.lang.Class<?> type)
Description copied from class:JreCompat
What is the module of the given class?- Overrides:
getModuleName
in classJreCompat
- Parameters:
type
- The class to test- Returns:
- Always
true
for Java 8.true
if the enclosing package is exported for Java 9+
-
-