Skip to content

refactor: consolidate lib modules into four domain-cohesive libraries#5844

Merged
paullatzelsperger merged 1 commit into
eclipse-edc:mainfrom
paullatzelsperger:refactor/lib-consolidation
Jun 25, 2026
Merged

refactor: consolidate lib modules into four domain-cohesive libraries#5844
paullatzelsperger merged 1 commit into
eclipse-edc:mainfrom
paullatzelsperger:refactor/lib-consolidation

Conversation

@paullatzelsperger

@paullatzelsperger paullatzelsperger commented Jun 25, 2026

Copy link
Copy Markdown
Member

What this PR changes/adds

Implements the decision record
2026-06-18-lib-module-consolidation

New module Absorbs
jsonld-lib json, json-ld, transform, validator
core-lib query, crypto-common, keys, token, encryption, auth-{authentication,authorization}-oauth2, verifiable-credentials, decentralized-claims(+sts-remote), jersey-providers, boot, http, nats, util, sql, api, management-api
control-plane-lib policy-engine, policy-evaluator, store, control-plane-policies, catalog-util, control-plane-transfer-provision, state-machine
dsp-lib the 13 data-protocols/dsp/dsp-lib modules — the {catalog,negotiation,transfer-process} × {http-api,transform,validation} matrix, dsp-version-transform-lib, and three empty meta modules

All ~150 consumer build.gradle.kts, the dist/bom/ BOMs and settings.gradle.kts are rewritten to the new paths.

Why it does that

implements the D-R

Further notes

  • Breaking change for downstream adopters: the published Maven coordinates of the merged libraries disappear; their content now ships in one of the four modules above. In some cases adopters will have superfluous code on their
    classpath, as accepted in the D-R.
  • jws2020-lib is left standalone, because it is constrained by a dependency on :extensions:common:json-ld; it can be folded into core-lib in a later iteration.
  • Removes a latent dead dependency in control-plane-spi (an unused implementation of the former util-lib, now part of core-lib); it had no usages and would otherwise invert the spi ← lib layering into a cycle.
  • The four libraries form an acyclic graph layered above the SPI modules: jsonld-lib → spi; core-lib → jsonld-lib + spi; control-plane-lib → core-lib + spi; dsp-lib → jsonld-lib + spi.

Who will sponsor this feature?

TODO: @-mention the sponsoring committer.

Linked Issue(s)

n/a — tracked via the decision record.

🤖 Generated with Claude Code

Implements the decision record 2026-06-18-lib-module-consolidation, the
companion to the SPI module consolidation: the ~42 fine-grained *-lib modules
are merged into four coarse, domain-cohesive implementation libraries and the
layout is flattened.

- jsonld-lib         (json + json-ld + transform + validator)
- core-lib           (generic, non-connector library code: query, crypto-common,
                      keys, token, encryption, auth-{authentication,authorization}-oauth2,
                      verifiable-credentials, decentralized-claims(+sts-remote),
                      jersey-providers, boot, http, nats, util, sql, api, management-api)
- control-plane-lib  (connector-specific: policy-engine, policy-evaluator, store,
                      control-plane-policies, catalog-util,
                      control-plane-transfer-provision, state-machine)
- dsp-lib            (collapses the 13 data-protocols/dsp/dsp-lib modules — the
                      {catalog,negotiation,transfer-process} x {http-api,transform,
                      validation} matrix, dsp-version-transform-lib, and three empty
                      meta modules — into a single library)

jws2020-lib is left standalone, as it is constrained by a dependency on
:extensions:common:json-ld; it can be folded into core-lib in a later iteration.

All ~150 consumer build files, the BOMs and settings.gradle.kts are rewritten to
the new module paths. A latent dead dependency in control-plane-spi (an unused
implementation dependency on the former util-lib, now part of core-lib) is
removed; it had no usages and would otherwise invert the spi<-lib layering into a
cycle.

The resulting libraries form an acyclic graph layered above the SPI modules:
jsonld-lib -> spi; core-lib -> jsonld-lib + spi; control-plane-lib -> core-lib +
spi; dsp-lib -> jsonld-lib + spi.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@paullatzelsperger paullatzelsperger added the refactoring Cleaning up code and dependencies label Jun 25, 2026
@paullatzelsperger paullatzelsperger marked this pull request as ready for review June 25, 2026 10:03
@paullatzelsperger paullatzelsperger requested a review from a team as a code owner June 25, 2026 10:03
@paullatzelsperger paullatzelsperger merged commit dc3cef5 into eclipse-edc:main Jun 25, 2026
30 of 34 checks passed
@paullatzelsperger paullatzelsperger deleted the refactor/lib-consolidation branch June 25, 2026 11:36
paullatzelsperger added a commit to eclipse-edc/IdentityHub that referenced this pull request Jun 26, 2026
* chore: adopt consolidated EDC lib modules

Adopts the consolidated EDC lib module structure. The EDC Connector merges its
~42 fine-grained *-lib artifacts into four (core-lib, jsonld-lib,
control-plane-lib, dsp-lib); this remaps IdentityHub onto the new coordinates:

- consolidates the gradle/libs.versions.toml lib aliases onto the new modules
  (edc-lib-core, edc-lib-jsonld, edc-lib-controlplane); edc-lib-jws2020 is
  unchanged, as the Connector deliberately leaves jws2020-lib standalone,
- remaps all libs.edc.lib.* accessors across the build files and removes the
  now-redundant duplicate catalog dependency entries.

Depends on the upstream consolidation (eclipse-edc/Connector#5844) being merged
and published; verified locally against a publishToMavenLocal build (full
compileJava/compileTestJava/compileTestFixturesJava pass).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* trigger ci

* trigger ci

* stabilize launcher test

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
paullatzelsperger added a commit to eclipse-dataspace-hub/MinimumViableDataspace that referenced this pull request Jun 26, 2026
* chore: adapt to new lib module structure

Adapts the Minimum Viable Dataspace to the consolidated EDC lib module
structure. The EDC Connector merges its ~42 fine-grained *-lib artifacts into
four (core-lib, jsonld-lib, control-plane-lib, dsp-lib); this remaps the MVD's
gradle/libs.versions.toml lib coordinates onto the new modules:

- transform-lib, json-ld-lib -> jsonld-lib
- crypto-common-lib, keys-lib, token-lib -> core-lib
- jws2020-lib is unchanged, as the Connector leaves it standalone.

The lib aliases are consolidated accordingly and the duplicate catalog
dependency entries removed across the build files.

Depends on the upstream consolidation (eclipse-edc/Connector#5844) being merged
and published; verified locally against a publishToMavenLocal build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* trigger ci

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
paullatzelsperger added a commit to eclipse-dataspace-hub/jad that referenced this pull request Jun 26, 2026
* chore: adapt to new lib module structure

Adapts JAD to the consolidated EDC lib module structure. The EDC Connector
merges its ~42 fine-grained *-lib artifacts into four (core-lib, jsonld-lib,
control-plane-lib, dsp-lib). JAD depends only on libs that now ship in core-lib
(http, util, sql, token, keys, auth-authentication-oauth2), so the six
edc-lib-* catalog aliases collapse to a single edc-lib-core and the build files
are remapped accordingly.

The now-redundant test-only http dependency is dropped: core-lib is a main
implementation dependency, so it is already on the test classpath.

Depends on the upstream consolidation (eclipse-edc/Connector#5844) being merged
and published; verified locally against a publishToMavenLocal build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* trigger ci

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactoring Cleaning up code and dependencies

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants