[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: a shot at upgrading Find operation
Catch( <tryDuration>? <input>? <selector> <view>? )
Select one or more non-masked events from the event board within a time window. The selection is based on conditions expressed with external script languages, e.g. XPath or Xquery. The operation may wait for the event(s), acting as a synchronizing control.
To be eligible for selection by this operation, an event of the event board must satisfy the following conditions:
the event is not masked for the monitor instance executing “find”,
the event posting time (dateTime) is in the window [visibilityDate, time-cursor]
In case it is a temporary event, it is associated with the same CES as this monitor instance (it has been posted by a monitor instance from the same test case execution).
The event is within scope (if any, defined by <scope> argument)
Only such events will be considered for selection. Selected events will be part of the result set for the operation.
The operation invocation can take two forms. (NOTE: the syntax reuses some XSLT syntax)
In the first form below (called here “referring form”), it refers to a “catcher” definition provided elsewhere, and identified by the attribute @catcher. Values can be given to parameters of the catcher definition. An optional <input> element defines the set of events to be used as input to the selection.
In the “inline form”, the same selection elements that
would be provided in a “catcher” definition (except for parameters), are
provided inline, as shown in the following example:
The <match> element will select one event based on a conditional expression specified in the <condition> child element. When a combination of two or more events needs be selected possibly based on different conditional expressions, each event will be named (here “E1” and “E2”), and an order (possibly partial) may be specified between these using the attribute @after. The <match> element may also include the setting of some variable with event data, to be reused in the selection expression of another <match> expression, allowing correlation between selected events based on their content.
The following is a more complete example of a “catcher” definition, that selects a sequence of three events representing an exchange of three messages:
(E1) a purchase order request,
(E2) a PO response (acceptance or rejection),
receipt to the PO response
correlation between these events relies on variables V1 and