The UpdateExecutor currently requires either a node path or Xpath query definition to select or navigate through the nodes to update.
For some purposes, reporting (only) in particular, it is more convenient if the NodeUpdateVisitor can provide the nodes to process itself though.
Therefore the BaseNodeUpdateVisitor will be extended with the following methods to provide its own selection/navigation on the nodes to process (update or just query/report) :
In addition two more methods are added:
The logSkippedNodePaths() method is useful to overrride when a (potentially) huge number of nodes are processed which are expected (or explicitly, like for reporting-only visitors) to be skipped.
The default implementation will still logs these skipped node paths, and store this in the repository as a binary log.
To reduce the (unused) report overhead of this binary property hipposys:skipped, a visitor can override this method and return false instead:
The skipCheckoutNodes() method also is useful to override when running a readonly updater and/or updated unrelated to versioned content.
The default implementation will ensure nodes are checked out before invoking the doUpdate(Node) method, but that can have considerable overhead if done unnecessarily.
To reduce this overhead a visitor can override this method and return true instead: