Class JsonNodeBuilder

java.lang.Object
org.apache.jackrabbit.oak.json.JsonNodeBuilder

public class JsonNodeBuilder extends Object
A utility class to persist a configuration that is in the form of JSON into the node store.

This is used to persist a small set of configuration nodes, eg. index definitions, using a simple JSON format.

The node type does not need to be set on a per-node basis. Where it is missing, the provided node type is used (e.g. "nt:unstructured")

A "jcr:uuid" is automatically added for nodes of type "nt:resource".

String, string arrays, boolean, blob, long, and double values are supported. Values that start with ":blobId:...base64..." are stored as binaries. "str:", "nam:" and "dat:" prefixes are removed.

"null" entries are not supported.

  • Constructor Details

    • JsonNodeBuilder

      public JsonNodeBuilder()
  • Method Details

    • addOrReplace

      public static void addOrReplace(NodeStore nodeStore, String targetPath, String nodeType, String jsonString) throws CommitFailedException, IOException
      Add or replace a node in the node store, including all child nodes.
      Parameters:
      nodeStore - the target node store
      targetPath - the target path where the node(s) is/are replaced
      nodeType - the node type of the new node (eg. "nt:unstructured")
      jsonString - the json string with the node data
      Throws:
      CommitFailedException - if storing the nodes failed
      IOException - if storing a blob failed