Skip to main content

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:

  • MetaStore
  • MetaStoreProvider
  • MetaResourceProvider
  • MetaBootstrap

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:

  • MetaStore
  • MetaResourceProvider
  • MetaBootstrap

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 source
  • MetaResourceProvider: resource source
  • MetaBootstrap: startup-time metadata initialization

Suggested Readingโ€‹