Extraction plugin types

Currently three types of Hansken Extraction Plugins are supported:

  • Standard Extraction Plugins

  • Meta Extraction Plugins

  • Deferred Extraction Plugins

Standard Extraction Plugins

Standard Extraction Plugins provide enough functionality for most cases. This includes:

  • Processing traces

  • Creating child-traces

  • Reading trace properties

  • Adding trace properties

  • Reading data

  • Writing data

  • Writing data transformations

Meta Extraction Plugins

Meta Extraction Plugins can only process and produce trace properties without the need (or possibility) for processing actual trace data. This includes:

  • Processing traces

  • Creating child-traces

  • Reading trace properties

  • Adding trace properties

Deferred Extraction Plugins

These plugins have two additional features that are not included with Standard Extraction Plugins:

  • a developer can choose to defer their execution

  • information about other traces can be obtained while processing the current extraction trace. Code examples can be found here: Java, Python.

Deferring execution A single Hansken image extraction consists of multiple iterations. Within every iteration, every Hansken tool and plugin is executed on matching traces, which produces new traces or modifies existing traces. If a tool can be executed another time because of these additions or modifications, another iteration is started.

A regular plugin is executed in the same iteration a trace is matched. Deferred plugins are executed in a different iteration; they are always deferred for at least one iteration. This is very useful when searching for traces, because you are certain the deferred plugin is executed after all other tools performed their modifications.

Sometimes, executing your plugin in the next iteration is not enough; it needs to be executed in a different iteration. This is why the SDK allows setting a deferredIterations parameter in the plugin info. After the plugin matches with a trace, it will be executed after deferredIterations. The execution can currently be deferred by a maximum of 20 iterations and the default is 1.

Searching for traces This type of plugin can perform a search to look for extracted traces in the current image (default) or project (optional). This search is performed using a provided HQL query. A maximum of 50 traces is returned for a given search request.

Warning

Please note that HQL-Lite specific syntax such as the Data or DataType matchers is NOT supported.