Highlights
The UI chrome (topbar, header, and footer) has been resynced with the
current jakarta.ee design (Solstice v2), and the sync is now automated so
future jakarta.ee changes flow in overnight instead of requiring a manual
port.
Changes since ui-2.0.12
- Chrome resync with jakarta.ee. Adopt Solstice v2 styles/JS, updated
Facelets template, Open Sans + Exo fonts. - Site branding is now data, not code. The topbar and footer HTML are
fetched verbatim from jakarta.ee and inlined at render time, instead of
being ported into hand-maintained XHTML fragments. This removes XHTML
strictness pitfalls when jakarta.ee ships arbitrary HTML markup. - Files moved to the classpath. The topbar/footer HTML now lives under
ui/src/main/resources/site-branding/and ships inWEB-INF/classes/,
so it is not publicly reachable.SiteBrandingreads it via
getClass().getResourceAsStream(...)and no longer depends on
ServletContext. - Nightly auto-sync. A new
sync-site-brandingjob in
.github/workflows/nightly.ymlrunsui/scripts/fetch-site-branding.py
each night and pushes any drift as a bot commit. The script sends a
browserUser-Agent(jakarta.ee's CDN 403's the default
Python-urllib/*) and verifies known markers before writing, so drift
either lands cleanly or fails loudly without corrupting the tree.