Implementation plan (docs-first). No source code changes performed yet; Stage 4 will execute the scoped items below.
- Maven module root (
pom.xml) with parentcom.jwebmp:parent:2.0.0-SNAPSHOT; packagingjar. - Java sources under
src/main/java/com/jwebmp/core/base/angular/...:- Guice lifecycle:
AngularPreStartup,AngularTSPostStartup,AngularTSSiteBinder,AngularScanModuleInclusion. - Vert.x hosting/STOMP bridge inside
AngularTSSiteBinder(routes, StaticHandler, STOMP server, event bus consumer). - TypeScript generation:
JWebMPTypeScriptCompiler(deprecated; transition toTypeScriptCompiler),AngularRoutingModule,TypeScriptCodeGenerator/Validator, env flagAngularTsProcessingConfig. Generation produces Angular source/config scaffolding; it does not execute the Angular build—dist assets must be produced externally. - Component import resolution:
ConfigureImportReferencesimplementsIOnComponentConfigured(registered viaMETA-INF/services/com.jwebmp.core.databind.IOnComponentConfigured) to translate JWebMP component trees into Angular-ready tags/imports/attributes (inputs/outputs) during the JWebMP lifecycle, feeding generated HTML/CSS/index content. - Runtime hosting:
AngularTSSiteBinderbinds Guice modules, configures Vert.x router/HTTP options, serves generated dist assets (assets/, file fallback, SPA fallback), and wires STOMP/WebSocket bridge (/eventbus) plus event-bus consumer dispatching toIGuicedWebSocketlisteners. - npm configuration SPI:
NpmrcConfigurator(usesinmodule-info.java) allows pluggable.npmrccustomization during TypeScript/Angular generation. - Inline Angular structural helpers (
@if,@else,@for,@let) are provided as components undercom.jwebmp.core.base.angular.components(e.g.,NgIf,NgIfElse,NgFor,NgForEmpty,NgElse,NgLet). - Component annotations, modules, directives, and WebSocket receivers under
components,modules,modules/services.
- Guice lifecycle:
- Resources:
META-INF/services/*registering Guice modules, lifecycle hooks, router configurators, WebSocket receivers. - Tests: JUnit Jupiter examples in
src/test/java(component rendering, app/service samples). - Submodule:
rules/fromhttps://github.com/GuicedEE/ai-rules.git(already present).
-
module-info.javadeclaresusesfor:AngularScanPackages,IWebSocketAuthDataProvider,RenderedAssets,NpmrcConfigurator,WebSocketGroupAdd,TypescriptIndexPageConfigurator,IPageConfigurator. Implementations must be available on the module path for runtime discovery. -
Rules Repository updates (restricted to
rules/generative/frontend/jwebmp/angular/and necessary upstream indexes; no host docs inside the submodule):- Refresh the parent README in
rules/generative/frontend/jwebmp/angular/and add cross-links to Angular 20, TypeScript, JWebMP core/client/typescript, GuicedEE, Vert.x, CI/testing rules. - Add modular rule pages outlined in
docs/rules-skeleton.md(overview, type-generation, hosting-messaging, testing) and a release-notes doc; ensure “see also” links point back to the topic README and enterprise indexes. - Keep existing component
.rules.mdfiles under this topic (if present); align anchors to Angular 20 terminology and Log4j2/CRTP guidance.
- Refresh the parent README in
-
Host repository docs:
- Update
README.mdwith “How to use these rules” and glossary alignment note linkingGLOSSARY.mdand the topic glossaries underrules/. - Ensure
GLOSSARY.mdreferences topic-first precedence and points to rule glossaries; keep minimal local definitions. - Reference diagrams from PACT/RULES/GUIDES/IMPLEMENTATION and the refreshed architecture index.
- Update
-
Release/change notes:
- Add or update
RELEASE_NOTES.mdand bump changelog entry summarizing forward-only rule changes (Angular 20 enforcement, Vert.x 5 bridge, TypeScriptCompiler migration path). - Note forward-only behavior and removed legacy anchors if any.
- Add or update
-
CI/docs validation:
- Run link checks (manual review) across README/rules/guides; ensure new rule files are linked from indexes.
- No code/test execution expected unless required to validate doc-generated paths.
- Keep Maven/Java 25 defaults; no new plugins for this docs-only change set.
- Verify
.github/workflows/maven-package.ymlstays aligned with GitHub Actions provider rules and references required secrets. - Call out CI expectations in README/GUIDES (docs only).
- Document
JWEBMP_PROCESS_ANGULAR_TS/jwebmp.process.angular.tsgating in README/GUIDES; highlight STOMP heartbeat defaults and Vert.x host/port expectations if exposed. - Keep
.env.exampleminimal (no secrets); ensure env names match rules and guides.
- Validate Markdown links and anchors across README/GLOSSARY/GUIDES/IMPLEMENTATION and new rule pages.
- Ensure
rulessubmodule changes stay within the intended topic directories; no host docs inside submodule. - Confirm cross-links to diagrams (
docs/architecture/), PROMPT reference, and glossary precedence.
- WebSocket/STOMP security not defined; rules/guides must call out application-layer auth/validation.
- Dist path generation uses
AppUtilsand userwebroot; document directory exposure safeguards in hosting rules. - Component index drift risk in rules submodule; ensure forward-only removal of stale anchors is well-documented in release notes.