Task
Remove onContextUpdate and the migrated state fields from the core app/SPI once all consumers are migrated. (Prereq: T6.)
This is the breaking cleanup that completes the facility → plugin conversion.
Scope
BlockNodePlugin: remove the onContextUpdate(BlockNodeContext) default method.
BlockNodeContext (spi-plugins): remove the fields now owned by the plugin — applicationStateFacility, tssData, nodeAddressBook, storedBlocks, availableBlocks — and the corresponding Builder mutators (tssData, nodeAddressBook, storedBlocks, availableBlocks). (Leave blockNodeVersions/ServerStatusPlugin ownership to its own effort unless trivially coupled.)
BlockNodeApp: drop implements ApplicationStateFacility; remove startApplicationStateFacility / stopApplicationStateFacility / checkForApplicationStateUpdates / updateBlockNodeContext and the staging fields and scan executor; remove the updateTssData / updateAddressBook / addStoredBlockRange / addAvailableBlockRange implementations (now in the plugin).
- Remove the now-unused
ApplicationStateConfig registration from BlockNodeApp (moved to the plugin in T2).
Acceptance
BlockNodeContext carries only infrastructure concerns (configuration, metricRegistry, serviceLoader, threadPoolManager, and remaining infra facilities) per design §BlockNodeContext.
- No reference to
onContextUpdate remains anywhere in the codebase.
- Node builds and starts;
init()/start()/stop() lifecycle unaffected for other plugins.
Task
Remove
onContextUpdateand the migrated state fields from the core app/SPI once all consumers are migrated. (Prereq: T6.)This is the breaking cleanup that completes the facility → plugin conversion.
Scope
BlockNodePlugin: remove theonContextUpdate(BlockNodeContext)default method.BlockNodeContext(spi-plugins): remove the fields now owned by the plugin —applicationStateFacility,tssData,nodeAddressBook,storedBlocks,availableBlocks— and the correspondingBuildermutators (tssData,nodeAddressBook,storedBlocks,availableBlocks). (LeaveblockNodeVersions/ServerStatusPluginownership to its own effort unless trivially coupled.)BlockNodeApp: dropimplements ApplicationStateFacility; removestartApplicationStateFacility/stopApplicationStateFacility/checkForApplicationStateUpdates/updateBlockNodeContextand the staging fields and scan executor; remove theupdateTssData/updateAddressBook/addStoredBlockRange/addAvailableBlockRangeimplementations (now in the plugin).ApplicationStateConfigregistration fromBlockNodeApp(moved to the plugin in T2).Acceptance
BlockNodeContextcarries only infrastructure concerns (configuration,metricRegistry,serviceLoader,threadPoolManager, and remaining infra facilities) per design §BlockNodeContext.onContextUpdateremains anywhere in the codebase.init()/start()/stop()lifecycle unaffected for other plugins.