)]}'
{
  "commit": "2c7ff59e4b845b3b936a6d3387b1c994b59b7e3c",
  "tree": "10ff16473b1482fa09f5eac1f99cdc90094edd86",
  "parents": [
    "2c11c0e3c2a6e640b2f904a226362ba5618081dc"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Mon Feb 15 23:53:09 2021 +0000"
  },
  "committer": {
    "name": "David Ostrovsky",
    "email": "david.ostrovsky@gmail.com",
    "time": "Thu Mar 04 09:56:16 2021 +0000"
  },
  "message": "Apply modules overrides by libModule for batch program reindex\n\nGerrit ignores libModule overrides when running its batch programs.\nAs a consequence, it would not allow to replace default implementation\nwith ad-hoc modules (e.g. use a persistent cache different than H2).\n\nFrom Change-Id: I9be5a2ea0f Gerrit supports plugins that can provide\nextra BatchModules to be used by the Gerrit site programs like\nthe reindex and during the init phase.\nImprove the BatchModule by enabling also the replacement of Gerrit\u0027s\nintroducing a new LibModuleType.SYS_BATCH_MODULE called BatchModule.\n\nAllow to specify a set of alternative implementations during\nthe Gerrit programs execution by introducing a new libBatchModule.\nLibModules can override any of the Gerrit tagged modules loaded\nby default by the BatchProgramModule.\n\nModules can potentially provide also a different set of bindings\nfor the daemon execution (libModule configuration) and the site program\n(libBatchModule configuration), so to adapt to the availability\nof different injected classes in the two contexts.\n\nBefore this change, plugins could already expose BatchModule to be\nloaded in Gerrit\u0027s site programs like the reindex.\nThis change allows Gerrit to have in addition the ability to override\nthe tagged Modules in core with alternative implementations provided\nby the library.\n\nOne use case is the persistent cache backend, alternative to the default\nH2 backend, which during reindex needs to populates the diff caches.\n\nBug: Issue 14004\nChange-Id: Ifab60ae3252d50066eb04cb02369b0ce987ee835\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9d7e93bc71f67ba5c9b96df0d50e7a64e940c389",
      "old_mode": 33188,
      "old_path": "Documentation/config-gerrit.txt",
      "new_id": "4e1c8967ae141f6ac3ec50c5cb2d7eb8159715db",
      "new_mode": 33188,
      "new_path": "Documentation/config-gerrit.txt"
    },
    {
      "type": "modify",
      "old_id": "966801f382cd69f13e0e9d0c7360da006bbe6da2",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/pgm/Reindex.java",
      "new_id": "3935268fe901e68e8305e3f1bb60cc32befad999",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/pgm/Reindex.java"
    },
    {
      "type": "modify",
      "old_id": "35ba3d0c8606aafae26d46ecca8ced2818e580ae",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/pgm/util/BatchProgramModule.java",
      "new_id": "0d378555b70fed6f060a82d19c0eb6c646c15db1",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/pgm/util/BatchProgramModule.java"
    },
    {
      "type": "modify",
      "old_id": "557f8c044b6a87ddd38d57bf631e482b28855aea",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/LibModuleType.java",
      "new_id": "b9cb19679da2cc33dcd997036c23d79f7aee0047",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/LibModuleType.java"
    }
  ]
}
