The JWare/AntX build-feedback(print) package contains several components that support displaying arbitrary object types in the Ant runtime (mostly for diagnostics reasons).
The main script-facing components in this package are: EchoItemsTask(<printenv>), EchoErrorTask(<printerror>), PrintTask(<print>), and ManagePrintersTask(<manageprinters>), PrinterMapping(<printer>), and PrinterRegistry(<printer-registry>).
(Older) One-off Printers
The various Echo*Task (like EchoErrorTask) are the original AntX diagnostics display mechanism. Each task defines one specific data type or a small set of very closely related data types. With the growth of the AntX data type repository, this method has been replaced by the single DisplayStrategy-based mechanism. However, the older tasks are still perfectly functional and use the newer strategy-based printers when possible. In many situations (like in error-handling script) you might find it easier to use the single-purpose Echo*Tasks since they do not require the fixture setup that the generic PrintTask does.
Customizable Printing Framework
The PrintTask is the preferred mechanism for printing arbitrary fixture data; it supports all of the internal AntX types as well as application-defined data types. This application support has become more important with the introduction of the JWare/AntXtras AntUnit project where we need to let task developers easily print their own types for diagnosis. However, unlike the older single-type printers, PrintTask needs either a PrinterMapping or a PrinterRegistry to work effectively with references. (Since AntX 0.4, setting up a default PrinterRegistry is a much simplier as the printer mappings can be defined in files and included in a registry using a standard Ant <fileset>.)
At the heart of the printing framework is the DisplayStrategy. A display strategy is the (isolated) logic that actually converts your data type to its human-viewable form. You must implement the display diagnostics functionality of any new AntX types as a DisplayStrategy so it is automatically part of the AntX printing framework. A PrinterMapping embodies the link between your DisplayStrategy and the types it can handle. A PrinterRegistry is a collection of these printer mappings and the preferred display strategy reference for PrintTask.
As a standalone component, the printing framemwork only supports a single default PrintingRegistry. This registry must be (un)installed with the ManagePrintersTask (whose sole purpose for being is this management). The PrinterRegistryContext class manages the iteration-based context for the default PrinterRegistry.