Skip to content

merge from develop - #97

Merged
juandiii merged 13 commits into
mainfrom
develop
Jul 17, 2026
Merged

juandiii merged 13 commits into
mainfrom
develop

Conversation

@juandiii

@juandiii juandiii commented Jul 7, 2026

Copy link
Copy Markdown
Owner

No description provided.

juandiii added 13 commits June 24, 2026 12:57
…erge validation

ci.yml and deploy-snapshot.yml both triggered on push to main and both
called test.yml — running the full Java matrix (17/21/25 × 22 modules)
twice in parallel for every merge.

Removes ci.yml's push trigger so:
- ci.yml validates PRs to main and develop (gate before merge)
- deploy-snapshot.yml validates the merged state on main + publishes
  snapshot

Same test coverage, half the CI minutes per merge.

Direct pushes to main (bypassing PR) are still test-covered via
deploy-snapshot.yml's preflight -> test chain.
Adds three SVG variants under assets/logo/:
- ark-icon.svg: 128×128 square tile, ark silhouette on teal gradient
  (peaked roof + trapezoidal hull + waves) — for favicons and avatars
- ark-logo.svg: 420×128 icon + wordmark for light theme (slate-900)
- ark-logo-dark.svg: same with near-white wordmark for dark theme

README header replaces the plain '# Ark 🛳' with a centered <h1> wrapping
a <picture> element that swaps between light and dark logo variants based
on the viewer's color-scheme preference. Tagline and badges are now also
centered for a cohesive header.
The 420×128 viewBox left ~150 units of empty space to the right of the
wordmark — when centered in the README, the bounding box was centered
but the visible content appeared off-center to the left.

Tightens viewBox to 280×128 so it matches the actual content bounds:
icon ends at x=120, wordmark ends near x=265. Centering now reflects
the visible content.
…sition

After iterating on wave placement and ark vertical centering, reverts
to the original design with two short side waves at y=96 and the ark
sitting at y=74-102. Cleaner visual composition — waves visible to
both sides of the hull, ark anchored in the lower portion of the tile.
… architecture

Restructures README.md following a flagship-OSS layout:
- Centered logo (picture element, light/dark variants) + tagline + badges
- 'What is Ark?' with emoji-prefixed core capabilities
- Quick Start (declarative + fluent), with explicit Ark/ArkClient.Builder injection
- Frameworks collapsibles (Spring sync, Spring WebFlux, Quarkus, standalone)
- Execution Models table with the 5 supported return-type families
- 'How it compares' table vs Apache HC5, OkHttp, Spring RestClient, OpenFeign
- Architecture mermaid diagram (API surface -> core pipeline -> transport)
- Documentation index, Roadmap with delivered vs upcoming items, License

Notable accuracy fix in the comparison table: Spring RestClient is marked
as supporting declarative interfaces (via @HttpExchange) — present since
Spring Framework 6 / Boot 3.x.
…ving to new add-on

The Vert.x Mutiny transport + Vertx TLS resolver + Mutiny CDI producers
are moved out of ark-quarkus-jackson into a new add-on module
(ark-quarkus-jackson-vertx, added in the next commit). The slim extension
now depends on JDK transport only — no quarkus-vertx, no ark-mutiny, no
ark-transport-vertx-mutiny.

The recorder switches from ArkJaxRsProxy.create to ArkProxy.create so
proxy-provider/execution-model resolution stays Class.forName-based and
does not require MutinyArk on the compile-time classpath.

Users who need the Mutiny/Vertx transport must switch to
ark-quarkus-jackson-vertx (breaking change). The slim recorder throws a
clear IllegalStateException when it encounters a Uni/Multi return type
without the vertx add-on.

Rest of the extension (JDK sync/async, Jackson serializer, @RegisterArkClient
proxy generation, native image support) is unchanged.
… Mutiny transport

Introduces a new Quarkus extension that layers the Vert.x Mutiny transport
on top of the slim ark-quarkus-jackson (JDK-only) extension.

Composition:
- Runtime module (ark-quarkus-jackson-vertx) depends on ark-quarkus-jackson
  + quarkus-vertx + ark-mutiny + ark-transport-vertx-mutiny
- Adds ArkVertxProducer (MutinyHttpTransport + MutinyArkClient.Builder
  CDI producers), ArkVertxRecorder (Mutiny client factory), and
  VertxTlsResolver / QuarkusVertxTlsResolver (moved from the slim
  extension, now under xyz.juandiii.ark.quarkus.vertx.*)
- Deployment module (ark-quarkus-jackson-vertx-deployment) registers the
  Vertx-specific beans, native image proxy hints, and vertx-version.txt
  resources — mirrors the slim ArkProcessor pattern with vertx-only
  content

Interface partitioning strategy: to avoid duplicate synthetic bean
registrations, the slim ArkProcessor skips @RegisterArkClient interfaces
with Uni/Multi return types (detected via Jandex), and the vertx
processor registers only those. Non-reactive interfaces stay with the
slim extension.

Users who need the Mutiny transport switch from:
    <artifactId>ark-quarkus-jackson</artifactId>
to:
    <artifactId>ark-quarkus-jackson-vertx</artifactId>

The slim extension continues to work as before for JDK-only usage.
…aking change)

- docs/quarkus-jackson.md: adds 'Which extension?' section explaining the
  two artifacts and when to pick each, and splits the CDI bean table
  between slim-only and vertx-add-on beans
- README.md: Quarkus collapsible now shows both artifact IDs
- CHANGELOG.md: [Unreleased] Breaking section documents:
  - Split of ark-quarkus-jackson into slim + -vertx add-on
  - Package move for VertxTlsResolver/QuarkusVertxTlsResolver from
    xyz.juandiii.ark.quarkus.* to xyz.juandiii.ark.quarkus.vertx.*
  - Slim extension no longer transitively pulls Vert.x deps
…slim deployment pom

Follow-up to plan 026 split. After the slim ArkProcessor stopped
referencing any Vert.x classes (QuarkusVertxTlsResolver moved to the
vertx add-on, Mutiny proxy provider reflection entries moved, Vert.x
native resources moved), the quarkus-vertx-deployment dep in the slim
deployment module is dead weight.

Removing it keeps the slim extension's dep graph consistent with its
'JDK-only' promise.
Follow-up to plan 026 split. Adds two entries to ark-bom so users
importing the BOM can pull the vertx add-on without specifying a
version explicitly:

- xyz.juandiii:ark-quarkus-jackson-vertx (runtime)
- xyz.juandiii:ark-quarkus-jackson-vertx-deployment (deployment)

Matches the existing pattern used for ark-quarkus-jackson + -deployment.
@github-actions github-actions Bot added the feat label Jul 7, 2026
@juandiii
juandiii merged commit 2713907 into main Jul 17, 2026
5 checks passed
@juandiii juandiii added this to the v1.0.8 milestone Jul 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant