Class 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 Detail

      • JsonNodeBuilder

        public JsonNodeBuilder()
    • Method Detail

      • 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