ContextProperties (Java Application API for IBM Streams)
Date: 2020-08-07

com.ibm.streamsx.topology.context

## Interface ContextProperties

-     public interface ContextProperties

  Properties that can be specified when submitting the topology to a context.
  See Also:
    `StreamsContext.submit(com.ibm.streamsx.topology.Topology, java.util.Map)`, `JobProperties`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `_SPLMM_OPTIONS`
    `static java.lang.String` | `APP_DIR` Location of the generated application directory when creating a Streams application bundle.
    `static java.lang.String` | `BUILD_SERVICE_URL` Set URL for remote build service.
    `static java.lang.String` | `COMPILE_INSTALL_DIR` Override IBM Streams install directory for bundle compilation, defaults to $STREAMS_INSTALL.
    `static java.lang.String` | `FORCE_REMOTE_BUILD` Flag to be supplied to force the compilation to occur on the build service associated with a Streaming Analytics service.
    `static java.lang.String` | `KEEP_ARTIFACTS` Keep any intermediate artifacts.
    `static java.lang.String` | `SC_OPTIONS` Options to be passed to IBM Streams sc command.
    `static java.lang.String` | `SSL_VERIFY` Set SSL certification verification state.
    `static java.lang.String` | `STREAMS_CONNECTION` Deprecated. Not supported. Use `STREAMS_INSTANCE`.
    `static java.lang.String` | `STREAMS_INSTANCE` Instance connection to IBM Streams REST api to be used for submission.
    `static java.lang.String` | `SUBMISSION_PARAMS` Submission parameters to be supplied to the topology when submitted for `DISTRIBUTED`, `STANDALONE` or `ANALYTIC_SERVICE` execution.
    `static java.lang.String` | `TOOLKIT_DIR` Location of the generated toolkit root.
    `static java.lang.String` | `TRACING_LEVEL` Trace level for a `StreamsContext.Type.DISTRIBUTED` or `StreamsContext.Type.STANDALONE` application.
    `static java.lang.String` | `VMARGS` Java virtual machine arguments.

