feat(fls): read and write a project's own applications as their beans
A project's own applications (classes under projekt/anwendungen, installed on a host) are no longer left out. The decoder now keeps the Java type of every primitive — at setters, constructor and call arguments, also through shared ids like Integer0 — and which properties an object's own getter made. beanCapture.ts turns a decoded bean back into what the writer writes, with the node's system software as a mark the writer replaces by the system software it writes; what the format cannot say is refused, not guessed (an unresolved value, a Field, a factory-made object, an object a getter reaches elsewhere in the file). The reader keeps own applications as captured beans; the corpus no longer warns. The capture first took a setter with another object's getter result for an own getter; the round-trip test found it. The Java oracle did not show whether an application runs on its node's system software, so a mutation writing the mark instead survived; it now reports onItsSystem (true for all 192 applications of the corpus). Checked by Java: from the files written again, FILIUS loads Accumulator and Broadcast installed, switched on and on their node's system software, as in the original. The round-trip test covers every primitive, null, a class, an array, shared objects, getter chains, constructed elements, map reads and static constants. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,16 +1,8 @@
|
||||
// Warnings the corpus is expected to produce, shared by the corpus tests.
|
||||
|
||||
/**
|
||||
* Two examples install an application of their own, compiled into the
|
||||
* archive (projekt/anwendungen). Java loads it from there; this reader
|
||||
* cannot run it — and the Java oracle, reading only konfiguration.xml, does
|
||||
* not see it either.
|
||||
* None since the reader keeps a project's own applications as their beans
|
||||
* (beanCapture.ts); until then the two examples that install one warned
|
||||
* that it was left out.
|
||||
*/
|
||||
export const EXPECTED_WARNINGS: Record<string, string[]> = {
|
||||
'java-examples/anwendung_komplett.fls': [
|
||||
"node 1: application filius.software.clientserver.Accumulator is not part of FILIUS (a project's own application), left out",
|
||||
],
|
||||
'java-examples/multicast_server.fls': [
|
||||
"node 1: application filius.software.clientserver.Broadcast is not part of FILIUS (a project's own application), left out",
|
||||
],
|
||||
};
|
||||
export const EXPECTED_WARNINGS: Record<string, string[]> = {};
|
||||
|
||||
Reference in New Issue
Block a user