Class IOUtils

java.lang.Object
org.atmosphere.util.IOUtils

public class IOUtils extends Object
  • Constructor Details

    • IOUtils

      public IOUtils()
  • Method Details

    • deliver

      public static void deliver(Object o, DeliverTo deliverConfig, DeliverTo.DELIVER_TO defaultDeliver, AtmosphereResource r)

      Delivers the given message according to the specified invalid input: 'configuration). </p>'

      Parameters:
      o - the message
      deliverConfig - the annotation state
      defaultDeliver - the strategy applied if deliverConfig is null
      r - the resource
    • readEntirely

      public static Object readEntirely(AtmosphereResource r) throws IOException
      Throws:
      IOException
    • isBodyBinary

      public static boolean isBodyBinary(AtmosphereRequest request)
    • isBodyEmpty

      public static boolean isBodyEmpty(Object o)
    • readEntirelyAsString

      public static StringBuilder readEntirelyAsString(AtmosphereResource r) throws IOException
      Throws:
      IOException
    • readEntirelyAsByte

      public static byte[] readEntirelyAsByte(AtmosphereResource r) throws IOException
      Throws:
      IOException
    • forceReadEntirelyAsByte

      public static byte[] forceReadEntirelyAsByte(AtmosphereResource r) throws IOException
      Reads request body as bytes without respect ApplicationConfig.READ_GET_BODY parameter
      Throws:
      IOException
    • guestServletPath

      public static String guestServletPath(AtmosphereConfig config)
    • guestRawServletPath

      public static String guestRawServletPath(AtmosphereConfig config)
    • getCleanedServletPath

      public static String getCleanedServletPath(String fullServletPath)
      Used to remove trailing slash and wildcard from a servlet path.

      Examples :
      - "/foo/" becomes "/foo"
      - "foo/bar" becomes "/foo/bar"
      Parameters:
      fullServletPath - : Servlet mapping
      Returns:
      Servlet mapping without trailing slash and wildcard
    • loadClass

      public static Class<?> loadClass(Class<?> thisClass, String className) throws Exception
      Loading the specified class using some heuristics to support various containers The order of preferece is: 1. Thread.currentThread().getContextClassLoader() 2. Class.forName 3. thisClass.getClassLoader()
      Parameters:
      thisClass -
      className -
      Returns:
      Throws:
      Exception
    • isAtmosphere

      public static boolean isAtmosphere(String className)
    • readServiceFile

      public static Map<String,AtmosphereFramework.MetaServiceAction> readServiceFile(String path)

      This method reads the given file stored under "META-INF/services" and accessed through the framework's class loader to specify a list of actions to be done on different service classes (AtmosphereInterceptor, BroadcastFilter, etc).

      The file content should follows the following format:

       INSTALL
       com.mycompany.MyInterceptor
       com.mycompany.MyFilter
       EXCLUDE
       org.atmosphere.interceptor.HeartbeatInterceptor
       

      If you don't specify any AtmosphereFramework.MetaServiceAction before a class, then default action will be AtmosphereFramework.MetaServiceAction.INSTALL.

      Important note: you must specify a class declared inside a package. Since creating classes in the source root is a bad practice, the method does not deal with it to improve its performances.

      Parameters:
      path - the service file to read
      Returns:
      the map associating class to action
    • close

      public static void close(Closeable... closeableArray)

      Tries to close the given objects and log the IOException at INFO level to make the code more readable when we assume that the IOException won't be managed.

      Also ignore null parameters.

      Parameters:
      closeableArray - the objects to close
    • realPath

      public static String realPath(jakarta.servlet.ServletContext servletContext, String targetPath) throws MalformedURLException
      Throws:
      MalformedURLException