- - ### Field Detail

    - #### APP_DIR

          static final java.lang.String APP_DIR

      Location of the generated application directory when creating a Streams application bundle. If not supplied to the in the configuration passed into `StreamsContext.submit(com.ibm.streamsx.topology.Topology, java.util.Map)` then a unique location will be used, and placed into the configuration with this key. The value should be a `String` that is the absolute path of the application directory.
      See Also:
        Constant Field Values

    - #### TOOLKIT_DIR

          static final java.lang.String TOOLKIT_DIR

      Location of the generated toolkit root. If not supplied to the in the configuration passed into `StreamsContext.submit(com.ibm.streamsx.topology.Topology, java.util.Map)` then a unique location will be used, and placed into the configuration with this key. The value should be a `String` that is the absolute path of the toolkit directory.
      See Also:
        Constant Field Values

    - #### VMARGS

          static final java.lang.String VMARGS

      Java virtual machine arguments. These arguments are added to all invocations of Java virtual machines for the topology. For any SPL invoked operators the invocation must have been through methods in `JavaPrimitive`.
      Setting the classpath is not supported.

      For example, setting the maximum heap memory to 2GB:

              List<String> vmArgs = new ArrayList<>();
              vmArgs.add("-Xmx2048m");
              config.put(ContextProperties.VMARGS, vmArgs);

      Argument is a `List<String>`.
      See Also:
        Constant Field Values

    - #### KEEP_ARTIFACTS

          static final java.lang.String KEEP_ARTIFACTS

      Keep any intermediate artifacts. By default intermediate artifacts are deleted after submission of a topology. For example when create an IBM Streams application bundle the intermediate SPL code and toolkit are deleted. Keeping the artifacts can aid in debugging. Argument is a `Boolean`.
      See Also:
        Constant Field Values

    - #### TRACING_LEVEL

          static final java.lang.String TRACING_LEVEL

      Trace level for a `StreamsContext.Type.DISTRIBUTED` or `StreamsContext.Type.STANDALONE` application. Value is an instance of `java.util.logging.Level` including instances of `com.ibm.streams.operator.logging.TraceLevel`.
      See Also:
        Constant Field Values

    - #### COMPILE_INSTALL_DIR

          static final java.lang.String COMPILE_INSTALL_DIR

      Override IBM Streams install directory for bundle compilation, defaults to $STREAMS_INSTALL. Argument is a String.
      See Also:
        Constant Field Values

    - #### SUBMISSION_PARAMS

          static final java.lang.String SUBMISSION_PARAMS

      Submission parameters to be supplied to the topology when submitted for `DISTRIBUTED`, `STANDALONE` or `ANALYTIC_SERVICE` execution.

      The property value is a `Map<String,Object>` where the key is the parameter name and the value is the parameter value.

      e.g.,

           Supplier<Integer> topology.createSubmissionParameter("p1", 5);
           ...

           ContextProperties config = new HashMap<>();
           Map<String,Object> params = new HashMap<>();
           params.put("p1", 10);
           config.put(SUBMISSION_PARAMS, params);

           ... StreamsContextFactory.getStreamsContext(DISTRIBUTED)
                        .submit(topology, config);

      See `Topology.createSubmissionParameter(String, Class)`
      See Also:
        Constant Field Values

    - #### FORCE_REMOTE_BUILD

          static final java.lang.String FORCE_REMOTE_BUILD

      Flag to be supplied to force the compilation to occur on the build service associated with a Streaming Analytics service. Currently only be used in conjunction with the `STREAMING_ANALYTICS_SERVICE` context.

      Its values can be `true` and `false`. If true, it will force remote compilation when possible. If false (or unset), the parameter will have no impact.

      If the `FORCE_REMOTE` parameter is supplied with a value of `true`, the `SERVICE_NAME` and `VCAP_SERVICES` parameters must also supplied. Otherwise, an error will be thrown.

      See Also:
        Constant Field Values

    - #### STREAMS_CONNECTION

          static final java.lang.String STREAMS_CONNECTION

      Deprecated. Not supported. Use `STREAMS_INSTANCE`.
      Ignored.
      Since:
        1.11
      See Also:
        `STREAMS_INSTANCE`, Constant Field Values

    - #### STREAMS_INSTANCE

          static final java.lang.String STREAMS_INSTANCE

      Instance connection to IBM Streams REST api to be used for submission.
      Only supported for `distributed`.

      The value in the configuration map must be an instance of `Instance` obtained from `Instance.of_endpoint()` and will be used for job submission.

      Since:
        1.13
      See Also:
        Constant Field Values

    - #### BUILD_SERVICE_URL

          static final java.lang.String BUILD_SERVICE_URL

      Set URL for remote build service. For Cloud Pak for Data standalone configurations the build service used for remote builds is given by this URL. This is ignored by other contexts or configurations.
      Since:
        1.13
      See Also:
        Constant Field Values

    - #### SSL_VERIFY

          static final java.lang.String SSL_VERIFY

      Set SSL certification verification state. If set as `true` (the default) then SSL certificate verification is enabled when using a REST connection to a IBM Streams distributed instance.
      Otherwise if set to `false` then SSL certification verification does not occur. This is useful for test distributed instances or the IBM Streams Quick Start edition where a self-signed certificate is used. If an `Instance` is passed in to a submission context using `STREAMS_INSTANCE` then this value is ignored.
      Since:
        1.11
      See Also:
        Constant Field Values

    - #### SC_OPTIONS

          static final java.lang.String SC_OPTIONS

      Options to be passed to IBM Streams sc command.
      A topology is compiled into a Streams application bundle (`sab`) using the SPL compiler `sc`.
      Additional options to be passed to `sc` may be set using this key. The value can be a single string option (e.g. `--c++std=c++11` to select C++ 11 compilation) or a list of strings for multiple options.

      Options that modify the requested submission context (e.g. setting a different main composite) or deprecated options should not be specified.

      Since:
        1.12.10
      See Also:
        `https://www.ibm.com/support/knowledgecenter/en/SSCRJU_4.3.0/com.ibm.streams.ref.doc/doc/sc.html`, Constant Field Values

    - #### _SPLMM_OPTIONS

          static final java.lang.String _SPLMM_OPTIONS

      See Also:
        Constant Field Values