-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update and reorganize the XOAI dependencies under local_lib #8372
Comments
I am removing the log4j dependency that's being brought in by XOAI as part of https://github.com/IQSS/dataverse-security/issues/48; (I only found this a couple of days ago myself; about to make a PR into the main Dataverse project.) But yes, in the process of tracing this dependency, I was reminded of this XOAI debacle, that we still have these locally-built libraries in the project, etc. (I can comment more on this;) |
… longer include log4j-1.* in the war file. (IQSS/dataverse-security#48; also #8372)
(Once we merge the pom.xml PR that removes the log4j jar from the war file, I'm going to update the title of this issue to reflect the fact that it is mainly about refactoring these XOAI dependencies, and not specifically about log4j. I will add some information on these XOAI libraries in the meantime). |
Yes, the situation is back to where it was 6 years ago, when lyncode still nominally owned the package; but it wasn't being actively maintained and it was not possible to submit and merge a PR. We really liked the package, but it was impossible to use it without a few minor fixes. So that's what forced us to build those jars locally in the first place. We appear to have missed the window when DSpace was somewhat actively maintaining the package. And then these libraries got further stuck in our local_lib limbo. So we definitely need to assume a more active role there in order to clean up this dependency. But we will need to decide what exactly "mak[ing] it our package" should entail. Bad news:
Better news:
That's an interesting idea. I never even considered that - publishing somebody else's packages? But that appears to be exactly what they did with reload4j - forked from log4j-1.2.17, released with the package pathnames unchanged, but under their own group id ... (assuming that's what you meant/had in mind above - ?). (I guess it's a slightly different situation with reload4j - since log4j-1 was officially retired/EOL-ed; and the new incarnation was made by the original author of log4j). OK, that part we can figure out as we go. But we can definitely proceed with the other parts. Create a fork of the latest DSpace xoai-4 under gdcc, patch/fix what's necessary to get it to work with Dataverse, make pull requests, see how that goes etc. |
@landreev please take a look at https://github.com/gdcc/sword2-server for an example of what I did to release our own version to Maven Central. This was a fork of what DANS did (which also was a fork of the original source) to push necessary changes from us, plus some more stuff to modernize and adapt for dependency updates. And it still has the old Java package layout, but being released under our Maven group ID. 🤠 |
…nder JDK 11. Also, renamed the project version. (ref. IQSS/dataverse#8372)
@landreev I started moving stuff around in https://github.com/gdcc/xoai |
Added "feature: Harvesting" label; to make sure the issue is added to the pile of Harvesting issues we are prioritizing now as part of the GREI effort. |
sprint
|
The library has had some bugs addressed. This lead to DV creating it's own jar.
|
I'd appreciate help on this in https://github.com/gdcc/xoai (currently crammed with lots of other work) I started moving lots of things into the lib, as some of the deps aren't maintained either. Happy to answer questions and give permissions. |
I checked in with @poikilotherm about this in Matrix today: https://matrix.to/#/!AmypvmJtUjBesRrnLM:matrix.org/$s548c8B-SZ-rdF5GN9LyZZ94YoZxDMkSW1QXLzvCc3A One thing I didn't realize is that @poikilotherm is hoping that this issue could be worked in in parallel with the Payara 6/Jakarta EE 9 upgrade in #8305. (We're pretty sure we'd like to go ahead and upgrade to EE9 per discussion in Slack: https://iqss.slack.com/archives/C010LA04BCG/p1651155098181049 ). When I asked, "Wait. Is this all dependent on the upgrade to Payara 6 and Jakarta EE 9?" he said, "That's half way correct... The Jakarta EE 9 move was the motivation to create a branch with these breaking changes, so we avoid any inconsistencies... So this is mostly about getting rid of old Java EE and refactor ye old deps". The branch he's talking about is https://github.com/gdcc/xoai/tree/branch-5.0 . While there are unit tests to work on, it sounds like @poikilotherm's plan is to build and test the refactored xoai jar with Payara 6. We aren't working on Payara 6 in the sprint we just started, but I said I'd at least poke around. A little poking seems helpful. I'll keep poking and will coordinate more with @poikilotherm next week. There's still refactoring to do and other tasks such as pushing a beta (or snapshot or whatever) to Maven Central. |
Let me add some notes here:
|
Just reading the updates from the last 2 days now. Yes, I'm happy to help with this work in /gdcc/xoai. That's why I pushed for prioritizing the issue/adding it to the schedule. I thought we were going to start with getting Dataverse to build with the new, gdcc-branded jars in its (Dataverse's) current state; just to make sure everything worked as it should. If there's a compelling reason to go straight to Payara 6/EE 9, we could do that too. But then we can't switch to gdcc/xoai until we upgrade. |
Well there is still room for going with Jakarta EE 8 if this is what you want. We could create a v5.0 for DV 5 and then create a v6.0 for DV 6 and Jakarta EE 9 (10?) The code refactors already done are still targeting Jakarta EE 8 (so far only JAXB 2.3 in use), see https://github.com/gdcc/xoai/blob/06dbf60994fee51246e4b6b0c436d00d16b3b652/pom.xml#L46. Now would be a good time to decide on this. 😎 I'm fine with sticking to EE 8 for now, too. |
I would personally vote for starting with EE 8. I am operating under the assumption that it would then be possible to make a PR switching Dataverse to gdcc/xoai fairly quickly/easily. Is that correct? Thank you for leading this effort/all the work that's already been done, @poikilotherm. |
Sprint:
|
…manipulating the "until" date parameter to ensure inclusivity. (#8372)
…the jdk http client and stream .transferTo() (#8372)
Currently, Dataverse codebase uses a custom patched XOAI 4.1.0, provided in
/local_lib
.It would be a good idea to
It might be worth a try to 1) not rename the packages but still publish under our @gdcc Maven group id and 2) create fork and a pull request for upstream plus setting up wei/pull to auto-create pull requests when DSpace updates their branch.
The text was updated successfully, but these errors were encountered: