feat(microfrontend): server-side view:/classpath: resolution for MicroFrontend entries - #78
Merged
Merged
Conversation
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UeR9rN9UEmgyNpzMBctyV4
MicroFrontend#setApp now accepts a "view:" or "classpath:" prefixed entry, resolved in-process by the new MicroFrontendView instead of requiring the bundle's index.html to be copied into src/main/resources/static/: - "view:someapp/index" resolves through the application's registered Spring ViewResolver chain (e.g. ClassPathViewResolver), so the bundle can ship inside any module's jar. - "classpath:microfrontends/someapp/index.html" reads a classpath resource directly, bypassing the ViewResolver chain. Both resolve within the current request/security context, so there is no dedicated HTTP endpoint. The resolved src/css/bodyHtml are sent to the client already populated, so dynamiaMountMicrofrontend skips its own fetch-based discovery when config.src is present. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UeR9rN9UEmgyNpzMBctyV4
Covers isServerResolved's prefix detection, the classpath: happy path (src/css/bodyHtml extraction) and its failure modes (missing resource, relative script src, no <script type="module">), the view: path through a registered ViewResolver (including no resolver matching), and the unsupported-prefix rejection. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UeR9rN9UEmgyNpzMBctyV4
- Spring Boot 4.1.0 -> 4.1.1 (also the hardcoded parent version in examples/demo-zk-books, which doesn't inherit springboot.version). - ZK 10.2.1-jakarta -> 10.3.0.1-jakarta. - AWS SDK 2.44.5 -> 2.54.7. Verified with `mvn dependency:resolve` on platform/ui/zk (ZK/Spring) and extensions/entity-files/sources/s3 (AWS SDK). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UeR9rN9UEmgyNpzMBctyV4
pnpm update -r within currently declared semver ranges (patch/minor only, no package.json range changes): @types/node, @vitest/coverage-v8, eslint, prettier, vite, vite-plugin-dts, vitest, @inquirer/prompts, vue. Left out (require a major bump + testing, not done here): chalk 5->6, execa 9->10, typescript 6->7, vue-tsc 2->3. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UeR9rN9UEmgyNpzMBctyV4
marioserrano09
added a commit
that referenced
this pull request
Sep 4, 2026
Pre-existing on main since #78 (microfrontend-mvc-view), predating this branch's rebase. Same JUnit4->JUnit5 import breakage as the actions module fix in this branch - fixing it here since it blocks any -am reactor build that includes platform/core/web (a dependency of platform/app, needed to verify the #83 controller fix below). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N3MNM7KKfEtqMjVkwe1dXU
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
MicroFrontend#setAppnow acceptsview:orclasspath:prefixed entries, resolved server-side by the newMicroFrontendView, so a microfrontend bundle no longer needs itsindex.htmlcopied intosrc/main/resources/static/.view:someapp/indexresolves through the app's registered SpringViewResolverchain (e.g.ClassPathViewResolver).classpath:microfrontends/someapp/index.htmlreads a classpath resource directly.dynamiaMountMicrofrontendskips its own fetch-based discovery whenconfig.srcis already populated by the server.MicroFrontendViewTestcoverage..claude/repo structure map and validateddynamia-toolsskill.<dynamia-embed>web component for type-agnostic embeds.Test plan
MicroFrontendViewTestadded and passingview:/classpath:entries in a running app🤖 Generated with Claude Code
https://claude.ai/code/session_01F8jzLAqiSJjwVc4d1SUr14