com.streambase.sb.client

## Class StreamBaseURI

- java.lang.Object
- - com.streambase.sb.client.StreamBaseURI

-     public final class StreamBaseURI
      extends Object

  A Uniform Resource Identifier containing information necessary to connect to a StreamBase server. For more information about URIs, please see the StreamBase documentation.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_CONTAINER` The default container ("default")
    `static String` | `DEFAULT_HOST` The default StreamBase server ("localhost").
    `static int` | `DEFAULT_PORT` The default StreamBase TCP port number (10000).
    `static StreamBaseURI` | `DEFAULT_URI` The default URI (sb://localhost:10000/) pointing to localhost, no container, port 10000).
    `static String` | `KEY_PASS_PARAM` URI parameter used for the passphrase for a key within a keystore for SSL with client authentication (2-way ssl).
    `static String` | `KEYSTORE_PARAM` URI parameter used for a keystore for SSL with client authentication (2-way ssl).
    `static String` | `KEYSTORE_PASS_PARAM` URI parameter used for the passphrase for a keystore for SSL with client authentication (2-way ssl).
    `static String` | `NO_CONTAINER` No container specified ("")
    `static String` | `PASSWORD_PARAM` URI parameter used for password.
    `static String` | `QT_PARAM` URI parameter used internally as part of container table connection logic
    `static String` | `SECONDARY_HOST_PARAM` URI parameter used for secondary host name.
    `static String` | `SECONDARY_PORT_PARAM` URI parameter used for secondary port name.
    `static String` | `STREAM_PARAM` URI parameter used internally (only) as part of container stream connection logic
    `static String` | `SYSTEM_CONTAINER` The system container ("system")
    `static String` | `URI_ENVIRONMENT_VARIABLE` That environment variable used to define the uri to the server
    `static String` | `URI_PROPERTY_NAME` That java property used to define the uri to the server
    `static String` | `USER_PARAM` URI parameter used for username.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StreamBaseURI(String uri)` Constructor that parses a StreamBase URI passed in as a String.
    `StreamBaseURI(String host, int port)` Constructor roughly equivalent to `new StreamBaseURI("sb://host:port/")`.
    `StreamBaseURI(String host, int port, Map<String,String> params)` Equivalent to StreamBaseURI(host, NO_CONTAINER, port, params)
    `StreamBaseURI(String host, String container, int port)` Constructor roughly equivalent to `new StreamBaseURI("sb://host:port/container")`.
    `StreamBaseURI(String host, String container, int port, boolean useSSL, Map<String,String> params)` Constructor roughly equivalent to `new StreamBaseURI("scheme://host:port/container;param1=value1(...)")`, where scheme is either "sb" or "sbs" depending on whether useSSL is true or false, and param1=value1(...) stands for every entry in the `params` Map
    `StreamBaseURI(String host, String container, int port, Map<String,String> params)` Equivalent to StreamBaseURI(host, container, port, false, params)
    `StreamBaseURI(String host, String container, int port, String user, String password)` Constructor roughly equivalent to `new StreamBaseURI("sb://host:port/container;user=user;password=password")`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object obj)` Compares this URI against the supplied one.
    `static StreamBaseURI` | `fromEnvironment()` Returns the URI found by searching the following property and environment variables: Using the string value found in the `streambase.uri` system property, if set Using the string value found in the `STREAMBASE_URI` environment variable, if set Using the string value found in the `STREAMBASE_SERVER` environment variable, if set `StreamBaseURI.DEFAULT_URI` if no value has been found above
    `StreamBaseURI` | `getBaseURI()` Return a copy of this URI without any params
    `String` | `getBasicAuthenticationString()` Returns a Base64-encoded username + password if authentication is enabled, or null otherwise.
    `String` | `getContainer()` Returns the container name component of the URI.
    `String` | `getHost()` Returns the host name component of the URI.
    `String` | `getKeyPassphrase()` Return the passphrase for the key within the keystore for the connection.
    `String` | `getKeystore()` Return the keystore for the connection.
    `String` | `getKeystorePassphrase()` Return the passphrase for the keystore for the connection.
    `int` | `getNumParameters()` Return the number of URI parameters
    `String` | `getParam(String key)` Returns a parameter with a given key, or null if none exists.
    `String` | `getParameter(String key)` Returns a parameter with a given key, or null if none exists.
    `Map<String,String>` | `getParams()` Returns an unmodifiable map of all parameters.
    `String` | `getPassword()` Return the password for the connection.
    `int` | `getPort()` Returns the port number.
    `String` | `getUser()` Return the user name for the connection.
    `static boolean` | `hasPrefix(String s)`
    `boolean` | `isSSL()`
    `static List<StreamBaseURI>` | `listFromEnvironment()` Returns the list of URIs found by searching the following property and environment variables for a comma separated URI list: Using the string value found in the `streambase.uri` system property, if set Using the string value found in the `STREAMBASE_URI` environment variable, if set Using the string value found in the `STREAMBASE_SERVER` environment variable, if set `StreamBaseURI.DEFAULT_URI` if no value has been above The supplied URIs must conform to a valid High Availability URI list, for example they must all reference the same container.
    `static List<StreamBaseURI>` | `listFromString(String uriStrings)` Parse a comma-separated list of URIs in a string into a List<StreamBaseURI>.
    `String` | `toString()` Returns a string representation of the URI.
    `static String` | `toString(Collection<StreamBaseURI> uris)` Create a string representation of a list of uris.

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

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

- - ### Field Detail

    - #### DEFAULT_PORT

          public static final int DEFAULT_PORT

      The default StreamBase TCP port number (10000).
      See Also:
        Constant Field Values

    - #### DEFAULT_HOST

          public static final String DEFAULT_HOST

      The default StreamBase server ("localhost").
      See Also:
        Constant Field Values

    - #### DEFAULT_CONTAINER

          public static final String DEFAULT_CONTAINER

      The default container ("default")
      See Also:
        Constant Field Values

    - #### SYSTEM_CONTAINER

          public static final String SYSTEM_CONTAINER

      The system container ("system")
      See Also:
        Constant Field Values

    - #### NO_CONTAINER

          public static final String NO_CONTAINER

      No container specified ("")
      See Also:
        Constant Field Values

    - #### DEFAULT_URI

          public static final StreamBaseURI DEFAULT_URI

      The default URI (sb://localhost:10000/) pointing to localhost, no container, port 10000).

    - #### USER_PARAM

          public static final String USER_PARAM

      URI parameter used for username.
      See Also:
        Constant Field Values

    - #### PASSWORD_PARAM

          public static final String PASSWORD_PARAM

      URI parameter used for password.
      See Also:
        Constant Field Values

    - #### SECONDARY_HOST_PARAM

          public static final String SECONDARY_HOST_PARAM

      URI parameter used for secondary host name. ("host2")
      See Also:
        Constant Field Values

    - #### SECONDARY_PORT_PARAM

          public static final String SECONDARY_PORT_PARAM

      URI parameter used for secondary port name. ("port2")
      See Also:
        Constant Field Values

    - #### KEYSTORE_PARAM

          public static final String KEYSTORE_PARAM

      URI parameter used for a keystore for SSL with client authentication (2-way ssl). ("keystore")
      See Also:
        Constant Field Values

    - #### KEYSTORE_PASS_PARAM

          public static final String KEYSTORE_PASS_PARAM

      URI parameter used for the passphrase for a keystore for SSL with client authentication (2-way ssl). ("keystorepass")
      See Also:
        Constant Field Values

    - #### KEY_PASS_PARAM

          public static final String KEY_PASS_PARAM

      URI parameter used for the passphrase for a key within a keystore for SSL with client authentication (2-way ssl). ("keypass")
      See Also:
        Constant Field Values

    - #### STREAM_PARAM

          public static final String STREAM_PARAM

      URI parameter used internally (only) as part of container stream connection logic
      See Also:
        Constant Field Values

    - #### QT_PARAM

          public static final String QT_PARAM

      URI parameter used internally as part of container table connection logic
      See Also:
        Constant Field Values

    - #### URI_PROPERTY_NAME

          public static final String URI_PROPERTY_NAME

      That java property used to define the uri to the server
      See Also:
        Constant Field Values

    - #### URI_ENVIRONMENT_VARIABLE

          public static final String URI_ENVIRONMENT_VARIABLE

      That environment variable used to define the uri to the server
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### StreamBaseURI

          public StreamBaseURI(String uri)
                        throws URIException

      Constructor that parses a StreamBase URI passed in as a String. The format for a StreamBase URI is:

      `scheme://host[:port][/container][/][[;param=value]...]`

      - scheme: use `sb` or `sbs`, the latter to enable a secure SSL connection
      - host: an ip address or hostname of the target server
      - port: (optional) target TCP port number, defaults to `DEFAULT_PORT`
      - container: (optional) target container name, defaults to `NO_CONTAINER`
      - ;param=value: (optional) each occurrence sets a key/value parameter mapping for additional arguments; unknown arguments result in a URIException being thrown. Refer to the documentation or the public constants defined in StreamBaseURI ending in _PARAM for valid parameter names
      Parameters:
        `uri` - a URI to parse
      Throws:
        `URIException` - if the URI syntax is invalid, or if an unknown parameter name is found

    - #### StreamBaseURI

          public StreamBaseURI(String host,
                               String container,
                               int port)

      Constructor roughly equivalent to `new StreamBaseURI("sb://host:port/container")`.
      Parameters:
        `host` - a host name to connect to
        `container` - a container to connect to
        `port` - a port number to connect to
      See Also:
        `StreamBaseURI.StreamBaseURI(String)`

    - #### StreamBaseURI

          public StreamBaseURI(String host,
                               int port)

      Constructor roughly equivalent to `new StreamBaseURI("sb://host:port/")`.
      Parameters:
        `host` - a host name to connect to
        `port` - a port number to connect to
      See Also:
        `StreamBaseURI.StreamBaseURI(String)`

    - #### StreamBaseURI

          public StreamBaseURI(String host,
                               String container,
                               int port,
                               String user,
                               String password)

      Constructor roughly equivalent to `new StreamBaseURI("sb://host:port/container;user=user;password=password")`.
      Parameters:
        `host` - a host name to connect to
        `container` - a container to connect to
        `port` - a port number to connect to
        `user` - a user name for the connection
        `password` - a password for the connection
      See Also:
        `StreamBaseURI.StreamBaseURI(String)`

    - #### StreamBaseURI

          public StreamBaseURI(String host,
                               String container,
                               int port,
                               boolean useSSL,
                               Map<String,String> params)

      Constructor roughly equivalent to `new StreamBaseURI("scheme://host:port/container;param1=value1(...)")`, where scheme is either "sb" or "sbs" depending on whether useSSL is true or false, and param1=value1(...) stands for every entry in the `params` Map
      Parameters:
        `host` - a host name to connect to
        `container` - a container to connect to
        `port` - a port number to connect to
        `useSSL` - whether to use an SSL connection to the server or not
        `params` - a Map of String parameters for the URI, or null to indicate no parameters. This map is not checked for correctness.

    - #### StreamBaseURI

          public StreamBaseURI(String host,
                               String container,
                               int port,
                               Map<String,String> params)

      Equivalent to StreamBaseURI(host, container, port, false, params)
      Parameters:
        `host` - a host name to connect to
        `container` - a container to connect to
        `port` - a port number to connect to
        `params` - a Map of String parameters for the URI, or null to indicate no parameters. This map is not checked for correctness.
      See Also:
        `StreamBaseURI.StreamBaseURI(String, String, int, boolean, Map)`

    - #### StreamBaseURI

          public StreamBaseURI(String host,
                               int port,
                               Map<String,String> params)

      Equivalent to StreamBaseURI(host, NO_CONTAINER, port, params)
      Parameters:
        `host` - a host name to connect to
        `port` - a port number to connect to
        `params` - a Map of String parameters for the URI, or null to indicate no parameters. This map is not checked for correctness.
      See Also:
        `StreamBaseURI.StreamBaseURI(String, String, int, Map)`

  - ### Method Detail

    - #### listFromString

          public static List<StreamBaseURI> listFromString(String uriStrings)
                                                    throws URIException

      Parse a comma-separated list of URIs in a string into a List<StreamBaseURI>. The string of URIs supplied must conform to a valid HA URI list, for example they must all reference the same container.
      Parameters:
        `uriStrings` -
      Returns:
        list of StreamBaseURI's
      Throws:
        `URIException`

    - #### toString

          public static String toString(Collection<StreamBaseURI> uris)

      Create a string representation of a list of uris.
      Parameters:
        `uris` -
      Returns:
        string representation of a list of uris
      Since:
        6.1

    - #### toString

          public String toString()

      Returns a string representation of the URI.
      Overrides:
        `toString` in class `Object`

    - #### getBaseURI

          public StreamBaseURI getBaseURI()

      Return a copy of this URI without any params

    - #### getHost

          public String getHost()

      Returns the host name component of the URI.

    - #### getContainer

          public String getContainer()

      Returns the container name component of the URI. May return an empty string if no container was specified.

    - #### getPort

          public int getPort()

      Returns the port number.

    - #### getParam

          public String getParam(String key)

      Returns a parameter with a given key, or null if none exists.
      Parameters:
        `key` - the key for the parameter or null if not found

    - #### getParameter

          public String getParameter(String key)

      Returns a parameter with a given key, or null if none exists.
      Parameters:
        `key` - the key for the parameter or null if not found

    - #### getNumParameters

          public int getNumParameters()

      Return the number of URI parameters
      Returns:
        number of URI parameters

    - #### getParams

          public Map<String,String> getParams()

      Returns an unmodifiable map of all parameters.

    - #### getUser

          public String getUser()

      Return the user name for the connection.
      Returns:
        The user name for the connection, or `null` if none.

    - #### getPassword

          public String getPassword()

      Return the password for the connection.
      Returns:
        The password for the connection, or `null` if none.

    - #### getKeystore

          public String getKeystore()

      Return the keystore for the connection.
      Returns:
        The keystore for the connection, or `null` if none.

    - #### getKeystorePassphrase

          public String getKeystorePassphrase()

      Return the passphrase for the keystore for the connection.
      Returns:
        The passphrase for the keystore for the connection, or `null` if none.

    - #### getKeyPassphrase

          public String getKeyPassphrase()

      Return the passphrase for the key within the keystore for the connection.
      Returns:
        The passphrase for the key within the keystore for the connection, or `null` if none.
      Since:
        7.3.10

    - #### isSSL

          public boolean isSSL()

      Returns:
        true if this is an SSL URI.

    - #### fromEnvironment

          public static StreamBaseURI fromEnvironment()
                                               throws URIException

      Returns the URI found by searching the following property and environment variables:
      1. Using the string value found in the `streambase.uri` system property, if set
      2. Using the string value found in the `STREAMBASE_URI` environment variable, if set
      3. Using the string value found in the `STREAMBASE_SERVER` environment variable, if set
      4. `StreamBaseURI.DEFAULT_URI` if no value has been found above
      Throws:
        `URIException` - if the URI found in any of the search locations is invalid

    - #### listFromEnvironment

          public static List<StreamBaseURI> listFromEnvironment()
                                                         throws URIException

      Returns the list of URIs found by searching the following property and environment variables for a comma separated URI list:
      1. Using the string value found in the `streambase.uri` system property, if set
      2. Using the string value found in the `STREAMBASE_URI` environment variable, if set
      3. Using the string value found in the `STREAMBASE_SERVER` environment variable, if set
      4. `StreamBaseURI.DEFAULT_URI` if no value has been above
      The supplied URIs must conform to a valid High Availability URI list, for example they must all reference the same container.
      Throws:
        `URIException` - if any URI found is invalid

    - #### getBasicAuthenticationString

          public String getBasicAuthenticationString()

      Returns a Base64-encoded username + password if authentication is enabled, or null otherwise.

    - #### equals

          public boolean equals(Object obj)

      Compares this URI against the supplied one. Note that the host names must textually match exactly (i.e., no cleverness is applied to implement "host equality").
      Overrides:
        `equals` in class `Object`

    - #### hasPrefix

          public static boolean hasPrefix(String s)

      Parameters:
        `s` -
      Returns:
        true iff the supplied string looks like the beginning of a StreamBase URI

Copyright © 2015–2018 Cloud Software Group, Inc.. All rights reserved.