Skip to content

fix(#1998): explicit SolrJ 10 module packaging (HTTP-only, no Jetty/ZK) - #2009

Merged
natechadwick merged 2 commits into
mainfrom
fix/issue-1998-solrj-explicit-modules
Aug 5, 2026
Merged

natechadwick merged 2 commits into
mainfrom
fix/issue-1998-solrj-explicit-modules

Conversation

@natechadwick-intsof

Copy link
Copy Markdown
Collaborator

Summary

Slice 3 of parent epic #1788 (Solr / SolrJ packaging for non-transitive modules). Coordinates with #1997 client choice (HttpJdkSolrClient).

Stacks on the #1997 cutover commit (same branch history as PR #2008). Prefer merge order: #2008 first then this, or merge this PR (includes cutover + packaging) and close #2008 as superseded for the overlapping cutover commit. Do not merge Dependabot #1777 as a substitute.

Packaging decisions

Coordinate Product status Notes
solr-solrj On tree Core HTTP client (HttpJdkSolrClient). system optional + WebUI explicit WAR packaging
solr-api Transitive of core Explicitly managed to ${solr.version}
solr-solrj-jetty Off tree (managed only) #1997 chose JDK HTTP path; multi-stream multipart Jetty path not productized
solr-solrj-zookeeper Off tree + enforcer banned HTTP-only policy (#1673); CloudSolrClient uses Solr URLs, not ZK hosts
zookeeper / zookeeper-jute Enforcer banned Unchanged empty-tree mitigation

Changes

Area Change
Root dependencyManagement Explicit coords for solr-solrj, solr-api, solr-solrj-jetty, solr-solrj-zookeeper
Root solr-solrj exclusions Keep ZK exclusions; drop stale Jetty/Netty exclusions (not transitively pulled by SolrJ 10 core)
Enforcer Ban org.apache.solr:solr-solrj-zookeeper in addition to ZK jars
Jackson/Netty comments Confirm SolrJ 10 still needs com.fasterxml Jackson 2.x under product tools.jackson 3.x; Netty not a SolrJ 10 core transitive
system/pom.xml Comment: core only; no jetty/ZK modules
WebUI/pom.xml Keep solr-solrj — system marks it optional; WebUI must package it for WAR runtime (PSSolrDeliveryHandler); no WebUI Java imports
Tests packagingPolicy_optionalSolrModulesNotOnClasspath asserts Jetty/ZK client classes absent

Test plan

  • PSSolrDeliveryHandlerTest — 14 tests (incl. packaging policy), Failures: 0
  • system dependency tree: solr-solrj → solr-api only (no jetty/ZK)
  • WebUI dependency tree: solr-solrj → solr-api only
  • Enforcer bans prevent accidental ZK / solr-solrj-zookeeper reintroduction
  • No Dependabot-only build(deps): bump org.apache.solr:solr-solrj from 9.10.1 to 10.0.0 #1777 merge

Gates evidence

Gate Result
Erlang self-review No bugs; portable paths N/A (POM + classpath test); companions: depMgmt + enforcer + module comments + policy unit test
Spotless mvnw.cmd -DspotlessFiles=… spotless:apply then spotless:check (BUILD SUCCESS); only in-scope files committed (out-of-scope Spotless hits discarded)
Module clean install cd system && ..\mvnw.cmd clean install → BUILD SUCCESS; Tests run: ~1025, Failures: 0, Errors: 0, Skipped: ~237
WebUI clean install cd WebUI && ..\mvnw.cmd clean install → BUILD SUCCESS
Change-class SolrJ packaging: root management + exclusions + enforcer + system/WebUI declaration comments + classpath policy test

Operator

Operator: Grok: night-issue-prs (model grok-4.5)

Fixes #1998
Related #1788 #1997 #1673 #2008

Parent #1788 slice 2. Bump solr.version 9.10.1 -> 10.0.0 together with real
Java changes (never a bare pin).

- Replace removed Apache-HttpClient HttpSolrClient with HttpJdkSolrClient
- Cloud path: Solr URL Builder + withDefaultCollection (ZK stays excluded)
- ContentStreamUpdateRequest.addFile(Path); document single-stream extract
  vs removed setUseMultiPartPost (multi-stream multipart -> #1998 jetty)
- Unit tests: construction branches + mocked delete/commit without network
- Keep SolrConfigLoaderTest green

Gates: cd system && ../mvnw clean install (BUILD SUCCESS; Tests run: 1076,
Failures: 0); Spotless apply then check (in-scope only).

Fixes #1997
Related #1788 #1996

> Co-Authored by Grok Build using grok-4.5 with agent main.
SolrJ 10 optional modules are non-transitive. Manage solr-solrj, solr-api,
solr-solrj-jetty, and solr-solrj-zookeeper in root dependencyManagement;
declare only solr-solrj on system (optional) and WebUI (WAR packaging for
optional system dep). Keep solr-solrj-jetty off tree (HttpJdk path from
#1997). Enforcer-ban solr-solrj-zookeeper + ZK jars (#1673). Drop stale
Jetty/Netty exclusions on solr-solrj core (not transitively pulled in 10).
Update Jackson 2.x pin comments for dual tools.jackson 3.x runtime.
Add packaging policy unit test that jetty/ZK client classes are absent.

Fixes #1998
Related #1788 #1997 #1673

> Co-Authored by Grok Build using grok-4.5 with agent main.
@natechadwick-intsof natechadwick-intsof added operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow model:grok-4.5 Grok 4.5 model labels Aug 5, 2026
@natechadwick
natechadwick merged commit 795cc52 into main Aug 5, 2026
6 checks passed
@natechadwick
natechadwick deleted the fix/issue-1998-solrj-explicit-modules branch August 5, 2026 14:25
natechadwick pushed a commit that referenced this pull request Aug 5, 2026
#2075)

Parent #1788 slice 5 — docs/closure only (no solr.version re-bump;
already 10.0.0 on main via #2009).

- Operator release notes peer to Derby 548 style under
  docs/ai-generated/tasks/1788-solrj-10/release-notes-8.2-solrj-10.md
  (server matrix 9.x vs 10.x, base URL /solr, HTTP-only / no ZK,
  extract + Tika Server on Solr 10; links inventory + verification plan)
- Cross-link slice tables in 00-inventory.md and 01-verification-plan.md
- Dependabot: ignore org.apache.solr:* semver-major after intentional 10.x
  so bare major bumps like #1777 do not reopen; patch/minor still allowed

Gates: docs + dependabot.yml only (no Maven module clean install).
Spotless apply then check; commit in-scope only (out-of-scope Spotless
hits left uncommitted).

Fixes #2000
Related #1788 #1777 #2009 #2010

> Co-Authored by Grok Build using grok-4.5 with agent main.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model:grok-4.5 Grok 4.5 model operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

issue 1788 slice 3: explicit Maven modules / packaging for non-transitive SolrJ bits

2 participants