)]}'
{
  "commit": "5c18759d758a48aae03dbf18bd8f29503928a435",
  "tree": "c115c6b769d974c9ae1959ae2527419010ea7bc2",
  "parents": [
    "b3e8605de1ce22650e468cdaed4da1c3228035de"
  ],
  "author": {
    "name": "Saša Živkov",
    "email": "sasa.zivkov@sap.com",
    "time": "Fri Mar 06 12:19:02 2026 +0100"
  },
  "committer": {
    "name": "Saša Živkov",
    "email": "sasa.zivkov@sap.com",
    "time": "Tue Apr 14 10:11:29 2026 +0200"
  },
  "message": "Define ApiModule: expose Forwarder, CommandProcessor and Commands\n\nThis change exposes DynamicItem\u003cForwarder\u003e so that other plugins can\nimplement message forwarding using technology of their choice, for\nexample using a GCP pubsub.\n\nAlso expose DynamicItem\u003cCommandProcessor\u003e. This is not exposed to be\noverridden but only as a mean for other plugins to inject it and pass\nreceived commands back to the high-availability plugin. Injecting the\nCommandProcessor directly would require exposing also its implementation\nvia the API-Module. This quickly pulls almost complete plugin\nimplementation into the API-Module including the ServerPluginInfoModule\nwhich provides plugin specific bindings like \"@PluginName String\".\nSince the injector created out of the API module is the parent injector\nof the injector(s) created in dependent plugins, we would end up with\nduplicated bindings for the @PluginName and MetricMaker types.\nUsing DynamicItem\u003cCommandProcessor\u003e we only expose the interface via the\nAPI module to other plugins.\n\nChange-Id: I57c8b27fa4caf6109d797494fac1a91789f056a0\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "da759b96d4096b2f5e573d1df71c78479ac20fbe",
      "old_mode": 33188,
      "old_path": "BUILD",
      "new_id": "c4a7d784fba5aff1a93f1a5aa0721705afb58cb8",
      "new_mode": 33188,
      "new_path": "BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fbf5ab58878b3733cc1be7f6b8e8927d28210c94",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/ApiModule.java"
    },
    {
      "type": "modify",
      "old_id": "f75bdaa557fb60ea2e5feb3b28d9c84b1672adf7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java",
      "new_id": "4dc9f45d047efcd4434ecc06557ad24da0839421",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java"
    },
    {
      "type": "modify",
      "old_id": "095adeef29def3639588d73f099f65de4e380c2a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/Module.java",
      "new_id": "62277877ad3d4efa9a02651b7524d8138e0fa7e2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/Module.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dc3e8efb90a46d8aac23c8ceed310f85f187576c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/NoForwarder.java"
    },
    {
      "type": "modify",
      "old_id": "53bc3a1d45d90e19b416966a50fef72478bdad66",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandler.java",
      "new_id": "43b6e4c234e6980f537b02d60dcfef73f689214f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandler.java"
    },
    {
      "type": "modify",
      "old_id": "9ce9536670855e59f7e7aabbfbb8e8609048da47",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/ProjectListUpdateHandler.java",
      "new_id": "42812268a2146b56ee51b3d8cfbe9536f8ba3770",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/ProjectListUpdateHandler.java"
    },
    {
      "type": "modify",
      "old_id": "5ce12df043ad0c04cd7c5ade949ceb1b5f95482c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandler.java",
      "new_id": "3060f5f84e1939ad4f5607231241f059c41a617e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandler.java"
    },
    {
      "type": "modify",
      "old_id": "ca30de7ebe29a5c4bcab3e33a4b46000a5349dfe",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/CommandProcessor.java",
      "new_id": "6c403564b7907c7b763a3607c7fb25a59b6be44e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/CommandProcessor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cadfaeaf13038c11746968b2c64daebc5580f298",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/commands/CommandProcessorImpl.java"
    },
    {
      "type": "modify",
      "old_id": "98600f1cd6674459b3682d834c5b8fae74f270ae",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/JGroupsForwarderModule.java",
      "new_id": "3d3a5b7eda849d6f88da0c9a5eb99abc2c3a2947",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/JGroupsForwarderModule.java"
    },
    {
      "type": "modify",
      "old_id": "712e7f407d9c86b72b82a910ec9329bc414594fe",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderModule.java",
      "new_id": "f1c58e6620fe57f02c7a836ded5c5d28f3be635b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderModule.java"
    },
    {
      "type": "modify",
      "old_id": "6475d99b3fad6b257ec46e1638b5ffa88e124a9f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandler.java",
      "new_id": "0b1ff7f5ca71693e3ba2de8312ca5287a2ba688d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandler.java"
    },
    {
      "type": "modify",
      "old_id": "b0890911b6648f83651aaf72f0ff7ced6e075c79",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/config.md",
      "new_id": "737b3540f5b7d6928c96eeb04adb9a8a90866eda",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/config.md"
    },
    {
      "type": "modify",
      "old_id": "3d091a03a30fdd18a3dd1ca71cb9c06c79a6b5ed",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandlerTest.java",
      "new_id": "cd5a4772c25f19ed312c195dca22d13ad24a9afe",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandlerTest.java"
    },
    {
      "type": "modify",
      "old_id": "180c68f037cfa71847045083cc77595c11c7c1a1",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionIT.java",
      "new_id": "f44be49c128505d45637372122c9db3daec6a208",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionIT.java"
    },
    {
      "type": "modify",
      "old_id": "36c775c914b917511122eeaf59aff5e5e814754d",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/ProjectListIT.java",
      "new_id": "6fa508e41069bb75afc99fe5cdbfb6b214deaf96",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/ProjectListIT.java"
    },
    {
      "type": "modify",
      "old_id": "1bd2aed75fb8784cdc198dd99438cb3972d63388",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/ProjectListUpdateHandlerTest.java",
      "new_id": "e4fea744e0462ddd53deb4c4f6b4e063f3f3a7cd",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/ProjectListUpdateHandlerTest.java"
    },
    {
      "type": "modify",
      "old_id": "988064e422d9e71225d92fb479cb41f8735cfb69",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandlerTest.java",
      "new_id": "6c12b1d4665b8f33a0e9d76055662778e150a4fb",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/event/EventHandlerTest.java"
    },
    {
      "type": "modify",
      "old_id": "d17b3f18d505a89030eb42fc849dc31bf3d1fcfa",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageProcessorTest.java",
      "new_id": "bca7801da73f1c72d44023054682ef340d7013f1",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/jgroups/MessageProcessorTest.java"
    },
    {
      "type": "modify",
      "old_id": "1e5cc3d9ddf6dbfa99d14de992b0a7bef5ef284b",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ForwardedCacheEvictionHandlerIT.java",
      "new_id": "4488cc474a302a69b548193d00fac3307328636e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ForwardedCacheEvictionHandlerIT.java"
    },
    {
      "type": "modify",
      "old_id": "e838cb3b677608540fc2fd2e4c1c955e3cd16179",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ProjectListRestApiServletIT.java",
      "new_id": "caea2aa7700444049027d7cd4785d38c57685975",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/ProjectListRestApiServletIT.java"
    },
    {
      "type": "modify",
      "old_id": "240644393e7be1cca691022eb14e40b9e743e893",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderServletModuleIT.java",
      "new_id": "880ec04758285a0ee977a446c0a1590cdecb8ab3",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/RestForwarderServletModuleIT.java"
    },
    {
      "type": "modify",
      "old_id": "fe6cfce8be8830a4227cf21b9d2ea512a91e3ac2",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/AbstractIndexForwardingIT.java",
      "new_id": "3010d9cdd00137a1394aef62cd32c5c6ceca9555",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/AbstractIndexForwardingIT.java"
    },
    {
      "type": "modify",
      "old_id": "febf8f00e16cd2773eb832ed4b9d5be532523c2c",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerIT.java",
      "new_id": "ebf966fcf37b8434a52871f4bf240ebbe4a0e62b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/ChangeCheckerIT.java"
    },
    {
      "type": "modify",
      "old_id": "a986b904ccb39e027f5b78e628cbe227c0b23e09",
      "old_mode": 33188,
      "old_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java",
      "new_id": "22c2eb094cb752d05184f1a3fb13955a3f71cee2",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/index/IndexEventHandlerTest.java"
    }
  ]
}
