)]}'
{
  "commit": "9a6caa46e079fd86ae8392157c953c5df496cd2f",
  "tree": "cc15591519146894a51032a0a44b82465e54f408",
  "parents": [
    "03bcbc7b9e3ae9eaac5f11a67941538f329998e2"
  ],
  "author": {
    "name": "David Ostrovsky",
    "email": "david@ostrovsky.org",
    "time": "Thu Dec 17 21:01:00 2020 +0100"
  },
  "committer": {
    "name": "David Ostrovsky",
    "email": "david@ostrovsky.org",
    "time": "Thu Dec 17 23:04:12 2020 +0100"
  },
  "message": "Align Project.NameKey serialization to gerrit core\n\nSince I96dbb4c38f2 Project.NameKey is serialized in stream events as:\n\n  \"project\": \"project-name\"\n\nHowever high-availability plugin missed this feature and doesn\u0027t use\ncustom JsonSerializer, so that the Project.NameKey is serialized in\nlegacy form:\n\n  \"project\": { \"name\" : \"project-name\" }\n\nStarting from gerrit release 3.1 this plugin migrated to custom\nProjectNameKeyAdapter that was added in I242b51530a3. As a side effect,\nproject name serialization was implicitly changed to new serialization\nform.\n\nThis incompatibility can cause a problem in zero-downtime upgrade\nscenario, where the events created by gerrit 3.0 cannot be de-serialized\nby second node running gerrit 3.1.\n\nTo rectify, install custom ProjectNameKeyAdapter, that is aware of skew\nof project name representation and could also understand legacy and new\nform of project name.\n\nNote, that the plugin own ProjectNameKeyAdapter class should be removed\nwhen this change is merged to stable-3.1 branch. The test class could be\nremoved as well, because similar round trip serialization tests exist\nin gerrit core.\n\nBug: Issue 13825\nChange-Id: I73bd4df898d8b978f67e9ab27fe5bb5461a951fd\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8c00282841f37e3922104d6a7dd1fa286f98ea24",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/event/ProjectNameKeyAdapter.java"
    },
    {
      "type": "modify",
      "old_id": "e62cec2bf494e3c71ae4eda4b94cac26e5020db7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/GsonProvider.java",
      "new_id": "36f0029b5ff9e83b785e1f63cbceb337ba457322",
      "new_mode": 33188,
      "new_path": "src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/GsonProvider.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8e1b5ebea3f8a1577c9fd8e296633f067957dc18",
      "new_mode": 33188,
      "new_path": "src/test/java/com/ericsson/gerrit/plugins/highavailability/event/EventDeserializerTest.java"
    }
  ]
}
