Class URISupport

java.lang.Object
org.apache.activemq.artemis.utils.uri.URISupport

public class URISupport extends Object
Utility class that provides methods for parsing URI's

This class can be used to split composite URI's into their component parts and is used to extract any URI options from each URI in order to set specific properties on Beans.

(copied from ActiveMQ Classic)

  • Constructor Details

    • URISupport

      public URISupport()
  • Method Details

    • appendParameters

      public static StringBuilder appendParameters(StringBuilder sb, Map<String,String> parameters)
    • parseQuery

      public static Map<String,String> parseQuery(String uri)
      Give a URI break off any URI options and store them in a Key / Value Mapping.
      Parameters:
      uri - The URI whose query should be extracted and processed.
      Returns:
      A Mapping of the URI options
    • containsQuery

      public static boolean containsQuery(String uri)
    • containsQuery

      public static boolean containsQuery(SimpleString uri)
    • parseParameters

      public static Map<String,String> parseParameters(URI uri) throws URISyntaxException
      Given a URI parse and extract any URI query options and return them as a Key / Value mapping.

      This method differs from the parseQuery(String) method in that it handles composite URI types and will extract the URI options from the outermost composite URI.

      Parameters:
      uri - The URI whose query should be extracted and processed.
      Returns:
      A Mapping of the URI options
      Throws:
      URISyntaxException
    • applyParameters

      public static URI applyParameters(URI uri, Map<String,String> queryParameters) throws URISyntaxException
      Given a Key / Value mapping create and append a URI query value that represents the mapped entries, return the newly updated URI that contains the value of the given URI and the appended query value.
      Parameters:
      uri - The source URI that will have the Map entries appended as a URI query value.
      queryParameters - The Key / Value mapping that will be transformed into a URI query string.
      Returns:
      A new URI value that combines the given URI and the constructed query string
      Throws:
      URISyntaxException
    • applyParameters

      public static URI applyParameters(URI uri, Map<String,String> queryParameters, String optionPrefix) throws URISyntaxException
      Given a Key / Value mapping create and append a URI query value that represents the mapped entries, return the newly updated URI that contains the value of the given URI and the appended query value. Each entry in the query string is prefixed by the supplied optionPrefix string.
      Parameters:
      uri - The source URI that will have the Map entries appended as a URI query value.
      queryParameters - The Key / Value mapping that will be transformed into a URI query string.
      optionPrefix - A string value that when not null or empty is used to prefix each query option key.
      Returns:
      A new URI value that combines the given URI and the constructed query string
      Throws:
      URISyntaxException
    • removeQuery

      public static URI removeQuery(URI uri) throws URISyntaxException
      Removes any URI query from the given uri and return a new URI that does not contain the query portion.
      Parameters:
      uri - The URI whose query value is to be removed.
      Returns:
      a new URI that does not contain a query value
      Throws:
      URISyntaxException
    • createURIWithQuery

      public static URI createURIWithQuery(URI uri, String query) throws URISyntaxException
      Creates a URI with the given query, removing an previous query value from the given URI.
      Parameters:
      uri - The source URI whose existing query is replaced with the newly supplied one.
      query - The new URI query string that should be appended to the given URI.
      Returns:
      a new URI that is a combination of the original URI and the given query string
      Throws:
      URISyntaxException
    • parseComposite

      public static URISupport.CompositeData parseComposite(URI uri) throws URISyntaxException
      Given a composite URI, parse the individual URI elements contained within that URI and return a CompositeData instance that contains the parsed URI values.
      Parameters:
      uri - The target URI that should be parsed.
      Returns:
      a new CompositeData instance representing the parsed composite URI
      Throws:
      URISyntaxException
    • isCompositeURI

      public static boolean isCompositeURI(URI uri)
      Examine a URI and determine if it is a Composite type or not.
      Parameters:
      uri - The URI that is to be examined.
      Returns:
      true if the given URI is a Composite type
    • indexOfParenthesisMatch

      public static int indexOfParenthesisMatch(String str, int first) throws URISyntaxException
      Given a string and a position in that string of an open parend, find the matching close parend.
      Parameters:
      str - The string to be searched for a matching parend.
      first - The index in the string of the opening parend whose close value is to be searched.
      Returns:
      the index in the string where the closing parend is located
      Throws:
      URISyntaxException - fi the string does not contain a matching parend.
    • stripPrefix

      public static String stripPrefix(String value, String prefix)
      String the given prefix from the target string and return the result.
      Parameters:
      value - The string that should be trimmed of the given prefix if present.
      prefix - The prefix to remove from the target string.
      Returns:
      either the original string or a new string minus the supplied prefix if present
    • stripScheme

      public static URI stripScheme(URI uri) throws URISyntaxException
      Strip a URI of its scheme element.
      Parameters:
      uri - The URI whose scheme value should be stripped.
      Returns:
      The stripped URI value
      Throws:
      URISyntaxException
    • createQueryString

      public static String createQueryString(Map<String,? extends Object> options)
      Given a key / value mapping, create and return a URI formatted query string that is valid and can be appended to a URI. Query parameters in the string are sorted by key.
      Parameters:
      options - The Mapping that will create the new Query string.
      Returns:
      a URI formatted query string
    • createRemainingURI

      public static URI createRemainingURI(URI originalURI, Map<String,String> params) throws URISyntaxException
      Creates a URI from the original URI and the remaining parameters.

      When the query options of a URI are applied to certain objects the used portion of the query options needs to be removed and replaced with those that remain so that other parts of the code can attempt to apply the remainder or give an error is unknown values were given. This method is used to update a URI with those remainder values.

      Parameters:
      originalURI - The URI whose current parameters are remove and replaced with the given remainder value.
      params - The URI params that should be used to replace the current ones in the target.
      Returns:
      a new URI that matches the original one but has its query options replaced with the given ones
      Throws:
      URISyntaxException
    • changeScheme

      public static URI changeScheme(URI bindAddr, String scheme) throws URISyntaxException
      Given a URI value create and return a new URI that matches the target one but with the scheme value supplied to this method.
      Parameters:
      bindAddr - The URI whose scheme value should be altered.
      scheme - The new scheme value to use for the returned URI.
      Returns:
      a new URI that is a copy of the original except that its scheme matches the supplied one
      Throws:
      URISyntaxException
    • checkParenthesis

      public static boolean checkParenthesis(String str)
      Examine the supplied string and ensure that all parens appear as matching pairs.
      Parameters:
      str - The target string to examine.
      Returns:
      true if the target string has valid paren pairings