)]}'
{
  "log": [
    {
      "commit": "af26b7d0b5e4f656aff08bc4b343ef8bcc52c959",
      "tree": "ae9be77b68050e162cf215a3453aa2d7ed3b8d91",
      "parents": [
        "8d6b4346e753a773150c90fbefc088310c81dd2f",
        "75e508bc1dda5650234052967e949a28ffd10210"
      ],
      "author": {
        "name": "Eric Barboni",
        "email": "skygo@apache.org",
        "time": "Wed Jul 15 16:56:21 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 16:56:21 2026 +0200"
      },
      "message": "Merge pull request #9495 from mbien/update-issue-form-31rc\n\nUpdate issue form for NB 31 release candidates"
    },
    {
      "commit": "8d6b4346e753a773150c90fbefc088310c81dd2f",
      "tree": "4192ee4fd036038f33d34ad6a5d520ea272343e2",
      "parents": [
        "1b196091247d882eefee87c75a23824c85f1ffbb",
        "3b5c30c1d9f1879e2d0dd00c78b73a3be50ad29e"
      ],
      "author": {
        "name": "Eric Barboni",
        "email": "skygo@apache.org",
        "time": "Wed Jul 15 16:02:52 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 16:02:52 2026 +0200"
      },
      "message": "Merge pull request #9509 from ebarboni/spec-versions-nb32\n\nIncrement spec versions for Apache NetBeans 32 development"
    },
    {
      "commit": "3b5c30c1d9f1879e2d0dd00c78b73a3be50ad29e",
      "tree": "4192ee4fd036038f33d34ad6a5d520ea272343e2",
      "parents": [
        "1b196091247d882eefee87c75a23824c85f1ffbb"
      ],
      "author": {
        "name": "Eric Barboni",
        "email": "skygo@apache.org",
        "time": "Wed Jul 15 13:42:09 2026 +0200"
      },
      "committer": {
        "name": "Eric Barboni",
        "email": "skygo@apache.org",
        "time": "Wed Jul 15 13:42:09 2026 +0200"
      },
      "message": "Increment spec versions for Apache NetBeans 32 developement\n"
    },
    {
      "commit": "1b196091247d882eefee87c75a23824c85f1ffbb",
      "tree": "3093fc6ba9c61756f02d7556fe191382c1940f1f",
      "parents": [
        "853a0254ff943c4a2d3a9d00637aabcee6312179",
        "bb01f5dda51bf02cc8da350ed3bc73e5662552b6"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Wed Jul 15 13:27:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 13:27:02 2026 +0200"
      },
      "message": "Merge pull request #8538 from lahodaj/maven-module-boot-dont-limit-jrtfs\n\nMaven should not filter out non-jrt URLs from Java platform modular BCP."
    },
    {
      "commit": "853a0254ff943c4a2d3a9d00637aabcee6312179",
      "tree": "8f9d1a79e415a3ef4529550af939a062226b0402",
      "parents": [
        "f6c2797c8ccd899384516e88bc090ecd94278177",
        "9bb6f735655a35726ed32af0d901a6d0f627ef46"
      ],
      "author": {
        "name": "Jan Lahoda",
        "email": "51319204+lahodaj@users.noreply.github.com",
        "time": "Wed Jul 15 13:08:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 13:08:24 2026 +0200"
      },
      "message": "Merge pull request #9432 from lahodaj/apisupport-ant-project-module-boot-path\n\nFor apisupport.ant, don\u0027t try to use the nbjdk.bootclasspath ant property, but rather take nbjdk.home, and take the JDK\u0027s bootstrap classpath."
    },
    {
      "commit": "f6c2797c8ccd899384516e88bc090ecd94278177",
      "tree": "9b25ef2480f7d496f43347a4a950bd19b871f968",
      "parents": [
        "c9b8ef88aec131fd6eaaeadc5833f0fe7dfcc059",
        "581bb0889133e184654420d292d42f9c4f394345"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Wed Jul 15 11:10:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 11:10:24 2026 +0200"
      },
      "message": "Merge pull request #9506 from mbien/tomcat90120\n\nUpdate embedded tomcat from 9.0.113 to 9.0.120"
    },
    {
      "commit": "c9b8ef88aec131fd6eaaeadc5833f0fe7dfcc059",
      "tree": "9a249662d84232a3dd769ed26078e764a6eb2287",
      "parents": [
        "5f08337a02f3e1ce297669d885ac6b2aeee6e14e",
        "08668b8027e36e193b328c867d0670820f1d7d10"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Wed Jul 15 09:52:19 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 09:52:19 2026 +0100"
      },
      "message": "Merge pull request #9503 from neilcsmith-net/packaging-md\n\nAdd Packaging guidelines file"
    },
    {
      "commit": "5f08337a02f3e1ce297669d885ac6b2aeee6e14e",
      "tree": "7e3d0dd91eec0a0488ce79e73f00d1a79b92612e",
      "parents": [
        "b914b28def6771dbe27ea302ebf40d8305fe5c96",
        "4c7e0d22854df0629aabdf8c4b60ac3c398ed9b7"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 17:25:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:25:24 2026 +0200"
      },
      "message": "Merge pull request #9446 from renatsaf/issue-6270-appclient-endorsed-dirs\n\nGlassFish: Don\u0027t pass removed -Djava.endorsed.dirs when running app clients"
    },
    {
      "commit": "b914b28def6771dbe27ea302ebf40d8305fe5c96",
      "tree": "ecd347c6c4e67575e5e1b265cd02b8bf256b1f64",
      "parents": [
        "427e506a86505a9eece21085a6d7f94e2d069d7c",
        "390df7a5eef10535f7ff79f88e556a70ce71fe29"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 17:15:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:15:54 2026 +0200"
      },
      "message": "Merge pull request #9442 from renatsaf/glassfish8-webprofile-detection-9441\n\nFix GlassFish 8.x install detection when modules/glassfish.jar is absent"
    },
    {
      "commit": "427e506a86505a9eece21085a6d7f94e2d069d7c",
      "tree": "045b7e5c127031a88b7ce6c6743d62ee0c4a95f8",
      "parents": [
        "f25d4c891d69219036227f9e1bfdc05549efafd4",
        "2b308706f6420058f3f1bacfcf7200e3c510ae50"
      ],
      "author": {
        "name": "Laszlo Kishalmi",
        "email": "laszlo.kishalmi@gmail.com",
        "time": "Tue Jul 14 08:06:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 08:06:05 2026 -0700"
      },
      "message": "Merge pull request #9499 from lkishalmi/gradle-tooling-api-9.6.1\n\nUpgrade Gradle Tooling to 9.6.1"
    },
    {
      "commit": "f25d4c891d69219036227f9e1bfdc05549efafd4",
      "tree": "442c699ea3a8a4ffe502774bf07f6c4f21fd6c3a",
      "parents": [
        "82df07803824499b2a0052592fcadb0f4b24d30f",
        "9a61714c600e7318c740229c12839cebabac4ae0"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 17:00:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 17:00:42 2026 +0200"
      },
      "message": "Merge pull request #9445 from renatsaf/glassfish-jdk26-config\n\nGlassFish: Show supported range when no compatible JDK is installed"
    },
    {
      "commit": "82df07803824499b2a0052592fcadb0f4b24d30f",
      "tree": "3543a93209681777742917c15ea3292fa4ad2ed7",
      "parents": [
        "5e92c2d04985cbeca18dd2158135d4ee748cea55",
        "f33b8da223f90d97c3f1be4c039522349ea1ecb2"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Tue Jul 14 22:33:36 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 22:33:36 2026 +0900"
      },
      "message": "Merge pull request #8227 from junichi11/php84-property-hooks\n\nPHP 8.4 Support: Property hooks"
    },
    {
      "commit": "9a61714c600e7318c740229c12839cebabac4ae0",
      "tree": "365d44223c6d35b93d46a3fc9291cb9b7a4b3c67",
      "parents": [
        "5e92c2d04985cbeca18dd2158135d4ee748cea55"
      ],
      "author": {
        "name": "Renat R. Safiullin",
        "email": "renatsaf@gmail.com",
        "time": "Wed Jun 17 12:44:37 2026 +0300"
      },
      "committer": {
        "name": "Renat R. Safiullin",
        "email": "renatsaf@i-t-systems.ru",
        "time": "Tue Jul 14 16:13:18 2026 +0300"
      },
      "message": "Fix empty platform dialog when no compatible JDK is installed (#9423)\n\nWhen the JDK chosen to launch GlassFish is unsupported and none of the\ninstalled Java SE platforms match the server\u0027s supported range, the\n\"select a Java SE platform\" dialog showed an empty combo box, a generic\n\"please select another platform\" warning, and only a Cancel button -\nleaving the user with no way forward.\n\nDetect the empty case and show a message that names the supported Java\nSE range and points at the existing \"Manage Platforms\" button, which\nalready re-enables OK once a compatible JDK is registered. A new\nJavaUtils.supportedJavaSERange(instance) helper derives the range from\nthe server\u0027s config.\n\nAssisted-by: Claude Opus 4.8\nAssisted-by: Claude Fable 5\n"
    },
    {
      "commit": "bb01f5dda51bf02cc8da350ed3bc73e5662552b6",
      "tree": "332bc0883dacd78fa5cad5ac5765a72f4bf9e8da",
      "parents": [
        "de64b54a77696dfba6180aac713659425ba6a92a"
      ],
      "author": {
        "name": "Jan Lahoda",
        "email": "jan.lahoda@oracle.com",
        "time": "Tue May 27 15:34:16 2025 +0200"
      },
      "committer": {
        "name": "Jan Lahoda",
        "email": "jan.lahoda@oracle.com",
        "time": "Tue Jul 14 14:42:35 2026 +0200"
      },
      "message": "Maven should not filter out non-jrt URLs from Java platform modular BCP.\n"
    },
    {
      "commit": "5e92c2d04985cbeca18dd2158135d4ee748cea55",
      "tree": "fa7cce07b1e8e412382f301cad1075aef085a45c",
      "parents": [
        "3cec54d6cbb85242711e73556515f3d8b8305734",
        "a64e830abd94513a283fc84a8f21e7dcb9477fb0"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 13:37:49 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 13:37:49 2026 +0200"
      },
      "message": "Merge pull request #9504 from mbien/flatlaf372\n\nUpdate FlatLaf from 3.7.1 to 3.7.2"
    },
    {
      "commit": "3cec54d6cbb85242711e73556515f3d8b8305734",
      "tree": "805fb4c8696e6b7baa7550956377766e0e911a8b",
      "parents": [
        "de64b54a77696dfba6180aac713659425ba6a92a",
        "43e79053e2298414bdcd291cd6b73f4ad49d716f"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 13:35:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 13:35:54 2026 +0200"
      },
      "message": "Merge pull request #9505 from mbien/ci-disable-javac-matcher\n\nCI: disable the javac log matcher of the setup-java action"
    },
    {
      "commit": "9bb6f735655a35726ed32af0d901a6d0f627ef46",
      "tree": "0179b852c94f877a84db58c3cf360a7fc2410600",
      "parents": [
        "de64b54a77696dfba6180aac713659425ba6a92a"
      ],
      "author": {
        "name": "Jan Lahoda",
        "email": "jan.lahoda@oracle.com",
        "time": "Wed Jun 03 18:09:18 2026 +0200"
      },
      "committer": {
        "name": "Jan Lahoda",
        "email": "jan.lahoda@oracle.com",
        "time": "Tue Jul 14 10:19:02 2026 +0200"
      },
      "message": "For apisupport.ant, don\u0027t try to use the nbjdk.bootclasspath ant property, but rather take nbjdk.home, and take the JDK\u0027s bootstrap classpath.\n"
    },
    {
      "commit": "581bb0889133e184654420d292d42f9c4f394345",
      "tree": "8067b79c6c612436a4fcf78db8983d7a414ff793",
      "parents": [
        "de64b54a77696dfba6180aac713659425ba6a92a"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 03:23:30 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 03:23:30 2026 +0200"
      },
      "message": "Update embedded tomcat from 9.0.113 to 9.0.120"
    },
    {
      "commit": "43e79053e2298414bdcd291cd6b73f4ad49d716f",
      "tree": "805fb4c8696e6b7baa7550956377766e0e911a8b",
      "parents": [
        "de64b54a77696dfba6180aac713659425ba6a92a"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 00:12:19 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jul 14 00:12:19 2026 +0200"
      },
      "message": "CI: disable the javac log matcher of the setup-java action\n\nthe (new) matcher creates a workflow annotation for each javac warning.\nGithub has annotation limits (10 per step, 50 per job etc) which maxes\nout the annotation budget right away and prevents potentially useful\nannotations from being seen."
    },
    {
      "commit": "de64b54a77696dfba6180aac713659425ba6a92a",
      "tree": "16af9390f78d480a1ddcb617be55d0ae9c451587",
      "parents": [
        "8298c1e88e77d7f7b3b30927f801e09d5537e69a",
        "844f8b3192cb51bb25922a7edb8decebe7f84508"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 20:29:54 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 20:29:54 2026 +0200"
      },
      "message": "Merge pull request #9502 from mbien/exec-mvn-363\n\nUpdate exec-maven-plugin from 3.5.1 to 3.6.3"
    },
    {
      "commit": "8298c1e88e77d7f7b3b30927f801e09d5537e69a",
      "tree": "a5674c28d40ee2e773ad21ae70b41e6a57ee6c72",
      "parents": [
        "7bb61f3613a6af4d8782f246384804b4a22d3222",
        "99bb57a84809523ac932fff41be96fc01aba5402"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 19:26:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 19:26:14 2026 +0200"
      },
      "message": "Merge pull request #9501 from mbien/bump-maven-version-defaults_31\n\nBump MavenVersionSettings fallback versions for NB31"
    },
    {
      "commit": "7bb61f3613a6af4d8782f246384804b4a22d3222",
      "tree": "f8fe08670a0657385e8348f23d0b5109eb77da56",
      "parents": [
        "785315b5599264506e6188cfe044ef7a2873f543",
        "4d5ccc5af1e683f20592e164e92cdca8439691c1"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 19:26:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 19:26:00 2026 +0200"
      },
      "message": "Merge pull request #9500 from mbien/maven-3916\n\nUpdate bundled maven to 3.9.16"
    },
    {
      "commit": "785315b5599264506e6188cfe044ef7a2873f543",
      "tree": "ab79c00606270943dcbd7bc8d7ca797d10fa3e49",
      "parents": [
        "3be40d4834d93a333a2091b87680e9542283c86b",
        "e99482ec9c86574e7dc1f3ff6014a08aeac2e201"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Mon Jul 13 18:33:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 18:33:09 2026 +0200"
      },
      "message": "Merge pull request #9498 from matthiasblaesing/update-openjfx\n\nUpdate OpenJFX and fix crash on JDK 26"
    },
    {
      "commit": "2b308706f6420058f3f1bacfcf7200e3c510ae50",
      "tree": "6368e0144982a1fe2f5114d3f450c7026f6a4cdc",
      "parents": [
        "8ffe53f337466e1deca7a17f328b3e18ed4e4de5"
      ],
      "author": {
        "name": "Laszlo Kishalmi",
        "email": "laszlo.kishalmi@gmail.com",
        "time": "Sun Jul 12 23:17:42 2026 -0700"
      },
      "committer": {
        "name": "Laszlo Kishalmi",
        "email": "laszlo.kishalmi@gmail.com",
        "time": "Mon Jul 13 09:02:23 2026 -0700"
      },
      "message": "Upgrade Gradle Tooling to 9.6.1\n"
    },
    {
      "commit": "a64e830abd94513a283fc84a8f21e7dcb9477fb0",
      "tree": "85a2990e921750db9d539d31fd42cac4bf912212",
      "parents": [
        "3be40d4834d93a333a2091b87680e9542283c86b"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 17:01:06 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 17:01:06 2026 +0200"
      },
      "message": "Update FlatLaf from 3.7.1 to 3.7.2"
    },
    {
      "commit": "08668b8027e36e193b328c867d0670820f1d7d10",
      "tree": "d98df7e6ad7b152130b1ce839a47672b8d83e80a",
      "parents": [
        "3be40d4834d93a333a2091b87680e9542283c86b"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jul 13 14:18:16 2026 +0100"
      },
      "committer": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jul 13 14:47:48 2026 +0100"
      },
      "message": "Add Packaging guidelines file\n\nAdd a packaging guidelines file outlining how third-parties should\napply the ASF\u0027s downstream distribution policy with regard to\nApache NetBeans, and specifically allowing some common practices\n(RCs from nightlies, native binary filtering, and JDK bundling).\n"
    },
    {
      "commit": "844f8b3192cb51bb25922a7edb8decebe7f84508",
      "tree": "f1656bc34eaa11eb379fa4bfedc48f1e852f3ed1",
      "parents": [
        "3be40d4834d93a333a2091b87680e9542283c86b"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 13:27:25 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 13:27:25 2026 +0200"
      },
      "message": "Update exec-maven-plugin from 3.5.1 to 3.6.3"
    },
    {
      "commit": "99bb57a84809523ac932fff41be96fc01aba5402",
      "tree": "3ddf779aaf219a2e64cb2eb5cd5270d58581189b",
      "parents": [
        "3be40d4834d93a333a2091b87680e9542283c86b"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 12:55:08 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 12:55:08 2026 +0200"
      },
      "message": "Bump MavenVersionSettings fallback versions for NB31"
    },
    {
      "commit": "f33b8da223f90d97c3f1be4c039522349ea1ecb2",
      "tree": "9207a1d3ba2abb599030c786dbc32b1824a7b273",
      "parents": [
        "1c58bba731559a46bc076b09f62ffe217d5536f1"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Tue Mar 25 13:56:00 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:34 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 9)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix `ImmutableVariablesHint`\n- Add unit tests\n\nExample:\n```php\nclass PropertyHooksClass {\n    public int $backed \u003d 100 {\n        set(int $value) {\n            $this-\u003ebacked \u003d $value;\n        }\n    }\n    public $attributes {\n        #[Attr2] set ($value) {\n            $this-\u003eattributes \u003d $value;\n        }\n    }\n}\n// before:\nclass PropertyHooksClass {\n    public int $backed \u003d 100 {\n        set(int $value) { // a hint is shown\n            $this-\u003ebacked \u003d $value;\n        }\n    }\n    public $attributes {\n        #[Attr2] set ($value) { // a hint is shown\n            $this-\u003eattributes \u003d $value;\n        }\n    }\n}\n// after: no hint\n```\n"
    },
    {
      "commit": "1c58bba731559a46bc076b09f62ffe217d5536f1",
      "tree": "f7331429a6b4fff441d69a3582dc99eee4d877c4",
      "parents": [
        "eb32ba4781baa802f7054eb8d761c7002dab9fd3"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Fri Mar 21 14:25:19 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:34 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 8)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix `WrongOrderOfArgsHint`\n- Add/Fix unit tests\n\nExample:\n```php\n    public function __construct(\n        private ?int $optional \u003d 1 {\n            get {\n                return $this-\u003eoptional;\n            }\n            set {\n                $this-\u003eoptional \u003d $value;\n            }\n        },\n        $mandatory,\n    ) {}\n\n    // apply fix\n    public function __construct(\n        $mandatory,\n        private ?int $optional \u003d 1 {\n            get {\n                return $this-\u003eoptional;\n            }\n            set {\n                $this-\u003eoptional \u003d $value;\n            }\n        },\n    ) {}\n```\n"
    },
    {
      "commit": "eb32ba4781baa802f7054eb8d761c7002dab9fd3",
      "tree": "dc819172f58636275fb770a82c0fcd53ad6c8b11",
      "parents": [
        "e4498ce1a600c12eca76eaac81e3fb33d27c5bfb"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Tue Mar 18 14:45:01 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:34 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 7)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix `ModifiersCheckHintError`\n- Add unit tests\n\nExample:\n```php\nclass PropertyHooksClass {\n    private $invalidPrivateFinal {\n        final get{} // cannot use final\n    }\n    private $invalidPublic01 {\n        public get; // cannot use public\n    }\n    public $invalidStatic01 {\n        static get {} // cannot use static\n    }\n    public static $invalidStatic02 { // cannot use static\n        get{}\n        set{}\n    }\n    public $invalidNonAbstract {\n        get; // need a body\n        set; // need a body\n    }\n    public readonly int $invalidReadonly { get{} set{} } // cannot use readonly\n}\n\ninterface PropertyHookInterface {\n    abstract public $invalid01 { get; set; } // cannot use abstract\n    protected $invalid02 {get; set;} // cannot use protected\n    private $invalid03 { // cannot use private\n        get;\n        set;\n    }\n    public $invalid04 {\n        final get; // cannot use final\n    }\n    final public $invalid05 { // cannot use final\n        get;\n        set;\n    }\n    public $invalid06 {\n        get {} // cannot has a body\n    }\n    public private(set) int $invalid07 { // cannot use private(set)\n        set;\n    }\n    final public int $invalid08 { // cannot use final\n        set;\n    }\n    public readonly int $invalid09 { // cannot use readonly\n        get;\n    }\n}\n```\n\n- Fix a formatting issue\n\nExample:\n```\ninterface TestInterface {\n    public int $prop1 {get; set;}\n    public int $prop2 {}\n    ^^^^^^^ selected here\n}\n\n// before\ninterface TestInterface {\n    public int $prop1 {get; set;}\npublic int $prop2 {}\n}\n\n// after\ninterface TestInterface {\n    public int $prop1 {get; set;}\n    public int $prop2 {}\n}\n```\n"
    },
    {
      "commit": "e4498ce1a600c12eca76eaac81e3fb33d27c5bfb",
      "tree": "e313bafe77c6818ee7ac2cd5c5a5d62857397fbf",
      "parents": [
        "57199341ab7ddc7fff61f8d268868bb371c58d62"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Thu Mar 06 14:40:08 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:34 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 6)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix the indentation that is inserted when a new line is added\n- Fix an existing bug for a lambda function\n- Add unit tests\n\nExisting bug:\n```php\n// example\ntest(\n        function(): void {^\n);\n```\n\n```php\n// before\ntest(\n        function(): void {\n    ^\n        }\n);\n\n// after\ntest(\n        function(): void {\n            ^\n        }\n);\n```\n"
    },
    {
      "commit": "57199341ab7ddc7fff61f8d268868bb371c58d62",
      "tree": "9521f920d077910edc6021c35b007c0bc0df65e0",
      "parents": [
        "de0b8b5c7e59beb12c0041d42a309854084c8939"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Fri Feb 14 09:44:20 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:33 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 5)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix the formatter and `PhpTypedBreakInterceptor`\n- New Formatting Options\n  - Braces\n    - Field Declaration (Same Line by default)\n    - Property Hook (Same Line by default)\n  - Blank Lines\n    - Between Property Hooks (0 by default)\n    - Empty Property Hook Body (Unchecked by default)\n  - Spaces\n    - Before Left Braces\n      - Field Declaration (Checked by default)\n      - Property Hook Declaration (Checked by default)\n- Add unit tests\n"
    },
    {
      "commit": "de0b8b5c7e59beb12c0041d42a309854084c8939",
      "tree": "c3dc64b82444b54dde60645eb494fb708d51635e",
      "parents": [
        "e42e70f61954cbd5c02f0bf7570261ec66d5c80f"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Tue Feb 11 14:56:03 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:33 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 4)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix the folding feature\n- Add unit tests\n"
    },
    {
      "commit": "e42e70f61954cbd5c02f0bf7570261ec66d5c80f",
      "tree": "0af74a2a5150e84e5917364b0e13428f58656665",
      "parents": [
        "b2c8669832df944998043d1639278ee132863c59"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Sun Feb 09 11:18:10 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:33 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 3)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix the navigator\n- Fix/Add unit tests\n- Add SVG icons for a property hook, a trait, and an enum case\n"
    },
    {
      "commit": "b2c8669832df944998043d1639278ee132863c59",
      "tree": "34dbede1f15cdea17b7da23db0a722f5bf165e49",
      "parents": [
        "055fb1b72b20f8970b621f3e6562a603a5f02469"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Sat Feb 01 15:59:42 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:33 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 2)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix the indexer and the model\n- Use JSON format as a signature for property hooks\n- Current format is semicolon separated but it\u0027s hard to add hooks to a field signature without JSON format\n- Use the \"JSON simple\". If we use \"Jackson\", problems(timeout, java.lang.NoClassDefFoundError) occurs in CI for Windows\n\n```json\n[\n    {\n        \"name\":\"set\",\n        \"start\":3651,\n        \"end\":3690,\n        \"mod\":1,\n        \"isRef\":false,\n        \"isAttr\":false,\n        \"hasBody\":true,\n        \"paramSig\":\"$value::0::1:1:0:0:0:0::\"\n    }\n]\n```\n\n- Add interface methods\n  - `FieldElemnt.isHooked()`\n  - `FieldElement.HookedFieldElemnt.isHooked()`\n  - `FieldElement.HookedFieldElemnt.getPropertyHooks()`\n  - `IndexScope.PHP84IndexScope.findFields()`\n  - `TypeScope.FieldDeclarable.getDeclaredFields()`\n  - `TypeScope.FieldDeclarable.getInheritedFields()`\n  - `PropertyHookScope.isReference()`\n  - `PropertyHookScope.hasBody()`\n  - `PropertyHookScope.isAttributed()`\n  - `PropertyHookScope.getParameterNames()`\n  - `PropertyHookScope.getParameters()`\n  - `PropertyHookScope.getOffsetRange()`\n  - `PropertyHookElement.isReference()`\n  - `PropertyHookElement.hasBody()`\n  - `PropertyHookElement.isAttributed()`\n  - `PropertyHookElement.getParameters()`\n  - `PropertyHookElement.getOffsetRange()`\n\n- Add/Fix unit tests for the index and the model\n\nLog:\n```\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: getSignatureFromScopes() took: 0 ms\nINFO [org.netbeans.ui.indexing]: Indexing finished, indexing took 14 ms.\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 1 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\nFINE [org.netbeans.modules.php.editor.model.impl.PropertyHookSignatureItem]: fromSignature() took: 0 ms\n```\n"
    },
    {
      "commit": "055fb1b72b20f8970b621f3e6562a603a5f02469",
      "tree": "c45f4491693877b9146f84fdf00dc08b1882f22e",
      "parents": [
        "3be40d4834d93a333a2091b87680e9542283c86b"
      ],
      "author": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Wed Jan 29 14:07:57 2025 +0900"
      },
      "committer": {
        "name": "Junichi Yamamoto",
        "email": "junichi11@apache.org",
        "time": "Mon Jul 13 19:35:33 2026 +0900"
      },
      "message": "PHP 8.4 Support: Property hooks (Part 1)\n\n- https://github.com/apache/netbeans/issues/8035\n- https://wiki.php.net/rfc#php_84\n- https://wiki.php.net/rfc/property-hooks\n\n- Fix the lexer and parser(grammar)\n- Add `PropertyHookDeclaration` as an `ASTNode`\n- Fix `PHP5ErrorHandlerImpl` (handle missing tokens)\n- Fix/Add unit tests for the lexer and parser\n- Remove `ArrayDimensionSyntaxSuggestionHint` because this no longer works.\n\nExample:\n```php\nclass PropertyHooksClass {\n    public int $backed \u003d 100 {\n        get {\n            return $this-\u003ebacked;\n        }\n        set {\n            $this-\u003ebacked \u003d $value;\n        }\n    }\n    public $doubleArrow { // virtual\n        get \u003d\u003e $this-\u003etest();\n        set \u003d\u003e $this-\u003etest() . $value;\n    }\n    public $attributes {\n        #[Attr1] get {}\n        #[Attr2] set ($value) {\n            $this-\u003eattributes \u003d $value;\n        }\n    }\n    public $reference {\n        \u0026get \u003d\u003e $this-\u003ereference;\n    }\n    public $final {\n        final get \u003d\u003e $this-\u003efinal;\n    }\n\n    // constructor property promotion\n    public function __construct(\n        public $prop {\n            get {\n                return $this-\u003eprop;\n            }\n            set {\n                $this-\u003eprop \u003d $value;\n            }\n        }\n    ) {}\n}\n\nclass Child extends PropertyHooksClass {\n    public $prop {\n        get \u003d\u003e parent::$prop::get();\n        set {\n            parent::$prop::set($value);\n        }\n    }\n}\n\ninterface PropertyHooksInterface {\n    public string $prop1 {\n        get;\n    }\n    final public int $prop2 {\n        set;\n    }\n    public $prop3 {\n        get;\n        set;\n    }\n    public $ref { \u0026get; }\n}\n```\n\nNote: Curly braces array access (`{}` e.g. `$array{1}`, `$array{\u0027key\u0027}`) can use no longer.\nBecause a conflict occurs in the following case:\n\n```php\n\"string\"{1};\npublic string $prop \u003d \"string\" {\n    get \u003d\u003e $this-\u003eprop;\n    set {}\n}\n```\n"
    },
    {
      "commit": "4d5ccc5af1e683f20592e164e92cdca8439691c1",
      "tree": "169f7a67f43fdff39f9357c58a8d3fb1b5536105",
      "parents": [
        "3be40d4834d93a333a2091b87680e9542283c86b"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 12:07:00 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 12:15:12 2026 +0200"
      },
      "message": "Update bundled maven to 3.9.16"
    },
    {
      "commit": "3be40d4834d93a333a2091b87680e9542283c86b",
      "tree": "91b23b5b4a9784d084780103d723d5ec3e8786ae",
      "parents": [
        "8ffe53f337466e1deca7a17f328b3e18ed4e4de5",
        "6c97e47a8083e536f321c6bd3c191bb247a5e207"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 13 11:35:02 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 11:35:02 2026 +0200"
      },
      "message": "Merge pull request #9488 from mbien/explicit-sp\n\nImprove XMLUtil and usage"
    },
    {
      "commit": "e99482ec9c86574e7dc1f3ff6014a08aeac2e201",
      "tree": "ddaad73c2e2f18b9f26688e22fa2bc63b8b1dabc",
      "parents": [
        "0d6ede5f0e158a5feb3abb11dcf2bb4bb42d165b"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sat Jul 11 20:53:30 2026 +0200"
      },
      "committer": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jul 12 12:16:07 2026 +0200"
      },
      "message": "Add module for jdk.jsobject to enable running OpenJFX on JDK26+\n\nThe JDK removed the module jdk.jsobject in version 26. The result of the\nmissing module on JDK 26 is either failures to load the required classes\n(integrated webbrowser) or a hard crash (DukeScript Application Wizard).\n"
    },
    {
      "commit": "6c97e47a8083e536f321c6bd3c191bb247a5e207",
      "tree": "91b23b5b4a9784d084780103d723d5ec3e8786ae",
      "parents": [
        "552bf8dec7e3c20268596bd25b288e816e99ccab"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sun Jul 12 00:54:24 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sun Jul 12 00:54:24 2026 +0200"
      },
      "message": "xml.retriever: extract common xml factory code to utility method"
    },
    {
      "commit": "0d6ede5f0e158a5feb3abb11dcf2bb4bb42d165b",
      "tree": "5350ff8742c23b731fa2920a5345939ebb4dab50",
      "parents": [
        "8ffe53f337466e1deca7a17f328b3e18ed4e4de5"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Thu Jul 09 20:29:00 2026 +0200"
      },
      "committer": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sat Jul 11 23:02:15 2026 +0200"
      },
      "message": "Update OpenJFX to 23.0.2\n"
    },
    {
      "commit": "552bf8dec7e3c20268596bd25b288e816e99ccab",
      "tree": "01332b2377321b120afb7d207621aad158b131c8",
      "parents": [
        "23e79d0170e963dc11191778a4e855a473c72ef3"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jul 06 13:48:30 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sat Jul 11 17:30:02 2026 +0200"
      },
      "message": "Move some of the usage to the new XMLUtil methods\n\nsome dead code removal\n"
    },
    {
      "commit": "23e79d0170e963dc11191778a4e855a473c72ef3",
      "tree": "e4bca6d2e28c66ba2dad08dba316f332fcf6dba2",
      "parents": [
        "8ffe53f337466e1deca7a17f328b3e18ed4e4de5"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sun Jul 05 08:27:35 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sat Jul 11 17:19:17 2026 +0200"
      },
      "message": "Overload methods in XMLUtil to allow setting FEATURE_SECURE_PROCESSING\n\nSetting it to true by default would break compatibility, the existing\nparse methods will set the parameter to false (effectively leaving it\nunset, see below).\n\n\u0027getDOMImplementation()\u0027 and \u0027normalize()\u0027 will set it to true now.\n\nnote regarding FEATURE_SECURE_PROCESSING:\n\nIt is a tri-state boolean and can be implicit true, explicit true and\nexplicit false. JDK 11+ has it on implicit true by default.\n\nImplicit true and explicit true are not the same, explicit true enables\nadditional limits and checks, e.g it will throw on external entity\nloading attempts. (unless the external entity feature was disabled by\nother means, in which case it would simply ignore external entities)\n\nThat is also why passing false as parameter to the new methods will\nleave it at its default value instead of turning it completely off.\n(it remains at implicit true)\n"
    },
    {
      "commit": "75e508bc1dda5650234052967e949a28ffd10210",
      "tree": "fc3229f4542a3888fc166e15979ea04e6fe19326",
      "parents": [
        "8ffe53f337466e1deca7a17f328b3e18ed4e4de5"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Thu Jul 09 23:27:00 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Thu Jul 09 23:27:00 2026 +0200"
      },
      "message": "Update issue form for NB 31 release candidates\n\nremove \"free form\" template since github offers a \"Blank issue\" by\ndefault now which is only visible for maintainers."
    },
    {
      "commit": "8ffe53f337466e1deca7a17f328b3e18ed4e4de5",
      "tree": "c486138513f5be76652dda77fabdd6e9470700b6",
      "parents": [
        "5452be604f8dc03cbd8653b554d46555b11d88fd",
        "8ea4484f771c6a0e2253806b1c14d72a45ff3de1"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Thu Jul 09 18:10:29 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 18:10:29 2026 +0200"
      },
      "message": "Merge pull request #9487 from matthiasblaesing/php_varargs\n\nPHP: Support variadic marked variables in PHPDoc"
    },
    {
      "commit": "8ea4484f771c6a0e2253806b1c14d72a45ff3de1",
      "tree": "21594e6741119a931c2e9f0419ad67f72c2d2ceb",
      "parents": [
        "26a988b8cb6ba55331f8d2b39d68b76840ece2c0"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jul 05 21:12:31 2026 +0200"
      },
      "committer": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Wed Jul 08 19:30:56 2026 +0200"
      },
      "message": "PHP: Support variadic marked variables in PHPDoc\n\nVariadic variables (...$variable) were not correctly parsed by the\nPHPDoc parser. The issue manifests like this:\n\n- variadic variables in PHPDoc are not highlighted by usage marker\n- renaming does not work for variadic marked variables\n\nCloses: #9437"
    },
    {
      "commit": "5452be604f8dc03cbd8653b554d46555b11d88fd",
      "tree": "14153b3bc43057e6525f1b99aeb4e2ae8d06458b",
      "parents": [
        "d1b1fc05608e4bd973a3a8fa79a84e811aeb3315",
        "54515fa8565153b24a9e3271e9dd28f0f135b66a"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Tue Jul 07 10:46:54 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 10:46:54 2026 +0100"
      },
      "message": "Merge pull request #9484 from neilcsmith-net/gh7326\n\nUpdate Reformatter to honour case wrap settings with switch expressions (GH7326)."
    },
    {
      "commit": "54515fa8565153b24a9e3271e9dd28f0f135b66a",
      "tree": "14153b3bc43057e6525f1b99aeb4e2ae8d06458b",
      "parents": [
        "7f8d17a51a99ea864412e5ac551e467be00da791"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jul 06 11:10:57 2026 +0100"
      },
      "committer": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jul 06 11:10:57 2026 +0100"
      },
      "message": "Update Reformatter to honour case wrap settings with switch expressions.\n\nUpdate Reformatter to only add a newline to cases in switch expressions\nwhen wrapCaseStatements is set to WRAP_ALWAYS (default).\n\nFixes #7326\n"
    },
    {
      "commit": "7f8d17a51a99ea864412e5ac551e467be00da791",
      "tree": "435bc763ec0cbbcb936230f4f7351b69550fa6f3",
      "parents": [
        "d1b1fc05608e4bd973a3a8fa79a84e811aeb3315"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jul 06 11:04:26 2026 +0100"
      },
      "committer": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jul 06 11:04:26 2026 +0100"
      },
      "message": "Rename FormatingTest to ReformatterTest for visibility.\n"
    },
    {
      "commit": "d1b1fc05608e4bd973a3a8fa79a84e811aeb3315",
      "tree": "2390c3912185640b3a4bdfae80d283050a3c44b2",
      "parents": [
        "26a988b8cb6ba55331f8d2b39d68b76840ece2c0",
        "0c9df35b95d9bc292f5266dc3a721d1400b952ac"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jul 06 10:46:23 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 10:46:23 2026 +0100"
      },
      "message": "Merge pull request #9480 from neilcsmith-net/reformat-fixes2\n\nFix record reformatting for alternative brace positioning."
    },
    {
      "commit": "26a988b8cb6ba55331f8d2b39d68b76840ece2c0",
      "tree": "4ae44074eadeba29c3c526ba64baae68dcba90d8",
      "parents": [
        "d76508eb27761029b5eb029d652480c08d8c0a1c",
        "722912315fa1200fdf17a742e6c8d452c76f9456"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Fri Jul 03 20:18:14 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 20:18:14 2026 +0200"
      },
      "message": "Merge pull request #9430 from Saljack/diff-file-table-remember-sort\n\nRemember sort order of the file table in git diff view"
    },
    {
      "commit": "d76508eb27761029b5eb029d652480c08d8c0a1c",
      "tree": "5374a48272c32151148363f58e9bf7a7ba9e4cdb",
      "parents": [
        "f06222e63c300efdd287454ecfcb6577a9dbadac",
        "517821919e97323632bf32fd8bb1e1019350124f"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Fri Jul 03 00:54:30 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 00:54:30 2026 +0200"
      },
      "message": "Merge pull request #9479 from apupier/restrictTriggerPushForGitHubWorkflow\n\nRestrict trigger push branch for GitHub Workflow"
    },
    {
      "commit": "0c9df35b95d9bc292f5266dc3a721d1400b952ac",
      "tree": "37b92b25054cddf835d929797ee9695a52a65528",
      "parents": [
        "f06222e63c300efdd287454ecfcb6577a9dbadac"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Thu Jul 02 19:02:23 2026 +0100"
      },
      "committer": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Thu Jul 02 19:02:23 2026 +0100"
      },
      "message": "Fix record reformatting for alternative brace positioning.\n\nFix reformatting of records with alternative brace positioning -\nmake sure continuation flag not set.\n\nAdapt empty record formatting to work the same across all brace\nposition settings.\n"
    },
    {
      "commit": "517821919e97323632bf32fd8bb1e1019350124f",
      "tree": "5374a48272c32151148363f58e9bf7a7ba9e4cdb",
      "parents": [
        "f06222e63c300efdd287454ecfcb6577a9dbadac"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jul 01 17:21:17 2026 +0200"
      },
      "committer": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Wed Jul 01 17:21:17 2026 +0200"
      },
      "message": "Restrict trigger push branch for GitHub Workflow\n\nFeature branches rarely need their own CI runs: the code is already\ntested when a pull request is opened against a release branch. If the\npush trigger has no branch restriction and pull_request is also\nconfigured, every push to a branch with an open PR runs the workflow\ntwice: once for the push and once for the PR synchronisation.\n\nAlways give the push trigger an explicit list of branches: this stops\nbranches created from a release branch from inheriting its workflow\nruns.\n\nsee https://cwiki.apache.org/confluence/pages/viewpage.action?pageId\u003d430408443#GitHubActionsRecommendedPractices-Restrictthepushtriggertospecificbranches\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "f06222e63c300efdd287454ecfcb6577a9dbadac",
      "tree": "38933803ca117055634579bb4c753469f0b7bf2b",
      "parents": [
        "ef60245f730b2b9325245e7e8bba2a2575cd6740",
        "7a0363d532cc455770b07120c2cf78c776ee4dc1"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Wed Jul 01 02:29:25 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 02:29:25 2026 +0200"
      },
      "message": "Merge pull request #9475 from apache/dependabot/github_actions/actions/cache-6\n\nBump actions/cache from 5 to 6"
    },
    {
      "commit": "ef60245f730b2b9325245e7e8bba2a2575cd6740",
      "tree": "904b35b2305edc3ae9af170265613f4b0fb686c1",
      "parents": [
        "e365e98252344231cffb54afb433add16ed050b8",
        "67c5aa31db64ec19847d73f2cdc866e87ffe0b89"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Tue Jun 30 14:15:33 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 14:15:33 2026 +0100"
      },
      "message": "Merge pull request #9464 from neilcsmith-net/gh9443\n\nOpen files from imported projects on first run after update."
    },
    {
      "commit": "7a0363d532cc455770b07120c2cf78c776ee4dc1",
      "tree": "eb4d6419106b6102ad56f6162c134300bc2ae262",
      "parents": [
        "e365e98252344231cffb54afb433add16ed050b8"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 29 23:05:00 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 23:05:00 2026 +0000"
      },
      "message": "Bump actions/cache from 5 to 6\n\nBumps [actions/cache](https://github.com/actions/cache) from 5 to 6.\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/v5...v6)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: \u00276\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "e365e98252344231cffb54afb433add16ed050b8",
      "tree": "a36e6ebe0189c94cc5f55dfd4c6d9fb35a87b9d5",
      "parents": [
        "363ea976d7250c3637a820d895c8a7d8b729d64f",
        "0aa2eb3e4f9a9db7b05633b03ad8645acda921a6"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jun 28 14:31:27 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 14:31:27 2026 +0200"
      },
      "message": "Merge pull request #9467 from NicolaIsotta/issue3928\n\nFix Maven compile panel to respect Maven default JDK"
    },
    {
      "commit": "0aa2eb3e4f9a9db7b05633b03ad8645acda921a6",
      "tree": "4d45dc46c5ab4d37e4998177ff83af5bf76f3d52",
      "parents": [
        "af54595954f87c981f967ec8bad7ffba43ee7ef7"
      ],
      "author": {
        "name": "Nicola Isotta",
        "email": "nicola.isotta@gmail.com",
        "time": "Mon Jun 22 18:27:19 2026 +0200"
      },
      "committer": {
        "name": "Nicola Isotta",
        "email": "nicola.isotta@gmail.com",
        "time": "Wed Jun 24 17:59:02 2026 +0200"
      },
      "message": "Fix Maven compile panel to respect Maven default JDK\n\nWhen the Maven default JDK differed from the IDE default JDK, the\ncompile panel\u0027s Java Platform combo-box would show the IDE default,\nwhile Maven actually used its own configured default to build. This could be misleading to the user e might caused builds to fail.\n\nThe combo-box now correctly reflects the Maven default JDK and labels\nit as \"(Maven default)\" when it differs from the IDE default.\n\nFixes #3928\n"
    },
    {
      "commit": "67c5aa31db64ec19847d73f2cdc866e87ffe0b89",
      "tree": "d5a1eafdadfd831519f21d53142ccfc7adc4e537",
      "parents": [
        "af54595954f87c981f967ec8bad7ffba43ee7ef7"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Tue Jun 23 09:47:44 2026 +0100"
      },
      "committer": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Wed Jun 24 11:23:03 2026 +0100"
      },
      "message": "Open files from imported projects on first run after update.\n"
    },
    {
      "commit": "363ea976d7250c3637a820d895c8a7d8b729d64f",
      "tree": "b224ec7c84cfd849b05a3ff209ec407944be2d55",
      "parents": [
        "44881f86c018b91e521706da642279bb16f11c10",
        "c8d4b4e579f6b67c783e1314334958c00421b460"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jun 23 22:38:45 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 22:38:45 2026 +0200"
      },
      "message": "Merge pull request #9463 from apache/dependabot/github_actions/actions/checkout-7\n\nBump actions/checkout from 6 to 7"
    },
    {
      "commit": "c8d4b4e579f6b67c783e1314334958c00421b460",
      "tree": "b224ec7c84cfd849b05a3ff209ec407944be2d55",
      "parents": [
        "44881f86c018b91e521706da642279bb16f11c10"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 23 19:41:32 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 19:41:32 2026 +0000"
      },
      "message": "Bump actions/checkout from 6 to 7\n\nBumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/v6...v7)\n\n---\nupdated-dependencies:\n- dependency-name: actions/checkout\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "44881f86c018b91e521706da642279bb16f11c10",
      "tree": "28025388e3897b1939aceea65089440bd78a26f1",
      "parents": [
        "862bef2561563d3d997b6d56dec91e4e399e6df6",
        "ad2eda6a1746450b24dbc43621c7faf750fd5cf5"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jun 23 21:39:37 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 21:39:37 2026 +0200"
      },
      "message": "Merge pull request #9465 from neilcsmith-net/prof-gha\n\nPin runner images to specific OS versions in native binary workflows."
    },
    {
      "commit": "862bef2561563d3d997b6d56dec91e4e399e6df6",
      "tree": "06e665c99e595e30c7fd86a27b831a4559fa1027",
      "parents": [
        "57eb4e7e9249357d1b787bc733db806ee18769cd",
        "c7dbb21b773431fe3aa2d021e5bf6d663abcd2fd"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jun 23 21:37:39 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 21:37:39 2026 +0200"
      },
      "message": "Merge pull request #9462 from mbien/ternary-concat-fix\n\nFixed more ternary concatenation bugs"
    },
    {
      "commit": "57eb4e7e9249357d1b787bc733db806ee18769cd",
      "tree": "364462c1ca276f168bf6f2d614e60ccb20b8817a",
      "parents": [
        "a5e548568c870ddff656220f199d6d6089503382",
        "383e6e4a6a1f32501b14e8eea75d70511cc0f676"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Tue Jun 23 20:55:41 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 20:55:41 2026 +0200"
      },
      "message": "Merge pull request #9459 from matthiasblaesing/gradle-test-opening\n\nGradle \"Go to source\" on callstack entries in test results does not work"
    },
    {
      "commit": "a5e548568c870ddff656220f199d6d6089503382",
      "tree": "f15c87288d942be2becf4b6fe8a72c19bec3d4fd",
      "parents": [
        "af54595954f87c981f967ec8bad7ffba43ee7ef7",
        "93bd5ffff099485b7dafd288825ca07783492102"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Tue Jun 23 18:49:38 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 18:49:38 2026 +0200"
      },
      "message": "Merge pull request #9426 from matthiasblaesing/reduce-equinox\n\nRemove Netbinox dependency from MavenOSGI and support Export-Package with multi-package entries"
    },
    {
      "commit": "ad2eda6a1746450b24dbc43621c7faf750fd5cf5",
      "tree": "1365fa14761c3149c9943b4f28cf6f00d59e1310",
      "parents": [
        "af54595954f87c981f967ec8bad7ffba43ee7ef7"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Tue Jun 23 15:24:21 2026 +0100"
      },
      "committer": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Tue Jun 23 15:24:21 2026 +0100"
      },
      "message": "Pin runner images to specific OS versions in native binary workflows.\n"
    },
    {
      "commit": "af54595954f87c981f967ec8bad7ffba43ee7ef7",
      "tree": "9fe9aaecd15a67cff838dcd3a24db2e3419cec1a",
      "parents": [
        "624a377b641d7652b58d49ff95e7dc6f48f939bc",
        "225326651546328d58ae48ac69f4f647c3f6fab0"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jun 23 02:16:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 02:16:03 2026 +0200"
      },
      "message": "Merge pull request #9436 from NicolaIsotta/cdi-check-fix\n\nCDI: Fix/improve handling of EE specific artifacts in EnableBeansFilter"
    },
    {
      "commit": "624a377b641d7652b58d49ff95e7dc6f48f939bc",
      "tree": "e6b261bd591d92791a747530378f5def7d792ac2",
      "parents": [
        "c4be22945b9a68ef10b92ab1e736ba55c05a70d4",
        "5f3552043f04d7ddeb7a863bf67da3d33e2752ad"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Tue Jun 23 00:42:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 00:42:46 2026 +0200"
      },
      "message": "Merge pull request #9449 from NicolaIsotta/migrate-attributes\n\nUpgrader: add the migration of (filtered) var/attributes.xml"
    },
    {
      "commit": "c7dbb21b773431fe3aa2d021e5bf6d663abcd2fd",
      "tree": "092016acf82c669f794b3b1ed0bee523da10d17f",
      "parents": [
        "c4be22945b9a68ef10b92ab1e736ba55c05a70d4"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jun 22 23:27:27 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jun 22 23:41:51 2026 +0200"
      },
      "message": "Fixed more ternary concatenation bugs\n\nEval order is from left to right which can lead to undesired effects\nwhen the right side has a ternary operator.\n\nThis puts the ternary operation in braces (or avoids the situation\nby other means)"
    },
    {
      "commit": "c4be22945b9a68ef10b92ab1e736ba55c05a70d4",
      "tree": "7b601017658850f5db15a6917bee002a11892a80",
      "parents": [
        "6cfdc63db229c2322d25ae2b75fe91281136f7cf",
        "f3d6bbf2b124bd2872b85d3b09d1d43d76b0a1b9"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Mon Jun 22 23:07:00 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 23:07:00 2026 +0200"
      },
      "message": "Merge pull request #9451 from mbien/robots-txt\n\nUpdate PR template to mention coding assistant attribution"
    },
    {
      "commit": "383e6e4a6a1f32501b14e8eea75d70511cc0f676",
      "tree": "81106ffbf66f7cba871239a75df0e86ec6c7b9b0",
      "parents": [
        "6cfdc63db229c2322d25ae2b75fe91281136f7cf"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jun 21 20:41:12 2026 +0200"
      },
      "committer": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jun 21 20:41:12 2026 +0200"
      },
      "message": "Gradle \"Go to source\" on callstack entries does not work\n\nThe code always yielded the string representation of the current line\nas the string contenation is evaluated the the null check in the \nternary expression is checked. That is never null and thus line\nis returned.\n\nWhat was meant here is that the first part of the string should be\nthe \"location\" (classname) followed by a colon and either the line\nnumber or the method name.\n\nAdd parantheses to fix this.\n\nCloses: #9454"
    },
    {
      "commit": "6cfdc63db229c2322d25ae2b75fe91281136f7cf",
      "tree": "1df4313c0aeec14b38571e56691b3009b4e6bbab",
      "parents": [
        "95685350d49ffd1e03476dcb13658f49cbcf6fad",
        "627351e7e2566cc8b39deb3f3ba1333ca65d5174"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jun 21 12:27:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 12:27:48 2026 +0200"
      },
      "message": "Merge pull request #9431 from DamImpr/fluent_setter_static_from_php_80\n\n[PHP] Return type changed in PHP \u003e\u003d 8-0. Fluent setters now return `static`."
    },
    {
      "commit": "95685350d49ffd1e03476dcb13658f49cbcf6fad",
      "tree": "5b7c89df3479b8c1e5e2f217cfe5786a3a4aa4d8",
      "parents": [
        "f88a2a3dab55dc731996f4f9625065e9234803d6",
        "d1af05aea0607d3c72561cd59d93e65063730e75"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jun 21 11:04:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 21 11:04:53 2026 +0200"
      },
      "message": "Merge pull request #9282 from Achal1607/custom-user-settings-xml\n\nAdded a global preference for user settings.xml for Maven projects"
    },
    {
      "commit": "722912315fa1200fdf17a742e6c8d452c76f9456",
      "tree": "a67b31ddf139b7cbbcc650eee5a15ebb81a9b9f7",
      "parents": [
        "16e30be5ae09b9061df26d7cbd59ed20010da520"
      ],
      "author": {
        "name": "Tomas Poledny",
        "email": "saljacky@gmail.com",
        "time": "Sun Jun 21 10:48:05 2026 +0200"
      },
      "committer": {
        "name": "Tomas Poledny",
        "email": "saljacky@gmail.com",
        "time": "Sun Jun 21 10:48:05 2026 +0200"
      },
      "message": "Remember sort order of the file table in git diff view"
    },
    {
      "commit": "93bd5ffff099485b7dafd288825ca07783492102",
      "tree": "b4c29fb4538b1f6b64bb2b13922ea77612af46cc",
      "parents": [
        "58a128da078507d24401343ac57deb4cb0ea0056"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Thu Jun 04 00:38:38 2026 +0200"
      },
      "committer": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jun 21 09:32:09 2026 +0200"
      },
      "message": "Remove Netbinox dependency from MavenOSGI and support `Export-Package` with multi-package entries\n\nThe OSGI specification allows `Export-Package\" to contain multiple\nexport entries, that in turn can each hold multiple package names.\n\nThese two should be considered equal:\n\n    Export-Package: com.acme.foo;com.acme.bar;version\u003d1.23\n\nand\n\n    Export-Package: com.acme.foo;version\u003d1.23,com.acme.bar;version\u003d1.23\n\nThe \"NetBeans OSGi Integration\" only supported the second version. This\nadds the first.\n\nThe implementation of the Export-Package parser in \"Netbeans OSGi\nIntegration\" can be reused in the \"Maven OSGi\" so that the Netbinox\ndependency can be removed from that module."
    },
    {
      "commit": "58a128da078507d24401343ac57deb4cb0ea0056",
      "tree": "45e1cfb90390ddcc832165d57f1562d004f67222",
      "parents": [
        "f88a2a3dab55dc731996f4f9625065e9234803d6"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Tue Jun 02 22:36:54 2026 +0200"
      },
      "committer": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sun Jun 21 09:32:08 2026 +0200"
      },
      "message": "Reduce warnings/remove trailing whitespace"
    },
    {
      "commit": "d1af05aea0607d3c72561cd59d93e65063730e75",
      "tree": "5b7c89df3479b8c1e5e2f217cfe5786a3a4aa4d8",
      "parents": [
        "f88a2a3dab55dc731996f4f9625065e9234803d6"
      ],
      "author": {
        "name": "Achal Talati",
        "email": "achal.talati@oracle.com",
        "time": "Tue Mar 17 11:40:42 2026 +0530"
      },
      "committer": {
        "name": "Achal Talati",
        "email": "achal.talati@oracle.com",
        "time": "Sun Jun 21 11:21:00 2026 +0530"
      },
      "message": "Added a global preference for user settings.xml for Maven projects\n\nFixed project files and profile combo box to reflect custom settings.xml\n"
    },
    {
      "commit": "f3d6bbf2b124bd2872b85d3b09d1d43d76b0a1b9",
      "tree": "ca6741649c5d0a838b886b19412620dbabc8b808",
      "parents": [
        "f88a2a3dab55dc731996f4f9625065e9234803d6"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Fri Jun 19 06:59:54 2026 +0200"
      },
      "committer": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sat Jun 20 14:47:50 2026 +0200"
      },
      "message": "Update PR template to mention coding assistant attribution\n\n - LLM/coding assistant attribution in commits and PR description via\n   \u0027Assisted-by\u0027 tag\n - updated paperwork check"
    },
    {
      "commit": "5f3552043f04d7ddeb7a863bf67da3d33e2752ad",
      "tree": "e2b589c8f156bff3da4fcd6af7ffa97dd699a0f8",
      "parents": [
        "f88a2a3dab55dc731996f4f9625065e9234803d6"
      ],
      "author": {
        "name": "Nicola Isotta",
        "email": "nicola.isotta@gmail.com",
        "time": "Thu Jun 18 09:31:01 2026 +0200"
      },
      "committer": {
        "name": "Nicola Isotta",
        "email": "nicola.isotta@gmail.com",
        "time": "Sat Jun 20 10:49:21 2026 +0200"
      },
      "message": "Upgrader: add the migration of (filtered) var/attributes.xml\n\nOnly fileobject elements which contains Auxil[i]aryConfiguration are retained,\nas other elements may not be safe to import\n"
    },
    {
      "commit": "627351e7e2566cc8b39deb3f3ba1333ca65d5174",
      "tree": "72c29a174fffb7ea7c0c542d9f85708ed2e9362f",
      "parents": [
        "f88a2a3dab55dc731996f4f9625065e9234803d6"
      ],
      "author": {
        "name": "Damiano Improta",
        "email": "damiano.improta@gmail.com",
        "time": "Sun Jun 14 22:10:55 2026 +0200"
      },
      "committer": {
        "name": "Damiano Improta",
        "email": "code@damianimprota.it",
        "time": "Fri Jun 19 14:15:29 2026 +0200"
      },
      "message": "Return type for fluent setters changed to  for PHP \u003e\u003d 8.0\n\nadd logic fluent setter and test cases\n\nfix typo comment\n"
    },
    {
      "commit": "4c7e0d22854df0629aabdf8c4b60ac3c398ed9b7",
      "tree": "c88cfbddf0bda6a04df1490d4c48b2aca74b805b",
      "parents": [
        "f88a2a3dab55dc731996f4f9625065e9234803d6"
      ],
      "author": {
        "name": "Renat R. Safiullin",
        "email": "renatsaf@gmail.com",
        "time": "Wed Jun 17 00:56:12 2026 +0300"
      },
      "committer": {
        "name": "Renat R. Safiullin",
        "email": "renatsaf@gmail.com",
        "time": "Wed Jun 17 00:56:12 2026 +0300"
      },
      "message": "Don\u0027t pass removed -Djava.endorsed.dirs when running app clients\n\nWhen running a Jakarta EE application client against a registered\nGlassFish server, the GlassFish plugin built the app-client container\nJVM options by always prepending\n-Djava.endorsed.dirs\u003d\u003croot\u003e/lib/endorsed:\u003croot\u003e/modules/endorsed.\n\nThe endorsed-standards mechanism was removed in JDK 9 (JEP 220), and\nHotSpot deliberately aborts at startup when java.endorsed.dirs is set:\n\n    -Djava.endorsed.dirs\u003d... is not supported. ...\n    Error: Could not create the Java Virtual Machine.\n\nGlassFish 7 requires JDK 11+ and ships no endorsed directories, so the\napp client run failed every time with no way to recover from the IDE.\n\nBuild the option only from the lib/endorsed and modules/endorsed\ndirectories that actually exist, and omit -Djava.endorsed.dirs entirely\nwhen neither is present. This fixes running app clients on JDK 9+ while\npreserving behavior for legacy servers on JDK 8 that still ship those\ndirectories.\n\nFixes #6270\n"
    },
    {
      "commit": "f88a2a3dab55dc731996f4f9625065e9234803d6",
      "tree": "2fc2dabdf0cf2f500526fb0382fa93e8ffbde079",
      "parents": [
        "0e7e503418b60ae6a47fc364eff0fb08776a0f0f",
        "e4c557d12d990ccbe4cc6ad5710e3be776057217"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Tue Jun 16 22:44:50 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 22:44:50 2026 +0200"
      },
      "message": "Merge pull request #9439 from matthiasblaesing/update-jna\n\nUpdate JNA to 5.19.1"
    },
    {
      "commit": "390df7a5eef10535f7ff79f88e556a70ce71fe29",
      "tree": "2e9542af0b73d7525ccbef558b997323d0426e22",
      "parents": [
        "0e7e503418b60ae6a47fc364eff0fb08776a0f0f"
      ],
      "author": {
        "name": "Renat R. Safiullin",
        "email": "renatsaf@i-t-systems.ru",
        "time": "Tue Jun 16 15:36:13 2026 +0300"
      },
      "committer": {
        "name": "Renat R. Safiullin",
        "email": "renatsaf@i-t-systems.ru",
        "time": "Tue Jun 16 15:36:13 2026 +0300"
      },
      "message": "Fix GlassFish 8.x install detection when modules/glassfish.jar is absent\n\nThe Add Server wizard validated a GlassFish install by requiring a jar in\nmodules/ matching GFV3_JAR_MATCHER (originally modules/glassfish.jar from\nGlassFish 3-7). GlassFish 8 removed that jar; the bootstrap jar moved to\nlib/bootstrap/glassfish.jar, which getJarName() does not scan. The full\ndistribution still matches only by accident (glassfish-batch-*.jar), while\nthe Web Profile excludes Batch and so matches nothing, causing the wizard\nto reject it as an invalid installation.\n\nAccept lib/bootstrap/glassfish.jar (present in every distribution, full and\nweb) as a fallback. Backward compatible with GlassFish 3-7; the container\ncheck and version resolution via getServerVersion() are unchanged.\n\nFixes #9441\n"
    },
    {
      "commit": "e4c557d12d990ccbe4cc6ad5710e3be776057217",
      "tree": "2fc2dabdf0cf2f500526fb0382fa93e8ffbde079",
      "parents": [
        "0e7e503418b60ae6a47fc364eff0fb08776a0f0f"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Mon Jun 15 21:43:05 2026 +0200"
      },
      "committer": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Mon Jun 15 21:43:05 2026 +0200"
      },
      "message": "Update JNA to 5.19.1"
    },
    {
      "commit": "0e7e503418b60ae6a47fc364eff0fb08776a0f0f",
      "tree": "1fc47a712dfb616a43df76f744cb2fad02a23d05",
      "parents": [
        "218528613b95506463e760ee985a109f04c3ce73",
        "0572751e3100aaceda0e39ccf1c2ad9054e242e0"
      ],
      "author": {
        "name": "Jan Lahoda",
        "email": "51319204+lahodaj@users.noreply.github.com",
        "time": "Mon Jun 15 17:42:20 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 17:42:20 2026 +0200"
      },
      "message": "Merge pull request #9413 from lahodaj/jdk27\n\nUpgrading to nb-javac from JDK 27b26"
    },
    {
      "commit": "218528613b95506463e760ee985a109f04c3ce73",
      "tree": "08ef2965d92531deee137961e1f83551d8dc275d",
      "parents": [
        "eede3c7145fdb0ff36213a129c2f600f83330253",
        "f43d0f043b33f7719f125b18b1b645184115b6ec"
      ],
      "author": {
        "name": "Chrizzly",
        "email": "christian.lenz@gmx.net",
        "time": "Mon Jun 15 17:39:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 17:39:16 2026 +0200"
      },
      "message": "Merge pull request #9438 from Chris2011/feature/delete-on-keypress\n\nRemove textmate grammar registration by delete key and select the next one for fast deletion"
    },
    {
      "commit": "0572751e3100aaceda0e39ccf1c2ad9054e242e0",
      "tree": "181b8b04d3db29f66e8f8336e55bbe487feeaea9",
      "parents": [
        "eede3c7145fdb0ff36213a129c2f600f83330253"
      ],
      "author": {
        "name": "Jan Lahoda",
        "email": "jan.lahoda@oracle.com",
        "time": "Thu Mar 26 09:58:40 2026 +0100"
      },
      "committer": {
        "name": "Jan Lahoda",
        "email": "jan.lahoda@oracle.com",
        "time": "Mon Jun 15 07:58:45 2026 +0200"
      },
      "message": "Upgrading nb-javac to JDK 27, build 26.\n"
    },
    {
      "commit": "225326651546328d58ae48ac69f4f647c3f6fab0",
      "tree": "5bde92a2940ed217d4df6151dfb2cccb8f98cc4b",
      "parents": [
        "72127add5cefa849655bbe632f6f73c1ec15894b"
      ],
      "author": {
        "name": "Nicola Isotta",
        "email": "nicola.isotta@gmail.com",
        "time": "Mon Apr 13 08:35:16 2026 +0200"
      },
      "committer": {
        "name": "Nicola Isotta",
        "email": "nicola.isotta@gmail.com",
        "time": "Sat Jun 13 14:19:20 2026 +0200"
      },
      "message": "Fix/improve handling of EE specific artifacts in EnableBeansFilter\n\nRefactored the code to use new java versions features and improve perf\n"
    },
    {
      "commit": "eede3c7145fdb0ff36213a129c2f600f83330253",
      "tree": "2c57d477065099d264350ce246a85c2470685329",
      "parents": [
        "5cc765e427bcce151b2fc5c69e1e5c161855c327",
        "1bc174c931a068093d80f7e028ffec2b0f23d997"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sat Jun 13 13:53:24 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 13:53:24 2026 +0200"
      },
      "message": "Merge pull request #9425 from sid-srini/launcher-java_home-macos-parity-with-unix\n\nEnhance platform launcher to honour JAVA_HOME on macos"
    },
    {
      "commit": "5cc765e427bcce151b2fc5c69e1e5c161855c327",
      "tree": "ded79ee7e3eade8830e99d07add02fcfe4e17ae2",
      "parents": [
        "72127add5cefa849655bbe632f6f73c1ec15894b",
        "70e19e70556a539b71c1c79d986f826d5e028e6b"
      ],
      "author": {
        "name": "Michael Bien",
        "email": "mbien42@gmail.com",
        "time": "Sat Jun 13 12:53:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 12:53:09 2026 +0200"
      },
      "message": "Merge pull request #9434 from apache/dependabot/github_actions/shivammathur/setup-php-2.37.2\n\nBump shivammathur/setup-php from 2.37.0 to 2.37.2"
    },
    {
      "commit": "f43d0f043b33f7719f125b18b1b645184115b6ec",
      "tree": "0ffa4e0a0e652267695f8b04d88d37f7ad1a91ba",
      "parents": [
        "72127add5cefa849655bbe632f6f73c1ec15894b"
      ],
      "author": {
        "name": "Christian Lenz",
        "email": "Christian.Lenz@gmx.net",
        "time": "Fri Jun 12 16:41:28 2026 +0200"
      },
      "committer": {
        "name": "Christian Lenz",
        "email": "Christian.Lenz@gmx.net",
        "time": "Fri Jun 12 16:53:29 2026 +0200"
      },
      "message": "Remove textmate grammar registration by delete key and select the next one for fast deletion\n"
    },
    {
      "commit": "70e19e70556a539b71c1c79d986f826d5e028e6b",
      "tree": "ded79ee7e3eade8830e99d07add02fcfe4e17ae2",
      "parents": [
        "72127add5cefa849655bbe632f6f73c1ec15894b"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 08 23:05:26 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 23:05:26 2026 +0000"
      },
      "message": "Bump shivammathur/setup-php from 2.37.0 to 2.37.2\n\nBumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.37.0 to 2.37.2.\n- [Release notes](https://github.com/shivammathur/setup-php/releases)\n- [Commits](https://github.com/shivammathur/setup-php/compare/accd6127cb78bee3e8082180cb391013d204ef9f...f3e473d116dcccaddc5834248c87452386958240)\n\n---\nupdated-dependencies:\n- dependency-name: shivammathur/setup-php\n  dependency-version: 2.37.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "72127add5cefa849655bbe632f6f73c1ec15894b",
      "tree": "03b601f72b6cd565ec6f922cc725d8f0b55e4c6b",
      "parents": [
        "47f9057909356f786c9f513707d316b98443bee7",
        "5dcc7267c511b3ffeece7b57b2f3e1f6f7fb58a7"
      ],
      "author": {
        "name": "Neil C Smith",
        "email": "neilcsmith@apache.org",
        "time": "Mon Jun 08 14:21:29 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 14:21:29 2026 +0100"
      },
      "message": "Merge pull request #9421 from neilcsmith-net/reformat-fixes\n\nFix Java reformatter for empty records and nested lambdas"
    },
    {
      "commit": "47f9057909356f786c9f513707d316b98443bee7",
      "tree": "276c0432ecfc9bf39e9eba2fd35ea342b4a20040",
      "parents": [
        "322cf79cf2773d48b887a6a561e4172ba2c0eb03",
        "e01b4fff002b1e430e050f557eb7bc9df759b2d5"
      ],
      "author": {
        "name": "Jaroslav Tulach",
        "email": "jaroslav.tulach@apidesign.org",
        "time": "Mon Jun 08 06:11:11 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 06:11:11 2026 +0200"
      },
      "message": " #9427: Expanding list of recognized JavaScript and TypeScript extensions"
    },
    {
      "commit": "322cf79cf2773d48b887a6a561e4172ba2c0eb03",
      "tree": "a083c703b4d952ee43e32ddada9e59e1ae0725cd",
      "parents": [
        "16e30be5ae09b9061df26d7cbd59ed20010da520",
        "ec77a1958bd0713765355bc4223914229dfbf4e3"
      ],
      "author": {
        "name": "Matthias Bläsing",
        "email": "mblaesing@doppel-helix.eu",
        "time": "Sat Jun 06 12:52:04 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 06 12:52:04 2026 +0200"
      },
      "message": "Merge pull request #9403 from NicolaIsotta/el-cache\n\nImprove perf of EL module by caching ResolverContext in ELParserResult"
    },
    {
      "commit": "e01b4fff002b1e430e050f557eb7bc9df759b2d5",
      "tree": "2b720e66ab06e54e19549e4bd66b37350a89b67a",
      "parents": [
        "16e30be5ae09b9061df26d7cbd59ed20010da520"
      ],
      "author": {
        "name": "Jaroslav Tulach",
        "email": "jaroslav.tulach@apidesign.org",
        "time": "Fri Jun 05 07:19:51 2026 +0200"
      },
      "committer": {
        "name": "Jaroslav Tulach",
        "email": "jaroslav.tulach@apidesign.org",
        "time": "Fri Jun 05 07:19:51 2026 +0200"
      },
      "message": "Expanding (Java/Type)Script extensions\n"
    },
    {
      "commit": "16e30be5ae09b9061df26d7cbd59ed20010da520",
      "tree": "25a12008a8d7a171107b8d7b9225f665776ca9e9",
      "parents": [
        "21685aff727a6f5eb32d930630dbabaf33de5d08",
        "9212fe17b2f62e063dc3f538312a7f0de1b47ad2"
      ],
      "author": {
        "name": "Jan Lahoda",
        "email": "51319204+lahodaj@users.noreply.github.com",
        "time": "Thu Jun 04 17:30:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 17:30:22 2026 +0200"
      },
      "message": "Merge pull request #7747 from sid-srini/java_completion-methods_without_params\n\nJava completion enhanced to support no insertion of method parameters"
    },
    {
      "commit": "21685aff727a6f5eb32d930630dbabaf33de5d08",
      "tree": "7be3abfa3ab1e365c1978373b1f7a322da7fa63c",
      "parents": [
        "375d3416d4df60ba6b3d7023f8830fb36f6d7bf7",
        "b9ace3053c7a8b5bec610be976a21227d41ae3b6"
      ],
      "author": {
        "name": "Jan Lahoda",
        "email": "51319204+lahodaj@users.noreply.github.com",
        "time": "Thu Jun 04 16:28:59 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 16:28:59 2026 +0200"
      },
      "message": "Merge pull request #9411 from lahodaj/openjdk-test-build-targets\n\nAdding ability to run OpenJDK tests against a full image."
    }
  ],
  "next": "375d3416d4df60ba6b3d7023f8830fb36f6d7bf7"
}
