)]}'
{
  "commit": "a00e97cc81663a13757a78bdbef030462e83377a",
  "tree": "b153fc0ba293b9f2e25dbf7d1f9e3635a70d6e48",
  "parents": [
    "cf70cea42e90bad6447248ef2e5e4df973b33e8d"
  ],
  "author": {
    "name": "Branko Čibej",
    "email": "brane@apache.org",
    "time": "Wed May 06 18:54:21 2026 +0000"
  },
  "committer": {
    "name": "Branko Čibej",
    "email": "brane@apache.org",
    "time": "Wed May 06 18:54:21 2026 +0000"
  },
  "message": "Make the JavaHL JAR an automatic module.\n\nAs described in [1], since version 24, the JVM will issue a warning for every\nmodule that uses a restricted function (such as JNI calls). Later versions of\nthe JDK will default to throwing an exception.\n\nTo give our uses fine-grained control over access to restricted functions,\nthese changes declare the JavaHL JAR as a module and change the way we run\nthe JavaHL tests by building it first and running tests from there instead\nof from the compiled classes tree. We explicitly allow JNI access only to\nthe org.apache.subversion.javahl module and deny it to anything else.\n\n[1] https://inside.java/2024/12/09/quality-heads-up/\n\n\n* build.conf: Make all Java targets depend on the $(JAVAHL_JAR).\n* configure.ac: Look for the \u0027head\u0027 tool.\n* build/ac-macros/java.m4\n  (SVN_FIND_JDK): Extract the Java version from the \u0027java\u0027 tool instead\n   of the \u0027javac\u0027 tool. If the Java version is 24 or greater, define ...\n  (JAVAHL_CHECK_FLAGS): ... to declare the module permissions for tests.\n\n* Makefile.in\n  (INSTALL_EXTRA_JAVAHL_JAVA): Remove the install-time JAR creation. Instead,\n  ($(JAVAHL_JAR):): ... add an explicit target to build the JAR.\n  (JAVAHL_CHECK_FLAGS): Gather common flags for JavaHL testing in one place.\n  (check-tigris-javahl, check-apache-javahl, check-deprecated-authn-javahl):\n   Depend on $(JAVAHL_JAR) and use $(JAVAHL_CHECK_FLAGS).\n\n* subversion/bindings/javahl/Manifest.in: Add Automatic-Module-Name property.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1933892 13f79535-47bb-0310-9956-ffa450edef68\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0fb9e39602470ad83ff25495a4b5981f7b11e5b4",
      "old_mode": 33188,
      "old_path": "Makefile.in",
      "new_id": "dec5eaece01ae8398999e1665993d13d0525bc90",
      "new_mode": 33188,
      "new_path": "Makefile.in"
    },
    {
      "type": "modify",
      "old_id": "dc69905eda7f90a19a7201262828b5da8567ef12",
      "old_mode": 33188,
      "old_path": "build.conf",
      "new_id": "1f2d64ac43c9f2f5c3c9b02c12380b3ebebae647",
      "new_mode": 33188,
      "new_path": "build.conf"
    },
    {
      "type": "modify",
      "old_id": "8c29352e427bf8eeb764b31d9b6ee107b2683983",
      "old_mode": 33188,
      "old_path": "build/ac-macros/java.m4",
      "new_id": "57619a05561eccb4ccebe7184e8fd91aaa731527",
      "new_mode": 33188,
      "new_path": "build/ac-macros/java.m4"
    },
    {
      "type": "modify",
      "old_id": "bcf6d7b03136741e2266b117631aa882c4cc06c1",
      "old_mode": 33188,
      "old_path": "configure.ac",
      "new_id": "ee0a5b4b666f2ba2281e99c8d67fa79d3268b8b2",
      "new_mode": 33188,
      "new_path": "configure.ac"
    },
    {
      "type": "modify",
      "old_id": "df0ad9b3e45f82362ef601d01e6ac856070979a6",
      "old_mode": 33188,
      "old_path": "subversion/bindings/javahl/Manifest.in",
      "new_id": "56fa9ce6481dbdca10045b287729f79d95588780",
      "new_mode": 33188,
      "new_path": "subversion/bindings/javahl/Manifest.in"
    }
  ]
}
