Class MessageUtils

java.lang.Object
org.frankframework.util.MessageUtils

public class MessageUtils extends Object
  • Field Details

  • Method Details

    • getContext

      public static MessageContext getContext(jakarta.servlet.http.HttpServletRequest request)
      Fetch metadata from the HttpServletRequest such as Content-Length, Content-Type (mimetype + charset)
    • getContext

      public static MessageContext getContext(Iterator<jakarta.xml.soap.MimeHeader> mimeHeaders)
    • getContext

      public static MessageContext getContext(org.apache.http.HttpResponse httpResponse)
    • parseContentAsMessage

      public static Message parseContentAsMessage(jakarta.servlet.http.HttpServletRequest request) throws IOException
      If content is present (POST/PUT) one of the following headers must be set:
      Content-Length / Transfer-Encoding
      If neither header is present, or the size is 0 a nullMessage will be returned.
      Throws:
      IOException
      See Also:
    • parse

      public static Message parse(jakarta.xml.soap.AttachmentPart soapAttachment) throws jakarta.xml.soap.SOAPException
      Throws:
      jakarta.xml.soap.SOAPException
    • computeDecodingCharset

      public static Charset computeDecodingCharset(Message message) throws IOException
      Reads the first 10k bytes of (binary) messages to determine the charset when not present in the MessageContext.
      Throws:
      IOException - when it cannot read the first 10k bytes.
    • computeDecodingCharset

      public static Charset computeDecodingCharset(Message message, int confidence) throws IOException
      Reads the first 10k bytes of (binary) messages to determine the charset when not present in the MessageContext.
      Parameters:
      confidence - percentage required to successfully determine the charset.
      Throws:
      IOException - when it cannot read the first 10k bytes.
    • getMimeType

      public static org.springframework.util.MimeType getMimeType(Message message)
      Returns the MimeType if present in the MessageContext.
    • isMimeType

      public static boolean isMimeType(Message message, org.springframework.util.MimeType compareTo)
    • computeMimeType

      public static org.springframework.util.MimeType computeMimeType(Message message)
      Computes the MimeType when not available.

      NOTE: This is a resource intensive operation, the first 64k is being read and stored in memory.

    • computeMimeType

      public static org.springframework.util.MimeType computeMimeType(Message message, String filename)
      Computes the MimeType when not already available, attempts to resolve the Charset when of type TEXT.

      When there is no filename for the Message and Apache TIKA deduces mime type text/plain, a heuristic is applied. If the message starts with '<' the mime type application/xml is returned. If the message starts with '[' or invalid input: '{@literal '{'} the mime type {@literal application/json} is returned. Otherwise it will be {@literal text/plain} as Apache TIKA returned. </p> @ff.note This might be a resource intensive operation, the first kilobytes of the message are potentially being read and stored in memory.'

    • generateMD5Hash

      public static String generateMD5Hash(Message message)
      Resource intensive operation, preserves the message and calculates an MD5 hash over the entire message.
    • generateCRC32

      public static Long generateCRC32(Message message)
      Resource intensive operation, preserves the message and calculates an CRC32 checksum over the entire message.
    • computeSize

      public static long computeSize(Message message)
      Resource intensive operation, calculates the binary size of a Message.
    • asString

      @Deprecated @Nullable public static String asString(@Nullable Object object) throws IOException
      Deprecated.
      Convert an object to a string. Does not close object when it is of type Message or MessageWrapper.
      Throws:
      IOException
    • convertToJsonMessage

      @Nonnull public static Message convertToJsonMessage(@Nonnull Object value) throws IOException, XmlException
      Convert input value to a message in JSON format and mimetype. If the input value is already JSON, then it is returned as-is. If the value is in XML format, it will be converted to JSON using UtilityTransformerPools.getXml2JsonTransformerPool(). Otherwise the string-value of the input-value will be wrapped as JSON as {"value": value}.
      Throws:
      IOException
      XmlException
    • convertToJsonMessage

      @Nonnull public static Message convertToJsonMessage(@Nonnull Object value, @Nonnull String valueName) throws IOException, XmlException
      Convert input value to a message in JSON format and mimetype. If the input value is already JSON, then it is returned as-is. If the value is in XML format, it will be converted to JSON using UtilityTransformerPools.getXml2JsonTransformerPool(). Otherwise the string-value of the input-value will be wrapped as JSON as {"valueName": value}, using parameter valueName as name of the object.
      Throws:
      IOException
      XmlException