@jolokia.js/simple
Version:
Jolokia JavaScript ES Simple module
150 lines (149 loc) • 7.18 kB
TypeScript
import { BaseRequestOptions, ErrorCallback, ExecResponseValue, FetchErrorCallback, IJolokia, JolokiaConfiguration, JolokiaResponseValue, JolokiaStatic, ListResponseValue, ReadResponseValue, SearchResponseValue, VersionResponseValue, WriteResponseValue } from "jolokia.js";
/**
* IJolokiaSimple creation interface - either using `new` or using function call syntax.
*/
interface JolokiaSimpleStatic extends JolokiaStatic {
/** Creating {@link IJolokiaSimple} using function call syntax */
(config: JolokiaConfiguration | string): IJolokiaSimple;
/** Creating {@link IJolokiaSimple} using object creation syntax with `new` */
new (config: JolokiaConfiguration | string): IJolokiaSimple;
/**
* Utility method which checks whether a response is a version response
* @param resp response to check
* @return true if response is a success
*/
isVersionResponse(resp: unknown): resp is VersionResponseValue;
}
/**
* Jolokia client interface API extension with "simple" methods for selected Jolokia operations. These methods
* return (or pass via callbacks) the `value` from full Jolokia response.
*/
interface IJolokiaSimple extends IJolokia {
/**
* Reetrieves selected attributes of given `mbean`
* @param mbean MBean to get attributes from (for example `java.lang:type=Memory`)
* @param params attribute to get and possibly additional path parameters to further navigate into MBean's attribute
* (for example `committed`). If last parameter is an object, it is treated as SimpleRequestOptions
* used for request
* @returns attribute value (single or multiple, depending on the request)
*/
getAttribute(mbean: string, ...params: (string | string[] | SimpleRequestOptions)[]): Promise<ReadResponseValue>;
/**
* Sets an attribute on an MBean with additional `path` for nested value access
*
* @param mbean objectname of MBean to set
* @param attribute the attribute to set
* @param value the value to set
* @param params an optional _inner path_ which, when given, is used to determine an inner object to set the value on.
* If last parameter is an object, it is treated as SimpleRequestOptions used for request
* @return the previous value
*/
setAttribute(mbean: string, attribute: string, value: unknown, ...params: (string | string[] | SimpleRequestOptions)[]): Promise<WriteResponseValue>;
/**
* Executes a JMX operation and returns the result value
*
* @param mbean objectname of the MBean to operate on
* @param operation name of operation to execute. Can contain a signature in case overloaded
* operations are to be called (comma separated fully qualified argument types
* append to the operation name within parentheses)
* @param params one or more argument required for executing the operation. If last parameter is an object,
* it is treated as SimpleRequestOptions used for request
* @return the return value of the JMX operation.
*/
execute(mbean: string, operation: string, ...params: (unknown | SimpleRequestOptions)[]): Promise<ExecResponseValue>;
/**
* Search for MBean based on a pattern and return a reference to the list of found
* MBeans names (as string). If no MBean can be found, `null` is returned. For example,
*
* jolokia.search("java.lang:type=MemoryPool,*")
*
* searches all MBeans whose name are matching this pattern
*
* @param mbeanPattern pattern to search for
* @param opts opts options for `IJolokia.request()`
* @return an array with ObjectNames as string
*/
search(mbeanPattern: string, opts?: SimpleRequestOptions): Promise<SearchResponseValue>;
/**
* This method return the version of the agent and the Jolokia protocol
* version as part of an object. If available, server specific information
* like the application server's name are returned as well.
*
* @param opts
*/
version(opts?: SimpleRequestOptions): Promise<VersionResponseValue>;
/**
* Get all MBeans as registered at the specified server. A `path` can be
* specified in order to fetch only a subset of the information. When no path is
* given, the returned value has the following format
*
* {
* "<domain of the MBean>": {
* "<canonical property list of the MBean>": {
* "op": {
* "operation name": {
* "operation name": {
* "args": ["description", "of", "arguments"],
* "ret": "return type",
* "desc": "operation description"
* }
* }
* },
* "notif": {
* "notification name": {
* ...
* }
* },
* "attr": {
* "attribute name": {
* "rw": "false or true",
* "type": "attribute type",
* "desc": "attribute description"
* }
* },
* "class": "fully qualified class name",
* "descr": "description of the MBEan"
* }
* }
* }
*
* A complete path has the format:
*
* <domain>/<property list>/("attr"|"op"|"notif")/...
*
* (e.g. `java.lang/type=Memory/op/gc`). A path can be
* provided partially, in which case the remaining map/array is returned. The path given must
* be already properly escaped (i.e. slashes must be escaped like `!/` and exclamation
* marks like `!!`.
* See also the Jolokia Reference Manual for a more detailed discussion of inner paths and escaping.
*
* @param params optional path and parameters to be passed to `Jolokia.request()` (params is the last object argument)
*/
list(...params: (string[] | string | SimpleRequestOptions)[]): Promise<ListResponseValue>;
}
/**
* Simple version (where the value is passed instead of full response) of single response callback receiving
* JSON response (no index is passed)
*/
export type SimpleResponseCallback = (response: JolokiaResponseValue) => void;
/**
* "Simple" version of full {@link RequestOptions} type, where callback receives only the value instead of full
* response and doesn't receive response index.
*/
export type SimpleRequestOptions = BaseRequestOptions & {
/**
* A callback to be used by {@link IJolokia#request} method expecting "simple" value instead of full response. Also
* no response index is passed.
*/
success?: SimpleResponseCallback;
/**
* A callback (which may be called with error JSON response)
* to be used by {@link IJolokia#request} method for error response
*/
error?: "ignore" | ErrorCallback;
/**
* Fetch API error callback configured for single `request()` call
*/
fetchError?: "ignore" | FetchErrorCallback;
};
export type { IJolokiaSimple, JolokiaSimpleStatic };