)]}'
{
  "log": [
    {
      "commit": "3a102b5d666fbfbf1b574812db97a5a4f68481c1",
      "tree": "0a423fe896e6c57aeca03a3137e0ddcc5159d1fc",
      "parents": [
        "e26d5d7c6de1ebe686df603e4be1084a27fd7969"
      ],
      "author": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jun 08 21:36:49 2026 +0100"
      },
      "committer": {
        "name": "Daniele Sassoli",
        "email": "danielesassoli@gmail.com",
        "time": "Mon Jun 08 13:48:04 2026 -0700"
      },
      "message": "Migrate to bazelmod\n\nRemove explicit dependency on Mockito as its transitively brought in\nby Gerrit.\n\nChange-Id: I4456d980490fa0753ca46d26ae24693e78a4d5d5\n"
    },
    {
      "commit": "e26d5d7c6de1ebe686df603e4be1084a27fd7969",
      "tree": "1977c9eecdcc98b82483a045b4e638a9c18e73f6",
      "parents": [
        "bdd877d092fa8a081afd20da89eadc74e7aa95c9"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue May 13 11:36:00 2025 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue May 13 06:37:47 2025 -0700"
      },
      "message": "Log the path that caused exception instead of websessions directory\n\nPreviously, failures while reading a websession file logged the\nwebsessions directory, which was not helpful for identifying the\noffending path.\n\nLog the specific file path that triggered the exception instead, so that\nit can be more easily investigated.\n\nBug: Issue 415076951\nChange-Id: I4c292f0f9a5c42af617afdff67409f966c83e83c\n"
    },
    {
      "commit": "bdd877d092fa8a081afd20da89eadc74e7aa95c9",
      "tree": "020f922f77f8b6eb448141fa66f922fd3a97911a",
      "parents": [
        "ac7d8ed453884945d03111d459c46407ae784538"
      ],
      "author": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue May 13 13:38:32 2025 +0200"
      },
      "committer": {
        "name": "Antonio Barone",
        "email": "syntonyze@gmail.com",
        "time": "Tue May 13 13:39:09 2025 +0200"
      },
      "message": "Validate websession-flatfile plugin using Gerrit CI\n\nChange-Id: I58d239b0a6dd1ce4750901ed874bc527c40c8237\n"
    },
    {
      "commit": "ac7d8ed453884945d03111d459c46407ae784538",
      "tree": "e336419914c2ea934c5635055c817a35510c6d40",
      "parents": [
        "d2c45339a33200f68817dd4865b9e4aa0eeebd3e"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 16:22:18 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 16:22:18 2023 -0700"
      },
      "message": "Add Bazel standalone build for Gerrit 3.5\n\nUse the bazel configs from the tip of stable-3.5.\n\nChange-Id: I3981efbcaeae35f6949e52e09173a88edaac9854\n"
    },
    {
      "commit": "d2c45339a33200f68817dd4865b9e4aa0eeebd3e",
      "tree": "5b6367ce381338d2c5b6d7214cd862b42a95b573",
      "parents": [
        "6ce8e9da9e36880ceddd658d0118b32ef74b5285"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:50:45 2023 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser.grainawi@linaro.org",
        "time": "Mon Dec 04 14:50:45 2023 -0700"
      },
      "message": "Remove Buck-based build\n\nThis was replaced with a Bazel build setup a while ago.\n\nChange-Id: I29878c45836f7cc8b4f541d42986ee563c86e1a3\n"
    },
    {
      "commit": "6ce8e9da9e36880ceddd658d0118b32ef74b5285",
      "tree": "081e54815b6c55647e0b87d1c2740aee7056e2eb",
      "parents": [
        "22146216358dccf63673bcdb78c9bb6070f813d5"
      ],
      "author": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed May 10 11:34:44 2023 +0100"
      },
      "committer": {
        "name": "Jacek Centkowski",
        "email": "geminica.programs@gmail.com",
        "time": "Wed May 10 11:34:44 2023 +0100"
      },
      "message": "Fix the error prone error about flogger arguments\n\nThe following error gets fixed:\n  error: [FloggerLogString] Arguments to log(String) must be compile-time constants or parameters annotated with @CompileTimeConstant. If possible, use Flogger\u0027s formatting log methods instead.\n    log.atFine().withCause(e).log(e.getMessage());\n                                  ^\n\nChange-Id: I35e0c90213de8474f4f4bbe9b33572dcb159d126\n"
    },
    {
      "commit": "22146216358dccf63673bcdb78c9bb6070f813d5",
      "tree": "ae9abe157201641929f5233b42bc4a7dd231397b",
      "parents": [
        "4b740e6c337928a120aa4313bd71bcdad105400e"
      ],
      "author": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Thu Apr 28 18:23:10 2022 +0200"
      },
      "committer": {
        "name": "Fabio Ponciroli",
        "email": "ponch78@gmail.com",
        "time": "Mon May 02 12:24:18 2022 +0200"
      },
      "message": "Add ExternalIdKeyFactory instance in tests\n\nThe ExternalIdKeyFactory has been introduced by this change id\nI64db5ed5256564dbc03952e9721615f42212ad48.\n\nIt now needs to be provided in the tests.\n\nBug: Issue 15834\nChange-Id: I8525e691424f4b908b909d56c37de2c724785aef\n"
    },
    {
      "commit": "4b740e6c337928a120aa4313bd71bcdad105400e",
      "tree": "bfe4488b6fc5a1cd9591c580d2dcb16d96452e47",
      "parents": [
        "823bff0d9268abb6b28cef7d8d9f42a0f1b69d24"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jan 26 23:36:48 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Jan 27 00:10:46 2022 +0000"
      },
      "message": "Remove listFiles() and rely on stream for reading sessions to asMap()\n\nasMap() isn\u0027t calling listFiles() anymore and is instead relying on\nthe standard Java Stream-to-Map conversion, which isn\u0027t using the\nadditional memory footprint of the list of Paths.\n\nChange-Id: Iaaa4c1bf5e39bf50100da222a9b719647cc702fc\n"
    },
    {
      "commit": "823bff0d9268abb6b28cef7d8d9f42a0f1b69d24",
      "tree": "098599b618ff10a4f51b610752bc7490fd927b96",
      "parents": [
        "e39316b8b5a16c33dd17169735618e161677d39e"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jan 26 23:17:40 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jan 26 23:30:52 2022 +0000"
      },
      "message": "Use stream-based directory listing for counting sessions\n\nThere is no need to accumulate in memory all the list\nof files in the websessions directory: use the native\nJava Streams that supports counting.\n\nChange-Id: I2e59bb4e38b79febd466cccaacaf1a0d1852984c\n"
    },
    {
      "commit": "e39316b8b5a16c33dd17169735618e161677d39e",
      "tree": "f69c3553b07c1598d80726a721928d338747c806",
      "parents": [
        "a6e573ad0209f758b9d76447db8c35cb7371199a"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jan 26 23:20:26 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jan 26 23:24:26 2022 +0000"
      },
      "message": "Use stream-based directory listing sessions invalidation\n\nThere is no need to accumulate in memory all the list\nof files in the websessions directory: the streaming fashion\nis enough to cycle and remove all sessions.\n\nChange-Id: Id780f6c44ffada8f65e66fc1a802f084c685c636\n"
    },
    {
      "commit": "a6e573ad0209f758b9d76447db8c35cb7371199a",
      "tree": "316e31855b450795daa4e65ea5ff718e38e453b7",
      "parents": [
        "5e8efcd3256c654576900bfb929c07450ba2932f"
      ],
      "author": {
        "name": "Darius Jokilehto",
        "email": "dariusjokilehto+os@gmail.com",
        "time": "Tue Jan 25 12:37:35 2022 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Wed Jan 26 23:13:43 2022 +0000"
      },
      "message": "Stream files during cleanup\n\nThis should be more memory efficient than the previous behaviour, which\nwas to maintain all files in a list before checking their expiry in\norder to delete them.\n\nBug: Issue 15562\nChange-Id: I59910ac5959b24f7e1938a0f5b09fdebd9654c3c\n"
    },
    {
      "commit": "5e8efcd3256c654576900bfb929c07450ba2932f",
      "tree": "fab8685eb6e48d206987c16839950fea5fa760a1",
      "parents": [
        "95d5e0917f6236554aa23521b06fb67fa17e1ef2"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Dec 28 18:54:01 2020 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Dec 28 18:56:16 2020 +0100"
      },
      "message": "Disable DoNotMock Error Prone check\n\nRecent Bazel upgrades Error Prone to major version 2.4.0, that is much\nstricter now. In addition, starting from guava 29.0-jre, Cache class was\nannotated with DoNotMock Error Prone annotation: [1].\n\nDisable the bug pattern, because without using the mock as advertized by\nthe check would break the corresponding mockito verifications.\n\n[1] https://github.com/google/guava/commit/4eea0f79c27864039a653ec4ca09ef7585e439fc\n\nChange-Id: Ia118ef9eb0c0adb1480488a7b97a0d77a7b31322\n"
    },
    {
      "commit": "95d5e0917f6236554aa23521b06fb67fa17e1ef2",
      "tree": "e00c7c865f23f7c57e641b9b4aeb7268b33eb452",
      "parents": [
        "a47414e989b60eaffd15962f8070d958f8ffeb8a"
      ],
      "author": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Dec 28 18:55:40 2020 +0100"
      },
      "committer": {
        "name": "David Ostrovsky",
        "email": "david@ostrovsky.org",
        "time": "Mon Dec 28 18:56:16 2020 +0100"
      },
      "message": "Reformat build file using buildifier\n\nChange-Id: I1a31bd7c4b178025bebfeca0008b4d9e22c06caa\n"
    },
    {
      "commit": "a47414e989b60eaffd15962f8070d958f8ffeb8a",
      "tree": "cc7cf1c03ddd8be5173b05c50043f219ce9c025e",
      "parents": [
        "fc1ce37dac62279cb856f6e48ded79cfc0605195"
      ],
      "author": {
        "name": "Nasser Grainawi",
        "email": "nasser@codeaurora.org",
        "time": "Fri Feb 07 15:58:43 2020 -0700"
      },
      "committer": {
        "name": "Nasser Grainawi",
        "email": "nasser@codeaurora.org",
        "time": "Wed Jul 15 15:22:34 2020 -0600"
      },
      "message": "cleaner: Catch any exceptions while cleaner is running\n\nIf any exceptions are left uncaught, future scheduled tasks for the\ncleaner will not run. See [1] for more details.\n\nAlso ensure we try to clean all entries by catching exceptions inside\nthe cleaning loop.\n\n[1] https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.html#scheduleAtFixedRate-java.lang.Runnable-long-long-java.util.concurrent.TimeUnit-\n\nChange-Id: Ieb92488f00750375604c4a9e0e362cd1278af159\n"
    },
    {
      "commit": "fc1ce37dac62279cb856f6e48ded79cfc0605195",
      "tree": "233b68cc3b84095a3764c331124292e3ecd7c91b",
      "parents": [
        "0981c5368910bcc589235a556fadfff0e847d48f",
        "31ba53e7c6a6e31b06c81f2500f03f29a6c470d4"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Jun 07 23:46:09 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Jun 07 23:46:13 2020 +0100"
      },
      "message": "Merge branch \u0027stable-2.15\u0027\n\n* stable-2.15:\n  Adapt to the latest Gerrit on stable-2.14\n\nChange-Id: Idc88756deaa419c4ecdfc5663fcd58c14872f941\n"
    },
    {
      "commit": "31ba53e7c6a6e31b06c81f2500f03f29a6c470d4",
      "tree": "c4d7317975e7c7a17b63b1fd6fb89c035ccbc23b",
      "parents": [
        "d89af1d61978b67f86226af7b4d6ebb2718f71a1",
        "4ad8e9977b68f938b0701d3b3cfbeb07eff795fa"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Jun 07 23:45:23 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Jun 07 23:45:23 2020 +0100"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Adapt to the latest Gerrit on stable-2.14\n\nChange-Id: Ic4cd8d15bd40f90ba248a657399c2e135e346804\n"
    },
    {
      "commit": "4ad8e9977b68f938b0701d3b3cfbeb07eff795fa",
      "tree": "b67136e12edde0a85acf7767400cbaa6e775dbc7",
      "parents": [
        "f8def5cc02ed37521dffe1a04460f7cbf2983c8d"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Jun 07 22:57:47 2020 +0100"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Sun Jun 07 22:03:52 2020 +0000"
      },
      "message": "Adapt to the latest Gerrit on stable-2.14\n\nAdd the extra parameter AccountCache for supporting\nthe latest security fix on stable-2.14 for blocking\nusers that have been set inactive.\n\nBug: Issue 12717\nChange-Id: I7bc8d0b00fbde5538ee9125aecd2c5ebd5c0742b\n"
    },
    {
      "commit": "0981c5368910bcc589235a556fadfff0e847d48f",
      "tree": "b52d46bd6c40f421d36005f553479aa1d204b12a",
      "parents": [
        "44eaa18e7c6fecf16021946c31f6e1756afc8636"
      ],
      "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: I7c0cbb6df3d2cea3e73a9c3d72ca7a6f96fe25c2\n"
    },
    {
      "commit": "44eaa18e7c6fecf16021946c31f6e1756afc8636",
      "tree": "987f35a6ba255e83554d03c95d20e03f88eef120",
      "parents": [
        "648f995727d3f10c93ed3be8f24138dcff7f3626"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 13:41:49 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Apr 24 14:53:36 2019 +0200"
      },
      "message": "Add logging to CleanupTask\n\nThe code for the CleanupTask in the HA-plugin contained logging. These\nlogging statements are now also implemented here.\n\nChange-Id: Iba03e51fcfba421b93b6e07d1298e2cb121c18f9\n"
    },
    {
      "commit": "648f995727d3f10c93ed3be8f24138dcff7f3626",
      "tree": "308375b321d1239fd88cefb5bb886161ab007c34",
      "parents": [
        "ca7c6a2e5b2b7788be70ba2341825e14e7f61dbb"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 10:04:25 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Apr 24 14:50:22 2019 +0200"
      },
      "message": "Use FluentLogger instead of slf4j\n\nThe Gerrit-project moved to FluentLogger last year [1]. The\nwebsession-plugin was still using slf4j.\n\nThis change exchanges the slf4j logger with FluentLogger.\n\n[1] https://gerrit-review.googlesource.com/c/gerrit/+/176930\n\nChange-Id: Ifa0f78e3d1ee480b07f0f522d55bcf085991c3da\n"
    },
    {
      "commit": "ca7c6a2e5b2b7788be70ba2341825e14e7f61dbb",
      "tree": "0509ecd6adc374c89afe07c42d0448b162a80851",
      "parents": [
        "0d01796298bb2725769bd5469aa3b7931ee9dfe1",
        "d89af1d61978b67f86226af7b4d6ebb2718f71a1"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Apr 24 14:41:23 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Apr 24 14:41:23 2019 +0200"
      },
      "message": "Merge branch stable-2.15 into master\n\n* origin/stable-2.15:\n  Use java.util.concurrent.ScheduledThreadPoolExecutor for tests\n  Document that cache cleaning intervals \u003c 1h are not supported\n  Apply changes to file-based websession cache from HA-plugin\n  Update cache cleaner to HA-plugin version and add tests\n  Add additional tests for websession cash from HA-plugin\n  Refactor test key assignment in cache tests\n  Use junit to provide a temporary directory for testing\n  Simplify cache-directory creation\n  Adapt system time manipulation to method used in HA-plugin\n  Reformat code with google-java-format 1.7\n  Fix getIfPresentObjectNonStringTest\n\nChange-Id: Ibca0bd25bb008bbf9f3a635398d517dfba4b0efe\n"
    },
    {
      "commit": "d89af1d61978b67f86226af7b4d6ebb2718f71a1",
      "tree": "0509ecd6adc374c89afe07c42d0448b162a80851",
      "parents": [
        "1c7ebd9055c07efdac59d06289204d27d0d5b3ff"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 23 15:09:47 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Wed Apr 24 10:11:53 2019 +0200"
      },
      "message": "Use java.util.concurrent.ScheduledThreadPoolExecutor for tests\n\nThe stable-2.14 version of the plugin used\n`com.google.gerrit.server.git.WorkQueue.Executor` to mock an executor\nduring tests. This executor implementation does not exist anymore in\nGerrit 2.15. Thus, `java.util.concurrent.ScheduledThreadPoolExecutor`\nis now used.\n\nChange-Id: I03579b626e6592effde4aac70730283333384c50\n"
    },
    {
      "commit": "1c7ebd9055c07efdac59d06289204d27d0d5b3ff",
      "tree": "b9a8e0ea2789755a80024a0b52e3363a2802175b",
      "parents": [
        "0d01796298bb2725769bd5469aa3b7931ee9dfe1",
        "f8def5cc02ed37521dffe1a04460f7cbf2983c8d"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Apr 24 16:56:41 2019 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Wed Apr 24 16:56:41 2019 +0900"
      },
      "message": "Merge branch \u0027stable-2.14\u0027 into stable-2.15\n\n* stable-2.14:\n  Document that cache cleaning intervals \u003c 1h are not supported\n  Apply changes to file-based websession cache from HA-plugin\n  Update cache cleaner to HA-plugin version and add tests\n  Add additional tests for websession cash from HA-plugin\n  Refactor test key assignment in cache tests\n  Use junit to provide a temporary directory for testing\n  Simplify cache-directory creation\n  Adapt system time manipulation to method used in HA-plugin\n  Reformat code with google-java-format 1.7\n  Fix getIfPresentObjectNonStringTest\n\nChange-Id: I93edd692e06c6713a6f991f002582735179fafea\n"
    },
    {
      "commit": "f8def5cc02ed37521dffe1a04460f7cbf2983c8d",
      "tree": "b9a8e0ea2789755a80024a0b52e3363a2802175b",
      "parents": [
        "b33845aca11fc9d529bc1722932fd7ef80070c93"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Fri Apr 12 16:54:27 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 23 11:07:57 2019 +0200"
      },
      "message": "Document that cache cleaning intervals \u003c 1h are not supported\n\nThe documentation stated that time intervals in a second or minute range\ncould be used to define the interval, in which the web session cache\nwould be cleaned. In reality all time intervals were rounded to hours.\nIn the case of `5m` the interval was rounded to `0`, which caused an\nerror, when loading the plugin.\n\nThis change corrects the documentation. A different approach would be to\nallow smaller time intervals, but since cleaning the cache in too small\nintervals would in reality not make sense, this was not done.\n\nChange-Id: Id5b76d8a89e6e2d9b777a6a5b7206540f98ca74b\n"
    },
    {
      "commit": "b33845aca11fc9d529bc1722932fd7ef80070c93",
      "tree": "86e93ddad734b12e5d7a2f031bb847ecd30578f5",
      "parents": [
        "c43f39c254a5552e14dbb4ac587d6ba8b8a2e4a8"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 11 15:29:45 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 23 11:07:57 2019 +0200"
      },
      "message": "Apply changes to file-based websession cache from HA-plugin\n\nThe HA-plugin contains a modified version of the websession-flatfile\nplugin. The version used in the HA-plugin was updated since it was\nforked, but those changes were not applied to the websession-flatfile\nplugin itself.\n\nThis change applies some minor changes made to the corresponding code\nin the HA-plugin to the websession-flatfile plugin. This includes:\n\n- Variable renaming\n  - `dir` -\u003e `websessionsDir`\n  - `flatFileWebSessionCache` -\u003e `cache`\n  - `cleanupInterval` -\u003e `cleanupIntervalMillis`\n- Removing `final` from parameters in `FlatFileWebSession`\n- Using `SECONDS.toMillis(1)` inline as initial delay for cleanup tasks\n  instead of a class field (`INITIAL_DELAY_MS \u003d 1000`)\n- Using `path.toFile().exists()` instead of `Files.exists(path)`.\n\nWhile minor changes, they bring the code closer to what is used in the\nHA-plugin, making it easier to port future changes.\n\nChange-Id: I38da3e9fc7dc2dcbada82b63d51acd595f7b93a8\n"
    },
    {
      "commit": "c43f39c254a5552e14dbb4ac587d6ba8b8a2e4a8",
      "tree": "ee5454df60169d3db4cdb215cab16a053b9fb3d2",
      "parents": [
        "7a85a809b48cd9dc3d68c2abd535e7a3ed679741"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 12:14:07 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Tue Apr 23 11:07:39 2019 +0200"
      },
      "message": "Update cache cleaner to HA-plugin version and add tests\n\nThe HA-plugin implemented tests for the cache cleaner. These tests\nhowever relied on a refactored version of the cache cleaner that allowed\nto use a mocked cleanup task.\n\nTo be able to make use of the tests and to be closer to the HA-plugin\nversion of the cache cleaner, this change implements the refactoring and\nadds the tests.\n\nChange-Id: I72f65210d34049ae72baa094fa24bbe62f7db0f6\n"
    },
    {
      "commit": "7a85a809b48cd9dc3d68c2abd535e7a3ed679741",
      "tree": "9ccdf682c064e15491f71a1878a37cf8858753de",
      "parents": [
        "8a7a83644f4f2a9ddfe0440eeed00d4f3056f633"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 11:45:05 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 18 10:33:53 2019 +0200"
      },
      "message": "Add additional tests for websession cash from HA-plugin\n\nThe HA-plugin code contained additional tests for the websession cache\nthat were not yet implemented in this plugin.\n\nThis change now adds the additional tests.\n\nChange-Id: Iec2c228441c76e6e0c57b11c61f0d7bb24644e42\n"
    },
    {
      "commit": "8a7a83644f4f2a9ddfe0440eeed00d4f3056f633",
      "tree": "e88eabddae7b7ebe2f15ffb11cd4139c32fc25a1",
      "parents": [
        "8c80095cd160ba768e774b9692aa8b3882877492"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 11:22:33 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 18 10:33:53 2019 +0200"
      },
      "message": "Refactor test key assignment in cache tests\n\nKeys used for tests were either assigned to fields in the constructor or\nin test-methods. In case of `newkey`, this led to some code duplication.\n\nFollowing the example in the HA-plugin, the assignment of the test keys\nto variables was moved to the declaration of the fields and the field\nnames were changed to make the code more readable.\n\nChange-Id: I16a7e2d3cf2a378bac422a0170f10aa7244a027f\n"
    },
    {
      "commit": "8c80095cd160ba768e774b9692aa8b3882877492",
      "tree": "5b76e7ad1bb5799a639a3b915d2f093af90f0678",
      "parents": [
        "5f1739107b27e4cacef3a8c564a774bd331d4ac5"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 10:42:36 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 18 10:33:53 2019 +0200"
      },
      "message": "Use junit to provide a temporary directory for testing\n\nSo far the java.nio.Files was used to create a cache directory during\ntests. Junit also provides a functionality to create temporary\ndirectories for tests.\n\nThis change implements the usage of a junit rule to create a temporary\ndirectory. This also increases the similarity to the HA-plugin.\n\nChange-Id: Id184b12ab1abf6d0ca355c41f3313ff583c916a3\n"
    },
    {
      "commit": "5f1739107b27e4cacef3a8c564a774bd331d4ac5",
      "tree": "eeceed17ed39cc081927c59b6a26a07cdcf86d5c",
      "parents": [
        "54d095b24ffc3625fa4ec05ae71557077ca3acbc"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 10:37:21 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 18 10:33:53 2019 +0200"
      },
      "message": "Simplify cache-directory creation\n\nThis change adapts the creation of the directory containing the\nwebsession-cache to the method used in the HA-plugin, which simplifies\nthe code.\n\nChange-Id: I366fe42f0382e4f682c95da38ffb4edc8b5ba079\n"
    },
    {
      "commit": "54d095b24ffc3625fa4ec05ae71557077ca3acbc",
      "tree": "373f1bbb0d8f9e2b306a8e5cc69864bcf3137f02",
      "parents": [
        "2b054fcd50dcc84d9f960e3f3d9b3150c711ebe3"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 10:23:18 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 18 10:33:53 2019 +0200"
      },
      "message": "Adapt system time manipulation to method used in HA-plugin\n\nThe HA-plugin uses a different way of accessing and manipulating the\nsystem time, which is needed for cache cleanup scheduling.\n\nThis change adapts the system time handling of the websession-flatfile\nplugin to the one of the HA-plugin to increase consistency and thereby\nwill make it easier to exchange future changes between the plugins.\n\nChange-Id: Ic3e24cb476f8dd99337fe73616012952d3945ba8\n"
    },
    {
      "commit": "2b054fcd50dcc84d9f960e3f3d9b3150c711ebe3",
      "tree": "ef4e33a737bd54ea201eb8413ea9fe23d3c25834",
      "parents": [
        "53ff0d34ce7a4a2f390c3f4f5b413d0dbd5389d2"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 09:50:14 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 18 10:33:53 2019 +0200"
      },
      "message": "Reformat code with google-java-format 1.7\n\nThe newer Gerrit branches are following the google-java-format 1.7 rules\nfor code formatting by now. The websession-flatfile plugin was not yet\nadhering to these rules.\n\nThis change applies the format changes done by the google-java-format\n1.7 tool.\n\nChange-Id: I9e7e6ba9614431bb101fdd743fb8858a2df2b362\n"
    },
    {
      "commit": "53ff0d34ce7a4a2f390c3f4f5b413d0dbd5389d2",
      "tree": "048386fe3d949bcb923ee18a31eeb1b2eb4e3fb4",
      "parents": [
        "0d01796298bb2725769bd5469aa3b7931ee9dfe1"
      ],
      "author": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Mon Apr 15 09:30:48 2019 +0200"
      },
      "committer": {
        "name": "Thomas Draebing",
        "email": "thomas.draebing@sap.com",
        "time": "Thu Apr 18 10:32:47 2019 +0200"
      },
      "message": "Fix getIfPresentObjectNonStringTest\n\nRunning the `getIfPresentObjectNonStringTest` with a newer bazel version\n(0.22.0) failed due to an error-prone check:\n\n  error: [IncompatibleArgumentType] Argument \u0027path\u0027 should not be\n  passed to this method. Its type Path is not compatible with the\n  required type: String.\n\n    assertThat(flatFileWebSessionCache.getIfPresent(path)).isNull();\n                                                    ^\n    (see https://errorprone.info/bugpattern/IncompatibleArgumentType)\n\nThe updated code of the websession cache used in the HA-plugin already\nused an empty Object() instead of a Path-object. This change adapts this\nchange to this plugin, which fixes the failing test.\n\nChange-Id: I2f383b13a0cb5c421e4326eaac872daf1b0849ef\n"
    },
    {
      "commit": "0d01796298bb2725769bd5469aa3b7931ee9dfe1",
      "tree": "72051839ca25a3692091f2cb3df939ec7ce6958b",
      "parents": [
        "bf02586838d7ee159732f9d9ef73051eaae0b285"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Mon Feb 26 16:21:29 2018 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Tue Feb 27 11:58:44 2018 +0000"
      },
      "message": "Use plain epoch millis instead of DateTime\n\nJodaTime is not strictly needed for comparing epoch times and\nis not included anymore on Gerrit master (2.16/3.0).\n\nUsing a pure long timestamp comparison resolves compile problems\nwith master and makes it compatible with more versions of Gerrit.\n\nChange-Id: Ia78ebd352b47ed48205bbd4533e6dfde1cc09d5b\n"
    },
    {
      "commit": "bf02586838d7ee159732f9d9ef73051eaae0b285",
      "tree": "a36bc9dd51f57077453644938f8f84cc00a9a642",
      "parents": [
        "9cb5da0d3345c3ef8769e7a428593d24bc5a5782"
      ],
      "author": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Wed Feb 15 23:38:53 2017 +0000"
      },
      "committer": {
        "name": "Paladox none",
        "email": "thomasmulhall410@yahoo.com",
        "time": "Thu Feb 16 14:25:36 2017 +0000"
      },
      "message": "Add support for Bazel in Gerrit tree build\n\nChange-Id: I9d8be0a0da397df14da0285fba2c5c278408548e\n"
    },
    {
      "commit": "9cb5da0d3345c3ef8769e7a428593d24bc5a5782",
      "tree": "b3df6da1ba11f2a2dbd9c58088b45a33daf8e58c",
      "parents": [
        "c801bc6497ae1b46f05ea790ffbbb1049e189d12"
      ],
      "author": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 24 23:07:42 2016 +0000"
      },
      "committer": {
        "name": "Luca Milanesio",
        "email": "luca.milanesio@gmail.com",
        "time": "Thu Nov 24 23:07:42 2016 +0000"
      },
      "message": "Fix Buck build on master\n\nChange-Id: Ia8df8e9ace8ea2b641951ac04697f9eb6185acde\n"
    },
    {
      "commit": "c801bc6497ae1b46f05ea790ffbbb1049e189d12",
      "tree": "1df67a64a00b29606a37c52b0f7ed03de3301975",
      "parents": [
        "a3d7aa4b8debd90a365d47057b3633a66bebaa7a"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:49:36 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:49:36 2016 +0900"
      },
      "message": "Ignore .buckd folder\n\nChange-Id: I9acf1fd97a95793816b35cebf9f7d94941e3b381\n"
    },
    {
      "commit": "a3d7aa4b8debd90a365d47057b3633a66bebaa7a",
      "tree": "3073f23583da1e5dc13d7eacecaab8b9eb68246d",
      "parents": [
        "331b24e11abff0af7423d8f36d6a5064493af2b3"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:48:43 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:48:43 2016 +0900"
      },
      "message": "Build with Gerrit API version 2.13\n\nChange-Id: Ie4ca94a1dbac7c8b0ef045ba8f2a71174a70f6c6\n"
    },
    {
      "commit": "331b24e11abff0af7423d8f36d6a5064493af2b3",
      "tree": "70f344c8aa6a83f8e3701b7e939a26d5e14f5552",
      "parents": [
        "6fe7dccedd0f0d4c1f86e9fd15e0e28cc76fd80a",
        "7448fbe98a929ef1eab8aaad91669ddb4517324b"
      ],
      "author": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:47:15 2016 +0900"
      },
      "committer": {
        "name": "David Pursehouse",
        "email": "dpursehouse@collab.net",
        "time": "Mon Oct 03 11:47:25 2016 +0900"
      },
      "message": "Merge branch \u0027stable-2.12\u0027\n\n* stable-2.12:\n  Add \u0027eclipse-out\u0027 to the list of ignored folders\n  Fix Eclipse project generation\n\nChange-Id: I32545167c8fed5ba5ca8b0a7884a784a3e9f48bb\n"
    },
    {
      "commit": "7448fbe98a929ef1eab8aaad91669ddb4517324b",
      "tree": "70f344c8aa6a83f8e3701b7e939a26d5e14f5552",
      "parents": [
        "d6a9705aafbc214761358d39803fe49b963b96c8"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Feb 25 17:20:09 2016 -0500"
      },
      "committer": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Fri Feb 26 02:31:51 2016 +0000"
      },
      "message": "Add \u0027eclipse-out\u0027 to the list of ignored folders\n\nChange-Id: Ib58ae636e32bf2ec2bf50c065cfff4333c58a15a\n"
    },
    {
      "commit": "d6a9705aafbc214761358d39803fe49b963b96c8",
      "tree": "0da8d03748ac109b234a5f01813ae42c8e4870f5",
      "parents": [
        "6fe7dccedd0f0d4c1f86e9fd15e0e28cc76fd80a"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Feb 25 17:18:12 2016 -0500"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Feb 25 17:18:12 2016 -0500"
      },
      "message": "Fix Eclipse project generation\n\nWhen generating the Eclipse project, the reference to the\nseveral libraries was not added.\n\nChange-Id: Idb49b20ae7fa4e94cb8824ed9609b9eccf9a1716\n"
    },
    {
      "commit": "6fe7dccedd0f0d4c1f86e9fd15e0e28cc76fd80a",
      "tree": "6548e7762fc603f66f150d6b2220f1f348ec8769",
      "parents": [
        "6b6da63eb711f9c82ed4c017c3086778b914f99e"
      ],
      "author": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Wed Jan 20 14:33:24 2016 -0500"
      },
      "committer": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Wed Jan 20 14:33:24 2016 -0500"
      },
      "message": "Build with API version 2.12\n\nChange-Id: I6fdfed370625dede32e5cd0f2e6ef55c4a4a49cb\n"
    },
    {
      "commit": "6b6da63eb711f9c82ed4c017c3086778b914f99e",
      "tree": "a56620f1a35fee5e508ff033b48903f810a5dc2a",
      "parents": [
        "3de1e94e9805dc309d36cb30419239a75215e1ff"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Jul 02 11:00:19 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Fri Nov 06 15:03:05 2015 +0000"
      },
      "message": "Periodically clean outdated session cache files\n\nWhen a user logs out, the corresponding web session cache file is\ndeleted. When the web session expires, however, the file remains in the\ncache directory. In a busy Gerrit server using this plugin, the size of\nthe cache directory can reach hundreds of megabytes within a few months.\n\nRemove outdated session cache files in a periodic way. Cache files are\nconsidered as outdated when its expiration date has passed.\n\nChange-Id: Id195f2b04ef4b323ce5c5a1c024e62ebeea39720\n"
    },
    {
      "commit": "3de1e94e9805dc309d36cb30419239a75215e1ff",
      "tree": "a10268109365c89028de9385ee600b36c3f8a077",
      "parents": [
        "f9ebbbc4b0afc0fc4bc32ec0ef28640bed7672cf"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Nov 05 09:12:35 2015 -0500"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Nov 05 09:12:35 2015 -0500"
      },
      "message": "Fix buck test in Gerrit tree\n\nRunning tests in Gerrit tree:\n    buck test --include websesson-flatfile\nwas failing because of lacking dependencies.\n\nAdd GERRIT_TESTS to list of test dependencies.\n\nChange-Id: I18ab5c102737f9c4eef314d6f91ad8377fbd00ae\n"
    },
    {
      "commit": "f9ebbbc4b0afc0fc4bc32ec0ef28640bed7672cf",
      "tree": "e0a558b303b8e6382dde94db62fc62f90f424b3c",
      "parents": [
        "f01914949b6130466357ee17eebc63d7dd0b7a62"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Jul 30 11:32:56 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Wed Nov 04 12:40:57 2015 -0500"
      },
      "message": "Add buck standalone support\n\nChange-Id: I9be2e1e539890e96aad3d416eb8567883ba003cf\n"
    },
    {
      "commit": "f01914949b6130466357ee17eebc63d7dd0b7a62",
      "tree": "6fc5bc99826269d6b8bed94fff2e081b2b419bd7",
      "parents": [
        "6311437cf425a3e3b523aa5c532689833c14a5b4"
      ],
      "author": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Thu Aug 27 13:57:39 2015 -0400"
      },
      "committer": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Thu Aug 27 14:25:26 2015 -0400"
      },
      "message": "Use atomic move to rename the session file\n\nWhen a session is written to disk, it\u0027s done in a temporary file and\nthen renamed (moved) to its final name. This rename was done in 2\noperations (or 3 if file already exist and need to be deleted first),\ncopy then delete.\n\nMake use of the ATOMIC_MOVE option to prevent multiple operations but\nmainly to fix a concurrency issue which leads to a NoSuchFileException.\n\nWhen user is first login in, it\u0027s not possible to have 2 concurrent\nrequests trying to write the same session file but when session is one\nhour old or reached half of its max age, the next http request will\nrefresh the session. Then it\u0027s possible that 2 (or more) concurrent\nrequests end up trying to rename their temp file to the same session\nfile.\n\nSince the move was not an atomic operation, the first request was\ndeleting session file in order to rename its temp file but right after\nthe delete and before the temp one was renamed, the second request also\nwas also trying to delete the session file and it was failing with\nNoSuchFileException.\n\nChange-Id: I8b045244e4fb3062401ce916d7cae33f255413bf\n"
    },
    {
      "commit": "6311437cf425a3e3b523aa5c532689833c14a5b4",
      "tree": "ae5c74a778fea138ec4c1e2464b8c87b6e3b006e",
      "parents": [
        "1735028988b3ab3b97fd2a31cc1e96ce2b6b3198"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Sun Jun 28 13:28:40 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Wed Jul 29 14:46:42 2015 -0400"
      },
      "message": "Add unit tests\n\nChange-Id: Ia46585a828e825aef0a633568b74203399e53b7e\n"
    },
    {
      "commit": "1735028988b3ab3b97fd2a31cc1e96ce2b6b3198",
      "tree": "bf27eed537f756ec0e6d09487c5016c03116bba9",
      "parents": [
        "5b299974f94cc7a419ea9c59ae2fb98f11c4e687"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Fri Jun 26 13:47:58 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Mon Jul 06 08:22:33 2015 -0400"
      },
      "message": "Use Java NIO Path\n\nChange-Id: Ia95d8d9a6cbb6223b7c4d7aa0d7c6e28ad16b558\n"
    },
    {
      "commit": "5b299974f94cc7a419ea9c59ae2fb98f11c4e687",
      "tree": "0df351e3d3c5794440d1a33acef4575aef8b7753",
      "parents": [
        "438858032c5a43db4889862e62cda34ebdd7b881"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Fri Jun 26 12:18:30 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Mon Jun 29 10:09:15 2015 -0400"
      },
      "message": "Replace hardcoded plugin name with @PluginName\n\nChange-Id: I2c4a1852c01ad640a31c8850320e66f0bef2445d\n"
    },
    {
      "commit": "438858032c5a43db4889862e62cda34ebdd7b881",
      "tree": "0253aef32dca5be1789a41582734e90246990982",
      "parents": [
        "17152c2a3d525e4652d748fb0467c4d40bdc2b1e"
      ],
      "author": {
        "name": "Hugo Arès",
        "email": "hugo.ares@ericsson.com",
        "time": "Fri Jun 26 10:18:01 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Mon Jun 29 10:09:15 2015 -0400"
      },
      "message": "Move websession directory resolving into a provider\n\nChange-Id: Ie69d42ea18deb325c1dbd81d3551b58460d24352\n"
    },
    {
      "commit": "17152c2a3d525e4652d748fb0467c4d40bdc2b1e",
      "tree": "f3ebe0ede5f3463d4d397809cc522636c0c097df",
      "parents": [
        "c46a1181af9ac109e225be9f045ab265c3b054db"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Jun 25 13:01:33 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Mon Jun 29 10:09:15 2015 -0400"
      },
      "message": "Use try with resources\n\nChange-Id: I98da1d69710018c1fbd80e24194593998887bff6\n"
    },
    {
      "commit": "c46a1181af9ac109e225be9f045ab265c3b054db",
      "tree": "d351ada5b45a9cd7501ca831a00b4719b92ae4df",
      "parents": [
        "9c02e2b02b926deef4e13bd0ed7629f5ee7b6aea"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Jun 25 14:28:23 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Mon Jun 29 10:09:10 2015 -0400"
      },
      "message": "Create websessions folder at instantiation\n\nWhen the plugin started and no websessions folder was present in the\ngerrit site, an error message was logged. The folder was created after.\n\nCreate the websessions folder at instantiation time and change the log\nlevel to info.\n\nChange-Id: Id1b408bcd38adbcdeb40eb7ea6d3e9277e5046f2\n"
    },
    {
      "commit": "9c02e2b02b926deef4e13bd0ed7629f5ee7b6aea",
      "tree": "fcc07781c36b4560cd918d12b139945eebae4f96",
      "parents": [
        "e3c37795d77ebb374ec4fe15dfe7cc3f6b37ca9c"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Jun 25 11:38:54 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Fri Jun 26 11:28:32 2015 -0400"
      },
      "message": "Verify file existence before deleting it\n\nWhen creating a cached session file, a temporary file is generated; this\nfile is then renamed to the final cache file name. Afterwards, when\ntrying to erase this temporary file, a warning log entry is written\nbecause the delete operation fails (the file does not exist anymore\ngiving it was renamed). Fix this by verifying a file exists before\ntrying to delete it.\n\nChange-Id: If7e6435ccfbd5806a3167c6f07087a1082527628\n"
    },
    {
      "commit": "e3c37795d77ebb374ec4fe15dfe7cc3f6b37ca9c",
      "tree": "852a3f4fc6784aeecd3a1668a312327ee7030d3b",
      "parents": [
        "e63a885f6f023762e996535dc4c2b6a478fd950d"
      ],
      "author": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Tue Jun 23 15:26:21 2015 -0400"
      },
      "committer": {
        "name": "Hector Oswaldo Caballero",
        "email": "hector.caballero@ericsson.com",
        "time": "Thu Jun 25 11:31:01 2015 -0400"
      },
      "message": "Fix Eclipse warnings\n\nRemove redundant specification of type arguments by using diamond\noperator. Remove unused import.\n\nChange-Id: I4a4c9849b93c4f237facbfc11b10f5fbd0867a0c\n"
    },
    {
      "commit": "e63a885f6f023762e996535dc4c2b6a478fd950d",
      "tree": "a2a1bc3aefe7e487fc8e93b778b0286b87b43db0",
      "parents": [
        "5adbb8e38e2ec07174c8d8445697c3329e0b9da7"
      ],
      "author": {
        "name": "Ahaan Ugale",
        "email": "augale@codeaurora.org",
        "time": "Tue Jul 23 11:29:12 2013 -0600"
      },
      "committer": {
        "name": "Martin Fick",
        "email": "mogulguy10@gmail.com",
        "time": "Wed Mar 26 11:23:31 2014 -0700"
      },
      "message": "Create a flatfile based shareable websession cache\n\nThe plugin replaces the builtin Gerrit WebSession implementation\nwith one that uses a flat file based cache at the location specified\nin \u0027etc/gerrit.config\u0027 by the \"plugin.websession-flatfile.directory\"\nentry.\n\nChange-Id: I92afcf917b2e0f12cb5002067c7448ad5bac6112\n"
    },
    {
      "commit": "5adbb8e38e2ec07174c8d8445697c3329e0b9da7",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Martin Fick",
        "email": "mfick@codeaurora.org",
        "time": "Tue Mar 25 22:43:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 25 22:43:30 2014 +0000"
      },
      "message": "Initial empty repository\n"
    }
  ]
}
