3.6 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.