xercesImpl has split packages with the JDK (required transitively by benchmarks) [LUCENE-10337]
- Dominant language
- Java
- Stars
- 3.6k
- Forks
- 1.4k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 88
Description
Benchmarks require nekohtml, which requires xerces, which has split packages with the JDK. This forces us to require neko in benchmarks module (as an automatic module) but force xerces to be placed on classpath:
```java
moduleImplementation ("net.sourceforge.nekohtml:nekohtml", {
exclude module: "xml-apis"
// Exclude xercesImpl from module path because it has split packages with the JDK
exclude module: "xercesImpl"
})
// Include xercesImpl on regular classpath where it won't cause conflicts.
implementation "xerces:xercesImpl"
```
This workaround works for me but in the long run, it'd be great to fix it upstream somewhere.
---
Migrated from [LUCENE-10337](https://issues.apache.org/jira/browse/LUCENE-10337) by Dawid Weiss (@dweiss)
Linked issues:
- #11364
Contributor guide
Research direction
Start in the benchmarks module dependency configuration shown in the issue and inspect how nekohtml and xercesImpl are placed on the module path or classpath. Reproduce the split-package conflict with the benchmark build; done means the dependency setup no longer requires this workaround without introducing module conflicts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100