MetaStore Extension
The framework now exposes metadata definition sources through the MetaStore SPI, so the platform-table implementation is no longer the only possible metadata source.
Available Extension Points
The current metadata SPI surface includes:
MetaStoreMetaStoreProviderMetaResourceProviderMetaBootstrap
These contracts are located under cn.geelato.core.meta.spi in geelato-core.
Default Implementation
The current module-internal default implementation is DefaultMetaStore.
Its responsibility is to:
- load table definitions from the current platform table structure
- load columns, views, checks, and foreign keys
- return metadata definition bundles by entity name or view name
This keeps compatibility with the current platform schema while opening the door for replacement.
How It Is Wired
MetaConfiguration now carried by geelato-web-runtime supports optional bean injection for:
MetaStoreMetaResourceProviderMetaBootstrap
If the host application provides those beans, MetaManager uses them before continuing with package scanning, database metadata parsing, and optional bootstrap logic.
Typical Replacement Scenarios
Custom MetaStore implementations are appropriate when:
- the project does not use the default platform metadata tables
- metadata comes from a configuration center
- metadata comes from JSON, YAML, or the file system
- metadata must be composed from multiple sources at startup
Suggested Boundary
Keep responsibilities separate:
MetaStore: metadata definition sourceMetaResourceProvider: resource sourceMetaBootstrap: startup-time metadata initialization