Skip to content

Add SL4J Extensions & Kotest library#71

Open
rossdanderson wants to merge 9 commits into
mainfrom
sl4jx-consolidation
Open

Add SL4J Extensions & Kotest library#71
rossdanderson wants to merge 9 commits into
mainfrom
sl4jx-consolidation

Conversation

@rossdanderson

Copy link
Copy Markdown
Collaborator

Closes #65

Move the five reactive modules (core, api, kotlin, java-flow,
reactivestreams) physically into reactive/datasource/ so the StreamLink
SDK family can sit beside them under reactive/ later. A projectDir
override in settings.gradle.kts relocates only the directory: the
include coordinates, project paths, published Maven coordinates, and
.api snapshots are all unchanged. Pure structural prefactor — no public
API or behaviour change.

Repoint the CI test-report globs and AGENTS.md module-layout prose at
the new locations.

Closes #66
A variable/parameter/property holding a subject's String form is named
`path`; one typed `Subject` stays `subject` (ADR 0002). Applied across
the public and internal datasourcex surface:

- AntPatternNamespace: match/extract* String params → path.
- reactive.core (Binder, Container, InternalContainerEvent, JsonContext,
  RecordContext): declared String-subject params/vals/properties →
  path / containerPath / rowPath. Caplin SDK property accesses
  (RequestEvent/DiscardEvent/Channel/JsonChannel.subject) and SDK method
  names are left untouched.
- spring.internal DataSourceServerBootstrap: createFlow String params → path.
- BroadcastEvent: `path` is now the property; `subject` retained as a
  @deprecated alias delegating to it, so the only public .api change is
  the additive getPath() (ships in the 3.x minor, no ABI removal).

The buildSrc code generator already emits `path: String`, unchanged.
check + apiCheck green.

Note: the BroadcastEvent constructor parameter is also renamed to `path`.
This is ABI-safe (parameter names are not part of the .api) but is a
source break for Kotlin callers constructing it with the `subject = `
named argument.

Part of #65. Closes #67
…til.Subject

Bring the StreamLink client extensions in as a new published module,
sl4jx-kotlin, at reactive/streamlink/kotlin. Imported as a plain copy on
this repo's toolchain (common-library convention, Kotlin 2.2.21, Kotest
6.2.2, Jackson 3 / slf4j from the Spring Boot BOM).

- Add exact-pinned streamlink/keymaster and kotlin-logging catalog entries.
- Delete streamlinkx.Subject and retarget every reference to the shared
  com.caplin.integration.datasourcex.util.Subject; query parameters now
  render sorted.
- Carry the PSL-889 publish-time POM hack (strip transitive junit:junit
  from StreamLinkJava) verbatim.
- Register the module in settings, datasourcex-version-catalog, api-docs
  (Dokka) and root Kover; commit its .api baseline.
- Correct the stale AGENTS.md claim that datasourcex-util has no
  DataSource SDK dependency.

Closes #68
Align getContainer's onFailure handler with every other trySendBlocking
block, which rethrow CancellationException rather than swallowing it.
…ng of connection lifecycle. Update factories, configurations, tests, and path handling APIs for consistency.
Public value types are plain classes with hand-written equals/hashCode/
toString, never `data class`, so `copy`/`componentN` don't become locked-in
binary surface. See https://jakewharton.com/public-api-challenges-in-kotlin/.

- ADR 0003 records the convention; `AntPatternNamespace` (plain class with a
  hand-written `copy`) is the in-repo exemplar.
- sl4jx: `UpdateEvent`/`StatusEvent`/`ErrorEvent` and `ContainerChange.Added`/
  `Removed` are now uniformly hand-written; rename the `ContainerEvent` alias
  to `ContainerChangeEvent` to stop clashing by simple name with
  `reactive.api.ContainerEvent`.
- kotest: de-`data` `DefaultContainerConfig`/`CustomContainerConfig`/`Liberator`
  — config/handle holders whose generated equality over streams, containers
  and factories was meaningless.
- util: de-`data` `Versioned` and `VersionedMapEvent.Upsert`/`Removed`
  (unreleased), matching the hand-written `MapEvent` family.

.api baselines regenerated; apiCheck green across all modules.
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

Successfully merging this pull request may close these issues.

Spec: consolidate sl4jx into DataSource-Extensions (3.x minor)

1 participant