Skip to content
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

Remove dependency on jaxen #164

Open
htgoebel opened this issue Apr 17, 2017 · 2 comments
Open

Remove dependency on jaxen #164

htgoebel opened this issue Apr 17, 2017 · 2 comments

Comments

@htgoebel
Copy link

Depending on jaxen leads to dependency-hell: jaxen requires dom4j for compiling. and dom4j requires jaxen for compiling.

This inhibits building both packages – and thus jdom – from source (read: without basing .jars downloaded elsewhere). Building software from pure source is important to provide a verifiable path from source code to binary, see reproducible builds.

So please remove the dependency on jaxen to enable building jdom from source. Thanks.

@hakanai
Copy link

hakanai commented Apr 8, 2019

I'd be really happy with this as well, for a different reason entirely:

The dependency on jaxen is only declared as "optional", which is extremely trappy - it isn't obvious when first including the library that it will just explode when calling certain things which depend on the optional dependency. I discovered it when we first added it, worked around it, and then the issue came back to bite us multiple times in the future as the project got rearranged and people doing the rearranging weren't aware of the requirement.

We tried modifying the POM ourselves and uploading a vendored version of JDOM. This worked until someone later accidentally updated it without modifying the POM for the new version.

We tried using Gradle client module dependencies to add the explicit dependency from the build, and that seemed to work until we discovered a bug in Gradle which makes it not use the extra dependencies in some obscure situation.

Now we're trying adding both dependencies together in all projects on our side, but I can already see a situation where someone will add one without adding the other.

JDOM could separate the classes which depend on Jaxen into a separate artifact, which would clean this up hugely, but removing it would solve the issue too.

@wltjr
Copy link

wltjr commented Apr 9, 2019

For JDOM on Gentoo, I just remove Jaxen support entirely, it is pretty trivial, delete a folder and then remove an import.

For Jaxen, I remove jdom-1.x support and leave jdom-2.x.

That way Jaxen can still use JDOM but JDOM does not depend on Jaxen. Nothing seems to require Jaxen support in JDOM. I haven't run into anything yet, and doubt I ever will.

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

No branches or pull requests

3 participants