apache / apache/lucene

xercesImpl has split packages with the JDK (required transitively by benchmarks) [LUCENE-10337]

Open
#11,373 0 comments 0 reactions 0 assignees View on GitHub
legacy-jira-priority:Minor type:enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.