Connect minimal hosts to snapshots, target workers and shared Kit editing
This commit is contained in:
@@ -1,18 +1,20 @@
|
||||
# Neitzel FX Designer
|
||||
|
||||
Shared Scene Builder Kit designer for NeitzelLib FX, with planned standalone and IntelliJ hosts.
|
||||
Shared Scene Builder Kit designer for NeitzelLib FX, with minimal standalone and IntelliJ hosts.
|
||||
|
||||
## Current state
|
||||
|
||||
The repository builds six shared Maven modules, a Maven capture plugin and a separate IntelliJ adapter plugin. Document transactions, native undo, build execution/cancellation, explicit runtime mappings and lifecycle services have initial implementations and tests. The shared UI exposes a Kit construction seam. There is **no runnable designer application or registered IntelliJ designer editor yet**. See [module and host boundaries](docs/module-host-boundaries.md) for the implemented scope and limitations.
|
||||
The first workflow is runnable in both hosts: Build and Refresh publishes immutable snapshots; authenticated target workers discover examples and render parent/Component FXML drafts into the shared Kit canvas. Source and supported canvas edits use host-owned documents and undo/redo. See [the connected workflow](docs/first-connected-workflow.md) for architecture, launch commands, evidence and limits.
|
||||
|
||||
Configuration 1.0 schemas, context selection, local JDK mappings and draft protocol validation are now executable. See [configuration and protocol](docs/configuration-and-protocol.md) for formats, limits and the remaining Maven/worker integration.
|
||||
The repository builds six shared Maven modules, a Maven capture plugin and a separate IntelliJ adapter plugin. Application code runs only in target JVMs. The minimal UI supports scalar/layout projection; full binding/generation editing, structural editing and product packaging remain later work.
|
||||
|
||||
Configuration 1.0 schemas, context selection, local JDK mappings and draft protocol validation are now executable. See [configuration and protocol](docs/configuration-and-protocol.md) for formats and validation rules.
|
||||
|
||||
The shared [Build and Refresh workflow](docs/build-and-refresh.md) now builds isolated reactor copies and publishes immutable, leased snapshots, with explicit save approval and last-successful-build selection.
|
||||
|
||||
The [preview API and target adapter](docs/preview-target-fixtures.md) are validated with real classpath and named-module NeitzelLib applications, including bindings, rendering, readiness and cleanup. Each preview session requires a fresh target JVM.
|
||||
|
||||
The Component builder fix is integrated in NeitzelLib main. A [verified local development snapshot](docs/runtime/neitzellib-baseline.md) is recorded with source/artifact identity; a corrected released version is still unestablished. NeitzelLib sources and prototype implementations are not copied here.
|
||||
The Component builder fix is integrated in NeitzelLib main. A [verified local development snapshot](docs/runtime/neitzellib-baseline.md) is recorded with source/artifact identity; a corrected released version is still unestablished. NeitzelLib sources are not copied here; the narrow Kit text-selection patch has explicit provenance and regression coverage.
|
||||
|
||||
## Validate the foundation
|
||||
|
||||
@@ -22,16 +24,35 @@ Requirements: JDK 25 for builds, JDK 21 for target linkage validation, Python 3.
|
||||
python3 scripts/check-bootstrap.py --idea-home "$IDEA_HOME" --target-java-home "$TARGET_JAVA_HOME"
|
||||
```
|
||||
|
||||
On macOS `IDEA_HOME` points to the IDE application's `Contents` directory. The current SDK check uses its macOS product-info layout; other platforms are not qualified. The command checks runtime artifact hashes, clean-builds/installs the Maven modules, tests the adapters, checks bytecode baselines, runs target linkage under the supplied target JDK, builds the plugin ZIP, runs the real Maven snapshot and target-preview fixtures, and validates documentation. It does not install or publish NeitzelLib.
|
||||
On macOS `IDEA_HOME` points to the IDE application's `Contents` directory. The current SDK check uses its macOS product-info layout; other platforms are not qualified. The command checks runtime artifact hashes, clean-builds/installs the Maven modules, tests the adapters, checks bytecode baselines, runs target linkage under the supplied target JDK, builds the plugin ZIP, runs the real Maven snapshot and target-preview fixtures, checks the connected workflow in both document adapters and native standalone Kit windows, and validates documentation. Real registered IntelliJ UI qualification is a separate command below. It does not install or publish NeitzelLib.
|
||||
|
||||
Maven is pinned to **3.9.11** (Wrapper **3.3.4**); the separate IntelliJ build uses **Gradle 9.1.0** and IntelliJ Platform Gradle Plugin **2.20.1**. Wrapper distributions have pinned checksums. Shared-module-only validation is `./mvnw -B -ntp clean verify`; it does not qualify IntelliJ packaging. Plugin output is under `designer-intellij/build/distributions/`.
|
||||
|
||||
## Run the minimal hosts
|
||||
|
||||
After the full build, launch a disposable fixture with either command; add `--mode modulepath` for named modules:
|
||||
|
||||
```sh
|
||||
python3 scripts/run-fixture-host.py standalone --java-home "$JAVA_HOME" --target-java-home "$TARGET_JAVA_HOME"
|
||||
python3 scripts/run-fixture-host.py intellij --java-home "$JAVA_HOME" --target-java-home "$TARGET_JAVA_HOME" --idea-home "$IDEA_HOME"
|
||||
```
|
||||
|
||||
The IntelliJ launcher isolates settings/plugins and disables bundled Scene Builder embedding while retaining JavaFX/FXML language support. Select **Neitzel Designer**, then **Build and Refresh**. Both hosts use JavaFX/Kit 26, with the fixture application running separately on Java 21 / JavaFX 21.0.7.
|
||||
|
||||
Qualify the registered editor and loaded JavaFX natives in real disposable IDE windows:
|
||||
|
||||
```sh
|
||||
python3 scripts/check-ide-host.py --java-home "$JAVA_HOME" --target-java-home "$TARGET_JAVA_HOME" --idea-home "$IDEA_HOME"
|
||||
```
|
||||
|
||||
These graphical checks require a macOS desktop session; other platforms are not qualified. See [workflow limits](docs/first-connected-workflow.md#limits-and-next-stage) before using arbitrary application documents.
|
||||
|
||||
## Implementation references
|
||||
|
||||
- [Initial project contract](docs/initial-project-contract.md): module responsibilities, configuration, snapshots, runtimes, preview sessions and communication.
|
||||
- [Repository bootstrap plan](docs/repository-bootstrap-plan.md): ordered work packages and acceptance gates. Next: connect the first workflow in both minimal hosts.
|
||||
- [Repository bootstrap plan](docs/repository-bootstrap-plan.md): ordered work packages and acceptance gates. Bootstrap work packages 1–7 are implemented; next is authoritative document editing and generalizing the Kit projection.
|
||||
- [Decision provenance](docs/provenance.md): workspace planning and captured prototype evidence.
|
||||
- [Third-party notices](THIRD-PARTY-NOTICES.md): Maven wrapper provenance.
|
||||
- [Third-party notices](THIRD-PARTY-NOTICES.md): Maven wrapper and patched Kit source provenance.
|
||||
|
||||
The canonical checkout is `/Volumes/PlanckSSD/KI/java/NeitzelFXDesigner`. Its Git remote is `ssh://git@gitea.neitzel.de:2222/konrad/NeitzelFXDesigner.git` and its default branch is `main`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user