4.7 KiB
Corrected NeitzelLib development artifact
The Component builder fix is integrated in NeitzelLib main at 2d83fb4. It collects FXML values, initializes the injected Component and installs its Model listener, then applies values using public FXMLLoader conversion. Both Components in the regression fixture retain the same Model reference; invalid properties and values fail.
Artifact identity
Use de.neitzel.lib:fx:1.0-SNAPSHOT with its matching parent, core and injection artifacts. The manifest records the exact source commit and SHA-256 hashes of seven installed POM/JAR artifacts. These artifacts are installed in the developer's local Maven repository, not deployed to a remote artifact repository. No corrected released minimum is established and no release tag was created. A source commit on main is not a published release.
python3 scripts/check-neitzellib-artifact.py
# For a non-default Maven repository:
python3 scripts/check-neitzellib-artifact.py --repository /path/to/repository
This check detects an absent or overwritten snapshot. Maven coordinates alone are insufficient. Artifact bytes have also been compared against every tested compiled class in the isolated build. A fresh rebuild can change JAR timestamps, so it must be validated and its manifest deliberately refreshed; a checksum mismatch must not be automatically accepted.
Evidence
- Unmodified library main plus the new regression fixture: seven tests, one expected loading error in
componentAttributesApplyAfterInitialization. Maven reported success because its POM hardcodestestFailureIgnore=true; the XML result correctly identified the failure. - Corrected isolated main-based build: core 1, injection 10, fx 101 tests, all passing with zero failures, errors or skips. The Component test class contains seven passing cases.
- Adapter-free Kit canvas/runtime smoke scenario: 38 passing checks, including direct loading of the saved original FXML. It used JavaFX 21.0.7 in the target and the existing Kit 26 prototype host.
clean installcompleted using JDK 21 and the library's Maven 3.9.11 wrapper, including its configured report-generation/package phases. Test report totals, not the Maven exit status alone, are the test acceptance evidence. This does not claim new module-path, plugin or cross-platform qualification.
Rebuild from clean source
Use a clean checkout at the manifest's source revision; the canonical library checkout currently also contains unrelated native-desktop work. Keep that work separate. Run:
# In the clean NeitzelLib checkout, with JAVA_HOME pointing to JDK 21:
./mvnw -B -ntp -pl fx -am -Dversions.skip=true -Dmaven.test.failure.ignore=false clean install
The command-line failure-ignore property does not override the existing hardcoded POM setting. Inspect every TEST-*.xml report under core, injection and fx: require nonempty reports and zero failures/errors/skips before accepting the install. Re-run the direct adapter-free scenario before changing the recorded capability baseline. Record source revision and installed artifact hashes together after acceptance; do not silently reuse the old hashes for a new build.
The regression source covers custom/inherited properties, numeric/boolean/enum conversion, XML text escaping, attached layout constraints, post-initialization setters, shared Model identity/write-back and invalid values. The original canonical library branch and its working-tree changes were left untouched; only the isolated eight-file Component change was integrated into main.
Generated ViewModel runtime extension — 2026-11-13
The active development snapshot now includes NeitzelLib 90e08b7: stored-property access and generated defaults. The earlier Component baseline above remains historical qualification. The new isolated clean build passed core 1, injection 10 and fx 105 tests with no failures/errors/skips. Every installed class was compared with the tested class output before updating the manifest hashes. The canonical library checkout and its unrelated changes remain untouched. No released minimum or remote artifact publication is claimed.
Designer fixtures additionally verify generated runtime behavior in real classpath and module-path applications. The library build evidence is /tmp/viewmodel-runtime-qualified.log; generated fixture evidence is /tmp/generated-vm-fixtures-final.log. The prior 38 adapter-free checks remain historical; current whole-host qualification is recorded with the generated ViewModel slice.