The TIBCO StreamBase® Web Input Response Adapter allows the StreamBase application to respond to a REST call that was handled by the Web Input adapter. The adapter must be linked to a Web Input Adapter by selecting the Web Input Adapter and setting its Linked Web Input Response adapter name to this adapter. The Web Input Adapter will output an extra SB_ResponseId field that will contain a unique identifier for each REST request received, which is used to correlate the connection for the response. This adapter uses the ResponseId field to create a JSON-formatted response based on the input schema. Note the SB_ResponseId, SB_RequestData, and SB_ResponseData fields are removed from the JSON-formatted REST response.
This section describes the properties you can set for this adapter, using the various tabs of the Properties view in StreamBase Studio.
Name: Use this required field to specify or change the name of this instance of this component, which must be unique in the current EventFlow module. The name must contain only alphabetic characters, numbers, and underscores, and no hyphens or other special characters. The first character must be alphabetic or an underscore.
Adapter: A read-only field that shows the formal name of the adapter.
Class name: Shows the fully qualified class name that implements the functionality of this adapter. If you need to reference this class name elsewhere in your application, you can right-click this field and select Copy from the context menu to place the full class name in the system clipboard.
Start with application: If this field is set to Yes (default) or to a module parameter that evaluates to
true, this instance of this adapter starts as part of the JVM engine that runs this EventFlow fragment. If this field is set to
No or to a module parameter that evaluates to
false, the adapter instance is loaded with the engine, but does not start until you send an epadmin container resume command (or its sbadmin equivalent), or until you start the component with StreamBase Manager.
Enable Error Output Port: Select this check box to add an Error Port to this component. In the EventFlow canvas, the Error Port shows as a red output port, always the last port for the component. See Using Error Ports to learn about Error Ports.
Description: Optionally enter text to briefly describe the component's purpose and function. In the EventFlow canvas, you can see the description by pressing Ctrl while the component's tooltip is displayed.
Use the input port to determine the schema of the REST response. Any tuples entering this port are sent directly out on the output port untouched. The special fields SB_ResponseId, SB_RequestData, and SB_ResponseData are removed from the tuple before creating a JSON response for the HTTP Request.
The SB_ResponseData field allows for some control over the http response object such as adding cookies and headers. This tuple must conform to the following format with all fields being optional:
StatusCode (int) — If available this field is used to set the status code of the http response.
HttpHeaders (list(tuple)) — If available this field is used to set outbound http headers
Key (string) — The header name
Value (string) — The header value
Cookies (list(tuple)) — If available this field is used to set outbound cookies
Name (string) — Assigns a name to this cookie
Value (string) — Assigns a new value to this cookie
MaxAge (int) — Sets the maximum age in seconds for this cookie
Comment (string) — Specifies a comment that describes a cookie's purpose
Domain (string) — Specifies the domain within which this cookie should be presented
HttpOnly (boolean) — Marks or unmarks this cookie as HttpOnly
Path (string) — Specifies a path for the cookie to which the client should return the cookie
Secure (boolean) — Indicates to the browser whether the cookie should only be sent using a secure protocol, such as HTTPS or SSL
Version (int) — Sets the version of the cookie protocol that this cookie complies with
The adapter works with default configuration. If you want to modify how the adapter works, you can use the adapter configuration
section that starts with the
<adapter-configurations> element and containing one
<adapter-configuration name="webstreams"> element, which itself contains exactly one
<section name="webstreams"> element.
Only exactly one of these configurations is allowed per application, which all adapters will use if found.
This example configuration shows a web server that contains all available values.
|Enabled||true/false||If true the web server and all ports are started. If false no web server is started and all operators become no-ops.|
|Port||integer||The port the web server will listen on for connections.|
|IdleTimeoutMS||integer||The amount of time in milliseconds to wait for connections to send data.|
|OutputBufferSize||integer||Set the size of the buffer into which response content is aggregated before being sent to the client.|
|RequestHeaderSize||integer||Set the maximum size of a request header.|
|ResponseHeaderSize||integer||Set the maximum size of a response header.|
|SendServerVersion||true/false||If true, send the Server header in responses.|
|SendDateHeader||true/false||If true, include the date in HTTP headers.|
|SelectorThreads||int||The number of selector threads, or less than or equal to 0 for a default value. Selectors notice and schedule established connection that can make IO progress.|
|AcceptorThreads||int||The number of acceptor threads to use, or -1 for a default value. Acceptors accept new TCP/IP connections. If 0, then the selector threads are used to accept connections.|
|ReuseAddress||true/false||Whether the server socket reuses addresses.|
|LingerTime||integer||The linger time. Use -1 to disable.|
|GZipMimeTypes||string||Set the mime types associated with GZip requests. Blank or missing means do not use GZip.|
|WebSocketAsyncWriteTimeoutMS||integer||The time in milliseconds before a write command times out.|
|WebSocketIdleTimeoutMS||integer||The time in milliseconds before a web socket times out from idle behavior.|
|SecurePort||integer||Set the TCP/IP port used for CONFIDENTIAL and INTEGRAL redirections.|
|* SSLKeyStorePath||string||The file or URL of the SSL Key store.|
|* SSLKeyStorePassword||string||The password for the key store.|
|* SSLKeyStoreManagerPassword||string||The password (if any) for the specific key within the key store.|
|* SSLTrustStorePath||string||The file name or URL of the trust store location.|
|* SSLTrustStorePassword||string||The password for the trust store.|
* NOTE: Please refer to http://wiki.eclipse.org/Jetty/Howto/Configure_SSL when setting up SSL.