feat(editor): F4.6c the software installation on a computer's desktop

A new oracle, InstallRun, installs each of Java's programs on new
computers, all of them on one, each installed and removed again, and a
DNS and an e-mail server installed again after their removal; Java saves
the result as a project. A new program is switched off (a computer's
firewall is on), makes the folders and files it lacks (the web server's
start page in FILIUS' language and its picture, /peer2peer,
/mailserver/konten.txt, /dns/hosts), and removing it takes its settings
and leaves its files; a server installed again reads its records or
accounts from them. Java installs in the order of its list and starts
the program at once.

The document's setSoftware does the same, checked against Java's saved
installation. The core knows what a program makes in the files and
installs or removes a program while the simulation runs; the room
watches the document's programs and hands changes to the engine, so a
new command line works at once. The desktop offers Java's dialog with
two lists, arrows, double click and apply changes.

Also: Java's file may name a number it rolled by the result of any
getter (an idref, here a thread's priority); GetterDefaults now
measures the priority of the saved thread classes, which the import
read as 0 before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 15:03:35 +00:00
co-authored by Claude Opus 5.5
parent ac48e969f4
commit f0e7c73ec7
29 changed files with 1264 additions and 52 deletions
+27
View File
@@ -1265,3 +1265,30 @@ Gemessen (03.10.2026):
Javas Terminal setzt den Ordner nur bei der Installation
(`setSystemSoftware`), und das Fenster ist dasselbe Objekt.
### Software-Installation (F4.6c)
`InstallRun` installiert jedes Programm aus Javas Liste, wie
`GUIInstallationsDialog.aenderungenSpeichern` es tut
(`installAndStartAppIfAvailable`), auf einem eigenen neuen Rechner, alle auf
einem („Alle“), jedes einmal mit anschließendem `entferneSoftware`
(„Entfernt-…“), dazu einen DNS-Server mit Eintrag und einen E-Mail-Server
mit Konto, die entfernt und neu installiert werden („Wieder-…“); Java
speichert das als Projekt (`packages/doc/test/fixtures/installed-programs.fls`).
Gemessen (03.10.2026):
* Ein neues Programm ist aus (kein Server läuft); die Firewall eines
Rechners dagegen ist sofort aktiv (verwerfen, UDP filtern).
* Es legt an, was fehlt: der Webserver `/webserver` mit Javas Startseite in
der Sprache, in der FILIUS läuft, und `splashscreen-mini.png` (nur, wenn
noch keine `index.html` da ist), Gnutella `/peer2peer`, der E-Mail-Server
`/mailserver/konten.txt` (leer), der DNS-Server `/dns/hosts` (leer).
* Entfernt, verschwinden Programm und Einstellungen; die Dateien bleiben.
Neu installiert, liest der DNS-Server seine Einträge aus `/dns/hosts`, der
E-Mail-Server seine Konten aus `konten.txt`.
* Gnutellas Teilnehmerzahl würfelt der Konstruktor (3 bis 5); die Datei
verweist darauf mit `idref` auf irgendeine frühere gleiche Zahl — hier den
Rückgabewert von `iconTextGap` (4) oder einer Thread-Priorität (5).
Darum misst `GetterDefaults` jetzt auch `#priority` der gespeicherten
Thread-Klassen (alle 5), die vorher unaufgelöst als 0 gelesen wurden.