)]}'
{
  "commit": "76cb0ecf842f77fdd98ea3a7a1c9e05565a3bf68",
  "tree": "9ec65174864bbc9d1862abae828a1a8379e6df46",
  "parents": [
    "ecf1f41c99c65c6500ed6e9bb1d7d1c16a5b8e77"
  ],
  "author": {
    "name": "Piotr P. Karwasz",
    "email": "pkarwasz-github@apache.org",
    "time": "Thu Aug 27 17:18:11 2026 +0200"
  },
  "committer": {
    "name": "Piotr P. Karwasz",
    "email": "pkarwasz-github@apache.org",
    "time": "Thu Aug 27 17:22:27 2026 +0200"
  },
  "message": "Merge `log4j-*-java9` modules into `log4j-api` and `log4j-core`\n\nThe `log4j-api-java9` and `log4j-core-java9` modules are a relict from\nan era where multi-release JAR content could not be produced by the\nconsuming Maven module itself.  Each compiled a handful of Java 9\nsources (padded with stub classes to satisfy the compiler), zipped them\nin a `classes/META-INF/versions/9` layout and had the consumer unpack\nthe zip into `target` at `prepare-package`.\n\nCompile the Java 9 sources directly in `log4j-api` and `log4j-core`\ninstead, using a second `maven-compiler-plugin` execution over\n`src/main/java9` with `\u003crelease\u003e9\u003c/release\u003e` and\n`\u003cmultiReleaseOutput\u003etrue\u003c/multiReleaseOutput\u003e`.  The execution stays\nbound to `prepare-package` so that `bnd-maven-plugin` (at\n`process-classes`) never sees the versioned classes, as before; the\n`Multi-Release: true` manifest entry keeps coming from the\n`bnd-multi-release` property.  The published artifacts are unchanged:\nthe versioned class list and bytecode are identical, and the stubs\nare no longer needed since the real classes are on the compile\nclasspath.\n\nThe Java 9 `StackLocator` tests move to `log4j-api-test` as a\n`maven-failsafe-plugin` integration test running against the packaged\nmulti-release JAR, with a guard assertion that the\n`META-INF/versions/9` variant is actually loaded.  The two\n`getCurrentStackTrace` tests only passed against the old module\u0027s\nstubbed `PrivateSecurityManagerStackTraceUtil` and are dropped: against\nthe real classes they exercise the `SecurityManager` path, which\n`StackLocatorUtilTest` already covers.  The Java 9 `ProcessIdUtilTest`\nwas assertion-identical to the existing one in `log4j-api-test`.\n\nAssisted-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "delete",
      "old_id": "ae3c1726048cd06b9a143e0376ed46dd9b9a8d53",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/.gitignore",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5112014f8ac4a6110343467b54d0547ec372d652",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/pom.xml",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "0aa94e150fba95a127c5f81e86d2c4108edc11a0",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/assembly/java9.xml",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "a2b60d2fe25679b7dc4c2b50552acd973223543b",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/Dummy.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "343013dcd45cbc67e7ec902d63f571811c22e2f5",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/message/Dummy.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "2cef3a24ece1b0f6faa9d02d82fd2c7bc7883d54",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "25f4cf4d22e563a7461f74bac7c220f2879deee1",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/simple/Dummy.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "2f6fbdf3149a681c0cc7169e90ee31a6d0b8d4a9",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/spi/Provider.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "0004af0bfb18d2aa516d9f1519dc6b019e02c665",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/status/Dummy.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "bf78f35df57afc3427e27ca929cfb332a8938aef",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/EnvironmentPropertySource.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "6eb2c7104256a2f6732aa47b3cf3d3015900ff1c",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/LoaderUtil.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9fb9a4ee56b3a96148fc4e79d7da05e1ec0d2a02",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/PrivateSecurityManagerStackTraceUtil.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "56e6259b5d8e9368550edfca1c22fbdfcb2e0c00",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/PropertySource.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "ec8a479294527932ab35914376027d9269adaadf",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/SystemPropertiesPropertySource.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "ddade3dd8a898b0607c05f156cdd9c894329ead5",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/internal/SerializationUtil.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "1a24860f57d05dd516c1eec6a69c9f096cf22e04",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/test/java/org/apache/logging/log4j/util/java9/ProcessIdUtilTest.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "aef8a1b5d648c74cd6719fb578a372eee34a8a96",
      "old_mode": 33188,
      "old_path": "log4j-api-test/pom.xml",
      "new_id": "9e5932f7650d323df5c66c5c4dc53bc502f9f04d",
      "new_mode": 33188,
      "new_path": "log4j-api-test/pom.xml"
    },
    {
      "type": "rename",
      "old_id": "cc8f61218a73e7c55bd1e62d93bc3520858a1831",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/test/java/org/apache/logging/log4j/util/java9/StackLocatorTest.java",
      "new_id": "42d54cefe07ae3cb9155f1e787beddaa2d5fb011",
      "new_mode": 33188,
      "new_path": "log4j-api-test/src/test/java/org/apache/logging/log4j/util/java9/StackLocatorJava9IT.java",
      "score": 65
    },
    {
      "type": "modify",
      "old_id": "4b0525466df2a09285ffd6bef0c51f77c3432773",
      "old_mode": 33188,
      "old_path": "log4j-api/pom.xml",
      "new_id": "00f985142bf644e8c361bfc84ac31b804beae256",
      "new_mode": 33188,
      "new_path": "log4j-api/pom.xml"
    },
    {
      "type": "rename",
      "old_id": "ad66303df382150873c461e547a083c80f576957",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/Base64Util.java",
      "new_id": "ad66303df382150873c461e547a083c80f576957",
      "new_mode": 33188,
      "new_path": "log4j-api/src/main/java9/org/apache/logging/log4j/util/Base64Util.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "ad6666d59778ff3bba5bf86bc09256b0f7d2aa62",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/ProcessIdUtil.java",
      "new_id": "ad6666d59778ff3bba5bf86bc09256b0f7d2aa62",
      "new_mode": 33188,
      "new_path": "log4j-api/src/main/java9/org/apache/logging/log4j/util/ProcessIdUtil.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "e928777ed6bf4ef1296048560b9cc945e69c4cb0",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/StackLocator.java",
      "new_id": "e928777ed6bf4ef1296048560b9cc945e69c4cb0",
      "new_mode": 33188,
      "new_path": "log4j-api/src/main/java9/org/apache/logging/log4j/util/StackLocator.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "df62f71e5f750207b323be2799030b493c681a5f",
      "old_mode": 33188,
      "old_path": "log4j-api-java9/src/main/java/org/apache/logging/log4j/util/internal/DefaultObjectInputFilter.java",
      "new_id": "df62f71e5f750207b323be2799030b493c681a5f",
      "new_mode": 33188,
      "new_path": "log4j-api/src/main/java9/org/apache/logging/log4j/util/internal/DefaultObjectInputFilter.java",
      "score": 100
    },
    {
      "type": "delete",
      "old_id": "ae3c1726048cd06b9a143e0376ed46dd9b9a8d53",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/.gitignore",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "2cb3c3d07a2319c1666d2f070bf37db76c11f2c1",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/pom.xml",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "4349d38f147cb254a332a54904516a030a4906f1",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/assembly/java9.xml",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "61faeb9e81987015916a334d189bf7b0238cf802",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/impl/ExtendedClassInfo.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b54a9bc33eda081eabb977ac21d02a2891ef7f14",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/jackson/StackTraceElementConstants.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "a1c187bba32843e3cab5bd90e4b277e0ab8c551c",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/pattern/PlainTextRenderer.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "d7983969e64872974b8d75bd68013b974b669d4c",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/pattern/TextRenderer.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "8dbb6320a994df90b0dee16215d9661a803f75b7",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/util/Integers.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "047439d5d3377a074f49810d7c33e818a791100f",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/test/java/org/apache/logging/log4j/core/util/Dummy.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "b2f34d4ab95c96e48cd791dc9735b3e79a288344",
      "old_mode": 33188,
      "old_path": "log4j-core/pom.xml",
      "new_id": "e0c8205f67876e3fc39e6dfffff38122c0bed96b",
      "new_mode": 33188,
      "new_path": "log4j-core/pom.xml"
    },
    {
      "type": "rename",
      "old_id": "6b0a130b274937b741a19b0a1608ebeca90b2a66",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java",
      "new_id": "6b0a130b274937b741a19b0a1608ebeca90b2a66",
      "new_mode": 33188,
      "new_path": "log4j-core/src/main/java9/org/apache/logging/log4j/core/impl/ExtendedStackTraceElement.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "8b5575d70a398ebf974e144abd706235ee24be64",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/jackson/ExtendedStackTraceElementMixIn.java",
      "new_id": "8b5575d70a398ebf974e144abd706235ee24be64",
      "new_mode": 33188,
      "new_path": "log4j-core/src/main/java9/org/apache/logging/log4j/core/jackson/ExtendedStackTraceElementMixIn.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "75b4b4b4afaa15027f23ca27f2b4f41cc5c43f04",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/jackson/Log4jStackTraceElementDeserializer.java",
      "new_id": "75b4b4b4afaa15027f23ca27f2b4f41cc5c43f04",
      "new_mode": 33188,
      "new_path": "log4j-core/src/main/java9/org/apache/logging/log4j/core/jackson/Log4jStackTraceElementDeserializer.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c7cd1eb5c453d539f894d72fc1a00b7f48974534",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/jackson/StackTraceElementMixIn.java",
      "new_id": "c7cd1eb5c453d539f894d72fc1a00b7f48974534",
      "new_mode": 33188,
      "new_path": "log4j-core/src/main/java9/org/apache/logging/log4j/core/jackson/StackTraceElementMixIn.java",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "0380cd7b3edf43a6b324e38b12a3c23a5c1950d6",
      "old_mode": 33188,
      "old_path": "log4j-core-java9/src/main/java/org/apache/logging/log4j/core/util/internal/UnsafeUtil.java",
      "new_id": "0380cd7b3edf43a6b324e38b12a3c23a5c1950d6",
      "new_mode": 33188,
      "new_path": "log4j-core/src/main/java9/org/apache/logging/log4j/core/util/internal/UnsafeUtil.java",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "28c371abefac8c27bd44f43662466b3c9460aa8a",
      "old_mode": 33188,
      "old_path": "log4j-parent/pom.xml",
      "new_id": "846d01dcd1ccf8b103a0f300de9c28b00ce3e245",
      "new_mode": 33188,
      "new_path": "log4j-parent/pom.xml"
    },
    {
      "type": "modify",
      "old_id": "be528c33bb2b597a63a5d72bf934441f4ddf3a77",
      "old_mode": 33188,
      "old_path": "pom.xml",
      "new_id": "49702846ff4ebe92928e5193af7362636a38be40",
      "new_mode": 33188,
      "new_path": "pom.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "87002d32578e06fc95d8def1769f6a7eb83904d9",
      "new_mode": 33188,
      "new_path": "src/changelog/.2.x.x/4260_merge_java9_modules.xml"
    }
  ]
}
