Package org.apache.tomcat.util.compat

# Class Jre22Compat

java.lang.Object
org.apache.tomcat.util.compat.JreCompat
org.apache.tomcat.util.compat.Jre19Compat
org.apache.tomcat.util.compat.Jre21Compat
org.apache.tomcat.util.compat.Jre22Compat

public class Jre22Compat extends Jre21Compat

- ## Field Summary

  ### Fields inherited from class org.apache.tomcat.util.compat.JreCompat

  `getApplicationProtocolMethod, setApplicationProtocolsMethod`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Jre22Compat()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addBootModulePath(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.
  `boolean`
  `canAccess(Object base, 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.
  `String`
  `getModuleName(Class<?> type)`
  What is the module of the given class?
  `SocketAddress`
  `getUnixDomainSocketAddress(String path)`
  Return Unix domain socket address for given path.
  `boolean`
  `isExported(Class<?> type)`
  Is the given class in an exported package?
  `boolean`
  `isInstanceOfInaccessibleObjectException(Throwable t)`
  Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.
  `boolean`
  `jarFileIsMultiRelease(JarFile jarFile)`
  Is this JarFile a multi-release JAR file.
  `JarFile`
  `jarFileNewInstance(File f)`
  Creates a new JarFile instance.
  `int`
  `jarFileRuntimeMajorVersion()`
  `ServerSocketChannel`
  `openUnixDomainServerSocketChannel()`
  Create server socket channel using the Unix domain socket ProtocolFamily.
  `SocketChannel`
  `openUnixDomainSocketChannel()`
  Create socket channel using the Unix domain socket ProtocolFamily.

  ### Methods inherited from class org.apache.tomcat.util.compat.Jre21Compat

  `callAs, createVirtualThreadBuilder, threadBuilderStart`

  ### Methods inherited from class org.apache.tomcat.util.compat.Jre19Compat

  `getExecutor`

  ### Methods inherited from class org.apache.tomcat.util.compat.JreCompat

  `getApplicationProtocol, getInstance, isAlpnSupported, isGraalAvailable, isJre11Available, isJre16Available, isJre19Available, isJre21Available, isJre22Available, isJre9Available, jarFileNewInstance, setApplicationProtocols`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### Jre22Compat

    public Jre22Compat()

- ## Method Details

  - ### getUnixDomainSocketAddress

    public SocketAddress getUnixDomainSocketAddress(String path)
    Description copied from class: `JreCompat`
    Return Unix domain socket address for given path.
    Overrides:
      `getUnixDomainSocketAddress` in class `JreCompat`
    Parameters:
      `path` - The path
    Returns:
      the socket address

  - ### openUnixDomainServerSocketChannel

    public ServerSocketChannel openUnixDomainServerSocketChannel()
    Description copied from class: `JreCompat`
    Create server socket channel using the Unix domain socket ProtocolFamily.
    Overrides:
      `openUnixDomainServerSocketChannel` in class `JreCompat`
    Returns:
      the server socket channel

  - ### openUnixDomainSocketChannel

    public SocketChannel openUnixDomainSocketChannel()
    Description copied from class: `JreCompat`
    Create socket channel using the Unix domain socket ProtocolFamily.
    Overrides:
      `openUnixDomainSocketChannel` in class `JreCompat`
    Returns:
      the socket channel

  - ### isInstanceOfInaccessibleObjectException

    public boolean isInstanceOfInaccessibleObjectException(Throwable t)
    Description copied from class: `JreCompat`
    Test if the provided exception is an instance of java.lang.reflect.InaccessibleObjectException.
    Overrides:
      `isInstanceOfInaccessibleObjectException` in class `JreCompat`
    Parameters:
      `t` - The exception to test
    Returns:
      `true` if the exception is an instance of InaccessibleObjectException, otherwise `false`

  - ### disableCachingForJarUrlConnections

    public void disableCachingForJarUrlConnections() throws 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 class `JreCompat`
    Throws:
      `IOException` - If a dummy JAR URLConnection can not be created

  - ### addBootModulePath

    public void addBootModulePath(Deque<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 class `JreCompat`
    Parameters:
      `classPathUrlsToProcess` - The Deque to which the modules should be added

  - ### jarFileNewInstance

    public JarFile jarFileNewInstance(File f) throws 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 class `JreCompat`
    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

    public boolean jarFileIsMultiRelease(JarFile jarFile)
    Description copied from class: `JreCompat`
    Is this JarFile a multi-release JAR file.
    Overrides:
      `jarFileIsMultiRelease` in class `JreCompat`
    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 class `JreCompat`

  - ### canAccess

    public boolean canAccess(Object base, AccessibleObject accessibleObject)
    Description copied from class: `JreCompat`
    Is the accessibleObject accessible (as a result of appropriate module exports) on the provided instance?
    Overrides:
      `canAccess` in class `JreCompat`
    Parameters:
      `base` - The specific instance to be tested.
      `accessibleObject` - The method/field/constructor to be tested.
    Returns:
      {code true} if the AccessibleObject can be accessed otherwise {code false}

  - ### isExported

    public boolean isExported(Class<?> type)
    Description copied from class: `JreCompat`
    Is the given class in an exported package?
    Overrides:
      `isExported` in class `JreCompat`
    Parameters:
      `type` - The class to test
    Returns:
      Always `true` for Java 8. `true` if the enclosing package is exported for Java 9+

  - ### getModuleName

    public String getModuleName(Class<?> type)
    Description copied from class: `JreCompat`
    What is the module of the given class?
    Overrides:
      `getModuleName` in class `JreCompat`
    Parameters:
      `type` - The class to test
    Returns:
      Always `true` for Java 8. `true` if the enclosing package is exported for Java 9+