Class IndexDefMergerUtils


  • public class IndexDefMergerUtils
    extends java.lang.Object
    Utility that allows to merge index definitions.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static JsonObject merge​(java.lang.String path, JsonObject ancestor, java.lang.String customName, JsonObject custom, JsonObject product, java.lang.String productName)
      Merge index definition changes.
      static void merge​(JsonObject newIndexes, JsonObject allIndexes)
      For indexes that were modified both by the customer and in the product, merge the changes, and create a new index.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • IndexDefMergerUtils

        public IndexDefMergerUtils()
    • Method Detail

      • merge

        public static JsonObject merge​(java.lang.String path,
                                       JsonObject ancestor,
                                       java.lang.String customName,
                                       JsonObject custom,
                                       JsonObject product,
                                       java.lang.String productName)
        Merge index definition changes.
        Parameters:
        path - the path of the change itself (e.g. /oak:index/lucene-1/indexRules/acme)
        ancestor - the common ancestor (the old product index, e.g. lucene)
        customName - the name of the node of the customized index (e.g. /oak:index/lucene-1-custom-1)
        custom - the latest customized version (e.g. lucene-1-custom-1)
        product - the latest product index (e.g. lucene-2)
        productName - the name of the node of the latest product index (e.g. /oak:index/lucene-2)
        Returns:
        the merged index definition (e.g. lucene-2-custom-1)
      • merge

        public static void merge​(JsonObject newIndexes,
                                 JsonObject allIndexes)
        For indexes that were modified both by the customer and in the product, merge the changes, and create a new index. The new index (if any) is stored in the "newIndexes" object.
        Parameters:
        newIndexes - the new indexes
        allIndexes - all index definitions (including the new ones)