1.9 KiB
1.9 KiB
Why
Modern JavaFX applications currently submit work through a static helper that silently initializes the JVM-wide toolkit. That hides an active shared lifecycle outside the Registry, Hub startup order, constructor dependency graph, and started-process snapshot established by issues #77 through #79.
What Changes
- Add a minimal
JavaFxRuntimeServicecomponent API with only non-null asynchronous JavaFX Application Thread submission. - Add one reference object that is both the service and a single-attempt
NenjimProcess; only itsstart()initializes JavaFX, waits for readiness, and disables implicit exit. - Construct and register that object as
nenjim.javafx-runtime.service, start it before enabled JavaFX applications, and record it through the existing successful-start mechanism. - Constructor-inject the same service into Mission Control and Process Manager and migrate the four dormant modern JavaFX applications to the same model.
- Remove the static
JavaFxRuntimeutility and document explicit runtime ownership and ordering.
Capabilities
Added Capabilities
javafx-runtime-service: define the public service, process lifecycle, submission rules, consumer injection, and deliberately absent operations.
Modified Capabilities
nenjim-component-registry: add Hub construction, registration, ordering, fail-fast behavior, and started-process tracking for the JavaFX runtime.nenjim-process-manager: replace the implicit static runtime dependency with the injected service while preserving polling and presentation behavior.
Impact
Affected code is limited to the JavaFX runtime boundary, six existing modern JavaFX consumers, Hub composition/startup, directly relevant documentation, and this active OpenSpec change. No configuration, dependency discovery, events, stop/restart lifecycle, window management, health monitoring, headless emulation, or broad legacy migration is introduced.