Skip to content

Blog: declarative router, deep links, and bytecode annotations#5080

Closed
shai-almog wants to merge 1 commit into
masterfrom
blog-declarative-router-and-deep-links
Closed

Blog: declarative router, deep links, and bytecode annotations#5080
shai-almog wants to merge 1 commit into
masterfrom
blog-declarative-router-and-deep-links

Conversation

@shai-almog
Copy link
Copy Markdown
Collaborator

Summary

  • June 4 follow-up post covering PR Declarative router + deep links + bytecode annotation framework #5037: the optional declarative router (@Route("/path"), guards, redirects, per-tab navigation shell, location listeners), the unified cold + warm DeepLink API, the iOS Universal Links / Android App Links JSON generators (AasaBuilder / AssetLinksBuilder), the JavaScript-port window.history bridge, and the reusable bytecode AnnotationProcessor SPI in the Maven plugin.
  • The annotation framework is the foundation several of the rest of this week's posts (ORM, binder, JSON / XML mappers) build on top of, so it gets explained here before the ORM post lands.

File

  • docs/website/content/blog/declarative-router-and-deep-links.md — single new file.

Sequencing

Branches off master; intended to publish after the JUnit post (#5079). Front matter date is 2026-06-04.

Test plan

  • Hugo build of docs/website succeeds.
  • Post renders correctly on the blog index and as a standalone page.
  • Header image is generated at /static/blog/declarative-router-and-deep-links.jpg.

Covers PR #5037: optional declarative router with @route("/path"),
the unified cold/warm DeepLink API, iOS Universal Links / Android
App Links JSON generators (AasaBuilder / AssetLinksBuilder), the
JavaScript-port window.history bridge, and the bytecode annotation
framework the rest of this week's posts (ORM, binder, mappers)
build on top of.

Calls out:
- Router is opt-in; existing Form.show() / showBack() unchanged.
- Annotation processing runs against bytecode rather than source
  text, sharing the BytecodeComplianceMojo ASM pass infrastructure.
- AppArg-based platform plumbing is reused, so iOS and Android need
  no port changes for the deep-link API.
- The surefire bump from 2.22.1 to 3.2.5 fixes the silent zero-test
  symptom under JDK 8.
@github-actions
Copy link
Copy Markdown
Contributor

Cloudflare Preview

@shai-almog
Copy link
Copy Markdown
Collaborator Author

Superseded — consolidating the follow-up posts so this release week ships fewer, broader posts. New merged versions in the follow-up PRs to this one.

@shai-almog shai-almog closed this May 29, 2026
@shai-almog shai-almog deleted the blog-declarative-router-and-deep-links branch May 29, 2026 08:08
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.

1 participant