)]}'
{
  "log": [
    {
      "commit": "de002b529864e8980fbe66628fb224713c6d9699",
      "tree": "7dc0dd816e4e79e822c9e5387a19daf9dc57e1c3",
      "parents": [
        "b20fca3115b86c22f195ca27287d986666776bdf"
      ],
      "author": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Sat Feb 07 01:55:17 2026 +0100"
      },
      "committer": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Sat Feb 07 01:55:17 2026 +0100"
      },
      "message": "Only install RestModule if brokerApiEnabled\n\nThe RestModule is only used for brokerApiEnabled.\nWhen trying to run events-rabbitmq with \"brokerApiEnabled\u003dfalse\" the\nplugin will fail to start.\n\nChange-Id: Id0632beec268f0c43dc894a88cff9c7321cdf11e\n"
    },
    {
      "commit": "b20fca3115b86c22f195ca27287d986666776bdf",
      "tree": "1621679a0b07b920ce61a43d859bee5cac81b188",
      "parents": [
        "25c14e6fe9dd13ed3cce29eb6c1fa6c4a8c3577c"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Sep 18 19:46:54 2025 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Oct 31 15:25:44 2025 +0100"
      },
      "message": "Add REST API endpoints for handling stream offsets for topics\n\n* A GET endpoint that can be used to get current offsets\nfor a topic and when they were last updated\n* A POST endpoint to move offsets for a specific topic\neither with a absolute value or relatively with a negative\nvalue\n\nChange-Id: I9cce853fdd233c1324e846c84c1fd1c99971e54e\n"
    },
    {
      "commit": "25c14e6fe9dd13ed3cce29eb6c1fa6c4a8c3577c",
      "tree": "4f045675b6f04065d23021011b531ea41fa1f2fd",
      "parents": [
        "7d17062cfc27898f9d0fc6d1e3c323f19b2b5ee8"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Aug 21 10:38:08 2025 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Aug 21 12:47:46 2025 +0200"
      },
      "message": "Rename variable securePassword to password\n\nWe do not know if the password has been put in a\nsecure.config so let us not assume it has.\n\nChange-Id: I98b2dfe91b17dbdf6c7f6c25a7b733043f9983e4\n"
    },
    {
      "commit": "7d17062cfc27898f9d0fc6d1e3c323f19b2b5ee8",
      "tree": "38b54885e578cde2967f65b272ea1c2935dc85d8",
      "parents": [
        "30ef8e2467aeaf9bd1f965e104436e0f97960ab1"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Feb 21 16:52:49 2025 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Aug 21 12:47:27 2025 +0200"
      },
      "message": "Add support for RabbitMQ streams\n\nWith streams you will be able to use the replay\nfunctionality. To keep track of the current message an\noffset is used. The offset is periodically saved/stored and\nwhen replayAll is called the consumer start to consume from the\nbeginning of the stream.\nEvery stream.windowSize we store\n(current offset - stream.windowSize) as the offset to make\nsure we replay missed messages when we restart a multi-site\ninstance.\n\nChange-Id: I51a49533248ce94d1e6831071b033869c86db6d8\n"
    },
    {
      "commit": "30ef8e2467aeaf9bd1f965e104436e0f97960ab1",
      "tree": "39ed9df177cb47d82b74344225b19194ac82267a",
      "parents": [
        "1f36e4d155fc129dbf8a598b960706a4f07a5d21"
      ],
      "author": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Wed Mar 12 13:56:13 2025 +0100"
      },
      "committer": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Mon Mar 24 10:28:58 2025 +0100"
      },
      "message": "Add consumers from previous broker API implementations\n\nThe event-broker lib provides a default brokerapi implementation to\nfacilitate startup before the real implementation is available. We\nshould adopt all consumers that have registered to this or any other\nprevious brokerapi when events-rabbitmq is loaded.\nThis way we can safely load events-rabbitmq after plugins that sets\nup consumers without loosing events.\n\nAdded some logging to help understanding load orders.\n\nDraws heavy inspiration from events-kafka\u0027s implementation.\n\nChange-Id: Iaffdbc662bee17de1714cbe19048c2d740805984\n"
    },
    {
      "commit": "1f36e4d155fc129dbf8a598b960706a4f07a5d21",
      "tree": "3397ee9895121b17572e4b220904517626d113ed",
      "parents": [
        "fbbfb309717376f464ae76dcf9e3b61a0225c862",
        "a8254aa58aa0c183ec56079fd7edd82de94d6ebd"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Oct 29 10:04:32 2024 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Oct 29 10:04:32 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.10\u0027\n\n* stable-3.10:\n  RabbitMqBrokerApi.java: Removed unused logger\n  Build compatibility with events-broker 3.10\n\nChange-Id: Ic5d9a1cbbddf005434c3887f2a4f80dd249f5487\n"
    },
    {
      "commit": "a8254aa58aa0c183ec56079fd7edd82de94d6ebd",
      "tree": "3397ee9895121b17572e4b220904517626d113ed",
      "parents": [
        "3af797175b865d949226980f6cfe2e4deef846e9",
        "d5c8c30ee524d442a777d93d784116f76e87c70b"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Oct 29 09:57:51 2024 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Oct 29 09:57:51 2024 +0100"
      },
      "message": "Merge branch \u0027stable-3.9\u0027 into stable-3.10\n\n* stable-3.9:\n  RabbitMqBrokerApi.java: Removed unused logger\n\nChange-Id: I38f3fd4322421f48c000dbcd1bb14b387e3937fa\n"
    },
    {
      "commit": "d5c8c30ee524d442a777d93d784116f76e87c70b",
      "tree": "ccd9036d59411c46050cdf486db523b5487d8ca4",
      "parents": [
        "fbbfb309717376f464ae76dcf9e3b61a0225c862"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon Oct 28 12:16:24 2024 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon Oct 28 12:16:24 2024 +0100"
      },
      "message": "RabbitMqBrokerApi.java: Removed unused logger\n\nChange-Id: Iae16cb7fa2dd85ac3a6cfefd4268f527a766bff2\n"
    },
    {
      "commit": "3af797175b865d949226980f6cfe2e4deef846e9",
      "tree": "bdd00cb4b21c93c25b35750319929ba3ee00851b",
      "parents": [
        "fbbfb309717376f464ae76dcf9e3b61a0225c862"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon Oct 28 12:08:01 2024 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon Oct 28 12:12:34 2024 +0100"
      },
      "message": "Build compatibility with events-broker 3.10\n\nevents-broker 3.10 introduced a new TopicSubscriberWithGroupId API.\nAdd method stubs for the new API.\n\nBug: Issue 307031744\nChange-Id: I534a062fbd75b474de1dc2b59bdfe347fe460571\n"
    },
    {
      "commit": "fbbfb309717376f464ae76dcf9e3b61a0225c862",
      "tree": "11d31ef955b512571d7b53ffe969fa9df83b2baf",
      "parents": [
        "55e2ef1690661aa4c0e1c609e60cee07d0ea782b"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Sep 04 16:39:34 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon Sep 16 08:48:45 2024 +0200"
      },
      "message": "Add support for consumer prefetch\n\nIf no consumer prefetch is set it becomes unlimited which\nmeans that the rabbitmq server will send as many events as\nit can, this can cause the client to be overwhelmed and make\nit slow to respond.\nWhen the client respond to slowly the server may decide to\nclose the connection which causes the channels and consumers\nto be lost.\nWith a limited consumer prefetch we can prevent this.\n\nBug: Issue 366272560\nChange-Id: I599aa024202597c468bd3f792ec0931f40a495f9\n"
    },
    {
      "commit": "55e2ef1690661aa4c0e1c609e60cee07d0ea782b",
      "tree": "6491fc419dcbba25239a21478c1ae468162366d1",
      "parents": [
        "0e4b0342e50fd6e62df4b914e0ec8ec7a95bb9d0"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon May 13 16:15:35 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon May 13 16:42:50 2024 +0200"
      },
      "message": "Make events-rabbitmq manually ack messages after they are consumed\n\nTo avoid losing messages that has been taken from the queue\nbut not consummed by consumers during a restart of Gerrit.\n\nChange-Id: I4397a04fc7971a4b8e60f8c6cc7eec3de630ccfd\n"
    },
    {
      "commit": "0e4b0342e50fd6e62df4b914e0ec8ec7a95bb9d0",
      "tree": "6c89ca4a10ff5d5330cb21043f362165fb29d897",
      "parents": [
        "79f056e4219051be64e4e908c270f7699a66bd46"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri May 03 17:00:23 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon May 06 15:26:09 2024 +0200"
      },
      "message": "Add extra logging related to publishing of events\n\nChange-Id: Ic9b0c2a1abc3e6856c354e5f72493667f5ab0d66\n"
    },
    {
      "commit": "79f056e4219051be64e4e908c270f7699a66bd46",
      "tree": "5ae0dd3f01e8ea057de62455173bc1fdcd22c022",
      "parents": [
        "09fbfb9aea8059d3a04fdea74a7779f65924590f"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri May 03 16:25:40 2024 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon May 06 14:34:11 2024 +0200"
      },
      "message": "Fix problem where events-rabbitmq did not ack/nack every event\n\nThe handlers that were supposed to handle acks and nacks did\nnot take into consideration that the broker might ack or\nnack several events in a go. This change fixes that.\n\nChange-Id: I3e74335b577ab1f0c50323e90265563b89ec87ac\n"
    },
    {
      "commit": "09fbfb9aea8059d3a04fdea74a7779f65924590f",
      "tree": "a0b5ac66dfb5c1f155bc6b691b6b8820ca82d056",
      "parents": [
        "608f6e731e22babb0f9cbd7424c9b1d12bfb2e27"
      ],
      "author": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Fri Apr 12 12:04:36 2024 +0200"
      },
      "committer": {
        "name": "Rikard Almgren",
        "email": "rikardal@axis.com",
        "time": "Fri Apr 12 13:50:43 2024 +0200"
      },
      "message": "Only publish events generated by current Instance\n\nWhen in multi-primary setup the event stream contains events from all\nprimaries, however each primary has an events-rabbitmq plugin and\nshould only publish events that originates from that primary.\nOtherwise the events published to the exchange would be duplicated\nby nbr_of_primaries^2.\n\nBug: Issue 333981067\nChange-Id: I5e35605c61bb45079d96d94e7db3eb24c74cf464\n"
    },
    {
      "commit": "608f6e731e22babb0f9cbd7424c9b1d12bfb2e27",
      "tree": "681b3358aeba45aa6fce57208095b12b4bc1e469",
      "parents": [
        "dbaf0adcbcdcbd1eaf684250d6bf2a95ddba5130"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Jan 19 14:25:51 2024 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jan 25 10:32:32 2024 +0100"
      },
      "message": "Catch exceptions that consumers throw\n\nAs exceptions that are thrown by consumers are considered to\noriginate from the application, they cause a closure of the channel\nthat the consumers use. Neither channel nor consumer are recreated.\nAs consumers may still be able to process other events, we should\nnot close the channels due to exceptions. Instead warn, log the\nexception and continue.\n\nChange-Id: If4e85412af324568ef6ab5162e692529473298da\n"
    },
    {
      "commit": "dbaf0adcbcdcbd1eaf684250d6bf2a95ddba5130",
      "tree": "5bc9193bac133681b8f2c840efa47679e4a27816",
      "parents": [
        "2294969d64644b2317bb53326926623530811ca4"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Jan 19 13:10:46 2024 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jan 25 10:29:39 2024 +0100"
      },
      "message": "Retry deserialization of events from queue\n\nWith this we do not have to rename plugins to make\ncustom event types registered before deserialization.\n\nChange-Id: Icd51322852d3507dc711d9c6b04b303a70fb8a30\n"
    },
    {
      "commit": "2294969d64644b2317bb53326926623530811ca4",
      "tree": "3f68a5859e4d988b4aceb70aa9e3627923cdc3b5",
      "parents": [
        "6f877331723b40970573cc1e4080ea4e00a2b897"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Tue Jan 16 16:53:58 2024 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon Jan 22 13:53:14 2024 +0100"
      },
      "message": "Remove strict events-broker plugin dependency\n\nThis fixes a problem where you would get a NoClassFoundError\nwhen loading the plugin if the events-broker plugin had not\nbeen installed.\n\nA previous commit 7b67529 introduced an accidental\nrequirement on the events-broker plugin even if not using\nthe rabbitMQBroker API.\n\nChange-Id: I031572b4a36cefc0a1b003d35eb75882844b3424\n"
    },
    {
      "commit": "6f877331723b40970573cc1e4080ea4e00a2b897",
      "tree": "63bd8ac91f139a17d5e0de6733ef9bc638665eaf",
      "parents": [
        "eae3e627300db7646e23f84a7704fc321ebef4c7"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jan 04 17:18:58 2024 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Jan 12 13:51:57 2024 +0000"
      },
      "message": "Add instructions for RabbitMQBroker Api and custom gerrit event types\n\nChange-Id: I6788bba8ba55767e8c8543b169d75fa782fed17f\n"
    },
    {
      "commit": "eae3e627300db7646e23f84a7704fc321ebef4c7",
      "tree": "cfe989820867aeccc56ae7d55a2303c9e2817996",
      "parents": [
        "04b3cb70b92c9a051a4b87d7879470d6cc069ad3"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Dec 21 15:40:42 2023 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jan 04 12:49:12 2024 +0100"
      },
      "message": "Consume events-broker from source\n\nAnd mention this in the documentation.\n\nChange-Id: Id891aa29d85ea6ba559dfea0ac0f9b7beb467e82\n"
    },
    {
      "commit": "04b3cb70b92c9a051a4b87d7879470d6cc069ad3",
      "tree": "e9d099c5558123bd2567a46cd7cfa21ddf90143f",
      "parents": [
        "7926e59b8aa229ebf5db88ee21372f07d2713eb6"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Dec 08 12:50:55 2023 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jan 04 12:49:12 2024 +0100"
      },
      "message": "Split SessionFactory and put the parts in their related classes\n\nLess files to maintain and the sessionfactory provider did not fulfill\nany function.\n\nChange-Id: I61a4768e2b2eb1ba7f0ec6e94a435381238ac461\n"
    },
    {
      "commit": "7926e59b8aa229ebf5db88ee21372f07d2713eb6",
      "tree": "d451eb83d70c68929251a9b437de1e095863d01a",
      "parents": [
        "32dbdcea9b1096566b9db48ae5aa006f9ea06b93"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon Nov 27 15:04:54 2023 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jan 04 12:48:51 2024 +0100"
      },
      "message": "Split session into one session for publishing and one for subscribing\n\nWhen using RabbitMQ it is recommended that:\n* A channel is only used by one thread.\n* A subscriber should use its own channel\n* One connection is used for publishing and one is used for subscribing\n\nCurrently a connection is mapped to one channel. But by splitting\nSession into one session for publishing and one for subscribing we can\ncan create different number of channels per connection for the different\ncases.\n\nChange-Id: I283ac18409dcb75eea37a930a8b7632034a1dbca\n"
    },
    {
      "commit": "32dbdcea9b1096566b9db48ae5aa006f9ea06b93",
      "tree": "7eafdf383049468f92b56dc49c20792c9b4294de",
      "parents": [
        "386c08a6e60494e2216726bce6f12bd16f3a5731"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Aug 09 16:16:52 2023 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Dec 08 10:30:10 2023 +0100"
      },
      "message": "Add configuration options for the queues\n\nThe configuration options added are:\n* queuePrefix: If set the queues that store the messages of\n  the the subscribed topics will be named prefix + topic,\n  otherwise the queues will get a random name decided by\n  RabbitMQ.\n* durable: default true if queuePrefix set, otherwise false.\n* exclusive: default false if queuePrefix set, otherwise\n  true.\n* autoDelete: default false if queuePrefix set, otherwise\n  true.\n\nThe options durable, exclusive and autoDelete can only be\nset if a queuePrefix is specified.\n\nChange-Id: Ifd38a40e3733dd00bb11b1cae4dfee477b3f6e3d\n"
    },
    {
      "commit": "386c08a6e60494e2216726bce6f12bd16f3a5731",
      "tree": "c66fe7f8446d3105a82045a12b5986fe0cd3f14b",
      "parents": [
        "a37a4156338e87549209a0a3913fc4d7233b7c02"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Nov 23 15:38:20 2023 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Dec 08 10:30:10 2023 +0100"
      },
      "message": "Remove MonitorTimer\n\nWith the RabbitMQ client library you can set automatic connection\nrecovery with setAutomaticRecoveryEnabled and topology(channels etc)\nrecovery with setTopologyRecoveryEnabled. Since client version 4.0.0\nthese flags have been enabled by default and we currently rely on\n5.10.0. So no extra logic for recovery is needed anymore.\n\nChange-Id: Ie03e61cf0d76728caf819bdd44260d8c99e40a1b\n"
    },
    {
      "commit": "a37a4156338e87549209a0a3913fc4d7233b7c02",
      "tree": "b247453afe1c43a239efd8965ab77e2f4bb31a57",
      "parents": [
        "7b67529cdddbd28bd63ee9dd87299b4a211bdce2"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Nov 23 15:36:15 2023 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Dec 08 10:29:38 2023 +0100"
      },
      "message": "Add ability to configure publishers to use publish confirms\n\nChange-Id: Ia96baf1c7a4977c6682ca8cf56b0681081325be1\n"
    },
    {
      "commit": "7b67529cdddbd28bd63ee9dd87299b4a211bdce2",
      "tree": "4e0231f51e248eba5c0ff4bb09f544da63d60174",
      "parents": [
        "e1c11eeff270abdbfe64142f00be44911292697e"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Aug 10 15:40:31 2023 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Nov 30 15:59:10 2023 +0100"
      },
      "message": "Add implementation of BrokerApi for RabbitMQ\n\nThis change add an implementation of the BrokerApi from the\nGerrit events-broker lib. This make it possible to use\nRabbitMQ as the message-broker in a multi-site setup.\n\nThe BrokerApi implementation can make use of the default\nconfiguration values in $site_path/data/@PLUGIN@.config but\nspecific configurations needs to be set in\n$site_path/data/@PLUGIN@/broker/broker.config\n\nAdded a new section called General with the flags:\n\n* publishAllGerritEvents: This will make the plugin publish gerrit\n  stream events to a configured exchange. This was the original purpose\n  of this plugin and is therefore enabled by default.\n* enableBrokerApi: Enable the RabbitMQ Broker API. This is the new\n  functionality and is disabled by default.\n\nChange-Id: I7806bee5a10e6a0724427ff2c1dd065c6af1514c\n"
    },
    {
      "commit": "e1c11eeff270abdbfe64142f00be44911292697e",
      "tree": "923bc4192bf85f6c331dc01ba98600a7a29dd2c1",
      "parents": [
        "5b36032486da21c88aef9121c95d7ae7f8facb22"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Mon Nov 27 09:43:22 2023 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Nov 29 15:28:22 2023 +0100"
      },
      "message": "Create properties providers\n\nTo be able to reuse the same properties in different part of the\nplugin without having to duplicate code or execute the same code\nseveral times.\n\nChange-Id: I09bba8d97d573f72c20ec14bd4b3bc386cdc3382\n"
    },
    {
      "commit": "5b36032486da21c88aef9121c95d7ae7f8facb22",
      "tree": "83b91c85cbe0a5676c1441261b0fd7d567ab32ed",
      "parents": [
        "afbfc7fb06c78326be8e4ae31bea3c8b6d4f7c0a"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Fri Nov 24 17:03:32 2023 +0100"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Wed Nov 29 15:28:13 2023 +0100"
      },
      "message": "Replace MessagePublisher with new class TopicEventPublisher\n\n* TopicEventPublisher use a internal class called TopicEvent to be\nable to keep track of the topic related to the event and a flag that\nkeep track if the event has been published.\n* Publisher::getEventPublisher is removed because it only caused\nextra indirection and getName and getProperties are removed because\nthey are not needed.\n\nChange-Id: I060f289481e5852997b601756a4a01819b3a61a6\n"
    },
    {
      "commit": "afbfc7fb06c78326be8e4ae31bea3c8b6d4f7c0a",
      "tree": "dafc615abd6a2ce0668f761263925f236263db54",
      "parents": [
        "3a46fe197517b16d3c29bda90244c2803a502502"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Mar 16 16:41:30 2023 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Mar 30 11:45:46 2023 +0200"
      },
      "message": "Set event.type to default routingKey\n\nThe type of the event is much more useful than a static routingKey.\nKeep using the routingKey from the config if specified for backwards\ncompatibility.\n\nBug: Issue 16775\nChange-Id: I38e7da53fef3ad19e2f8ea551290d09fe8db2fc9\n"
    },
    {
      "commit": "3a46fe197517b16d3c29bda90244c2803a502502",
      "tree": "93176ae61fd996eab850244430b966314f501604",
      "parents": [
        "3cf7cb066b3e9bbef74d807cc8dfeafcfb360bec"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Mar 28 13:11:56 2023 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Mar 30 11:44:50 2023 +0200"
      },
      "message": "Flogger: Arguments to log(String) must be compile-time constants\n\nRemove static MSG() method, that added name of properties file to log\nmessage. Instead add the AMQP URL to the log message.\n\nChange-Id: If526bf059fddca4f2cc03c92d1f7ddba6453b6d9\n"
    },
    {
      "commit": "3cf7cb066b3e9bbef74d807cc8dfeafcfb360bec",
      "tree": "d51a6e62670939e3a2c7d3e9795ff22ebe71b808",
      "parents": [
        "908a0a0fe382b556a446a573cad40b25a0d488cb"
      ],
      "author": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Tue Jul 05 15:48:35 2022 +0200"
      },
      "committer": {
        "name": "David Åkerman",
        "email": "davidak@axis.com",
        "time": "Thu Jul 07 09:27:42 2022 +0200"
      },
      "message": "Migrate apache commons lang v2 usages to v3 for events-rabbitmq\n\nChange-Id: I94c9f682a97fb86198b82b9846931fcd0e23036b\n"
    },
    {
      "commit": "908a0a0fe382b556a446a573cad40b25a0d488cb",
      "tree": "0df5ded5f6ab778b39050b0018c26e45a57d98f3",
      "parents": [
        "c24ca44603177cd653e2573ebdd541d30b37b851"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Apr 28 10:18:41 2021 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon May 03 14:04:21 2021 +0200"
      },
      "message": "Change plugin name from rabbitmq to events-rabbitmq\n\nThis changes the location of the config files:\n* Old location:\n  $SITE/data/rabbitmq/\n* New location:\n  $SITE/data/events-rabbitmq/\n\nThis also changes the name of the base config file:\n* Old name:\n  $SITE/data/rabbitmq/rabbitmq.config\n* New name:\n  $SITE/data/events-rabbitmq/events-rabbitmq.config\n\nChange-Id: I067907f520a0203a7b099bee4eec3652fd849cb8\n"
    },
    {
      "commit": "c24ca44603177cd653e2573ebdd541d30b37b851",
      "tree": "6758ffe4b326991df86eb907718a1260c1f28fc7",
      "parents": [
        "39897c1babe289875ca98a4541df1fdbcaa3e64f"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Dec 15 11:49:43 2020 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "sven.selberg@axis.com",
        "time": "Tue Jan 26 09:44:29 2021 +0000"
      },
      "message": "Update amqp-client to 5.10.0\n\nChange ShutdownListeners to lambda expressions.\nhttps://github.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.0.0\n\nInstead of setting channel and connection to null in ShutdownListeners,\ntrust ShutdownNotifierComponent#isOpen() that returns false if there\nis a shutdown-cause.\n\nChange-Id: Ia8304b775fb470613b4ae40210a81f6b1ffb55f9\n"
    },
    {
      "commit": "39897c1babe289875ca98a4541df1fdbcaa3e64f",
      "tree": "64f2d7814933060af9d1c1a825d9f1578d4fa213",
      "parents": [
        "99be69ffda51bb2e18c8c31b64e13f1d61bc7c7e"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Oct 17 16:09:09 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Oct 17 20:43:40 2019 +0900"
      },
      "message": "Adapt to latest master\n\n- Rename reviewdb package to entities\n- Adapt to rename of ProjectNameKeySerializer to ProjectNameKeyAdapter\n\nChange-Id: I9f5445aacad8fa2ecac91fec8b10d32dc74eeb8c\n"
    },
    {
      "commit": "99be69ffda51bb2e18c8c31b64e13f1d61bc7c7e",
      "tree": "2afbc3770f6ce2c77cc15a5fcb376315f447dc54",
      "parents": [
        "0140f885f09d5392d555be9e84b1066f7b848015"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Oct 16 12:56:54 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Oct 16 12:56:54 2019 +0900"
      },
      "message": "Replace bazel-genfiles with bazel-bin in documentation\n\nBug: Issue 11757\nChange-Id: I12b8a7f681e2ebf9ac706e01ab88e2fd3aedc657\n"
    },
    {
      "commit": "0140f885f09d5392d555be9e84b1066f7b848015",
      "tree": "655f40a2d49ad4db12924729e0e3e000b16a5b4e",
      "parents": [
        "f7657284b97e822ff834f7fb600ce4a0e1acfac5"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Aug 13 11:11:59 2019 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Aug 14 10:26:21 2019 +0200"
      },
      "message": "Build with Gerrit 3.0\n\nUse new AccountResolver interface.\nRemove references to ReviewDb.\n\nMisc:\nRemove unnecessary return statement.\n\nChange-Id: I3f377c74337113a66fb13fa2e9ebddd4526c588d\n"
    },
    {
      "commit": "f7657284b97e822ff834f7fb600ce4a0e1acfac5",
      "tree": "afe724599569db81fdfb74931b44c79d0c655388",
      "parents": [
        "5c9df74813df5a7c878e524ba39a535a1d1ed5f0",
        "15d6fce0650283fb4d9163a96d0095ea5a8a019c"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jan 09 13:55:44 2019 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jan 09 13:56:17 2019 +0100"
      },
      "message": "Merge branch \u0027stable-2.16\u0027\n\n* stable-2.16:\n  AMQPSession: Format with google-java-format\n  Don\u0027t block plugin unload when no events available.\n  Catch ShutDownSignalException when closing connection\n  MessagePublisher: Threads cannot be restarted\n\nChange-Id: I67864faa188593135466105f27ea280cd2052728\n"
    },
    {
      "commit": "15d6fce0650283fb4d9163a96d0095ea5a8a019c",
      "tree": "f1462def115fd49fc402b4f8593815d2e0ffe11b",
      "parents": [
        "02accaef0d844ac3bd51553663acc55eca51ef1f",
        "c5f4c29fe3343c5877cc8632cc0943f862a93df1"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 09 12:51:14 2019 +0000"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 09 12:51:14 2019 +0000"
      },
      "message": "Merge \"Merge branch \u0027stable-2.15\u0027 into stable-2.16\" into stable-2.16"
    },
    {
      "commit": "5c9df74813df5a7c878e524ba39a535a1d1ed5f0",
      "tree": "6449e2e29da21d9ca93868145dab8dfe0aac8a67",
      "parents": [
        "86bf28bc897b056d22bbdefe43a0ca4accd5783b"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jan 09 13:30:36 2019 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jan 09 13:30:36 2019 +0100"
      },
      "message": "Remove getReviewDbProvider() from RequestContext\n\ngetReviewDbProvider() was removed from RequestContext in:\nbd64916573 - Remove getReviewDbProvider() from RequestContext interface\n\nChange-Id: If97fed6d174703a2c8373f3771acd7290f0872d9\n"
    },
    {
      "commit": "02accaef0d844ac3bd51553663acc55eca51ef1f",
      "tree": "26396563af47fa5f97e0aa8c58a6ff8069a6dbb6",
      "parents": [
        "86bf28bc897b056d22bbdefe43a0ca4accd5783b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 09 21:29:37 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Jan 09 21:29:37 2019 +0900"
      },
      "message": "AMQPSession: Format with google-java-format\n\nChange-Id: I1d2185e561bbea4e67c221fc3453f61082b0ddc6\n"
    },
    {
      "commit": "c5f4c29fe3343c5877cc8632cc0943f862a93df1",
      "tree": "b2d3eb82f8494d86121ba82627233ddd1b84884b",
      "parents": [
        "86bf28bc897b056d22bbdefe43a0ca4accd5783b",
        "d88773a52b3e0a8fb57c400cd0fb59867248102a"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jan 09 13:18:58 2019 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jan 09 13:18:58 2019 +0100"
      },
      "message": "Merge branch \u0027stable-2.15\u0027 into stable-2.16\n\n* stable-2.15:\n  Don\u0027t block plugin unload when no events available.\n  Catch ShutDownSignalException when closing connection\n  MessagePublisher: Threads cannot be restarted\n\nChange-Id: I3100a053f0536b50bb2f7ef27c5cc8b918f78d20\n"
    },
    {
      "commit": "d88773a52b3e0a8fb57c400cd0fb59867248102a",
      "tree": "1e564e6583016ca35bfad7ecb3e32a393599b553",
      "parents": [
        "a282cc965e44b44ec15150716ea3cc115f917349"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Fri Dec 28 14:57:57 2018 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jan 09 09:50:01 2019 +0100"
      },
      "message": "Don\u0027t block plugin unload when no events available.\n\nAdd \"End Of Stream\" Event if queue is empty.\n\nCancelableRunnable is only supposed to be canceled if not started yet.\nAdd new interface GracefullyCancelableRunnable.\n\nChange-Id: Id953904961fd18054db53bd5f3ddbe707b31ebaa\n"
    },
    {
      "commit": "a282cc965e44b44ec15150716ea3cc115f917349",
      "tree": "e286955bba425874fc3cc942046e50811f2f2931",
      "parents": [
        "7047e985fafcaaa7716d33e10c97c69134657f37"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Fri Dec 28 09:33:26 2018 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Jan 08 09:59:56 2019 +0100"
      },
      "message": "Catch ShutDownSignalException when closing connection\n\nShutDownSignalException is thrown when the connection is closing or is\nalready closed. The recommended pattern is to try to close and catch\nShutDownSignalException instead of checking if the connection is\nclosed due to race conditions.\n\nChange-Id: Ibcaec0c0008201a282bf344c639a2a2c734d99c1\n"
    },
    {
      "commit": "7047e985fafcaaa7716d33e10c97c69134657f37",
      "tree": "b4996442389fb3852f216a1b6ff16627ed9b5412",
      "parents": [
        "6fba355ec5e76d8a3dc4baf17a184b001893fbe6"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Dec 27 18:10:03 2018 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Jan 08 09:36:35 2019 +0100"
      },
      "message": "MessagePublisher: Threads cannot be restarted\n\nIf publisherThread is not alive when a new event arrives we currently\ntry to restart the dead Thread which results in a\nIllegalThreadStateException.\nIf publisherThread has died, create a new Thread and start it.\n\nSynchronize the start-new-thread logic to avoid race conditions\nthat potentially could start new threads unnecessarily and leave\nexisting, live, threads orphaned.\n\nChange-Id: I772a3275b16be7f2fb31c141ad9a71f162d53ce1\n"
    },
    {
      "commit": "86bf28bc897b056d22bbdefe43a0ca4accd5783b",
      "tree": "c2923a7f55e607875830f6c27a11b573a5d2f889",
      "parents": [
        "050ec07249018d8aaa3c457669cdbcfc16d6aefc"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Oct 25 17:16:58 2018 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Fri Oct 26 10:11:08 2018 +0200"
      },
      "message": "Migrate to flogger\n\nChange-Id: Iae8b60542b69e098931796cd2505844bc6d71b25\n"
    },
    {
      "commit": "050ec07249018d8aaa3c457669cdbcfc16d6aefc",
      "tree": "bd4c9ed232a63c46c82792a3723e5416ac656a2d",
      "parents": [
        "03a516ae0e74d0ac86ca0ff1473a4d9472741590"
      ],
      "author": {
        "name": "Bertrand Roussel",
        "email": "broussel@sierrawireless.com",
        "time": "Tue Sep 25 10:16:17 2018 -0700"
      },
      "committer": {
        "name": "Bertrand Roussel",
        "email": "broussel@sierrawireless.com",
        "time": "Tue Sep 25 10:16:42 2018 -0700"
      },
      "message": "Update package for TimeUtil\n\nChange I9c1c84d2b8 moved TimeUtil into another package.\n\nChange-Id: I12d4bd0933728f0dbc76809dc8209fdc61ea298f\nSigned-off-by: Bertrand Roussel \u003cbroussel@sierrawireless.com\u003e\n"
    },
    {
      "commit": "03a516ae0e74d0ac86ca0ff1473a4d9472741590",
      "tree": "274a31b2c14e1974bd951c31051605ec44dab30a",
      "parents": [
        "293143fc77a3afafdaa325ff7027219eeab4300c"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Fri Aug 31 09:32:56 2018 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Fri Aug 31 09:49:02 2018 +0200"
      },
      "message": "Add plugin name when adding eventlistener\n\nDynamicSet stores the name of the plugin that binds the item since\n812635aae2f5a66aaaa47cc389af82bce28e7e6e\n\nChange-Id: Ib8bdcd063ba253c6916624c6f521aef3b784bd99\n"
    },
    {
      "commit": "293143fc77a3afafdaa325ff7027219eeab4300c",
      "tree": "5a69553edc794715f11c6140a9fb94010bfd6154",
      "parents": [
        "5e998d8e86b656441a858a5301e6c212ad2ca5e9",
        "6fba355ec5e76d8a3dc4baf17a184b001893fbe6"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Aug 30 10:00:12 2018 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Aug 30 10:00:57 2018 +0200"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Catch AlreadyClosedException and retry connection\n  Rename dependencies to align with core\n  Name the publisher thread\n  Do not block Gerrit\u0027s event bus when queue is full\n  Clean up the Publisher interface and implementations\n  Upgrade amqp-client to 4.1.1\n  Format Java files with google-java-format\n  Serialize Project.NameKey correctly\n\nChange-Id: Ic8cade8a935991606fc8c67d65ecfc455d1b9f97\n"
    },
    {
      "commit": "6fba355ec5e76d8a3dc4baf17a184b001893fbe6",
      "tree": "bbcbf4ad2fc7455f7e5e0a25ad88b6ed452fcddf",
      "parents": [
        "3db7baaf130657614fd15e904acbd606d19904d0"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Aug 29 14:22:17 2018 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Aug 29 14:58:25 2018 +0200"
      },
      "message": "Catch AlreadyClosedException and retry connection\n\nAlreadyClosedException thrown by AMQConnection#createChannel() was\nnever caught which killed the rabbitmq publisher when connection was\nclosed unexpectedly.\n\nBug: Issue 9652\nChange-Id: Iba218acae5f7987d1728b7d5510cab53621fe980\n"
    },
    {
      "commit": "3db7baaf130657614fd15e904acbd606d19904d0",
      "tree": "e4aedb6cc7a52dbb94ce801b282790bde8b6073d",
      "parents": [
        "510f7c604061eab81a8af0a83cba01fa41dc8312",
        "ba18ec711b7d90d5e231f1b20f29b00398094930"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Jun 12 18:10:05 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Jun 12 18:10:05 2018 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Rename dependencies to align with core\n\nChange-Id: Ib8f809b1d38431d6a247cc4b972a4ad0e5ba41b7\n"
    },
    {
      "commit": "ba18ec711b7d90d5e231f1b20f29b00398094930",
      "tree": "0bd43f1165e04a62c4d6d994aa72e7247f7431d9",
      "parents": [
        "8777cf50301c5849ae8957fc0f8725b78969fca3"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Jun 12 18:07:27 2018 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Jun 12 18:07:27 2018 +0900"
      },
      "message": "Rename dependencies to align with core\n\nSince change I1e75690fe on core Gerrit, names of library targets\nwere changed to use hyphen instead of underscore.\n\nUpdate the BUILD file accordingly.\n\nChange-Id: Ia73c58d2b14c45306b376f8e57d7ae6965aa8c71\n"
    },
    {
      "commit": "510f7c604061eab81a8af0a83cba01fa41dc8312",
      "tree": "599ad9e62a901c87969ef8138c0d64f4aeb5f56c",
      "parents": [
        "a638934b1b3cc3915d0af4fade265a75f0ba3121",
        "8777cf50301c5849ae8957fc0f8725b78969fca3"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Feb 07 08:23:06 2018 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Feb 07 08:23:06 2018 +0100"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into \u0027stable-2.15\u0027\n\n* google/stable-2.14:\n  Name the publisher thread\n  Do not block Gerrit\u0027s event bus when queue is full\n  Clean up the Publisher interface and implementations\n  Format Java files with google-java-format\n  Serialize Project.NameKey correctly\n\nChange-Id: Ie9f94aaf1e3e5c831c305d0cfce85ce61ed00a4e\n"
    },
    {
      "commit": "8777cf50301c5849ae8957fc0f8725b78969fca3",
      "tree": "e3cbc3da193b736626c6a3a661553f144d120d89",
      "parents": [
        "9f8ca36cfa9813fd252998f7679b94991d504231"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon Nov 27 11:56:39 2017 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "sven.selberg@axis.com",
        "time": "Wed Feb 07 07:16:10 2018 +0000"
      },
      "message": "Name the publisher thread\n\nChange-Id: Idad5e0d27fe6d04d90094583949f332bce61828e\n"
    },
    {
      "commit": "9f8ca36cfa9813fd252998f7679b94991d504231",
      "tree": "58c925be59e3eb6ef6db4efb88c8f0c6eff3a319",
      "parents": [
        "26fdd0e21ff1adb21e08dc09c60fc520720cf596"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Fri Nov 17 14:24:21 2017 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Feb 06 12:29:07 2018 +0100"
      },
      "message": "Do not block Gerrit\u0027s event bus when queue is full\n\nIf rabbitmq goes down and the plugin cannot send messages for a long\nenough time, the queue will eventually fill up. queue.put() will block\nand wait for the publisher to start consuming from the queue and block\nthe event bus in Gerrit until queue is non-full.\n\nProducer:\n* If queue is full throw away incoming events instead of blocking.\nConsumer:\n* Wait for event to be available.\n* If event is available: take event and wait for an open connection.\n* If publish event fails and queue is full: throw away event.\n\nChange-Id: Idbe6a344fbaa8ae8715a5ddac7a1b1e89204f436\n"
    },
    {
      "commit": "26fdd0e21ff1adb21e08dc09c60fc520720cf596",
      "tree": "1c86394844a1e15805e8386f255d8a1c34127881",
      "parents": [
        "5759fb9aee27574cf0c1440cd87108d74abf9f80"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon Nov 27 10:00:32 2017 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Mon Nov 27 10:40:34 2017 +0100"
      },
      "message": "Clean up the Publisher interface and implementations\n\nA message publisher is enabled when it is connected, which implies an\nopen Session.\n\nRemove Publisher methods:\n* enable - unused\n* disable - unused\n* getSession - unused\n* isEnable - Only used by MessagePublisher internally\n\nMessagePublisher, rename isEnable -\u003e isConnected and make private.\n\nChange-Id: Icc6d73f41f250e5376a2a4b1cb7f82c40ec721ff\n"
    },
    {
      "commit": "a638934b1b3cc3915d0af4fade265a75f0ba3121",
      "tree": "7ec50deee044df95aef1a9c542a0c94e9c2ea792",
      "parents": [
        "ac885b7b55b910e03f3bb52d01a4df028aed39e3"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Nov 17 23:59:47 2017 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Nov 21 11:24:40 2017 +0000"
      },
      "message": "Upgrade amqp-client to 4.1.1\n\nChange-Id: I2ffb91e3bc497712c6da480cdaf47acb22758573\n"
    },
    {
      "commit": "5e998d8e86b656441a858a5301e6c212ad2ca5e9",
      "tree": "05db7c2c6c47c96907f157ac2ebb02970ae15a5e",
      "parents": [
        "ac885b7b55b910e03f3bb52d01a4df028aed39e3"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Nov 21 11:54:54 2017 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Nov 21 12:06:05 2017 +0100"
      },
      "message": "Change namespace for EventListeners\n\nEventListeners where moved from gerrit-common to gerrit-server in:\nhttps://gerrit-review.googlesource.com/c/gerrit/+/122031\n\nChange-Id: Ia5a7e16080b9a4011f27066016de3db602f1ff63\n"
    },
    {
      "commit": "5759fb9aee27574cf0c1440cd87108d74abf9f80",
      "tree": "55c927c6bed7f396b904e78d0505e3e0994b4aec",
      "parents": [
        "49ed665f8f8efe6d5b2fe3c86ffba04d4f26079d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Sat Nov 18 00:02:14 2017 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Sat Nov 18 00:02:26 2017 +0900"
      },
      "message": "Format Java files with google-java-format\n\nChange-Id: I97416eb0fbcadea7733900eea59e22000df3764b\n"
    },
    {
      "commit": "49ed665f8f8efe6d5b2fe3c86ffba04d4f26079d",
      "tree": "ee343e8ec40012e331ec0422afaccccc67491901",
      "parents": [
        "f5865a315e533072a2c1fc3da3a40404e4c23b90"
      ],
      "author": {
        "name": "Gustaf Lundh",
        "email": "gustaflh@axis.com",
        "time": "Tue Nov 14 00:10:34 2017 +0100"
      },
      "committer": {
        "name": "Gustaf Lundh",
        "email": "gustaflh@axis.com",
        "time": "Tue Nov 14 00:13:16 2017 +0100"
      },
      "message": "Serialize Project.NameKey correctly\n\nThe ProjectNameKeySerializer() was not used for serialization\nwhich introduced a diff in the serialized project names in the\nmq payload when compared to the events produced by the\nstream-events command.\n\nProject names should consistantly been serialized as:\n\n  {\n  ...\n  \"project\":\"system/jenkins/ops\"\n  ...\n  }\n\nBut ended up in some cases as:\n\n  {\n  ...\n  \"project\":{\"name\":\"system/jenkins/ops\"}\n  ...\n  }\n\nChange-Id: I9d00deae35f015ebd149b0260bd7dca79fc8fc94\n"
    },
    {
      "commit": "ac885b7b55b910e03f3bb52d01a4df028aed39e3",
      "tree": "72390795fa9c4fdebd17c8b7588226d84333503e",
      "parents": [
        "bb3f11a7fdecc05a3b83e8f61203da1235e60524"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 10 07:43:50 2017 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Fri Nov 10 07:43:50 2017 +0000"
      },
      "message": "Remove use of ReviewDb to resolve accounts\n\nStarting from Gerrit 2.15 the accounts resolution does not need anymore\na reference to ReviewDb.\n\nChange-Id: I098eb8c5ad8d047630b31537830ad1db29e1e88f\n"
    },
    {
      "commit": "bb3f11a7fdecc05a3b83e8f61203da1235e60524",
      "tree": "8009efd13df52de39b5bfff9ef1784e2ebd9b0f0",
      "parents": [
        "d35ec39500ffc62a0a0bdac562f48125177b6ac3"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Aug 21 09:04:31 2017 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Aug 21 09:04:41 2017 +0100"
      },
      "message": "Rephrase the synopsis statement\n\nChange-Id: If0c8d5bd99d1632dd757e01b83148db31a56920e\n"
    },
    {
      "commit": "d35ec39500ffc62a0a0bdac562f48125177b6ac3",
      "tree": "7b34ae031d8d10c1ab0370eaadbd2556b2c064fc",
      "parents": [
        "f5865a315e533072a2c1fc3da3a40404e4c23b90"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 14:49:03 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 14:49:03 2017 +0200"
      },
      "message": "UserEventWorker: catch exceptions\n\nChange-Id: I9ea81adb7a87d9640ffe458475d096cfaa1a2030\n"
    },
    {
      "commit": "f5865a315e533072a2c1fc3da3a40404e4c23b90",
      "tree": "62b2f4d183a439cec179601a13309754aab0a3d4",
      "parents": [
        "2d72dbdb212472eaade06d986cde512b0d9fc712"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 14:40:57 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 14:40:57 2017 +0200"
      },
      "message": "Format Java files with google-java-format\n\nChange-Id: Icf57b8d72c94abb9be565e41718a3406d6262e8e\n"
    },
    {
      "commit": "2d72dbdb212472eaade06d986cde512b0d9fc712",
      "tree": "e595788ca576fbf40653bbbc77d52900d40e9780",
      "parents": [
        "6885d43ebe7a5bcc9cd20bee37a25a3f30114304",
        "e8bb00cfe4ee3ac57d1832bbd2ab01da6cfb3beb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 14:09:41 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 14:24:36 2017 +0200"
      },
      "message": "Merge branch \u0027stable-2.13\u0027\n\n* stable-2.13:\n  Use queue to hold Events during connection glitches\n  Remove obsolete manifest entries\n  Tidy up dependencies\n  Build with plugin API 2.13.2\n\nChange-Id: I32aa58836e0d4f1dc01e30ee7cbedf93aeef65ee\n"
    },
    {
      "commit": "e8bb00cfe4ee3ac57d1832bbd2ab01da6cfb3beb",
      "tree": "d03dddf385c2d6024e633ba17ecec4ab969bd654",
      "parents": [
        "f7e22dda3ae5141665201331e17bc15c1ee59667",
        "8eaaf4caa4735e57e7ae93da490f0c45a9f22295"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Aug 03 13:38:38 2017 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Aug 03 13:55:27 2017 +0200"
      },
      "message": "Merge branch \u0027stable-2.12\u0027 into stable-2.13\n\n* stable-2.12:\n  Use queue to hold Events during connection glitches\n\nChange-Id: If0c52ad0ff99e49f7156fcd84e36552f3f679370\n"
    },
    {
      "commit": "6885d43ebe7a5bcc9cd20bee37a25a3f30114304",
      "tree": "143f4d010ed288f0e8b9f5c24efd501d5f62a388",
      "parents": [
        "56d3f24cebb690935e20beb76f2e736a1371658f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:51:48 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:51:48 2017 +0200"
      },
      "message": "Remove build instructions from README\n\nThe build instructions in the README are incomplete, and are\nredundant anyway because there is a dedicated build document.\n\nReplace the instructions with a link to the build document.\n\nChange-Id: I2c08341f036bfcf5f6e5d4b1973fcf046d5810ba\n"
    },
    {
      "commit": "56d3f24cebb690935e20beb76f2e736a1371658f",
      "tree": "c69fdf0ae6de299a68b128445ede6a0837e82e37",
      "parents": [
        "c2cc28eacfd0359ed1bf9d1b5a86f09c715b33fb"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:45:00 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:45:00 2017 +0200"
      },
      "message": "Format external_plugin_deps.bzl\n\nChange-Id: I98732668b926f5752e9af6987f9de3defd15519e\n"
    },
    {
      "commit": "c2cc28eacfd0359ed1bf9d1b5a86f09c715b33fb",
      "tree": "c416d64c8b546f37fd2c473acf787eb1e44f24aa",
      "parents": [
        "82403585045115d80a0a218ecd4eb55b82a8299f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:42:19 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:42:19 2017 +0200"
      },
      "message": "Make documentation links relative in README\n\nChange-Id: Ie91ada43e49a4a6c94b4dd610ea84c2ba635c82f\n"
    },
    {
      "commit": "82403585045115d80a0a218ecd4eb55b82a8299f",
      "tree": "637346a4c302e9ce0ab241e8cbff3b9e05f1acaf",
      "parents": [
        "22b0a899be34f1d27ad304c0b29ab3670138dd16"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:41:11 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 13:41:11 2017 +0200"
      },
      "message": "Remove dead links from README\n\nChange-Id: I83b9f9602236efd0c2226383dd3185e76e7c9bad\n"
    },
    {
      "commit": "22b0a899be34f1d27ad304c0b29ab3670138dd16",
      "tree": "5dcf8fb06224bf8350e7e043e22ab75f194f6c32",
      "parents": [
        "3e042215a00ac4d1439ff3236394f47b575ac694",
        "f488bccf60526d80960705b3846e0d6ad1ee5f2f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 11:39:35 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 03 11:39:35 2017 +0000"
      },
      "message": "Merge \"Link commons-io in plugin jar\""
    },
    {
      "commit": "3e042215a00ac4d1439ff3236394f47b575ac694",
      "tree": "f801083c650b85a057211f170dff24af986fcefb",
      "parents": [
        "5945d0e2dce4bea75caf1a945ccea87b824bc45e"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 12:39:32 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 12:39:32 2017 +0200"
      },
      "message": "Tidy up .gitconfig\n\nChange-Id: Ia33c4774bd5c10ea3335d73f21faa7936adb5c58\n"
    },
    {
      "commit": "5945d0e2dce4bea75caf1a945ccea87b824bc45e",
      "tree": "2c52c7a4d9977a42418c98a6a7564a6e1c369912",
      "parents": [
        "dc051de9c8042c999f7675704d6b437c2494e604"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 12:36:36 2017 +0200"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Thu Aug 03 12:36:36 2017 +0200"
      },
      "message": "Fix Implementation-URL\n\nChange-Id: I64ad4ba1bd6f2d4e2482b764924d1acdfd7ee36a\n"
    },
    {
      "commit": "f488bccf60526d80960705b3846e0d6ad1ee5f2f",
      "tree": "a92f39ddd6fb33ef89415aa3acbeb59ea0c7d32e",
      "parents": [
        "dc051de9c8042c999f7675704d6b437c2494e604"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Aug 03 12:22:55 2017 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Aug 03 12:24:06 2017 +0200"
      },
      "message": "Link commons-io in plugin jar\n\nChange-Id: Ic6ff71cf0d1f6139bd8df6bd386119fd4df0aba3\n"
    },
    {
      "commit": "dc051de9c8042c999f7675704d6b437c2494e604",
      "tree": "e0a769b5718e03d97fd08bbbd18970a36841db88",
      "parents": [
        "f4031713863dccc5511d2d7afaaf744e56310a55"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Fri Feb 10 01:19:48 2017 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Sun Feb 12 02:20:07 2017 +0000"
      },
      "message": "Remove buck build\n\nChange-Id: I13a3f6269bd198fcf81e4f72bb99b12cc0ce5228\n"
    },
    {
      "commit": "f4031713863dccc5511d2d7afaaf744e56310a55",
      "tree": "0829517ac741f30be5d0028d39fdc03aa4f33b18",
      "parents": [
        "01fd6e466f415d5e1f0edc655963254e244d403e"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Sun Feb 05 13:52:58 2017 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Feb 09 11:04:59 2017 +0000"
      },
      "message": "Add support for Bazel in Gerrit tree build\n\nChange-Id: I5a666053543f8581659449b6a57e139214285b5d\n"
    },
    {
      "commit": "8eaaf4caa4735e57e7ae93da490f0c45a9f22295",
      "tree": "fdacec268b8d931e086a17b539b5f438a339cceb",
      "parents": [
        "00f2c66d46d9d14611d2455f7a73e6d88f90670b"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Jan 10 11:51:22 2017 +0100"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Thu Jan 12 10:43:45 2017 +0100"
      },
      "message": "Use queue to hold Events during connection glitches\n\nChange-Id: I262ae8cf5800fea1a8c9ecdd610e385cc5ccf7ff\n"
    },
    {
      "commit": "f7e22dda3ae5141665201331e17bc15c1ee59667",
      "tree": "661bea03fc7bf343f79f2f03245964ed70808e0a",
      "parents": [
        "312b6a9b46d5e85340616365b4dc12517d4d16df"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 09 14:36:22 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 09 14:36:22 2016 +0900"
      },
      "message": "Remove obsolete manifest entries\n\nChange-Id: Ib5093d8e67cccd5c83c4156f381b6d85bdf44c2f\n"
    },
    {
      "commit": "312b6a9b46d5e85340616365b4dc12517d4d16df",
      "tree": "19d86ce80e9c9174fe05abcfe896bdaa9a17c379",
      "parents": [
        "63c40aaa2df7e4fc4235fe64ca34791fb0b7739f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 09 14:32:22 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 09 14:34:32 2016 +0900"
      },
      "message": "Tidy up dependencies\n\nRemove gson and commons-lang. These are provided by the plugin API,\nso it\u0027s not necessary to explicitly depend on them.\n\nMove the commons-io and commons-codec definitions to the root BUCK\nfile.\n\nChange-Id: I5df79e8c1468ef566b06059d6f40e772e2ca74b2\n"
    },
    {
      "commit": "63c40aaa2df7e4fc4235fe64ca34791fb0b7739f",
      "tree": "9abdd5483b5205099056baa1833174523e909a33",
      "parents": [
        "353a45028c7f0de61f1b550e0c3eae3a41ec4130"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 09 14:22:55 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Nov 09 14:22:55 2016 +0900"
      },
      "message": "Build with plugin API 2.13.2\n\nChange-Id: I19b8ef30c8df5ebe64231325a30379b0cac2bf58\n"
    },
    {
      "commit": "01fd6e466f415d5e1f0edc655963254e244d403e",
      "tree": "ff86e416b176133c653fe66bdf1cce9f44b2cb30",
      "parents": [
        "353a45028c7f0de61f1b550e0c3eae3a41ec4130"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:54:19 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:54:19 2016 +0900"
      },
      "message": "Fix Checkstyle warnings\n\n- Modifier order not according to JLS recommendation\n- Redundant \u0027public\u0027 modifier on interface methods\n- Redundant \u0027final\u0027 modifier on static methods\n\nChange-Id: I4e203f34a27e098abfda041f071ba76c6786ad01\n"
    },
    {
      "commit": "353a45028c7f0de61f1b550e0c3eae3a41ec4130",
      "tree": "6f66ab0d750d15f84bfe1620c8d9cee98472354b",
      "parents": [
        "d7c0d7967129c0f68c5bd3d8091c1704d90cfcf2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Sep 30 14:05:51 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Fri Sep 30 14:05:51 2016 +0900"
      },
      "message": "Build with API version 2.13.1\n\nChange-Id: I499b388ef4d65d539362b8132c52da9d2478bb1b\n"
    },
    {
      "commit": "d7c0d7967129c0f68c5bd3d8091c1704d90cfcf2",
      "tree": "94af74c5eeb9b4aad742101188725942534f5e5c",
      "parents": [
        "d9e0a0705a186d31db542af662abfdc0a9bd027e",
        "00f2c66d46d9d14611d2455f7a73e6d88f90670b"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Aug 31 10:04:18 2016 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Aug 31 10:08:21 2016 +0200"
      },
      "message": "Merge stable-2.12\n\n00f2c66 Merge branch stable-2.11 into stable-2.12\n6dce1d7 Allow to specify amqp passwords in etc/secure.config\n3f65399 Build with API version 2.11.8\nca93bcc Build with plugin API version 2.12.1\n5558190 Organize imports\n3ed04fb Build with API version 2.11.7\n993a2aa Build with plugin API version 2.12 final release\n\nChange-Id: I65c01da0f578af25087144aed5c8b4e374c898af\n"
    },
    {
      "commit": "d9e0a0705a186d31db542af662abfdc0a9bd027e",
      "tree": "6730dd7d7a91a03f61f80685e7264593b345f6a4",
      "parents": [
        "f4bfb97bfbd00b5e0aac8e65b2302d17d9361ebc"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Aug 30 21:20:41 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Tue Aug 30 21:20:41 2016 +0900"
      },
      "message": "Adapt to upstream changes\n\naccountResolver#find now needs a ReviewDb.\n\nBug: Issue 4463\nChange-Id: Ibb94052b936c2bb09e68873dfe3b784cc5b01063\n"
    },
    {
      "commit": "f4bfb97bfbd00b5e0aac8e65b2302d17d9361ebc",
      "tree": "152cf91c9aeaa06ed3ec7cf2390cf7fae2ce945f",
      "parents": [
        "944de90c873717926d843a0d79f3f8989f5e5c7f"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 21 11:42:33 2016 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Jun 21 11:50:53 2016 +0100"
      },
      "message": "Inject Gson serializer with Supplier\u003cT\u003e management\n\nGerrit master uses a Supplier\u003cT\u003e pattern to get hold of the event\u0027s data\nand we need to use the same mechanism to serialize it to RabbitMQ\nstream events.\n\nWithout this change, the RabbitMQ stream events are broken as they would\nonly receive blank fields, which is the result of default serialization\nof Supplier\u003cT\u003e\n\nChange-Id: I4efa51c0d6cd06523882e631d3e717b6c1d858ee"
    },
    {
      "commit": "00f2c66d46d9d14611d2455f7a73e6d88f90670b",
      "tree": "77ddb55a3525ef06a0af773051bce2ec6baa93e9",
      "parents": [
        "ca93bcc8e426077ae0ceb5638c414086d1809958",
        "6dce1d7dee1a72c3e01e14809a727b143428f7b9"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jun 08 15:47:25 2016 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Tue Jun 14 13:14:57 2016 +0200"
      },
      "message": "Merge branch stable-2.11 into stable-2.12\n\n6dce1d7 Allow to specify amqp passwords in etc/secure.config\n3f65399 Build with API version 2.11.8\n5558190 Organize imports\n3ed04fb Build with API version 2.11.7\n\nChange-Id: I90b0dcadd9dea3cae356a295ca637c8974ef3ba2\n"
    },
    {
      "commit": "6dce1d7dee1a72c3e01e14809a727b143428f7b9",
      "tree": "a505d2d94e5a34609605047f6aa0f3b52f1f24fb",
      "parents": [
        "3f65399d05f03d7000372455586bce6f6fd5963a"
      ],
      "author": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jun 08 14:08:35 2016 +0200"
      },
      "committer": {
        "name": "Sven Selberg",
        "email": "svense@axis.com",
        "time": "Wed Jun 08 14:28:36 2016 +0200"
      },
      "message": "Allow to specify amqp passwords in etc/secure.config\n\nChange-Id: Ic405afc3afea7acc4e5bde1cdadccbdfec47afdd\n"
    },
    {
      "commit": "944de90c873717926d843a0d79f3f8989f5e5c7f",
      "tree": "f0480f99660d8fb608983046c0978b6690bd4049",
      "parents": [
        "9b1016b583be48bc86e6dccfe0b7f796bccf12da"
      ],
      "author": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Thu Mar 10 11:10:27 2016 -0500"
      },
      "committer": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Thu Mar 10 11:16:31 2016 -0500"
      },
      "message": "Use new user scoped event listeners extension\n\nSince Ieecb1d6f0, user scoped events listener must be registered through\nthe extension point.\n\nChange-Id: I60c7dab114f6692758e17ed3d4204e235cb5c086\n"
    },
    {
      "commit": "3f65399d05f03d7000372455586bce6f6fd5963a",
      "tree": "9bf8c92fa625f590cd727d7ce7e94859a0c6ad44",
      "parents": [
        "555819006995a0cf612a4d308bba84d910350a49"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Mar 09 12:29:25 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed Mar 09 12:29:25 2016 +0900"
      },
      "message": "Build with API version 2.11.8\n\nChange-Id: Ifc170fe1117397210926226899a56a20a5d1d02e\n"
    },
    {
      "commit": "ca93bcc8e426077ae0ceb5638c414086d1809958",
      "tree": "05ecccdb892baec7a6c271feb7f67c561fbc079a",
      "parents": [
        "993a2aa1f9e5e2a23844e016fb3d7643adb4207c"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Mar 03 13:45:43 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Mar 03 13:45:43 2016 +0900"
      },
      "message": "Build with plugin API version 2.12.1\n\nChange-Id: I1fa81b22de2e1aaacfe32d92d589bc3cba56cf70\n"
    },
    {
      "commit": "555819006995a0cf612a4d308bba84d910350a49",
      "tree": "194b7631500f1862d96935395dcd497868ed103b",
      "parents": [
        "3ed04fb045ee209a2e3747015dd86f8bd1da5d1f"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Feb 16 15:38:24 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Feb 16 15:38:24 2016 +0900"
      },
      "message": "Organize imports\n\nChange-Id: I223c51ab0aae77a5ff265a1989b7dac3d1a5657d\n"
    },
    {
      "commit": "3ed04fb045ee209a2e3747015dd86f8bd1da5d1f",
      "tree": "28f593b8aec239608c382ae3ef95341188b82963",
      "parents": [
        "877b8e2942bf4895310a1af597929a0512e092f2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Feb 16 13:53:00 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Feb 16 13:53:00 2016 +0900"
      },
      "message": "Build with API version 2.11.7\n\nChange-Id: Id53f1f829567a05330300e9d95dd039bf3c7389e\n"
    },
    {
      "commit": "993a2aa1f9e5e2a23844e016fb3d7643adb4207c",
      "tree": "a67dfb59c25e68ed16e4c15736c47dc4dd3f8022",
      "parents": [
        "9b1016b583be48bc86e6dccfe0b7f796bccf12da"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Dec 22 15:46:58 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Dec 22 15:46:58 2015 +0900"
      },
      "message": "Build with plugin API version 2.12 final release\n\nChange-Id: Id2203877f903969137de7df10f1cd56dbfa60a28\n"
    },
    {
      "commit": "9b1016b583be48bc86e6dccfe0b7f796bccf12da",
      "tree": "ed73790056e11251773137d8595533d92b95c848",
      "parents": [
        "ff627c1e6ee4763b5a9a11058bc68e68e348c4c7"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Dec 07 17:13:59 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Dec 07 17:19:21 2015 +0900"
      },
      "message": "Build with API version 2.12-rc0\n\nChange-Id: I2b15fba5f87109e43d523c4d596a35b6301a48c6\n"
    },
    {
      "commit": "ff627c1e6ee4763b5a9a11058bc68e68e348c4c7",
      "tree": "e490496b88e1f903ef9dfd710e30199b81990404",
      "parents": [
        "5ad6990de14227b87679b15a5197f4af6c3ba3bd",
        "877b8e2942bf4895310a1af597929a0512e092f2"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Dec 07 17:18:16 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Dec 07 17:18:16 2015 +0900"
      },
      "message": "Merge branch \u0027stable-2.11\u0027\n\n* stable-2.11:\n  Remove support for deprecated config format\n\nChange-Id: I94243d04aa167c5a7b846d0f16dbf9d7a65b506e\n"
    },
    {
      "commit": "5ad6990de14227b87679b15a5197f4af6c3ba3bd",
      "tree": "dff2bd450668d5654814a9707a411a643f0e8232",
      "parents": [
        "a7d0044574c0f27653567f406ee15e95c5bb7d69"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Wed Oct 21 00:19:03 2015 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Wed Oct 21 00:19:03 2015 +0200"
      },
      "message": "Follow upstream\u0027s renaming of method to get current user\n\nIn gerrit\u0027s\n\n  85f0487714e005b478eee5b28efab22bf5b7a5e2\n\ncommit, the getCurrentUser accessor got renamed to getUser. We follow\nthis move to allow compilation against gerrit master.\n\nBug: Issue 3621\nChange-Id: Iebec4cf5ecd1dedb1e37243e89550eeb6a9e6cfb\n"
    },
    {
      "commit": "a7d0044574c0f27653567f406ee15e95c5bb7d69",
      "tree": "998c88863d498d00724c7df32088e7776a0c5f95",
      "parents": [
        "c9e55e8f661e21e85605c248dc9a5107c02f4b68"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Jul 30 21:52:01 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Thu Jul 30 21:52:01 2015 +0900"
      },
      "message": "Add explicit dependency on commons-io\n\nChange-Id: I6487d27ab01503147eefab061802be434f6a6af1\n"
    },
    {
      "commit": "c9e55e8f661e21e85605c248dc9a5107c02f4b68",
      "tree": "9148e7df25c7e8495dcb2ed6bbacbb04e6523bdf",
      "parents": [
        "f781c112c40c0d06c44d387bcb78a45d442925cc"
      ],
      "author": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Wed Jul 29 22:14:33 2015 +0200"
      },
      "committer": {
        "name": "Christian Aistleitner",
        "email": "christian@quelltextlich.at",
        "time": "Wed Jul 29 22:14:33 2015 +0200"
      },
      "message": "Bundle commons-io since gerrit core no longer provides it\n\nBy removing Solr from gerrit core in\n\n  7fe1752bfdae0c280170ce2759146dc55bb6cd36\n\ncommons-io is no longer provided by the environment.\nBuilding this plugin still worked, but loading it failed with:\n\n  com.google.gerrit.server.plugins.PluginInstallException: org/apache/commons/io/FilenameUtils\n  [...]\n  Caused by: java.lang.NoClassDefFoundError: org/apache/commons/io/FilenameUtils\n  [...]\n  fatal: Plugin failed to install. Cause: org/apache/commons/io/FilenameUtils\n\nBy moving commons-io to the explicit dependencies, the plugin loads\nagain with current gerrit core.\n\nChange-Id: Ifb43baafc2d1ee190875802f3bc2a36fed5e7cef\n"
    },
    {
      "commit": "877b8e2942bf4895310a1af597929a0512e092f2",
      "tree": "d3aff115acfe8eb729dd38d1586e7caee3dbde4d",
      "parents": [
        "86ad067783adf0e7e2df389bd625f0687890caad",
        "57826c17631d327f1ebb46b7ad41e7811042e448"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jul 07 15:34:45 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue Jul 07 15:34:51 2015 +0900"
      },
      "message": "Merge branch \u0027stable-2.10\u0027 into stable-2.11\n\n* stable-2.10:\n  Remove support for deprecated config format\n\nChange-Id: I8740de54f7222b7a7254f99e3291df9a7f0d6a6c\n"
    },
    {
      "commit": "57826c17631d327f1ebb46b7ad41e7811042e448",
      "tree": "0b3fe3194f4085840404ced4e5e84491fd866cea",
      "parents": [
        "5bc58a60e08aa63c43f925ad7c4600e20f499db7"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Wed May 27 17:21:08 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Mon Jun 01 10:04:09 2015 +0900"
      },
      "message": "Remove support for deprecated config format\n\nChange-Id: I1021e4529ec4d4233f7ed42c6b311557584b9857\n"
    },
    {
      "commit": "f781c112c40c0d06c44d387bcb78a45d442925cc",
      "tree": "8e3ac3e2c3bc79510f0a8018e03f178ed2732969",
      "parents": [
        "805e1649a8f37c870ad8fd294d22a072b854cf03"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue May 19 21:56:02 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue May 26 01:10:23 2015 +0000"
      },
      "message": "Bump guice-multibindings to final 4.0 release\n\nChange-Id: I613ef55da5e091b2764195dbcbf4b24ccf1ed85b\n"
    },
    {
      "commit": "805e1649a8f37c870ad8fd294d22a072b854cf03",
      "tree": "08c56cfe784664366b1f30fb57cb2dc9fa9a1a7a",
      "parents": [
        "5be539c2cd5fda3c20cb8b85793060d0d75a995f",
        "86ad067783adf0e7e2df389bd625f0687890caad"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue May 26 10:09:26 2015 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "david.pursehouse@sonymobile.com",
        "time": "Tue May 26 10:09:58 2015 +0900"
      },
      "message": "Merge branch \u0027stable-2.11\u0027\n\n* stable-2.11:\n  Remove VERSION file\n  Solver V1: Check for file/directory existence before operations\n  AMQProperties: Fix IllegalArgumentException when setting properties\n  Catch explicit exceptions instead of Exception\n  Use AtomicInteger instead of volatile int\n  Prevent potential null-pointer access\n  Remove unnecessary constructor invocations\n  Remove unnecessary casts\n  Add missing @Override annotations\n  Change logging message and level for closed connection.\n  Create new AMQP properties for each publication\n  Bump AMQP client to 3.5.2\n  Fall back to loading only base config if no site configs are found\n  Change logging message and level for failed connection.\n  Add timestamp on messages\n  Use API version 2.10.4\n  Implement standalone Buck build\n  Remove Gradle build\n  Implement Buck build\n  Better usage of builder patten in AMQProperties.getBasicProperties\n  Build with API version 2.11\n\nChange-Id: Ia9235595fd810e01e7749a31265ab1233f7d7206\n"
    }
  ],
  "next": "86ad067783adf0e7e2df389bd625f0687890caad"
}
