80: Introduce an explicit Hub-managed JavaFX runtime service
This commit is contained in:
+18
-6
@@ -21,8 +21,8 @@
|
||||
<h1>Nenjim</h1>
|
||||
<p class="status"><strong>Implementation status:</strong> Journal format version 1, the immutable Java model,
|
||||
internal strict parser, read-only <code>JournalService</code> with a Hub-managed process implementation,
|
||||
passive explicitly refreshed <code>JournalServiceManager</code>, and the first central component Registry
|
||||
are implemented. Contexts,
|
||||
passive explicitly refreshed <code>JournalServiceManager</code>, Hub-managed
|
||||
<code>JavaFxRuntimeService</code>, and the first central component Registry are implemented. Contexts,
|
||||
resolution, classloading, discovery, runtime loading/removal, downloading, publishing, synchronization,
|
||||
watching, signatures, permissions, and license filtering remain future work.</p>
|
||||
|
||||
@@ -117,6 +117,14 @@ PREFERRED=nenjim:com_r35157_nenjim-hubd-api=1.0.3:'Built together'</code></pre>
|
||||
<code>.valuetypes</code>, and <code>.exception</code>, while parser, ingestion, chain state, filesystem
|
||||
loading, and the admin boundary live under <code>.impl.ref</code> without leaking through public
|
||||
signatures.</p>
|
||||
<p>All modern JavaFX applications share one JVM-wide toolkit. The Hub constructs one
|
||||
<code>JavaFxRuntimeServiceImpl</code>, registers it as <code>nenjim.javafx-runtime.service</code>, starts it
|
||||
through its <code>NenjimProcess</code> view, and injects its lifecycle-free service view into active Mission
|
||||
Control and Process Manager. All six modern JavaFX implementations require that service in their constructor.
|
||||
Only service startup calls <code>Platform.startup(...)</code>; task submission never initializes or retries
|
||||
JavaFX and is rejected until startup succeeds. Startup waits until the JavaFX Application Thread is ready and
|
||||
sets <code>Platform.setImplicitExit(false)</code>, keeping the shared runtime alive after the last window
|
||||
closes.</p>
|
||||
<pre><code>data/nenjim/journals/
|
||||
└── <artifact-coordinate>/
|
||||
├── <journal-version>.journal
|
||||
@@ -146,11 +154,15 @@ PREFERRED=nenjim:com_r35157_nenjim-hubd-api=1.0.3:'Built together'</code></pre>
|
||||
assembly for <code>data/nenjim/journals</code>, registers <code>nenjim.journal.service</code>, starts Journal
|
||||
second, and records it only after complete successful loading. Only then does the Hub construct the hardcoded
|
||||
business component graph in dependency order. A Journal failure therefore stops startup before Ticker,
|
||||
Evelyn, Burner, Mission Control, the online point, and the blocking wait.</p>
|
||||
Evelyn, Burner, the JavaFX runtime, Mission Control, Process Manager, the online point, and the blocking
|
||||
wait.</p>
|
||||
<p>The Ticker explicitly selects the Raydium EVE/USDT source ID while the hardcoded source remains registered but
|
||||
inactive. After Registry and Journal, the Hub activates only the existing explicit five-business-process
|
||||
sequence; it does not start every registered process. Successful process IDs are exposed as immutable ordered
|
||||
point-in-time snapshots, without implying continued health.</p>
|
||||
inactive. After Registry and Journal, the Hub activates the explicit Ticker, Production Evelyn, Test Evelyn,
|
||||
Production IOU Burner, JavaFX runtime service, Mission Control, and Process Manager sequence; it does not
|
||||
start every registered process. The shared JavaFX runtime is therefore active before either enabled JavaFX
|
||||
application. Successful process IDs, including <code>nenjim.javafx-runtime.service</code>, are exposed as
|
||||
immutable ordered point-in-time snapshots without implying continued health. A JavaFX startup failure is
|
||||
fail-fast and prevents Mission Control and Process Manager from starting.</p>
|
||||
<p><code>com.r35157.nenjim.hubd.Main</code> remains only the outer Java bootstrap. It constructs the reference Hub
|
||||
through the public <code>NenjimHub</code> interface and calls <code>start()</code> once. The Hub is neither a
|
||||
component nor a process and is not registered inside its own Registry.</p>
|
||||
|
||||
Reference in New Issue
Block a user