36 lines
2.0 KiB
Markdown
36 lines
2.0 KiB
Markdown
# Carousel PageBlock Feature Plugin Plan
|
|
|
|
**Goal:** Migrate the existing Carousel BusinessBlock into the first trusted, versioned `page-block` Feature Plugin without changing generated source output.
|
|
|
|
## Task 1: PageBlock SPI
|
|
|
|
- [x] Add a specialized `PageBlockFeaturePlugin` contract on top of `FeaturePlugin`.
|
|
- [x] Add structured validation and deterministic generation contribution contexts.
|
|
- [x] Add a plugin type to the common manifest contract.
|
|
|
|
## Task 2: Carousel Release
|
|
|
|
- [x] Publish `page-block.carousel@1.0.0` as a trusted built-in Spring plugin.
|
|
- [x] Declare Adapter/schema compatibility, page-block capability, DSL extension, validator, definition, and seven existing templates.
|
|
- [x] Transfer ownership of the existing Carousel `block.json` definition to the plugin while retaining the resource file.
|
|
|
|
## Task 3: Validation And Generation
|
|
|
|
- [x] Invoke the Carousel plugin validator from `BusinessBlockRegistryService`.
|
|
- [x] Reject Carousel instance configuration keys outside the published definition.
|
|
- [x] Move Carousel primary-key and optional-field Velocity variables out of the shared generation service and into the plugin contribution.
|
|
- [x] Preserve all existing generated paths and template output.
|
|
|
|
## Task 4: ProjectSpec And Resolution
|
|
|
|
- [x] Detect Carousel blocks in page and embedded layouts during legacy ProjectSpec projection.
|
|
- [x] Add exact `page-block.carousel@1.0.0` selection to projected ProjectSpec documents.
|
|
- [x] Reject manually supplied ProjectSpecs that use Carousel without selecting its plugin release.
|
|
- [x] Include the release in the existing resolved execution plan, fingerprint, and Generation Run snapshot.
|
|
|
|
## Task 5: Verification
|
|
|
|
- [x] Add manifest, validator, generation contribution, registry ownership, projection, and resolver tests.
|
|
- [x] Run BusinessBlock/ProjectSpec compatibility tests, full Generator baseline, Admin tests, formatting checks, and frontend health check.
|
|
- [x] Document database publication prerequisites and remaining legacy BusinessBlocks.
|