)]}'
{
  "log": [
    {
      "commit": "32974457067fe373571a038adaf6c3560c917b8a",
      "tree": "19d22a7d3b729508a017d6f174b61e5f84275505",
      "parents": [
        "0a01a1fd5a7d0406288b7fdbd698167477b8671e",
        "c397184e178c3df6379634594f9c833debeef367"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Tue Apr 07 22:35:38 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 07 22:35:38 2026 -0400"
      },
      "message": "Merge pull request #194 from ericcaspole/valhalla-jep401\n\nValhalla JEP 401 compatibility, use bare Object instances as semaphore anchors rather than synchronizing on Integers, for better optimization. "
    },
    {
      "commit": "0a01a1fd5a7d0406288b7fdbd698167477b8671e",
      "tree": "71b329a8fab194ba493a1f73bb69bfede3ba9eaa",
      "parents": [
        "7897bbfad910a8dfc98faf27b75e3428ccd1b42f",
        "cfe1b19bbc67854e5163d55ee2590d1b3fdc5d9c"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Sun Apr 05 12:53:32 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 05 12:53:32 2026 -0400"
      },
      "message": "Merge pull request #196 from raboof/configure-system-xmlreader\n\nAdd warning text to address risk of attack against XML parser (which can be mitigated by appropriately configuring the parser being used.)"
    },
    {
      "commit": "7897bbfad910a8dfc98faf27b75e3428ccd1b42f",
      "tree": "b6bfe54cb68cc154d78bbe9e9dcab04c6167f183",
      "parents": [
        "3412c7ae3867474ce4dec01e57b7b2f6b6303834",
        "5138cc25defbd6df4b6e296b4c7e3682cb26af2d"
      ],
      "author": {
        "name": "Mukul Gandhi",
        "email": "gandhi.mukul@gmail.com",
        "time": "Fri Apr 03 13:43:20 2026 +0530"
      },
      "committer": {
        "name": "Mukul Gandhi",
        "email": "gandhi.mukul@gmail.com",
        "time": "Fri Apr 03 13:43:20 2026 +0530"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/apache/xalan-java\n"
    },
    {
      "commit": "3412c7ae3867474ce4dec01e57b7b2f6b6303834",
      "tree": "9a1837fccdabef75d38ffc4f5c54da06efded29b",
      "parents": [
        "6fd607c78ebb07ded14521a8ab460a7f4ba4fc1b"
      ],
      "author": {
        "name": "Mukul Gandhi",
        "email": "gandhi.mukul@gmail.com",
        "time": "Fri Apr 03 13:42:34 2026 +0530"
      },
      "committer": {
        "name": "Mukul Gandhi",
        "email": "gandhi.mukul@gmail.com",
        "time": "Fri Apr 03 13:42:34 2026 +0530"
      },
      "message": "committing modifications to README document, mentioning use of jprofiler tool for jvm run-time analysis and optimization\n"
    },
    {
      "commit": "cfe1b19bbc67854e5163d55ee2590d1b3fdc5d9c",
      "tree": "d6fe3bbba9bd4501d71d01540ee967d53c02e9df",
      "parents": [
        "5138cc25defbd6df4b6e296b4c7e3682cb26af2d"
      ],
      "author": {
        "name": "Arnout Engelen",
        "email": "arnout@bzzt.net",
        "time": "Fri Nov 14 14:26:36 2025 +0100"
      },
      "committer": {
        "name": "Arnout Engelen",
        "email": "arnout@bzzt.net",
        "time": "Tue Mar 24 16:55:54 2026 +0100"
      },
      "message": "Add Xalan Java security documentation\n"
    },
    {
      "commit": "c397184e178c3df6379634594f9c833debeef367",
      "tree": "6f634fd6ca6dc00baca3f6c63c21985674da8f15",
      "parents": [
        "62cde572ed121b53008977d569949c0dab95eb41"
      ],
      "author": {
        "name": "Eric Caspole",
        "email": "eric.caspole@oracle.com",
        "time": "Wed Sep 17 13:05:57 2025 -0400"
      },
      "committer": {
        "name": "Eric Caspole",
        "email": "eric.caspole@oracle.com",
        "time": "Wed Sep 17 13:05:57 2025 -0400"
      },
      "message": "Remove final I added while testing\n"
    },
    {
      "commit": "62cde572ed121b53008977d569949c0dab95eb41",
      "tree": "142e5ff7c891e58f083f757b8c9e95836029ea8e",
      "parents": [
        "5138cc25defbd6df4b6e296b4c7e3682cb26af2d"
      ],
      "author": {
        "name": "Eric Caspole",
        "email": "eric.caspole@oracle.com",
        "time": "Thu Sep 11 16:44:22 2025 -0400"
      },
      "committer": {
        "name": "Eric Caspole",
        "email": "eric.caspole@oracle.com",
        "time": "Thu Sep 11 16:44:22 2025 -0400"
      },
      "message": "Change synch locks from Integer to Object\n"
    },
    {
      "commit": "5138cc25defbd6df4b6e296b4c7e3682cb26af2d",
      "tree": "966766e9f58e18cedd0eaf7ee104c2c755163ca2",
      "parents": [
        "6fd607c78ebb07ded14521a8ab460a7f4ba4fc1b"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Aug 09 16:15:43 2025 -0400"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Aug 09 16:15:43 2025 -0400"
      },
      "message": "Pull a copy of ../xalan-test/** into source distribution.\n"
    },
    {
      "commit": "6fd607c78ebb07ded14521a8ab460a7f4ba4fc1b",
      "tree": "d6dd0604cd955e9fa6c7e7d77a569c43e5dc745f",
      "parents": [
        "c8ddaade0e640383aead7c02a76759155922690e",
        "7debfd2bc9758c1e03c505461e05974c8d82df9a"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Thu Apr 18 11:53:25 2024 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 18 11:53:25 2024 -0400"
      },
      "message": "Merge pull request #186 from jamesnetherton/XALANJ-2664\n\nXALANJ-2664: Determine the parent ClassLoader for ByteArrayClassLoader"
    },
    {
      "commit": "7debfd2bc9758c1e03c505461e05974c8d82df9a",
      "tree": "d6dd0604cd955e9fa6c7e7d77a569c43e5dc745f",
      "parents": [
        "c8ddaade0e640383aead7c02a76759155922690e"
      ],
      "author": {
        "name": "James Netherton",
        "email": "jamesnetherton@gmail.com",
        "time": "Thu Apr 18 11:29:58 2024 +0100"
      },
      "committer": {
        "name": "James Netherton",
        "email": "jamesnetherton@gmail.com",
        "time": "Thu Apr 18 11:29:58 2024 +0100"
      },
      "message": "XALANJ-2664: Determine the parent ClassLoader for ByteArrayClassLoader\n"
    },
    {
      "commit": "c8ddaade0e640383aead7c02a76759155922690e",
      "tree": "90bbd4d9cd022a6633d52ac70d8d7a451f466e35",
      "parents": [
        "8e18f4fbc413db9d2f3fc4618d7ade49b1374731"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Mar 25 23:46:52 2024 -0400"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Mar 25 23:46:52 2024 -0400"
      },
      "message": "Move META-INF/ to resources, so services/ will be picked up correctly.\n"
    },
    {
      "commit": "8e18f4fbc413db9d2f3fc4618d7ade49b1374731",
      "tree": "479adc7e7a73b81b8dd33a163546af8411f4adfb",
      "parents": [
        "5d9e5115f1abb3b1b1f420ff879303051ea5d95e"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Mar 25 17:34:42 2024 -0400"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Mar 25 17:34:42 2024 -0400"
      },
      "message": "Reference standard Apache parent POM. This addresses some of the issues in XALANJ-2650 and XALANJ-2731\n"
    },
    {
      "commit": "5d9e5115f1abb3b1b1f420ff879303051ea5d95e",
      "tree": "d6157186af14ac4bf34ca05cef2c1682fb96be48",
      "parents": [
        "77aa7244a72734f06645a2a412fb23020894d5ad"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sun Mar 24 17:29:29 2024 -0400"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sun Mar 24 17:29:29 2024 -0400"
      },
      "message": "CRLF forcing\n"
    },
    {
      "commit": "77aa7244a72734f06645a2a412fb23020894d5ad",
      "tree": "ab341ec9cfe637fadc734edc376d9047013b544b",
      "parents": [
        "d83b90e588a5f2499e3eccc7cfcc44708f01494f",
        "dfb727767ccbebdb989049de89904521ee981610"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Fri Feb 23 13:13:12 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 23 13:13:12 2024 -0500"
      },
      "message": "Merge pull request #184 from apache/XALANJ-2725\n\nXALANJ-2725: Fix for when UTF16 surrogate pair crosses buffer boundaries"
    },
    {
      "commit": "dfb727767ccbebdb989049de89904521ee981610",
      "tree": "ab341ec9cfe637fadc734edc376d9047013b544b",
      "parents": [
        "ec7f0e25d85192443a9fef2534e7625176fbfa4c"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Feb 21 19:55:04 2024 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Feb 21 19:55:04 2024 -0500"
      },
      "message": "Document the characters()other()characters() issue if first char buffer ended in a high surrogate.\n"
    },
    {
      "commit": "ec7f0e25d85192443a9fef2534e7625176fbfa4c",
      "tree": "9c442fe2110e065fc7e35dc712b0c61612d76470",
      "parents": [
        "856e896e42bc409e730ed5de0c1e5cd416b8bbc7"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Feb 21 14:51:48 2024 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Feb 21 14:51:48 2024 -0500"
      },
      "message": "This one\u0027s working for the test added in 2725. May not be cleanest solution, and I\u0027m not sure whether any of the other surrogate handling needs similar fixes -- I don\u0027t know whether they ever run into the buffer break problem.\n"
    },
    {
      "commit": "856e896e42bc409e730ed5de0c1e5cd416b8bbc7",
      "tree": "d62a99f9679690685966d68cccf2771b70f37269",
      "parents": [
        "162e1f0b4c71669e3c8da8c6d1b7b4ddcdda5789"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Feb 19 17:03:53 2024 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Feb 19 17:03:53 2024 -0500"
      },
      "message": "refactoring\n"
    },
    {
      "commit": "162e1f0b4c71669e3c8da8c6d1b7b4ddcdda5789",
      "tree": "a7322f3ed0ed2fcb0b09dabfceee659e4a002f3e",
      "parents": [
        "d83b90e588a5f2499e3eccc7cfcc44708f01494f"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Feb 02 14:02:15 2024 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Feb 02 14:02:15 2024 -0500"
      },
      "message": "just documentation/parameter names\n"
    },
    {
      "commit": "d83b90e588a5f2499e3eccc7cfcc44708f01494f",
      "tree": "c32827edd12f8102f37bf48672f78d32e79f03dc",
      "parents": [
        "289dd5f667efc829f855007dc876913008b68cd4",
        "1aad64ae6f196b34a36e4971b50ff730c9b95d9c"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Sat Jan 27 10:40:01 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jan 27 10:40:01 2024 -0500"
      },
      "message": "Merge pull request #168 from apache/XALANJ-2618\n\nImproved encoding lookup"
    },
    {
      "commit": "1aad64ae6f196b34a36e4971b50ff730c9b95d9c",
      "tree": "c32827edd12f8102f37bf48672f78d32e79f03dc",
      "parents": [
        "289dd5f667efc829f855007dc876913008b68cd4"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Jan 26 12:42:28 2024 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Jan 26 12:42:28 2024 -0500"
      },
      "message": "Remove sensitivity to encoding hashtable ordering by accepting only the first mapping seen for each key. Relies on encodings.properties putting the preferred java name first (equivalent to its current rule that when multipel mime names are given, the first is preferred).\n"
    },
    {
      "commit": "289dd5f667efc829f855007dc876913008b68cd4",
      "tree": "1734622e3e0685a1da6ae0e3e13d7df160481325",
      "parents": [
        "3e49f1d77bf0dc994c287336985ec07f2485f248",
        "9e67d121c547dc82157b7852fd7b23eb9f260071"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Tue Jan 23 16:31:19 2024 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 23 16:31:19 2024 -0500"
      },
      "message": "Merge pull request #163 from apache/XALANJ-2419\n\nXALANJ-2419: Erroneous serialization of astral characters"
    },
    {
      "commit": "9e67d121c547dc82157b7852fd7b23eb9f260071",
      "tree": "1734622e3e0685a1da6ae0e3e13d7df160481325",
      "parents": [
        "3e49f1d77bf0dc994c287336985ec07f2485f248"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Jan 22 17:35:16 2024 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Jan 22 17:35:16 2024 -0500"
      },
      "message": "XALANJ-2419\n"
    },
    {
      "commit": "3e49f1d77bf0dc994c287336985ec07f2485f248",
      "tree": "6c888159c7db75213e9fbb50b41b01e4d288f93b",
      "parents": [
        "353a329730eea135fe6f7a1669616f2efe12cd8a"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Jan 11 17:47:58 2024 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Jan 11 17:47:58 2024 -0500"
      },
      "message": "Fix README build doc to reflect revised calan-test dependency handling.\n"
    },
    {
      "commit": "353a329730eea135fe6f7a1669616f2efe12cd8a",
      "tree": "39d866ceb2a238d5dce2b5325cdb338c977e6845",
      "parents": [
        "52a74b6d7faddce5539f9e6a6484be9bf5c7bae3",
        "0a5001614b9e62a5d06a4336b87a37c9310baed7"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Sun Dec 31 09:49:38 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Dec 31 09:49:38 2023 -0500"
      },
      "message": "Merge pull request #110 from apache/xalan-java-mvn-refactored\n\nMaven migration, refactored, plus maven build changes since then."
    },
    {
      "commit": "0a5001614b9e62a5d06a4336b87a37c9310baed7",
      "tree": "39d866ceb2a238d5dce2b5325cdb338c977e6845",
      "parents": [
        "fed7bf2f54a0b4e5794c3452c70400c7057063bd"
      ],
      "author": {
        "name": "Mukul Gandhi",
        "email": "gandhi.mukul@gmail.com",
        "time": "Sun Dec 31 18:27:56 2023 +0530"
      },
      "committer": {
        "name": "Mukul Gandhi",
        "email": "gandhi.mukul@gmail.com",
        "time": "Sun Dec 31 18:27:56 2023 +0530"
      },
      "message": "minor improvements to few of the text of xalanj NOTICE.txt file\n"
    },
    {
      "commit": "fed7bf2f54a0b4e5794c3452c70400c7057063bd",
      "tree": "babfe75ca805085f5e710d86ce972f10109d4c7c",
      "parents": [
        "5ff2f4f6637b03dfc79e2cab53da9c300928663d",
        "52a74b6d7faddce5539f9e6a6484be9bf5c7bae3"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Dec 30 20:19:24 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Dec 30 20:19:24 2023 -0500"
      },
      "message": "Merged from/reconciled with master\n"
    },
    {
      "commit": "5ff2f4f6637b03dfc79e2cab53da9c300928663d",
      "tree": "5f77aa716f1efff994176f038edd08f281500414",
      "parents": [
        "367c991ee03c043be21d1c6ee64d2a01d1b17fbd"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 17:28:26 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 17:28:26 2023 -0500"
      },
      "message": "Improvements to src distribution. NOTE: We aren\u0027t bundling xalan-test yet. Should we?\n"
    },
    {
      "commit": "367c991ee03c043be21d1c6ee64d2a01d1b17fbd",
      "tree": "7572672b40c17176ca276a2475d4bda4e04e47e3",
      "parents": [
        "7c7ce2b988baf70340484cd43b8fd0445881b16f"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 14:21:50 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 14:21:50 2023 -0500"
      },
      "message": "Typo\n"
    },
    {
      "commit": "7c7ce2b988baf70340484cd43b8fd0445881b16f",
      "tree": "5da13740d115afd79332022bc753d40af81d49d8",
      "parents": [
        "b732943f50197c320f42b6b7e1f0e4ba66f4a85d"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 13:44:52 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 13:44:52 2023 -0500"
      },
      "message": "Bin distro looks acceptable though not ideal. Dependencies are being replicated inside the /samples/ directory, and the sample javadocs are now included in /docs/apidocs/. There\u0027s some other cruft (most of /docs/images/, /docs/xsltc/ design) which should be rewritten or discarded at some point. NOTE: We still need to update the docs (site and local) to reflect the Maven build, and its description of test is badly outdated.\n"
    },
    {
      "commit": "b732943f50197c320f42b6b7e1f0e4ba66f4a85d",
      "tree": "ce4b272f3e6416709f0e3a26dff6a21e49614431",
      "parents": [
        "290d9ba9d3012ae0cc8b94db908fa12d61997a2b"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 00:21:52 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 29 00:21:52 2023 -0500"
      },
      "message": "Go back to calling the top level xalan-j -- slightly clearer, slightly easier to diff against ant builds.\n"
    },
    {
      "commit": "290d9ba9d3012ae0cc8b94db908fa12d61997a2b",
      "tree": "98f53c255635bc8240a541300def426ba7703518",
      "parents": [
        "78dfb605405a2ebc97508e3653fac9290a047baa"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Dec 28 22:10:57 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Dec 28 22:10:57 2023 -0500"
      },
      "message": "Improving distro contents.\n"
    },
    {
      "commit": "78dfb605405a2ebc97508e3653fac9290a047baa",
      "tree": "cc24b77350b6e8452267101458327bf21d98579b",
      "parents": [
        "3ea41409e8f3d49bfcb900be4dda0018489cf411"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Dec 28 21:09:05 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Dec 28 21:09:05 2023 -0500"
      },
      "message": "Make sure the .war file, and all the sample .jars, get into the bin distro\n"
    },
    {
      "commit": "3ea41409e8f3d49bfcb900be4dda0018489cf411",
      "tree": "d45e2de0f0324e8ec3c7a1adecc1e506eabefcb5",
      "parents": [
        "07ae04fe6a5f3594bb8240d7e727e2483274d921"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Dec 28 14:59:46 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Thu Dec 28 14:59:46 2023 -0500"
      },
      "message": "Update mailing list instructions for @xalan.apache.org rather than the old @xml.apache.org.\n"
    },
    {
      "commit": "07ae04fe6a5f3594bb8240d7e727e2483274d921",
      "tree": "0e9a4fc5e9543d377daf43a58a005423b3d36a79",
      "parents": [
        "854a0feb5e223fbf3a4765bea60a39c687c0cbd2"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 22:13:18 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 22:13:18 2023 -0500"
      },
      "message": "Still dithering about packaging of samples\n"
    },
    {
      "commit": "854a0feb5e223fbf3a4765bea60a39c687c0cbd2",
      "tree": "df53e01f4b491ad086b82890528e75888584dc8c",
      "parents": [
        "259a56b66239f462e03006467c12cde90afbbed7"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 22:09:07 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 22:09:07 2023 -0500"
      },
      "message": "Remove emacs temp files\n"
    },
    {
      "commit": "259a56b66239f462e03006467c12cde90afbbed7",
      "tree": "1bbb17857edbd3e8c247618980d86c62fe423b2c",
      "parents": [
        "ba276f32a93620875cac3db8b0a4add585c1fc28"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 22:08:12 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 22:08:12 2023 -0500"
      },
      "message": "Simplifying-changes-in-this-merge\n"
    },
    {
      "commit": "ba276f32a93620875cac3db8b0a4add585c1fc28",
      "tree": "7911ce0c44376be3d57a2bafbe26151cbcee7932",
      "parents": [
        "1c625a967d555db0f62c65c9f96e0858cbcec3d2"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 21:59:23 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 21:59:23 2023 -0500"
      },
      "message": "Getting myself tangled. Roll back a moment.\n\nThis reverts commit 1c625a967d555db0f62c65c9f96e0858cbcec3d2.\n"
    },
    {
      "commit": "1c625a967d555db0f62c65c9f96e0858cbcec3d2",
      "tree": "e26fe91747dad68fb5188139d3512fd9c745ecee",
      "parents": [
        "5e3e0b2b61f27ec460906675754ce25da0e35249"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 21:11:26 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 21:11:26 2023 -0500"
      },
      "message": "Simplify changeset.\n"
    },
    {
      "commit": "5e3e0b2b61f27ec460906675754ce25da0e35249",
      "tree": "7911ce0c44376be3d57a2bafbe26151cbcee7932",
      "parents": [
        "a07d25c4cde5b957a3b02cca26e35015c678dad7"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 17:10:05 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 17:10:05 2023 -0500"
      },
      "message": "Reorg samples. Need to do final 1:1 comparison of jarfiles with Ant output, just to make sure I haven\u0027t missed anything around the edges.\n"
    },
    {
      "commit": "a07d25c4cde5b957a3b02cca26e35015c678dad7",
      "tree": "ad36316e03da5cc074b78fa5a5e7f34ea0196b05",
      "parents": [
        "0b3ee9093cdb9fd4e99e183d1cc70fe31ccf9295"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 16:30:18 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 16:30:18 2023 -0500"
      },
      "message": "Reorg samples to follow Ant structure. Clarity for this commit.\n"
    },
    {
      "commit": "0b3ee9093cdb9fd4e99e183d1cc70fe31ccf9295",
      "tree": "1744f6732346c7d8e4ca875fa630894bf7ae4b93",
      "parents": [
        "878251302602438d36be9ff47cca0f225d5c852e"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 13:31:50 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 13:31:50 2023 -0500"
      },
      "message": "Reorganizing some samples back out into their own jarfiles, now that I have a better sense of how Maven behaves. Still need to sanity-check contents thereof.\n"
    },
    {
      "commit": "878251302602438d36be9ff47cca0f225d5c852e",
      "tree": "50bae17415e020e19dcbad073ece04f429f5d36d",
      "parents": [
        "e942e7644d37c3e01ef0d4ae40193afe4d7b3450"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 12:08:59 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 12:08:59 2023 -0500"
      },
      "message": "Refactor xalanservlet back into its own jarfile.\n"
    },
    {
      "commit": "e942e7644d37c3e01ef0d4ae40193afe4d7b3450",
      "tree": "2d5007ae9c260c992a0b5fdf65ae1f810c42e320",
      "parents": [
        "7c1c24ac5efbf531bd554920a11423586b08f345"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 02:45:12 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Dec 27 02:45:12 2023 -0500"
      },
      "message": "Move xalanservlet example out into its own module, so we can generate its .war. Some file updates required to reflect properly scoped java project. Some indentation rationalized.\n"
    },
    {
      "commit": "7c1c24ac5efbf531bd554920a11423586b08f345",
      "tree": "9f40e57719d36b7791a21ed28b79b82f640a330f",
      "parents": [
        "199f034c1ec2cd925c1089aac719ef0f8abbc8f3"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 20:44:56 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 20:44:56 2023 -0500"
      },
      "message": "Put some sample-related HTML files where they used to be. This may be unnecessary; I\u0027m being paranoid.\n"
    },
    {
      "commit": "199f034c1ec2cd925c1089aac719ef0f8abbc8f3",
      "tree": "286115979926b824cfad834ef56b79b5cc8e269b",
      "parents": [
        "cadfea3adf20e2b93bf4409a9786bb7ee19088b5"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 12:38:37 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 12:38:37 2023 -0500"
      },
      "message": "Put xercesImpl and xml-apis into the tarball. There is probably a better way to do this.\n"
    },
    {
      "commit": "cadfea3adf20e2b93bf4409a9786bb7ee19088b5",
      "tree": "02a1aecbe7cd5377cc02b5d60f19766e6bfa65db",
      "parents": [
        "8c249becf0895a688df7314247f9f5996065ac1d"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 12:02:28 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 12:02:28 2023 -0500"
      },
      "message": "comments\n"
    },
    {
      "commit": "8c249becf0895a688df7314247f9f5996065ac1d",
      "tree": "51e06cbcd3438bb2c2e72f63054bc7fabf8286e2",
      "parents": [
        "9c802756f30d2642ed7850dcd6c1c2846213f58e"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 11:56:38 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Dec 25 11:56:38 2023 -0500"
      },
      "message": "samples should include their (generated) readme.html\n"
    },
    {
      "commit": "9c802756f30d2642ed7850dcd6c1c2846213f58e",
      "tree": "bf48cd94670d484186bf15b17b26a99d7d9c6887",
      "parents": [
        "7ff4a17473657a66dbcb5acfd51cc5f0c55944a6"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sun Dec 24 20:04:32 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sun Dec 24 20:04:32 2023 -0500"
      },
      "message": "Make sure LICENSE and NOTICE get included in binary distro archive.\n"
    },
    {
      "commit": "7ff4a17473657a66dbcb5acfd51cc5f0c55944a6",
      "tree": "6d8d1d81d08cb81df444e5caab383c9708ebeb74",
      "parents": [
        "0057e8631421b251a0f6c528e0f6250e9df4e932"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sun Dec 24 17:43:49 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sun Dec 24 17:43:49 2023 -0500"
      },
      "message": "Revert \"Legacy doclet as pseudo-module.\"\nAfter testing, I\u0027m not seeing any difference in output.\nCould have sworn I did. Sigh.\n\nThis reverts commit 0057e8631421b251a0f6c528e0f6250e9df4e932.\n"
    },
    {
      "commit": "0057e8631421b251a0f6c528e0f6250e9df4e932",
      "tree": "52f825d493bb6b90e6598796f0a9c02c43becbe4",
      "parents": [
        "3a6293c5bdad3541565da98430659519bb998c0e"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Dec 23 21:25:35 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Dec 23 21:25:35 2023 -0500"
      },
      "message": "Legacy doclet as pseudo-module. Code is provided as a prebuilt jarfile in the legacy_blob directory. The decompiled source WILL NOT BUILD with modern APIs and xalan-project doesn\u0027t attempt to run build on it... but the jarfile seems to mostly run anyway; I get synthesized pages with appropriate content. Note that this may want to be copied up to xalan-java/lib during the provide-dependencies-to-xalan-test\u0027s-ant-build export phase, since I think xalan-test also tries to use it.\n"
    },
    {
      "commit": "3a6293c5bdad3541565da98430659519bb998c0e",
      "tree": "6d8d1d81d08cb81df444e5caab383c9708ebeb74",
      "parents": [
        "cc74252bcd12fdc2149fd0486cefdcedbccc55c0"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Dec 23 19:10:36 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Sat Dec 23 19:10:36 2023 -0500"
      },
      "message": "Shade java_cup-runtime. Arguably we should instead make it another external dependency, but ant build didn\u0027t so for now just rename to avoid collision with user instances.\n"
    },
    {
      "commit": "cc74252bcd12fdc2149fd0486cefdcedbccc55c0",
      "tree": "31bf9a8dd6844f2e7bac12eb1d8bc1d970a7552c",
      "parents": [
        "1bad7c22048ab131bb36c1ee5731f66c9e488d57"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 22:32:15 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 22:32:15 2023 -0500"
      },
      "message": "No separate endorsed/ dir, most jarfiles have explicit versions in their filename.\n"
    },
    {
      "commit": "1bad7c22048ab131bb36c1ee5731f66c9e488d57",
      "tree": "0e0fc905a928a44e58cd3bf46603c9456fba23d4",
      "parents": [
        "841db7144982f9341d428d853472a5203c718c96"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 22:08:41 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 22:08:41 2023 -0500"
      },
      "message": "Right. CL paths too. Sloppy of me.\n"
    },
    {
      "commit": "841db7144982f9341d428d853472a5203c718c96",
      "tree": "bbc1787aa0e1bba825d48355c1673002a3277245",
      "parents": [
        "bdcc3282dfed2a924c6789bf8ab0c60ff0001969"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 22:01:25 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 22:01:25 2023 -0500"
      },
      "message": "Error with no message?\n"
    },
    {
      "commit": "bdcc3282dfed2a924c6789bf8ab0c60ff0001969",
      "tree": "67f74834cc36abf9ee6a041b11a0dc2895097f5a",
      "parents": [
        "587eaaa30c7fb27355da6f7d772db17da5fa5c54"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 21:16:58 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Fri Dec 22 21:16:58 2023 -0500"
      },
      "message": "Quick first-pass adaptation to xalan-java mvn build\n"
    },
    {
      "commit": "587eaaa30c7fb27355da6f7d772db17da5fa5c54",
      "tree": "3bcb72c66d1e480b291a5775a34f5e97c0b95dc6",
      "parents": [
        "b9a76e8e23161828f29dbd3b66a979dcb30e5fa4",
        "6c4ed3a0f53576c9b3665f8cf4a3887d20104e7b"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Tue Dec 19 21:59:33 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 19 21:59:33 2023 -0500"
      },
      "message": "Merge pull request #138 from kriegaex/create-javadoc-and-source-jars\n\nCreate javadoc and source JARs for publication to Maven Central"
    },
    {
      "commit": "b9a76e8e23161828f29dbd3b66a979dcb30e5fa4",
      "tree": "8e0044a4df698b5c843f12d3785d4b7fc7cf575e",
      "parents": [
        "0423639684e174fab48674b5ce667b51b400bc5f",
        "af4d73cefd4642dad393e1f1b91ebf3a566a0acc"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Tue Dec 19 21:48:40 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 19 21:48:40 2023 -0500"
      },
      "message": "Merge pull request #142 from kriegaex/copy-taglet-jars-to-build-dir\n\nCopy taglet artifacts to build dir for xalan-test"
    },
    {
      "commit": "af4d73cefd4642dad393e1f1b91ebf3a566a0acc",
      "tree": "8e0044a4df698b5c843f12d3785d4b7fc7cf575e",
      "parents": [
        "0423639684e174fab48674b5ce667b51b400bc5f"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Dec 20 09:45:32 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Dec 20 09:46:48 2023 +0700"
      },
      "message": "Copy taglet artifacts to build dir for xalan-test\n\nThat should make it easier for the tests running in a separate Ant\nproject to predict where to find the respective JDK 8 or 9+ taglet JARs.\n"
    },
    {
      "commit": "0423639684e174fab48674b5ce667b51b400bc5f",
      "tree": "0f54b0bcd05dcafcbec0dd4a90a751b8e339264c",
      "parents": [
        "62b7412b7d54ffcb09dc3ab5f3f10cf7229d4649",
        "16c6650dd42782ac2479dc76d0eaba30dd12a5fd"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Tue Dec 19 21:42:56 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 19 21:42:56 2023 -0500"
      },
      "message": "Merge pull request #141 from kriegaex/fix-line-breaks-crlf-vs-lf\n\nConvert text files with CRLF endings to LF to fix Git warnings"
    },
    {
      "commit": "16c6650dd42782ac2479dc76d0eaba30dd12a5fd",
      "tree": "0f54b0bcd05dcafcbec0dd4a90a751b8e339264c",
      "parents": [
        "62b7412b7d54ffcb09dc3ab5f3f10cf7229d4649"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Dec 20 09:06:05 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Dec 20 09:06:05 2023 +0700"
      },
      "message": "Convert text files with CRLF endings to LF to fix Git warnings\n\nAfter introduction of .gitattributes, I started getting warnings.\n"
    },
    {
      "commit": "62b7412b7d54ffcb09dc3ab5f3f10cf7229d4649",
      "tree": "18e159289bfc91261c0c56ff27d4e198941c4033",
      "parents": [
        "9d0fd070e88474a96713b1c74bdfefcf89e04674",
        "a9ab201c6d5487ded6495fd245caf326ed61a889"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Tue Dec 19 16:40:53 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 19 16:40:53 2023 -0500"
      },
      "message": "Merge pull request #137 from kriegaex/test-isolation\n\nRun version unit tests in isolation and assert on error logs"
    },
    {
      "commit": "6c4ed3a0f53576c9b3665f8cf4a3887d20104e7b",
      "tree": "57a596e5416aa98e047de7086ba7060059ad9d9b",
      "parents": [
        "2eb1377bb5193be59853602c646da77d9fb12729"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Mon Dec 04 09:22:39 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Mon Dec 04 09:22:39 2023 +0700"
      },
      "message": "Add source JAR generation to modules xalan, serializer, samples\n\nThese modules are candidates for publication on Maven Central (MC) and\ntherefore need source JARs by default when deploying from Maven. The\nfact that previous releases did not include sources on MC, because\nprobably they were deployed manually, does not mean that we should keep\nit this way and point to the distro archives for sources. Users should\nbe able to fetch them directly from MC and use them in their IDEs\nseamlessly.\n\nSource generation is wrapped in profile \u0027create-sources\u0027 and can be\nskipped by deactivating the profile for quicker development builds.\n"
    },
    {
      "commit": "2eb1377bb5193be59853602c646da77d9fb12729",
      "tree": "02c2f04ee609795cab546721cad681949d0b61e3",
      "parents": [
        "9d0fd070e88474a96713b1c74bdfefcf89e04674"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Mon Dec 04 09:19:22 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Mon Dec 04 09:21:04 2023 +0700"
      },
      "message": "Add javadoc JAR generation to modules xalan, serializer, samples\n\nThese modules are candidates for publication on Maven Central (MC) and\ntherefore need javadoc JARs by default when deploying from Maven. The\nfact that previous releases did not include javadocs on MC, because\nprobably they were deployed manually, does not mean that we should keep\nit this way and point to the distro archives for javadocs. Users should\nbe able to fetch them directly from MC and use them in their IDEs\nseamlessly.\n\nJavadoc generation is wrapped in profile \u0027create-javadocs\u0027 and can be\nskipped by deactivating the profile for quicker development builds.\n"
    },
    {
      "commit": "a9ab201c6d5487ded6495fd245caf326ed61a889",
      "tree": "18e159289bfc91261c0c56ff27d4e198941c4033",
      "parents": [
        "9d0fd070e88474a96713b1c74bdfefcf89e04674"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Sun Dec 03 13:34:47 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Sun Dec 03 22:15:11 2023 +0700"
      },
      "message": "Run version unit tests in isolation and assert on error logs\n\nUse JUnit Jupiter\u0027s @Isolated, because redirecting System.err is not\nthread-safe. If we have no logging framework with per-class log levels\nand the option to use in-memory loggers in place, the only way we can\nsilence the test from logging stack traces and warnings to System.err is\nto redirect it to an in-memory stream and assert on its contents for\nverification.\n\nI do not like this solution, but for the time being it is viable, albeit\nsuboptimal.\n"
    },
    {
      "commit": "9d0fd070e88474a96713b1c74bdfefcf89e04674",
      "tree": "60f7224972c7e72fe857aee9e74ff16068856b59",
      "parents": [
        "39cd970d895849323670123be985183f8005393f",
        "aff6501160cbde5685d0272b08f2cc7c86e76ed3"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Sat Dec 02 17:14:19 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Dec 02 17:14:19 2023 -0500"
      },
      "message": "Merge pull request #133 from kriegaex/test-automation\n\nAdd unit and integration testing infrastructure and initial tests for version classes"
    },
    {
      "commit": "aff6501160cbde5685d0272b08f2cc7c86e76ed3",
      "tree": "60f7224972c7e72fe857aee9e74ff16068856b59",
      "parents": [
        "15b43b6fa1a1c23d10cebcd542ad366318c76c2f"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 10:27:42 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 10:27:42 2023 +0700"
      },
      "message": "Add POM property \u0027maven-shade-plugin.version\u0027, manage plugin version\n\n- Declare plugin in \u0027pluginManagement\u0027 section of parent POM\n- Extract version as a property, which can then be used in both the\n  build POMs and the IT POMs\n- Bump from 3.5.0 to 3.5.1\n"
    },
    {
      "commit": "15b43b6fa1a1c23d10cebcd542ad366318c76c2f",
      "tree": "47a83c5f599d7970043d01078b6fb2de31138a21",
      "parents": [
        "40e981e8ca6eaf1da303e5d4e612da4b6d88b5ce"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 07:57:53 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:09 2023 +0700"
      },
      "message": "CI build: Make sure to run integration tests\n\nWe need phase \u0027verify\u0027, which is after \u0027package\u0027\n"
    },
    {
      "commit": "40e981e8ca6eaf1da303e5d4e612da4b6d88b5ce",
      "tree": "63e88dbc32f7915175ebf909ac4145c150a42bfb",
      "parents": [
        "61253730675d1be73f86b63db727d5c9773953ce"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 07:50:45 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:09 2023 +0700"
      },
      "message": "Silence JDK 21+ warning about dynamically attached agents (Mockito)\n\nJDK 21 starts warning about dynamic agent attachment by Mockito, if not\npresent, but the option is also accepted by JDK 9+.\n"
    },
    {
      "commit": "61253730675d1be73f86b63db727d5c9773953ce",
      "tree": "fc5008640a302dff5fc77322d7f245c2220f1ad2",
      "parents": [
        "f70708560110a1adad6088e3690bb38fc5cb6a27"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 07:49:42 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:09 2023 +0700"
      },
      "message": "Downgrade to Mockito 4.x to retain JDK 8 build for now\n\nThis also requires switching from mockito-core to mockito-inline for\nmocking static methods.\n\nTODO: Upgrade to 5.x after dropping requirement to build on JDK 8.\n"
    },
    {
      "commit": "f70708560110a1adad6088e3690bb38fc5cb6a27",
      "tree": "1ff56acca925852faef71e405a89e51d3dd8c5ab",
      "parents": [
        "5bee6932d23457188230e475a6df8ec9cf60a010"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 07:45:10 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Extract Mockito and Jupiter versions into properties, DRY\n"
    },
    {
      "commit": "5bee6932d23457188230e475a6df8ec9cf60a010",
      "tree": "90d592cc64a0d5338d816e7e58a9f73733049b92",
      "parents": [
        "ba938e7bee4d00c280c9b0b1ca24cbc47fec86ed"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Nov 29 22:32:27 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Add 3 integration tests (ITs) for version classes\n\nThe scenarios tested are:\n\n1. Verify that version numbers work correctly, if the corresponding\n   Xalan modules are on the regular class path.\n2. Verify that version numbers work correctly, if the corresponding\n   Xalan modules are on the bootstrap class path.\n3. Verify that version numbers work correctly, if the corresponding\n   Xalan modules are relocated to different package names inside a\n   shaded JAR and on the bootstrap class path.\n"
    },
    {
      "commit": "ba938e7bee4d00c280c9b0b1ca24cbc47fec86ed",
      "tree": "4350377a291a6d680d9a274eed181e22394e9f4c",
      "parents": [
        "5e7e24cb4bee9c369db65dd0e49d94ab3257db63"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Nov 29 22:28:30 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Add Maven Invoker integration testing (IT) infrastructure\n\nThere is a separate module \u0027integration-tests\u0027 now, which is activated\nby the identically named Maven profile. By default, ITs are active, but\ncan be deactivated by \u0027-P !integration-tests\u0027, if you need a faster\nbuild.\n"
    },
    {
      "commit": "5e7e24cb4bee9c369db65dd0e49d94ab3257db63",
      "tree": "a80169ae2cc9af7b3057da91cd4d176fe7b043e1",
      "parents": [
        "afa0bdbea5fd6e3f2008f7fe0f323eea5798c981"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Nov 29 22:16:01 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Fix little typo in POM profile activation rule\n"
    },
    {
      "commit": "afa0bdbea5fd6e3f2008f7fe0f323eea5798c981",
      "tree": "a5b7b85693642ef4cd9a0ba61e3d09448e74a45b",
      "parents": [
        "3e997d5857d5e35f78a74468c079f03965a101d6"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Nov 29 11:14:45 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Add unit tests for version classes\n\nThis includes adding Maven test infrastructure such as\n  - Maven Surefire Plugin,\n  - JUnit 5 Jupiter,\n  - Mockito.\n\nThe plugins and test dependencies are only version-managed in the parent\nPOM and to be added to each module requiring them. Working the Maven\nWay, we want to avoid adding plugins and dependencies on top level, if\nthey are not needed everywhere.\n\nThere are three test classes, mirroring the version classes under test.\nThe tests showcase\n  - basic unit testing,\n  - JUnit Jupiter parametrised tests (incl. human-readable test names),\n  - using Mockito to mock static methods.\n"
    },
    {
      "commit": "3e997d5857d5e35f78a74468c079f03965a101d6",
      "tree": "3b90f78e6e405c8132a57df9b37888be39627682",
      "parents": [
        "3f9c41ced3cfa7d1e9341ed84fd16b3a4b5fd4aa"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Nov 29 11:08:35 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Refactor version classes for better testability\n\nFor now still retaining static methods and code duplication between\nmodules \u0027xalan\u0027 and \u0027serializer\u0027, at least make the code more easily\ntestable.\n"
    },
    {
      "commit": "3f9c41ced3cfa7d1e9341ed84fd16b3a4b5fd4aa",
      "tree": "830f77c172e2aa280f049535ef58c24689d2b65c",
      "parents": [
        "b21903433673aa1e05c56c383d0a696eac84a944"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Nov 29 10:57:33 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Remove unused JUnit 4 dependency from \u0027samples\u0027\n"
    },
    {
      "commit": "b21903433673aa1e05c56c383d0a696eac84a944",
      "tree": "1324e8d1edf92114e77d3ffb155df0141e87654c",
      "parents": [
        "39cd970d895849323670123be985183f8005393f"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Wed Nov 29 07:14:30 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Fri Dec 01 07:46:08 2023 +0700"
      },
      "message": "Improve main .gitignore file, remove subfolder ones\n"
    },
    {
      "commit": "39cd970d895849323670123be985183f8005393f",
      "tree": "dc237a568aab0ed93fb5c391546c543ffd26be08",
      "parents": [
        "dddd36d8fb7815042044a8dfbd31ceda8c3b6ebd",
        "ca998e8c3c4b70d3af74f62c67087a6571409ed2"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Thu Nov 30 15:34:09 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 30 15:34:09 2023 -0500"
      },
      "message": "Merge pull request #135 from kriegaex/delete-doclet-taglet-binaries\n\nAt some point I want to look at what this used to do. But it\u0027s perfectly possible we were carrying it around just because it was distributed with the taglet. I agree with dropping it for now."
    },
    {
      "commit": "dddd36d8fb7815042044a8dfbd31ceda8c3b6ebd",
      "tree": "8165c95683b03225d67984a782d24d4f5735b4d3",
      "parents": [
        "77f8040f63ca7732c1e7f4cd897cb1781890f581",
        "d8743ae4155d9c517ffde7de7f8c4ae341835e86"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Thu Nov 30 01:22:07 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 30 01:22:07 2023 -0500"
      },
      "message": "Merge pull request #132 from kriegaex/maven-profiles\n\n[XALANJ-2708] Move docs and distros generation into own profiles"
    },
    {
      "commit": "ca998e8c3c4b70d3af74f62c67087a6571409ed2",
      "tree": "104aee35bc33622bc4c30650631d068eca1cf1c0",
      "parents": [
        "f794018fc5383153848b2853c640019f89a1ce44"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 13:11:52 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 13:11:52 2023 +0700"
      },
      "message": "Delete xalan2jdoc.jar\n\nRunning javadoc generation with or without it on the stylebook classpath\nhad absolutely no effect. Comparing javadocs with and without it\nrevealed that both directory trees were binary identical.\n\nActually, on JDK 8 the JAR cannot have been working correctly anyway,\nbecause the JAR file contained Java 1.1 class files (major 45), which is\nOK. But it also uses several classes which are no longer available in\nJDK 8, i.e. the code cannot have been working there. For example, one\nclass imported was\n  com.sun.tools.doclets.IndexBuilder,\nwhich a web search found in JDKs 1.2 and 1.3. In 1.8, there is\n  com.sun.tools.doclets.internal.toolkit.util.IndexBuilder,\nwhich might serve a similar purpose, but neither is public API nor the\nclass referenced by the doclet code. I really think, this is just cruft\nthat can go away.\n"
    },
    {
      "commit": "77f8040f63ca7732c1e7f4cd897cb1781890f581",
      "tree": "8b5c2e74c59198ee742244598546a7d70db79e12",
      "parents": [
        "9ca304c39b837f5ef4228d3df540722d10d6fb3e",
        "f794018fc5383153848b2853c640019f89a1ce44"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Thu Nov 30 00:26:07 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Nov 30 00:26:07 2023 -0500"
      },
      "message": "Merge pull request #134 from kriegaex/delete-doclet-taglet-binaries\n\nDelete superfluous doclet and taglet JARs"
    },
    {
      "commit": "f794018fc5383153848b2853c640019f89a1ce44",
      "tree": "8b5c2e74c59198ee742244598546a7d70db79e12",
      "parents": [
        "9ca304c39b837f5ef4228d3df540722d10d6fb3e"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 12:18:49 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Thu Nov 30 12:19:10 2023 +0700"
      },
      "message": "Delete superfluous doclet and taglet JARs\n"
    },
    {
      "commit": "9ca304c39b837f5ef4228d3df540722d10d6fb3e",
      "tree": "97b401780b2762fbac1d7182e0b0af88f2b800b7",
      "parents": [
        "db767671cef87dd6bfa7987505061ca577354858"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Nov 29 19:21:33 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Wed Nov 29 19:21:33 2023 -0500"
      },
      "message": "Revert to Xander\u0027s execution order for mvnbuild sequence. My misunderstanding; changing the order of these does *not* change the distribution zipfile results.\n\nThis reverts commit db767671cef87dd6bfa7987505061ca577354858.\n"
    },
    {
      "commit": "d8743ae4155d9c517ffde7de7f8c4ae341835e86",
      "tree": "b9be5a0b5d3bc36558f2ca6a068fe687a9c5b63b",
      "parents": [
        "db767671cef87dd6bfa7987505061ca577354858"
      ],
      "author": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Tue Nov 28 11:18:19 2023 +0700"
      },
      "committer": {
        "name": "Alexander Kriegisch",
        "email": "Alexander@Kriegisch.name",
        "time": "Tue Nov 28 11:44:04 2023 +0700"
      },
      "message": "XALANJ-2708 Move docs and distros generation into own profiles\n\nThe new profiles\n  - \u0027create-docs\u0027 for Stylebook docs and\n  - \u0027create-distros\u0027 for source and binary assemblies\nare both active by default, but can be deactivated on the Maven command\nline or from an IDE to achieve faster development builds, e.g. if in the\nfuture a developer just wants to change some source code, compile and\ntest it. He does not need any documentation or distros for that, so he\ncan just build with something like:\n\n  mvn [goal|phase] -P !create-docs,!create-distros\n\nRelates to https://issues.apache.org/jira/browse/XALANJ-2708.\n"
    },
    {
      "commit": "db767671cef87dd6bfa7987505061ca577354858",
      "tree": "a3ccc1095ecc40f27978c4633bdc9bb96ff5c361",
      "parents": [
        "0544529a14a8d5b503e72f77555341dd71fbc861"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 14:12:47 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 14:12:47 2023 -0500"
      },
      "message": "AFAIK, we haven\u0027t resolved the need for site to run before package if we want docs included in the .bin.zip/.bin.tar.gz files. Reverting that change pending discussion of best solution.\n"
    },
    {
      "commit": "0544529a14a8d5b503e72f77555341dd71fbc861",
      "tree": "97b401780b2762fbac1d7182e0b0af88f2b800b7",
      "parents": [
        "4dd57b2c399c15bf34c97cc26881fa94805bad76",
        "49f1b55e6524bb8dde34efc8eb360d99b72eddc3"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Mon Nov 27 14:10:10 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 27 14:10:10 2023 -0500"
      },
      "message": "Merge pull request #130 from kriegaex/create-lib-directory\n\nCreate and populate lib directory"
    },
    {
      "commit": "49f1b55e6524bb8dde34efc8eb360d99b72eddc3",
      "tree": "97b401780b2762fbac1d7182e0b0af88f2b800b7",
      "parents": [
        "3500222b7e394c35326e8b49f08bae983303eb39",
        "4dd57b2c399c15bf34c97cc26881fa94805bad76"
      ],
      "author": {
        "name": "Joe Kesselman",
        "email": "131899227+jkesselm@users.noreply.github.com",
        "time": "Mon Nov 27 14:07:33 2023 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 27 14:07:33 2023 -0500"
      },
      "message": "Merge branch \u0027xalan-java-mvn-refactored\u0027 into create-lib-directory"
    },
    {
      "commit": "4dd57b2c399c15bf34c97cc26881fa94805bad76",
      "tree": "9610a670d3518614cd0504e78df915c7a9bfbb22",
      "parents": [
        "fdb834c28e1b32ac2a28355d8f9c873c3faded73"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 14:00:30 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 14:00:30 2023 -0500"
      },
      "message": "Silence the progress noise during the mvn build.\n"
    },
    {
      "commit": "fdb834c28e1b32ac2a28355d8f9c873c3faded73",
      "tree": "91d3a113d2184a12dbb67942b27dde152a7a036f",
      "parents": [
        "8de3294e21a922c3943580c6f698673e99f386e0"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:52:06 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:52:06 2023 -0500"
      },
      "message": "typo\n"
    },
    {
      "commit": "8de3294e21a922c3943580c6f698673e99f386e0",
      "tree": "5dd4f3d8748cb8ce5f15b8e066bba0581a0bec6f",
      "parents": [
        "4aa150b2e5fa5b48b488f4f4409602954a7e0215"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:50:15 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:50:15 2023 -0500"
      },
      "message": "typo\n"
    },
    {
      "commit": "4aa150b2e5fa5b48b488f4f4409602954a7e0215",
      "tree": "2709a08a65ce362c34191b2e13da92d1a98b0195",
      "parents": [
        "c338e2b7d6237c27fa13da2fd00788d1490f40aa"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:43:57 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:43:57 2023 -0500"
      },
      "message": "Reconcile/rebase\n"
    },
    {
      "commit": "c338e2b7d6237c27fa13da2fd00788d1490f40aa",
      "tree": "26f3ca043edbc49d7de5d4eb05b7b202313287d1",
      "parents": [
        "ddf4030ef04943bd478e5f75d9324ca3a533d817"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:25:00 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:25:00 2023 -0500"
      },
      "message": "Reconcile .gitignore with master\n"
    },
    {
      "commit": "ddf4030ef04943bd478e5f75d9324ca3a533d817",
      "tree": "195e03235b27118a705c1282cd984002aa692d1e",
      "parents": [
        "7826dcb6c5434e44202a7aa5139e2b8ca13bd7aa"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:22:02 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:22:02 2023 -0500"
      },
      "message": "cherrypick from master, use mvn build.\n"
    },
    {
      "commit": "7826dcb6c5434e44202a7aa5139e2b8ca13bd7aa",
      "tree": "a8f8be85cc2149bcbe70f2f5c1bd530ae4ec0a25",
      "parents": [
        "631e282883dc58d343e686463db65bc6c9789163"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:21:30 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:21:30 2023 -0500"
      },
      "message": "cherrypick from master\n"
    },
    {
      "commit": "631e282883dc58d343e686463db65bc6c9789163",
      "tree": "a0a1f2f77470f94a97e7cf2229ba853c032d29fb",
      "parents": [
        "29d6f12389254f3db475533c1d9a2c09fef2b43f"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:15:58 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 13:15:58 2023 -0500"
      },
      "message": "doc\n"
    },
    {
      "commit": "52a74b6d7faddce5539f9e6a6484be9bf5c7bae3",
      "tree": "a085542ab324f96fb5b46119ad7ab2343956e18b",
      "parents": [
        "c8786fb2e06ac3bf9d61fd002847cbb67bdef5c2"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:47:12 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:47:12 2023 -0500"
      },
      "message": "Cherry-pick https://github.com/apache/xalan-java/pull/83\n"
    },
    {
      "commit": "c8786fb2e06ac3bf9d61fd002847cbb67bdef5c2",
      "tree": "2f6497897c14c296e6486c6033ff80792b1ca56c",
      "parents": [
        "fcb53c61d237cf82415e5e864552e72f26f33fde"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:33:38 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:33:38 2023 -0500"
      },
      "message": "Cherrypicking from _maint\n"
    },
    {
      "commit": "fcb53c61d237cf82415e5e864552e72f26f33fde",
      "tree": "0f3b04795364331b9fa3d799a28668f91d7e3f44",
      "parents": [
        "50761850e785dc9831515a9fde70127b8560b992"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:24:31 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:24:31 2023 -0500"
      },
      "message": "Cherrypick changes from _maint\n"
    },
    {
      "commit": "50761850e785dc9831515a9fde70127b8560b992",
      "tree": "3f3e713bd9a8ce48e49c2608991142861a23e91c",
      "parents": [
        "b9a04dc1ecb2395de5b2ffd893985c586defa811"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:19:44 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:19:44 2023 -0500"
      },
      "message": "Accept .gitattribute changes from _maint\n"
    },
    {
      "commit": "b9a04dc1ecb2395de5b2ffd893985c586defa811",
      "tree": "7686797759442ecdef611eedde9e589959ac1714",
      "parents": [
        "3689380ead2907423e59f8c875a44fa9405de8c2"
      ],
      "author": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:17:39 2023 -0500"
      },
      "committer": {
        "name": "kubycsolutions",
        "email": "keshlam@kubyc.solutions",
        "time": "Mon Nov 27 12:17:39 2023 -0500"
      },
      "message": "Cherry-pick CI from xalan-j_2_7_1_maint\n"
    }
  ],
  "next": "3689380ead2907423e59f8c875a44fa9405de8c2"
}
