Skip to content

Conversation

@gibson9583
Copy link
Contributor

This seems like the most efficient way to handle updating these jars. Pulling from a known quantity rather than reviewing ourselves

@jonbartels jonbartels added this to the Next Release milestone Jul 28, 2025
@jonbartels
Copy link
Contributor

Adding this to the "Next Release" miletone. Steering Committee discussed and this is valuable.

It catches up on library updates
It makes OIE consistent with Innovar and Nextgen

There are some risks, like testing this whole thing, but those risks are manageable.

@jonbartels
Copy link
Contributor

Steering Committee also discussed this issue being a higher priority than Gradle (#146) since this gets us security updates sooner.

@gibson9583
Copy link
Contributor Author

@kayyagari @kpalang @mgaffigan - I may be a bit over my head here.... I thought this was going to be a simple cherry pick of a handful of commits, but our build processes have deviated a bit and I need to pull in some people a bit more familiar with the process than me.

@mgaffigan
Copy link
Contributor

@gibson9583, see/pull 6a2459f

Note also the changes to server/src/com/mirth/connect/model/util/DefaultMetaData.java. That seems like an opinion needing to be pulled out of this change set.

@mgaffigan
Copy link
Contributor

Updating the GH pipeline to Java 17 has it building successfully in CI. Still some test failures.

@gibson9583
Copy link
Contributor Author

@mgaffigan - thanks. Also pushed a commit to revert the change to DefaultMetaData

@gibson9583 gibson9583 force-pushed the feature/bl-dependency-cherrypick branch from 165ab87 to 8db4aca Compare September 9, 2025 14:25
@gibson9583 gibson9583 requested review from a team, jonbartels, kayyagari, kpalang, mgaffigan, pacmano1, ssrowe and tonygermano and removed request for a team September 9, 2025 15:22
Copy link
Contributor

@mgaffigan mgaffigan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Compile failures:

  • [javadoc] error: invalid flag: -add-modules

New test-compile warnings:

  • [javac] warning: [options] --add-opens has no effect at compile time
  • [junit] OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
  • [junit] WARNING: package sun.misc not in java.base

Test failures:

  • [junit] TEST com.mirth.connect.donkey.server.channel.ChannelTest FAILED
  • [junit] TEST com.mirth.connect.donkey.server.data.jdbc.JdbcDaoTest FAILED
  • [junit] Test com.mirth.connect.client.core.ConnectServiceUtilTest FAILED
  • [junit] Test com.mirth.connect.model.PublicServerSettingsTest FAILED
  • [junit] Test com.mirth.connect.util.JavaScriptSharedUtilTest FAILED (#184 opened - unrelated to this PR)

General concerns:

  • gitignore needs updated or build needs updated to avoid un-ignored untracked files after build (307 generated)
  • If we're going to spend time testing a release, we should verify the versions of deps we're going to are best (Getting this merged doesn't stop us from future updates).
  • A lot of these changes are formatting or whitespace. Not strictly a problem, but the PR can be substantially minimized.

@kpalang
Copy link
Contributor

kpalang commented Sep 9, 2025

Seems like a stupid suggestion and I haven't been following the previous conversation around this topic. But. What if we see what versions BL bumped and do the change manually on our side? We could also do appropriate unit-tests in the process.

@gibson9583 gibson9583 changed the title Update Dependencies from Bridgelink via Cherry Pick Update Dependencies Sep 24, 2025
@mgaffigan
Copy link
Contributor

[junit] Test com.mirth.connect.util.JavaScriptSharedUtilTest FAILED

Not sure re: this one. I can't see the output from CI test failure. Running
on windows gives the attached, which I don't understand the assertion failure.

TEST-com.mirth.connect.util.JavaScriptSharedUtilTest.xml
87_JavaScriptSharedUtilTest.html
87_JavaScriptSharedUtilTest-fails.html

@mgaffigan
Copy link
Contributor

mgaffigan commented Sep 29, 2025

@kpalang

Seems like a stupid suggestion and I haven't been following the previous conversation around this topic. But. What if we see what versions BL bumped and do the change manually on our side? We could also do appropriate unit-tests in the process.

Since this is also a move to Java 17, the version upgrades are tied to some of the other changes. I think it's in a fairly good state - unresolved issues notwithstanding.

@mgaffigan mgaffigan force-pushed the feature/bl-dependency-cherrypick branch 2 times, most recently from 11aa84b to 1647b0f Compare September 29, 2025 04:33
@tonygermano
Copy link
Member

Looks like this was introduced in #90. I didn't notice the test failure since all of the checks passed. The files Mitch shared on this ticket indicate it was related to pretty print functionality.

mgaffigan
mgaffigan previously approved these changes Sep 29, 2025
Copy link
Contributor

@mgaffigan mgaffigan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's go! Seems to be a step in the right direction. Moves the build process to Java 17. Seems to open and run as usual in Ballista.

Copy link
Member

@tonygermano tonygermano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

17 commits and a lot of unrelated changes makes this somewhat messy and difficult to review (I am aware that much of it was probably externally generated.) It's difficult to tell which changes are necessary for the dependency updates and which are not. There are a lot of which I marked in my review as potentially being unnecessary changes. There are many more that are additional comments and whitespace changes which I did not mark, but probably don't belong in this PR (not that I have anything against comments, but they just bloat this already large PR.)

I think while we are changing the minimum required java version, we should do it correctly and close out #18. I think this only entails modifying the ant javac tasks to include a release="17" attribute. It may be wise to store the release version in a build property as it will likely get updated from 17 to 21 in the not distant future now that version 25 is out.

See https://ant.apache.org/manual/Tasks/javac.html and https://stackoverflow.com/a/43103038

@mgaffigan
Copy link
Contributor

mgaffigan commented Sep 30, 2025

17 commits and a lot of unrelated changes makes this somewhat messy and difficult to review (I am aware that much of it was probably externally generated.) It's difficult to tell which changes are necessary for the dependency updates and which are not. There are a lot of which I marked in my review as potentially being unnecessary changes.

Agree. The BL comments are not clear on motivation. I think everything in the PR is based on building with Java 17. The PR could indeed be smaller, but some of these changes were submitted previously as fractional PR's - and were not merged.

There are many more that are additional comments and whitespace changes which I did not mark, but probably don't belong in this PR (not that I have anything against comments, but they just bloat this already large PR.)

The comments were added to avoid increasing the number of warnings in the build. Absent those changes, moving to 17 increases the number.

The whitespace changes I commented on too, but the original whitespace is mental. If you look at the file wrong, it will be reformatted and the whitespace will change. It was not worth my time to revert, since it is still a beneficial change if a bit unrelated. I'd be more willing to pull those into separate PR's if small PR's were to merge quickly.

I think while we are changing the minimum required java version, we should do it correctly and close out #18. I think this only entails modifying the ant javac tasks to include a release="17" attribute. It may be wise to store the release version in a build property as it will likely get updated from 17 to 21 in the not distant future now that version 25 is out.

See https://ant.apache.org/manual/Tasks/javac.html and https://stackoverflow.com/a/43103038

Specifying release gives the following errors:

    [javac] error: exporting a package from system module java.sql.rowset is not allowed with --release
    [javac] error: exporting a package from system module java.base is not allowed with --release
    [javac] error: exporting a package from system module java.base is not allowed with --release

mgaffigan
mgaffigan previously approved these changes Sep 30, 2025
@gibson9583 gibson9583 marked this pull request as ready for review October 1, 2025 17:26
Innovarzweng and others added 4 commits November 15, 2025 22:30
Signed-off-by: Chris Gibson <cgibson@outlook.com>
Signed-off-by: Tony Germano <tony@germano.name>
Co-authored-by: Chris Gibson <cgibson@outlook.com>
Co-authored-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
Co-authored-by: Tony Germano <tony@germano.name>
Signed-off-by: Tony Germano <tony@germano.name>
Signed-off-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
Signed-off-by: Chris Gibson <cgibson@outlook.com>
Co-authored-by: Mitch Gaffigan <mitch.gaffigan@comcast.net>
Signed-off-by: Tony Germano <tony@germano.name>
Copy link
Member

@tonygermano tonygermano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I rebased this PR. There were additional commits since it was opened that required resolving merge conflicts. Additionally, several of the commits had been pulled out and already merged separately, so they were no longer needed. I squashed all of the commits that "fixed" or "reverted" previous commits.

A few minor changes were made from the previous commits in this PR

  • .sdkmanrc java bump changed from 17.0.16.fx-zulu to 17.0.17.fx-zulu
  • javadoc link in server/build.xml changed from https://docs.oracle.com/javase/17/docs/api/ to https://docs.oracle.com/en/java/javase/17/docs/api/
  • unnecessary whitespace changes were removed from several files

The prior commit pointed to by this PR was pushed to my repo and the diff can be viewed at https://github.com/OpenIntegrationEngine/engine/compare/main...tonygermano:engine:feature/bl-dependency-cherrypick?expand=1

I'm not sure if anyone else has already done this or not, but I have not, and someone should confirm the SHA sums for all of the new jar files match those found in maven central.

@tonygermano
Copy link
Member

tonygermano commented Nov 20, 2025

I'm not sure if anyone else has already done this or not, but I have not, and someone should confirm the SHA sums for all of the new jar files match those found in maven central.

Here are the SHA1 hashes for all of the added or renamed files between the current main as of the last rebase and the current HEAD of this PR.

$ git diff --name-only --diff-filter=AR d934af20b 384682fe9 | xargs sha1sum 
a306167fdb88152403c8b00595b1502ffacd5b76  client/lib/commons-vfs2-2.10.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  client/lib/guava-32.0.1-jre.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  client/lib/jetty-util-9.4.57.v20241219.jar
a306167fdb88152403c8b00595b1502ffacd5b76  command/lib/commons-vfs2-2.10.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  command/lib/guava-32.0.1-jre.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  command/lib/jetty-util-9.4.57.v20241219.jar
b1bc0f47bcad26ad5f9bceefb63fcb920d868fca  donkey/lib/database/mysql-connector-j-8.4.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  donkey/lib/guava/guava-32.0.1-jre.jar
45cf516d9a23485200950549ff72b204c307fc9d  donkey/testlib/byte-buddy-1.14.13.jar
979ce25f7d3096a2e82214ba7dc972a05ce7a171  donkey/testlib/byte-buddy-agent-1.14.13.jar
31fd75d9d80e678032e5dc1bad17386f192853ea  donkey/testlib/mockito-core-5.1.1.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  manager/lib/guava-32.0.1-jre.jar
81a03f76019c67362299c40e0ba13405f5467bff  server/lib/ant/asm-9.2.jar
f4d7f0fc9054386f2893b602454d48e07d4fbead  server/lib/ant/asm-commons-9.2.jar
d96c99a30f5e1a19b0e609dbb19a44d8518ac01e  server/lib/ant/asm-tree-9.2.jar
6ee1de41e73bc9480d23970262d2b00d2a4ed97b  server/lib/ant/org.jacoco.agent-0.8.8.jar
77363f317d3ddfe4c4fd0cb622ee551baae2faa9  server/lib/ant/org.jacoco.ant-0.8.8.jar
fb1257ce77ec2fe326aad639b2253e76f481ea2e  server/lib/ant/org.jacoco.core-0.8.8.jar
366581c3bc90e2900320c528c294949bad7232c8  server/lib/ant/org.jacoco.report-0.8.8.jar
5864149b2e5a2af7b05fe9e9dc3e4b70d3060a7c  server/lib/aws/ext/netty/netty-buffer-4.1.119.Final.jar
337ca8e8c3ef23925e02d56347b414d7616d1d02  server/lib/aws/ext/netty/netty-codec-4.1.119.Final.jar
23196984df6083cc39bef22a54c6cf5b157f3824  server/lib/aws/ext/netty/netty-codec-http-4.1.119.Final.jar
648b066861723b60635bef2047229ed73d0cbd04  server/lib/aws/ext/netty/netty-codec-http2-4.1.119.Final.jar
2f7c360b03c0aceab7efc1f7c2b75274f0f35909  server/lib/aws/ext/netty/netty-common-4.1.119.Final.jar
a0059b8d779ce566b524efd6d73ba4fcff3cd5d9  server/lib/aws/ext/netty/netty-handler-4.1.119.Final.jar
e1f7c90aff71bdf0e2294a200b5f89244f88dcf7  server/lib/aws/ext/netty/netty-resolver-4.1.119.Final.jar
d05df879054297962d056b77460fc4ff20e30073  server/lib/aws/ext/netty/netty-transport-4.1.119.Final.jar
500fdc2000a47c07ad6c0ea230127f5ac3c9ad5c  server/lib/aws/ext/netty/netty-transport-native-epoll-4.1.119.Final-linux-x86_64.jar
55afdeb456bccf8eecb06431f3c1537269afe9af  server/lib/aws/ext/netty/netty-transport-native-unix-common-4.1.119.Final.jar
f159dd8bbbf381c4006c1f675ec4e648c8317f32  server/lib/classgraph-4.8.179.jar
3fae6004e0c5e1b2b46a2b28e017efcc1a40d6bf  server/lib/commons/commons-email-1.6.0.jar
5a4e26802e0a5a42938f987976b55dae4a6cc636  server/lib/commons/commons-net-3.9.0.jar
a306167fdb88152403c8b00595b1502ffacd5b76  server/lib/commons/commons-vfs2-2.10.0.jar
b1bc0f47bcad26ad5f9bceefb63fcb920d868fca  server/lib/database/mysql-connector-j-8.4.0.jar
ca47da3c71d715ce005b420af566b9786829a04d  server/lib/jetty/jetty-annotations-9.4.57.v20241219.jar
c2bf5c810049fe23945f737a3c4743da81baa62d  server/lib/jetty/jetty-continuation-9.4.57.v20241219.jar
c7a3a9c599346708894cf355e03105937f45f427  server/lib/jetty/jetty-http-9.4.57.v20241219.jar
bd0ca6e5c4314972cd91f427fa09dedfe3b84ff5  server/lib/jetty/jetty-io-9.4.57.v20241219.jar
9ec603efd530c70302949004db592b6b447b785e  server/lib/jetty/jetty-jndi-9.4.57.v20241219.jar
b7c03e553743011f4fed7d91fa8aae9fa91524de  server/lib/jetty/jetty-plus-9.4.57.v20241219.jar
c38734a0465dfc80c0eacf912f2cf791038b2096  server/lib/jetty/jetty-rewrite-9.4.57.v20241219.jar
2b545f68d45b947fdc6e279a0e8ae3630ec10e05  server/lib/jetty/jetty-security-9.4.57.v20241219.jar
ad3baf52b98b4a32f5714fe2e58ac0e502b4e4d8  server/lib/jetty/jetty-server-9.4.57.v20241219.jar
3e648eebddbf5ad0c0f7698e50c6a69c4a77fd95  server/lib/jetty/jetty-servlet-9.4.57.v20241219.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  server/lib/jetty/jetty-util-9.4.57.v20241219.jar
7b5f144a3d0cbfcac62f2fcb9e14ffa765048f0e  server/lib/jetty/jetty-util-ajax-9.4.57.v20241219.jar
3ef93ab9a81547d0def15b8a2d1d6bed7da4bb9c  server/lib/jetty/jetty-webapp-9.4.57.v20241219.jar
bfec69b645695b670435016d3ec733656f4f6818  server/lib/jetty/jetty-xml-9.4.57.v20241219.jar
9ff6a973006622f05b7f71b76042ed081336422f  server/lib/jetty/jsp/apache-jsp-9.4.57.v20241219-sources.jar
45cf516d9a23485200950549ff72b204c307fc9d  server/testlib/byte-buddy-1.14.13.jar
979ce25f7d3096a2e82214ba7dc972a05ce7a171  server/testlib/byte-buddy-agent-1.14.13.jar
1820c0968dba3a11a1b30669bb1f01978a91dedc  server/testlib/hamcrest-2.2.jar
cdd00374f1fee76b11e2a9d127405aa3f6be5b6a  server/testlib/junit-4.13.1.jar
31fd75d9d80e678032e5dc1bad17386f192853ea  server/testlib/mockito-core-5.1.1.jar
3d1dffee9a8a1998ec782383ca2f818848f2d5f1  server/testlib/mockito-inline-5.1.1.jar

@tonygermano
Copy link
Member

I ran the following python script that Google Gemini helped me create:

import urllib.request
import json

# PASTE DATA HERE
DATA = """
a306167fdb88152403c8b00595b1502ffacd5b76  client/lib/commons-vfs2-2.10.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  client/lib/guava-32.0.1-jre.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  client/lib/jetty-util-9.4.57.v20241219.jar
a306167fdb88152403c8b00595b1502ffacd5b76  command/lib/commons-vfs2-2.10.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  command/lib/guava-32.0.1-jre.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  command/lib/jetty-util-9.4.57.v20241219.jar
b1bc0f47bcad26ad5f9bceefb63fcb920d868fca  donkey/lib/database/mysql-connector-j-8.4.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  donkey/lib/guava/guava-32.0.1-jre.jar
45cf516d9a23485200950549ff72b204c307fc9d  donkey/testlib/byte-buddy-1.14.13.jar
979ce25f7d3096a2e82214ba7dc972a05ce7a171  donkey/testlib/byte-buddy-agent-1.14.13.jar
31fd75d9d80e678032e5dc1bad17386f192853ea  donkey/testlib/mockito-core-5.1.1.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  manager/lib/guava-32.0.1-jre.jar
81a03f76019c67362299c40e0ba13405f5467bff  server/lib/ant/asm-9.2.jar
f4d7f0fc9054386f2893b602454d48e07d4fbead  server/lib/ant/asm-commons-9.2.jar
d96c99a30f5e1a19b0e609dbb19a44d8518ac01e  server/lib/ant/asm-tree-9.2.jar
6ee1de41e73bc9480d23970262d2b00d2a4ed97b  server/lib/ant/org.jacoco.agent-0.8.8.jar
77363f317d3ddfe4c4fd0cb622ee551baae2faa9  server/lib/ant/org.jacoco.ant-0.8.8.jar
fb1257ce77ec2fe326aad639b2253e76f481ea2e  server/lib/ant/org.jacoco.core-0.8.8.jar
366581c3bc90e2900320c528c294949bad7232c8  server/lib/ant/org.jacoco.report-0.8.8.jar
5864149b2e5a2af7b05fe9e9dc3e4b70d3060a7c  server/lib/aws/ext/netty/netty-buffer-4.1.119.Final.jar
337ca8e8c3ef23925e02d56347b414d7616d1d02  server/lib/aws/ext/netty/netty-codec-4.1.119.Final.jar
23196984df6083cc39bef22a54c6cf5b157f3824  server/lib/aws/ext/netty/netty-codec-http-4.1.119.Final.jar
648b066861723b60635bef2047229ed73d0cbd04  server/lib/aws/ext/netty/netty-codec-http2-4.1.119.Final.jar
2f7c360b03c0aceab7efc1f7c2b75274f0f35909  server/lib/aws/ext/netty/netty-common-4.1.119.Final.jar
a0059b8d779ce566b524efd6d73ba4fcff3cd5d9  server/lib/aws/ext/netty/netty-handler-4.1.119.Final.jar
e1f7c90aff71bdf0e2294a200b5f89244f88dcf7  server/lib/aws/ext/netty/netty-resolver-4.1.119.Final.jar
d05df879054297962d056b77460fc4ff20e30073  server/lib/aws/ext/netty/netty-transport-4.1.119.Final.jar
500fdc2000a47c07ad6c0ea230127f5ac3c9ad5c  server/lib/aws/ext/netty/netty-transport-native-epoll-4.1.119.Final-linux-x86_64.jar
55afdeb456bccf8eecb06431f3c1537269afe9af  server/lib/aws/ext/netty/netty-transport-native-unix-common-4.1.119.Final.jar
f159dd8bbbf381c4006c1f675ec4e648c8317f32  server/lib/classgraph-4.8.179.jar
3fae6004e0c5e1b2b46a2b28e017efcc1a40d6bf  server/lib/commons/commons-email-1.6.0.jar
5a4e26802e0a5a42938f987976b55dae4a6cc636  server/lib/commons/commons-net-3.9.0.jar
a306167fdb88152403c8b00595b1502ffacd5b76  server/lib/commons/commons-vfs2-2.10.0.jar
b1bc0f47bcad26ad5f9bceefb63fcb920d868fca  server/lib/database/mysql-connector-j-8.4.0.jar
ca47da3c71d715ce005b420af566b9786829a04d  server/lib/jetty/jetty-annotations-9.4.57.v20241219.jar
c2bf5c810049fe23945f737a3c4743da81baa62d  server/lib/jetty/jetty-continuation-9.4.57.v20241219.jar
c7a3a9c599346708894cf355e03105937f45f427  server/lib/jetty/jetty-http-9.4.57.v20241219.jar
bd0ca6e5c4314972cd91f427fa09dedfe3b84ff5  server/lib/jetty/jetty-io-9.4.57.v20241219.jar
9ec603efd530c70302949004db592b6b447b785e  server/lib/jetty/jetty-jndi-9.4.57.v20241219.jar
b7c03e553743011f4fed7d91fa8aae9fa91524de  server/lib/jetty/jetty-plus-9.4.57.v20241219.jar
c38734a0465dfc80c0eacf912f2cf791038b2096  server/lib/jetty/jetty-rewrite-9.4.57.v20241219.jar
2b545f68d45b947fdc6e279a0e8ae3630ec10e05  server/lib/jetty/jetty-security-9.4.57.v20241219.jar
ad3baf52b98b4a32f5714fe2e58ac0e502b4e4d8  server/lib/jetty/jetty-server-9.4.57.v20241219.jar
3e648eebddbf5ad0c0f7698e50c6a69c4a77fd95  server/lib/jetty/jetty-servlet-9.4.57.v20241219.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  server/lib/jetty/jetty-util-9.4.57.v20241219.jar
7b5f144a3d0cbfcac62f2fcb9e14ffa765048f0e  server/lib/jetty/jetty-util-ajax-9.4.57.v20241219.jar
3ef93ab9a81547d0def15b8a2d1d6bed7da4bb9c  server/lib/jetty/jetty-webapp-9.4.57.v20241219.jar
bfec69b645695b670435016d3ec733656f4f6818  server/lib/jetty/jetty-xml-9.4.57.v20241219.jar
9ff6a973006622f05b7f71b76042ed081336422f  server/lib/jetty/jsp/apache-jsp-9.4.57.v20241219-sources.jar
45cf516d9a23485200950549ff72b204c307fc9d  server/testlib/byte-buddy-1.14.13.jar
979ce25f7d3096a2e82214ba7dc972a05ce7a171  server/testlib/byte-buddy-agent-1.14.13.jar
1820c0968dba3a11a1b30669bb1f01978a91dedc  server/testlib/hamcrest-2.2.jar
cdd00374f1fee76b11e2a9d127405aa3f6be5b6a  server/testlib/junit-4.13.1.jar
31fd75d9d80e678032e5dc1bad17386f192853ea  server/testlib/mockito-core-5.1.1.jar
3d1dffee9a8a1998ec782383ca2f818848f2d5f1  server/testlib/mockito-inline-5.1.1.jar
"""

cache = {}

# Fake User-Agent to prevent bot blocking
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}

print(f"{'STATUS':<8} {'REMOTE IDENTITY (Group:Artifact:Version)':<60} {'LOCAL FILE'}")
print("-" * 120)

for line in DATA.strip().split('\n'):
    parts = line.split()
    if len(parts) < 2: continue
    
    sha1, filename = parts[0].strip(), parts[1].strip()
    
    if sha1 not in cache:
        # FIX IS HERE: replaced " with %22
        url = f'https://search.maven.org/solrsearch/select?q=1:%22{sha1}%22&rows=1&wt=json'
        try:
            req = urllib.request.Request(url, headers=headers)
            with urllib.request.urlopen(req) as f:
                resp = json.load(f)
                
            if resp['response']['numFound'] > 0:
                doc = resp['response']['docs'][0]
                coords = f"{doc['g']}:{doc['a']}:{doc['v']}"
                cache[sha1] = (True, coords)
            else:
                cache[sha1] = (False, "Not found in Maven Central")
        except Exception as e:
            cache[sha1] = (False, f"Error: {str(e)}")

    found, identity = cache[sha1]
    status_icon = "✅ OK" if found else "❌ FAIL"
    print(f"{status_icon:<8} {identity:<60} {filename}")

It produced the following output:

STATUS   REMOTE IDENTITY (Group:Artifact:Version)                     LOCAL FILE
------------------------------------------------------------------------------------------------------------------------
✅ OK     org.apache.commons:commons-vfs2:2.10.0                       client/lib/commons-vfs2-2.10.0.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            client/lib/guava-32.0.1-jre.jar
✅ OK     org.eclipse.jetty:jetty-util:9.4.57.v20241219                client/lib/jetty-util-9.4.57.v20241219.jar
✅ OK     org.apache.commons:commons-vfs2:2.10.0                       command/lib/commons-vfs2-2.10.0.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            command/lib/guava-32.0.1-jre.jar
✅ OK     org.eclipse.jetty:jetty-util:9.4.57.v20241219                command/lib/jetty-util-9.4.57.v20241219.jar
✅ OK     com.mysql:mysql-connector-j:8.4.0                            donkey/lib/database/mysql-connector-j-8.4.0.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            donkey/lib/guava/guava-32.0.1-jre.jar
✅ OK     net.bytebuddy:byte-buddy:1.14.13                             donkey/testlib/byte-buddy-1.14.13.jar
✅ OK     net.bytebuddy:byte-buddy-agent:1.14.13                       donkey/testlib/byte-buddy-agent-1.14.13.jar
✅ OK     org.mockito:mockito-core:5.1.1                               donkey/testlib/mockito-core-5.1.1.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            manager/lib/guava-32.0.1-jre.jar
✅ OK     org.ow2.asm:asm:9.2                                          server/lib/ant/asm-9.2.jar
✅ OK     org.ow2.asm:asm-commons:9.2                                  server/lib/ant/asm-commons-9.2.jar
✅ OK     org.ow2.asm:asm-tree:9.2                                     server/lib/ant/asm-tree-9.2.jar
✅ OK     org.jacoco:org.jacoco.agent:0.8.8                            server/lib/ant/org.jacoco.agent-0.8.8.jar
✅ OK     org.jacoco:org.jacoco.ant:0.8.8                              server/lib/ant/org.jacoco.ant-0.8.8.jar
✅ OK     org.jacoco:org.jacoco.core:0.8.8                             server/lib/ant/org.jacoco.core-0.8.8.jar
✅ OK     org.jacoco:org.jacoco.report:0.8.8                           server/lib/ant/org.jacoco.report-0.8.8.jar
✅ OK     io.netty:netty-buffer:4.1.119.Final                          server/lib/aws/ext/netty/netty-buffer-4.1.119.Final.jar
✅ OK     io.netty:netty-codec:4.1.119.Final                           server/lib/aws/ext/netty/netty-codec-4.1.119.Final.jar
✅ OK     io.netty:netty-codec-http:4.1.119.Final                      server/lib/aws/ext/netty/netty-codec-http-4.1.119.Final.jar
✅ OK     io.netty:netty-codec-http2:4.1.119.Final                     server/lib/aws/ext/netty/netty-codec-http2-4.1.119.Final.jar
✅ OK     io.netty:netty-common:4.1.119.Final                          server/lib/aws/ext/netty/netty-common-4.1.119.Final.jar
✅ OK     io.netty:netty-handler:4.1.119.Final                         server/lib/aws/ext/netty/netty-handler-4.1.119.Final.jar
✅ OK     io.netty:netty-resolver:4.1.119.Final                        server/lib/aws/ext/netty/netty-resolver-4.1.119.Final.jar
✅ OK     io.netty:netty-transport:4.1.119.Final                       server/lib/aws/ext/netty/netty-transport-4.1.119.Final.jar
✅ OK     io.netty:netty-transport-native-epoll:4.1.119.Final          server/lib/aws/ext/netty/netty-transport-native-epoll-4.1.119.Final-linux-x86_64.jar
✅ OK     io.netty:netty-transport-native-unix-common:4.1.119.Final    server/lib/aws/ext/netty/netty-transport-native-unix-common-4.1.119.Final.jar
✅ OK     io.github.classgraph:classgraph:4.8.179                      server/lib/classgraph-4.8.179.jar
✅ OK     org.apache.commons:commons-email:1.6.0                       server/lib/commons/commons-email-1.6.0.jar
✅ OK     commons-net:commons-net:3.9.0                                server/lib/commons/commons-net-3.9.0.jar
✅ OK     org.apache.commons:commons-vfs2:2.10.0                       server/lib/commons/commons-vfs2-2.10.0.jar
✅ OK     com.mysql:mysql-connector-j:8.4.0                            server/lib/database/mysql-connector-j-8.4.0.jar
✅ OK     org.eclipse.jetty:jetty-annotations:9.4.57.v20241219         server/lib/jetty/jetty-annotations-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-continuation:9.4.57.v20241219        server/lib/jetty/jetty-continuation-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-http:9.4.57.v20241219                server/lib/jetty/jetty-http-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-io:9.4.57.v20241219                  server/lib/jetty/jetty-io-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-jndi:9.4.57.v20241219                server/lib/jetty/jetty-jndi-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-plus:9.4.57.v20241219                server/lib/jetty/jetty-plus-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-rewrite:9.4.57.v20241219             server/lib/jetty/jetty-rewrite-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-security:9.4.57.v20241219            server/lib/jetty/jetty-security-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-server:9.4.57.v20241219              server/lib/jetty/jetty-server-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-servlet:9.4.57.v20241219             server/lib/jetty/jetty-servlet-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-util:9.4.57.v20241219                server/lib/jetty/jetty-util-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-util-ajax:9.4.57.v20241219           server/lib/jetty/jetty-util-ajax-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-webapp:9.4.57.v20241219              server/lib/jetty/jetty-webapp-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-xml:9.4.57.v20241219                 server/lib/jetty/jetty-xml-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:apache-jsp:9.4.57.v20241219                server/lib/jetty/jsp/apache-jsp-9.4.57.v20241219-sources.jar
✅ OK     net.bytebuddy:byte-buddy:1.14.13                             server/testlib/byte-buddy-1.14.13.jar
✅ OK     net.bytebuddy:byte-buddy-agent:1.14.13                       server/testlib/byte-buddy-agent-1.14.13.jar
✅ OK     org.hamcrest:hamcrest:2.2                                    server/testlib/hamcrest-2.2.jar
✅ OK     junit:junit:4.13.1                                           server/testlib/junit-4.13.1.jar
✅ OK     org.mockito:mockito-core:5.1.1                               server/testlib/mockito-core-5.1.1.jar
✅ OK     org.mockito:mockito-inline:5.2.0                             server/testlib/mockito-inline-5.1.1.jar

Here are the SHA1 hashes for all of the added or renamed files between the current main as of the last rebase and the current HEAD of this PR.

$ git diff --name-only --diff-filter=AR d934af2 384682f | xargs sha1sum
a306167fdb88152403c8b00595b1502ffacd5b76  client/lib/commons-vfs2-2.10.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  client/lib/guava-32.0.1-jre.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  client/lib/jetty-util-9.4.57.v20241219.jar
a306167fdb88152403c8b00595b1502ffacd5b76  command/lib/commons-vfs2-2.10.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  command/lib/guava-32.0.1-jre.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  command/lib/jetty-util-9.4.57.v20241219.jar
b1bc0f47bcad26ad5f9bceefb63fcb920d868fca  donkey/lib/database/mysql-connector-j-8.4.0.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  donkey/lib/guava/guava-32.0.1-jre.jar
45cf516d9a23485200950549ff72b204c307fc9d  donkey/testlib/byte-buddy-1.14.13.jar
979ce25f7d3096a2e82214ba7dc972a05ce7a171  donkey/testlib/byte-buddy-agent-1.14.13.jar
31fd75d9d80e678032e5dc1bad17386f192853ea  donkey/testlib/mockito-core-5.1.1.jar
6e5d51a72d142f2d40a57dfb897188b36a95b489  manager/lib/guava-32.0.1-jre.jar
81a03f76019c67362299c40e0ba13405f5467bff  server/lib/ant/asm-9.2.jar
f4d7f0fc9054386f2893b602454d48e07d4fbead  server/lib/ant/asm-commons-9.2.jar
d96c99a30f5e1a19b0e609dbb19a44d8518ac01e  server/lib/ant/asm-tree-9.2.jar
6ee1de41e73bc9480d23970262d2b00d2a4ed97b  server/lib/ant/org.jacoco.agent-0.8.8.jar
77363f317d3ddfe4c4fd0cb622ee551baae2faa9  server/lib/ant/org.jacoco.ant-0.8.8.jar
fb1257ce77ec2fe326aad639b2253e76f481ea2e  server/lib/ant/org.jacoco.core-0.8.8.jar
366581c3bc90e2900320c528c294949bad7232c8  server/lib/ant/org.jacoco.report-0.8.8.jar
5864149b2e5a2af7b05fe9e9dc3e4b70d3060a7c  server/lib/aws/ext/netty/netty-buffer-4.1.119.Final.jar
337ca8e8c3ef23925e02d56347b414d7616d1d02  server/lib/aws/ext/netty/netty-codec-4.1.119.Final.jar
23196984df6083cc39bef22a54c6cf5b157f3824  server/lib/aws/ext/netty/netty-codec-http-4.1.119.Final.jar
648b066861723b60635bef2047229ed73d0cbd04  server/lib/aws/ext/netty/netty-codec-http2-4.1.119.Final.jar
2f7c360b03c0aceab7efc1f7c2b75274f0f35909  server/lib/aws/ext/netty/netty-common-4.1.119.Final.jar
a0059b8d779ce566b524efd6d73ba4fcff3cd5d9  server/lib/aws/ext/netty/netty-handler-4.1.119.Final.jar
e1f7c90aff71bdf0e2294a200b5f89244f88dcf7  server/lib/aws/ext/netty/netty-resolver-4.1.119.Final.jar
d05df879054297962d056b77460fc4ff20e30073  server/lib/aws/ext/netty/netty-transport-4.1.119.Final.jar
500fdc2000a47c07ad6c0ea230127f5ac3c9ad5c  server/lib/aws/ext/netty/netty-transport-native-epoll-4.1.119.Final-linux-x86_64.jar
55afdeb456bccf8eecb06431f3c1537269afe9af  server/lib/aws/ext/netty/netty-transport-native-unix-common-4.1.119.Final.jar
f159dd8bbbf381c4006c1f675ec4e648c8317f32  server/lib/classgraph-4.8.179.jar
3fae6004e0c5e1b2b46a2b28e017efcc1a40d6bf  server/lib/commons/commons-email-1.6.0.jar
5a4e26802e0a5a42938f987976b55dae4a6cc636  server/lib/commons/commons-net-3.9.0.jar
a306167fdb88152403c8b00595b1502ffacd5b76  server/lib/commons/commons-vfs2-2.10.0.jar
b1bc0f47bcad26ad5f9bceefb63fcb920d868fca  server/lib/database/mysql-connector-j-8.4.0.jar
ca47da3c71d715ce005b420af566b9786829a04d  server/lib/jetty/jetty-annotations-9.4.57.v20241219.jar
c2bf5c810049fe23945f737a3c4743da81baa62d  server/lib/jetty/jetty-continuation-9.4.57.v20241219.jar
c7a3a9c599346708894cf355e03105937f45f427  server/lib/jetty/jetty-http-9.4.57.v20241219.jar
bd0ca6e5c4314972cd91f427fa09dedfe3b84ff5  server/lib/jetty/jetty-io-9.4.57.v20241219.jar
9ec603efd530c70302949004db592b6b447b785e  server/lib/jetty/jetty-jndi-9.4.57.v20241219.jar
b7c03e553743011f4fed7d91fa8aae9fa91524de  server/lib/jetty/jetty-plus-9.4.57.v20241219.jar
c38734a0465dfc80c0eacf912f2cf791038b2096  server/lib/jetty/jetty-rewrite-9.4.57.v20241219.jar
2b545f68d45b947fdc6e279a0e8ae3630ec10e05  server/lib/jetty/jetty-security-9.4.57.v20241219.jar
ad3baf52b98b4a32f5714fe2e58ac0e502b4e4d8  server/lib/jetty/jetty-server-9.4.57.v20241219.jar
3e648eebddbf5ad0c0f7698e50c6a69c4a77fd95  server/lib/jetty/jetty-servlet-9.4.57.v20241219.jar
7bf7ea75644ac064199e1e32c66ccd312239f2dc  server/lib/jetty/jetty-util-9.4.57.v20241219.jar
7b5f144a3d0cbfcac62f2fcb9e14ffa765048f0e  server/lib/jetty/jetty-util-ajax-9.4.57.v20241219.jar
3ef93ab9a81547d0def15b8a2d1d6bed7da4bb9c  server/lib/jetty/jetty-webapp-9.4.57.v20241219.jar
bfec69b645695b670435016d3ec733656f4f6818  server/lib/jetty/jetty-xml-9.4.57.v20241219.jar
9ff6a973006622f05b7f71b76042ed081336422f  server/lib/jetty/jsp/apache-jsp-9.4.57.v20241219-sources.jar
45cf516d9a23485200950549ff72b204c307fc9d  server/testlib/byte-buddy-1.14.13.jar
979ce25f7d3096a2e82214ba7dc972a05ce7a171  server/testlib/byte-buddy-agent-1.14.13.jar
1820c0968dba3a11a1b30669bb1f01978a91dedc  server/testlib/hamcrest-2.2.jar
cdd00374f1fee76b11e2a9d127405aa3f6be5b6a  server/testlib/junit-4.13.1.jar
31fd75d9d80e678032e5dc1bad17386f192853ea  server/testlib/mockito-core-5.1.1.jar
3d1dffee9a8a1998ec782383ca2f818848f2d5f1  server/testlib/mockito-inline-5.1.1.jar

These are the results of looking up the sha1 hashes on maven central:
STATUS   REMOTE IDENTITY (Group:Artifact:Version)                     LOCAL FILE
------------------------------------------------------------------------------------------------------------------------
✅ OK     org.apache.commons:commons-vfs2:2.10.0                       client/lib/commons-vfs2-2.10.0.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            client/lib/guava-32.0.1-jre.jar
✅ OK     org.eclipse.jetty:jetty-util:9.4.57.v20241219                client/lib/jetty-util-9.4.57.v20241219.jar
✅ OK     org.apache.commons:commons-vfs2:2.10.0                       command/lib/commons-vfs2-2.10.0.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            command/lib/guava-32.0.1-jre.jar
✅ OK     org.eclipse.jetty:jetty-util:9.4.57.v20241219                command/lib/jetty-util-9.4.57.v20241219.jar
✅ OK     com.mysql:mysql-connector-j:8.4.0                            donkey/lib/database/mysql-connector-j-8.4.0.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            donkey/lib/guava/guava-32.0.1-jre.jar
✅ OK     net.bytebuddy:byte-buddy:1.14.13                             donkey/testlib/byte-buddy-1.14.13.jar
✅ OK     net.bytebuddy:byte-buddy-agent:1.14.13                       donkey/testlib/byte-buddy-agent-1.14.13.jar
✅ OK     org.mockito:mockito-core:5.1.1                               donkey/testlib/mockito-core-5.1.1.jar
✅ OK     com.google.guava:guava:32.0.1-jre                            manager/lib/guava-32.0.1-jre.jar
✅ OK     org.ow2.asm:asm:9.2                                          server/lib/ant/asm-9.2.jar
✅ OK     org.ow2.asm:asm-commons:9.2                                  server/lib/ant/asm-commons-9.2.jar
✅ OK     org.ow2.asm:asm-tree:9.2                                     server/lib/ant/asm-tree-9.2.jar
✅ OK     org.jacoco:org.jacoco.agent:0.8.8                            server/lib/ant/org.jacoco.agent-0.8.8.jar
✅ OK     org.jacoco:org.jacoco.ant:0.8.8                              server/lib/ant/org.jacoco.ant-0.8.8.jar
✅ OK     org.jacoco:org.jacoco.core:0.8.8                             server/lib/ant/org.jacoco.core-0.8.8.jar
✅ OK     org.jacoco:org.jacoco.report:0.8.8                           server/lib/ant/org.jacoco.report-0.8.8.jar
✅ OK     io.netty:netty-buffer:4.1.119.Final                          server/lib/aws/ext/netty/netty-buffer-4.1.119.Final.jar
✅ OK     io.netty:netty-codec:4.1.119.Final                           server/lib/aws/ext/netty/netty-codec-4.1.119.Final.jar
✅ OK     io.netty:netty-codec-http:4.1.119.Final                      server/lib/aws/ext/netty/netty-codec-http-4.1.119.Final.jar
✅ OK     io.netty:netty-codec-http2:4.1.119.Final                     server/lib/aws/ext/netty/netty-codec-http2-4.1.119.Final.jar
✅ OK     io.netty:netty-common:4.1.119.Final                          server/lib/aws/ext/netty/netty-common-4.1.119.Final.jar
✅ OK     io.netty:netty-handler:4.1.119.Final                         server/lib/aws/ext/netty/netty-handler-4.1.119.Final.jar
✅ OK     io.netty:netty-resolver:4.1.119.Final                        server/lib/aws/ext/netty/netty-resolver-4.1.119.Final.jar
✅ OK     io.netty:netty-transport:4.1.119.Final                       server/lib/aws/ext/netty/netty-transport-4.1.119.Final.jar
✅ OK     io.netty:netty-transport-native-epoll:4.1.119.Final          server/lib/aws/ext/netty/netty-transport-native-epoll-4.1.119.Final-linux-x86_64.jar
✅ OK     io.netty:netty-transport-native-unix-common:4.1.119.Final    server/lib/aws/ext/netty/netty-transport-native-unix-common-4.1.119.Final.jar
✅ OK     io.github.classgraph:classgraph:4.8.179                      server/lib/classgraph-4.8.179.jar
✅ OK     org.apache.commons:commons-email:1.6.0                       server/lib/commons/commons-email-1.6.0.jar
✅ OK     commons-net:commons-net:3.9.0                                server/lib/commons/commons-net-3.9.0.jar
✅ OK     org.apache.commons:commons-vfs2:2.10.0                       server/lib/commons/commons-vfs2-2.10.0.jar
✅ OK     com.mysql:mysql-connector-j:8.4.0                            server/lib/database/mysql-connector-j-8.4.0.jar
✅ OK     org.eclipse.jetty:jetty-annotations:9.4.57.v20241219         server/lib/jetty/jetty-annotations-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-continuation:9.4.57.v20241219        server/lib/jetty/jetty-continuation-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-http:9.4.57.v20241219                server/lib/jetty/jetty-http-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-io:9.4.57.v20241219                  server/lib/jetty/jetty-io-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-jndi:9.4.57.v20241219                server/lib/jetty/jetty-jndi-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-plus:9.4.57.v20241219                server/lib/jetty/jetty-plus-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-rewrite:9.4.57.v20241219             server/lib/jetty/jetty-rewrite-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-security:9.4.57.v20241219            server/lib/jetty/jetty-security-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-server:9.4.57.v20241219              server/lib/jetty/jetty-server-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-servlet:9.4.57.v20241219             server/lib/jetty/jetty-servlet-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-util:9.4.57.v20241219                server/lib/jetty/jetty-util-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-util-ajax:9.4.57.v20241219           server/lib/jetty/jetty-util-ajax-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-webapp:9.4.57.v20241219              server/lib/jetty/jetty-webapp-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:jetty-xml:9.4.57.v20241219                 server/lib/jetty/jetty-xml-9.4.57.v20241219.jar
✅ OK     org.eclipse.jetty:apache-jsp:9.4.57.v20241219                server/lib/jetty/jsp/apache-jsp-9.4.57.v20241219-sources.jar
✅ OK     net.bytebuddy:byte-buddy:1.14.13                             server/testlib/byte-buddy-1.14.13.jar
✅ OK     net.bytebuddy:byte-buddy-agent:1.14.13                       server/testlib/byte-buddy-agent-1.14.13.jar
✅ OK     org.hamcrest:hamcrest:2.2                                    server/testlib/hamcrest-2.2.jar
✅ OK     junit:junit:4.13.1                                           server/testlib/junit-4.13.1.jar
✅ OK     org.mockito:mockito-core:5.1.1                               server/testlib/mockito-core-5.1.1.jar
✅ OK     org.mockito:mockito-inline:5.2.0                             server/testlib/mockito-inline-5.1.1.jar
@tonygermano tonygermano merged commit 45c3e93 into main Nov 22, 2025
2 checks passed
@tonygermano tonygermano deleted the feature/bl-dependency-cherrypick branch November 22, 2025 21:27
@tonygermano tonygermano linked an issue Dec 2, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Target java 17 as the minimum version

6 participants