)]}'
{
  "log": [
    {
      "commit": "b5919dd8f797829e1aed9276994394bb9de085d5",
      "tree": "54a0d211010bcc05b49b46380bf77154ac86f742",
      "parents": [
        "dfa0979ebee93588e46d08cd2529e6857ad62f74"
      ],
      "author": {
        "name": "HTHou",
        "email": "haonan@apache.org",
        "time": "Mon Jan 05 12:17:56 2026 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Jan 07 22:31:52 2026 +0100"
      },
      "message": "Add async nonblocking ssl support in java client\n"
    },
    {
      "commit": "312cef913cb10a91fcb41ff1fd73f8654b7cff9f",
      "tree": "5422e02a52d0f17fa3884cd7e12e73e336ecd4c0",
      "parents": [
        "6e105bf035a0581a977a0558679be802c58982d9"
      ],
      "author": {
        "name": "Dmytro Shteflyuk",
        "email": "kpumuk@kpumuk.info",
        "time": "Sun Nov 23 12:35:09 2025 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Tue Dec 16 23:11:24 2025 +0100"
      },
      "message": "Updated Java keys for cross-platform tests\n\nThe truststore and keystore were regenerated using keys in test/keys:\n\n    # keytool does not support \"replace\" operation:\n    keytool -delete \\\n        -alias localhost \\\n        -keystore lib/java/src/crossTest/resources/.truststore \\\n        -storepass thrift\n    keytool -import \\\n        -alias localhost \\\n        -file test/keys/CA.pem \\\n        -keystore lib/java/src/crossTest/resources/.truststore \\\n        -storepass thrift\n\n    # server keystore\n    keytool -importkeystore \\\n        -srckeystore test/keys/server.p12 \\\n        -srcstoretype PKCS12 \\\n        -srcstorepass thrift \\\n        -destkeystore lib/java/src/crossTest/resources/.serverkeystore \\\n        -deststoretype pkcs12 \\\n        -deststorepass thrift\n\n    # client keystore\n    keytool -importkeystore \\\n        -srckeystore test/keys/client.p12 \\\n        -srcstoretype PKCS12 \\\n        -srcstorepass thrift \\\n        -destkeystore lib/java/src/crossTest/resources/.clientkeystore \\\n        -deststoretype pkcs12 \\\n        -deststorepass thrift\n\nJava tests were updated to use separate keystores for client and server.\n"
    },
    {
      "commit": "5b158389b01d028e98e59f0ea41c01d625a84242",
      "tree": "7f8da5c4f388d25f9949952bb566baf6b6fdb1a2",
      "parents": [
        "dae1437ca03834527b654cf5bc8d7f41c9412a20"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Thu May 12 00:20:37 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 11 12:20:37 2022 -0400"
      },
      "message": "THRIFT-5581: use gradle 7 for java/kotlin (#2601)\n\n* upgrade gradle version to 7.4\r\n* migrate from `maven` plugin to `maven-publish` plugin as required for Gradle 7\r\n* add guard to ktfmt, since it can\u0027t run with JDK 8\r\n\r\nCo-authored-by: Christopher Tubbs \u003cctubbsii@apache.org\u003e"
    },
    {
      "commit": "eb62fa8d13f9860c4c877d0252e67ef21b013488",
      "tree": "1f4ff1428c8f81ce20ae4e2be6f1c6cf6de45585",
      "parents": [
        "bcac978ce97e9808866ed639f88095473ba5c261"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Sun May 08 13:01:41 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 08 01:01:41 2022 -0400"
      },
      "message": "THRIFT-5553: use newer gradle API (#2561)\n\nPrepare for moving to Gradle 7 by removing use of older Gradle directives\r\n(except the use of maven; the transition to maven-publish is not included here)"
    },
    {
      "commit": "eac5103f8204021f7b5436001319c2b17ed5644f",
      "tree": "22610465f5927c466b2e9baa87e55fe116347c6c",
      "parents": [
        "8987820e84ac26392293ab40480cf8f2971fb314"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "jiayu.liu@airbnb.com",
        "time": "Fri Mar 11 04:55:13 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Apr 20 23:37:58 2022 +0200"
      },
      "message": "THRIFT-5545: use gradle convention in organizing java project\nClient: java\nPatch: Jiayu Liu\n\nThis closes #2546\n"
    },
    {
      "commit": "1eb361a89372b8676a5f48c2ee4038f6d2d8b4b7",
      "tree": "dd63293e9d5ae5af5e57844fe4bd5bcbcbc7ed8a",
      "parents": [
        "2e0a80599897a57e05127b28640a1b5956ba744d"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "jiayu@hey.com",
        "time": "Mon Feb 21 13:36:44 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Apr 16 09:58:32 2022 +0200"
      },
      "message": "THRIFT-5521: [java gen] use jdk8 option type in java generator code\nClient: Java\nPatch: Jiayu Liu\n\nThis closes #2525\n"
    },
    {
      "commit": "a8c041dd580ff37f3e32b0eaafed542f496d5d58",
      "tree": "cdc55651fd859c00a0683cce1bf462f4a348176b",
      "parents": [
        "55c3e4c2eff86b61eae1b098803e72d682bdaafb"
      ],
      "author": {
        "name": "iadcode",
        "email": "omcode@integradev.com.au",
        "time": "Tue Mar 02 14:15:13 2021 +1100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Mar 02 20:14:53 2021 +0100"
      },
      "message": "Move java dependency tomcat-embed to the crossTest configuration to remove outdated unnecessary compile time dependency.\n\nThis closes #2340\n\nFor the java libthrift, tomcat-embedded is only used in crossTests, I have moved it to crossTest configuration so the libthrift java package does not require this unnecessary dependency for compilation. Instead, the java-servlet dependency has been reintroduced in compile time. I\u0027ve also taken this opportunity to update both dependenciesto a later version.\n"
    },
    {
      "commit": "6e4c581fddae9106c2c5a59c4d0bfbe6ad3e4560",
      "tree": "9c1c435e8bed60424f46218af588fa3ed3e69e48",
      "parents": [
        "3f3567a1143194712747fff9dd02b2162e2d14dd"
      ],
      "author": {
        "name": "pengzhouhu",
        "email": "pengzhouhu@huawei.com",
        "time": "Mon Oct 21 22:21:11 2019 +0800"
      },
      "committer": {
        "name": "Duru Can Celasun",
        "email": "can@dcc.im",
        "time": "Mon Oct 21 15:21:11 2019 +0100"
      },
      "message": "THRIFT-4949: Improve HTTP/1 server test case\n\nClient: java\r\n\r\nThis closes #1886."
    },
    {
      "commit": "7004a61e44fe538805b44c3fb66bd5cb872548d4",
      "tree": "51b717fe01b179397b28ff02e6115cc51eb0d224",
      "parents": [
        "f92493b8574a00830d665c5bfac7e0a8175bcb4f"
      ],
      "author": {
        "name": "Alex Volanis",
        "email": "alexvolanis@gmail.com",
        "time": "Wed Jan 24 10:30:13 2018 -0500"
      },
      "committer": {
        "name": "James E. King III",
        "email": "jking@apache.org",
        "time": "Wed Jan 24 12:28:55 2018 -0500"
      },
      "message": "THRIFT-(1418|1507|3983|4120|4178|4259|4294): Multiple issues\nClient: java\n\nTHRIFT-4294: Java Configure Fails for Ant \u003e\u003d 1.10\nTHRIFT-4259: Thrift does not compile due to Ant Maven task errors\nTHRIFT-4178: Java libraries missing from package when using cmake\nTHRIFT-3983: libthrift is deployed on central with pom packaging\n             instead of jar\nTHRIFT-1507: Maven can\u0027t download resource from central when behind\n             a proxy and won\u0027t use local repository\nTHRIFT-1418: Compiling Thrift from source: Class\n             org.apache.tools.ant.taskdefs.ConditionTask doesn\u0027t\n             support the nested \"typefound\" element\n\nRefactor CMake install hook to allow using \"sudo make install/fast\"\nwhich avoids the THRIFT-1507 and THRIFT-1418 issues.\n\nNew Gradle based build system for Thrift Java Library\n\n* Add Gradle 4.4.1 Wrapper artifacts to enable builds\nUsing the Gradle Wrapper helps normalize the builds on all platforms\nso we use a consistent build tool independent of package managers.\n\nThe Gradle build logic was partitioned into multiple specific\nscripts to simplify understanding and maintenance of the build.\n\nThis is now hooked into CMake and Autoconf processing steps\nand can build/test/publish to Maven. The README.md was updated\nto illustrate the new build options and add some documentation\non the requirements for Maven publication.\n\nCleaned up the CMake files to reduce reliance on file globbing\nwhich is known to cause confusion when multiple users contribute.\n\n* Fix two minor issues in Javadoc and unit test\n\nReturn values were undeclared in Javadoc\nTest was asserting on the wrong test object instance\n\n* Create simple runner scripts for cross-check\n\nUsing Gradle as a java execution wrapper is too heavy.\nI simplified the test client/server execution by using a\nthree generated scripts in the build directory direcly\ncallable by the cross-check test harness.\n\n* Cleanup the remaining Ant build scripts\n\nPulled the Maven Ant task properties out of the Java build\nsince they are no longer used there.\nDeleted the no longer used build.xml and build.properties\nfiles from the Java build.\nMade each Ant build own the Maven Ant task details in their\nbuild.properties file.\n\n* Fix the build issue with Java SSL in the ubuntu-trusty container\n\nThe latest Trusty JDK7 builds seem to have encountered this issue\nbecause the OpenJDK removed the SunEC algorithms.\n\n* Update the developer info as requested in review\n\nUse the generic Apache Thrift developer list for contact information\n\n* Add Clover Code coverage for easy access by developers\n\nClover plugin for Gradle was applied and configured which enables\ncode coverage reports to be available on demand via a command line\noption. The documentation in the README.md was enhanced to give\nthe details of this change and how to take advantage of it.\n"
    }
  ]
}
