packages/editor (React 18, Vite) draws a document as Java FILIUS does: Java's
default hardware icons, the device button of JSidebarButton, cables as
JCablePanel's quadratic curve between the buttons' middles, wireless cables
dashed, documentation items below. The surface moves with mouse and finger
(the pointer captured only once it moved) and zooms with Ctrl and the
wheel, a trackpad pinch, two fingers and the zoom bar; the first view shows
all. German and English catalogs with Java's device names, the dashboard's
colour tokens, the bridge with its origin check. packages/doc gets the
drawing's light view of a document.
Java's Switch.cloud (the Internet in the examples) was lost on reading; it
is now read, kept in the model and written, with FlsOracle and the corpus,
written and exported checks renewed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Where the Swift template departs from Java's filius.software.rip, Java's
code rules: a learned route gets 16 hops at the router's next beacon after
it expired (RIPTable.check), not when it expires; messages count from any
source port; each router draws its pauses from a random of its own (Java:
an unseeded Random per router), which the core seeds from the scenario and
the router's id (ripSeed), so that the Java oracle can give it the same.
A route of hop count 0 to each own network, the first beacon after a
second, then every 25.2 to 35.2 s; a message per interface without the
routes through it; a new route or a longer one from the same router sends
at once; forwarding by the table alone, fewest hops before longest mask.
Messages are read with Java's parser (javaIpCheck, javaParseInt, moved from
fls to core for it).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A notebook that joins a switch's wireless network has its card marked
wireless (NetzwerkInterface.setWireless, Betriebssystem.wireless()), next
to the wireless cable. The reader did not read it, the writer did not write
it, and the Java oracle did not report it, so the Java-against-Java writer
test could not see the loss. Found while exporting the editor model: the
corpus has 18 wireless cards, one at each wireless cable.
The oracle now reports `wireless` per interface; FlsInterface has it; the
writer sets it. The synthetic topology has a wireless card; a mutation
probe that drops it is caught by Java.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
topologyWriter.ts writes konfiguration.xml from Java's view of a project:
the version line, the node items (label position, device with name,
host label flags, interfaces or ports), the cable items and the
documentation items. What a device's constructor makes is changed through
getters, as XMLEncoder does, and more is added; fewer than it makes set the
list anew. Cable ends name the port objects the getters return (the writer
now names a getter's result, <void id="Port0" property="port"/>), and each
cable carries the nodes the editor draws it between.
Checked by Java against Java: every corpus file, read and written again,
loads in Java FILIUS (the oracle's loading method, --sha256 ties its result
to the written bytes) to the same devices, names, positions, interfaces,
cables and documentation as the original; so does a synthetic topology with
what the corpus never sets. The oracle and the reader now also report a
cable's drawing ends (JCablePanel ziel1/ziel2): in the corpus the nodes it
joins, for all 183 cables. Mutation probes rewrite the files and let Java
load each mutant.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
readSystemSoftware adds to each node what the topology needs from its
system software: a switch's SSID and learning time, a host's wireless
SSID, a router's RIP switch, the manual routes and the firewall of a
router or home router. All 23 corpus files match Java.
- A router's firewall is one object its constructor hangs in two places;
the corpus writes it under the web server's "konfig" plug-in. The
places are merged.
- The decoder keeps entries a constructor made in a map, reached by
get(key) (installed applications), like the elements of a list.
- The Java oracle loads every file twice and writes values that differ
as null: what FILIUS rolls (MACs, a switch's SSID) without text search.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
readTopology maps the decoded JavaBeans graph to devices, cables and
documentation items the way SzenarioVerwaltung.netzwerkLaden does: the
kind from the Java class (the palette label is not file data), devices
without bounds at 0,0, interface values through Java's setters. All 23
corpus files match Java field by field.
Found on the way:
- listItems mixed a constructor's elements with added ones; a router's
second interface was lost. Lists now replay add/set in order after the
elements the constructor made.
- The first 0 of a file may be SwingConstants.CENTER; measured like the
getter defaults.
- IP.ipCheck (javaIp.ts) measured on 46 cases: empty tokens skipped,
signs, leading zeros and BMP digits of any script accepted.
- The Java oracle took lower-case MACs in a file for random ones (8
interfaces); it now compares case-insensitively and reports the host
name flags.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>