2010/12/15 - Apache Excalibur has been retired.

For more information, please explore the Attic.

XML Client - Instrumentable

The Instrumentable URL is used to obtain information about a particular Instrumentable, including any child Instrumentables or Instruments. By providing a recurse parameter, it is possible to request a full instrument tree in a single request.

Request

Request parameters are set as HTTP GET parameters when sending the request to the server.

For example, to request the instrument-manager Instrumentable, the following URL can be used:

Parameters

Name Data Type Description Notes
name String The fully qualified name of the Instrumentable being requested. Required.
packed boolean Normally XML is returned in a human-readable pretty format with indenting and line feeds. While this makes it easy to work with, it also adds several percent to the size of the XML returned to the client. By setting the packed parameter to "true", all white space is removed from the generated XML. Optional. Defaults to "false".
recurse boolean By default, the Instrumentable URL will return information about the Instrumentable itself along with any direct child Instrumentables and Instruments. By setting the recurse parameter to "true", the generated XML will recurse all the way down through the Instrument tree returning information about each object. This can be quite useful to initialize a client application with the current state of the Instrument tree. Once initialized, it is more efficient to monitor the state-version attributes and only request information which has changed. Optional. Defaults to "false".

Response XML

The XML received in the response will be UTF-8 encoded. The root node will be named instrumentable and have the following attributes.

Each child Instrumentable will be given a instrumentable child element and each Instrument will be given a instrument element. If the recurse parameter was specified in the request then each of the Instrumentables and Instruments will have all of the attributes and child elements described for the Instrumentable and Instrument URLs.

Attributes

Name Data Type Description
name String Fully qualified name of the Instrumentable. This name is used to reference the Instrumentable in other requests.
description String A human readable descripton of the Instrumentable. It is optionally specified in the Instrument configuration file and can not be modified from a client. If not configured then the description will be equal to the last token in the name.
state-version int Current State-Version of the Instrumentable. The state version will be incremented whenever there are any changes to the Instrumentable or any of its child elements. It can be compared with a last known state version to decide whether or not it is necessary to to request further details.

If the application is running long enough, the state version will eventially overflow. To makes sure your application will handle this case use an equality test when comparing state versions.
registered boolean Indicates whether or not the Instrumentable has been registered with the Instrument Manager after the application was started.

It is possible for the Instrumentable to exist but not to have been registered if the Instrumentable was declared in the Instrument configuration file or had any outstanding leases that survived from a previous application invocation.
configured boolean Indicates whether or not the Instrumentable has been declared in the Instrument configuration file.

Child Elements

Name Description
instrumentable Instrumentable elements will exist for each direct child Instrumentable that is currently registered with this Instrumentable. This list may increase as the application runs so the state-version of the parent instrumentable should be monitored for changes.

If the recurse parameter was set to "true" in the request, an expanded list of attributes and child elements will be available. See the documentation for the Instrumentable URL for further details.

Attributes:
Name Data Type Description
name String Fully qualified name of the Instrumentable. This name is used to reference the Instrumentable in other requests.
state-version int Current State-Version of the Instrumentable. The state version will be incremented whenever there are any changes to the Instrumentable or any of its child elements. It can be compared with a last known state version to decide whether or not it is necessary to to request further details.

If the application is running long enough, the state version will eventially overflow. To make sure your application will handle this case use an equality test when comparing state versions.
instrument Instrument elements will exist for each Instrument that is currently registered with this Instrumentable. This list may increase as the application runs so the state-version of the parent instrumentable should be monitored for changes.

If the recurse parameter was set to "true" in the request, an expanded list of attributes and child elements will be available. See the documentation for the Instrument URL for further details.

Attributes:
Name Data Type Description
name String Fully qualified name of the Instrument. This name is used to reference the Instrument in other requests.
state-version int Current State-Version of the Instrument. The state version will be incremented whenever there are any changes to the Instrument or any of its child elements. It can be compared with a last known state version to decide whether or not it is necessary to to request further details.

If the application is running long enough, the state version will eventially overflow. To make sure your application will handle this case use an equality test when comparing state versions.