© andrea crisante/Shutterstock.com
Manifold - Außerirdische Technik für die dynamische Erweiterung von Javas Typsystem

Nicht von dieser Welt


Manifold wirkt extraterrestrisch. Das Framework ermöglicht Entwicklern, das Typsystem von Java dynamisch und nahtlos zu erweitern. Wir untersuchen die neuartige Technik und beobachten, wie Manifold die Java-Entwicklung attraktiver und produktiver macht.

So futuristisch das „Einsatzprotokoll“ erscheint, es entspricht zu 100 Prozent den Tatsachen. Manifold ist als Open-Source-Projekt von Manifold Systems [1] verfügbar; ob es sich um eine rekonstruierte Alientechnologie handelt, muss noch geklärt werden. Sie können Manifold mit Ihrem neuen oder bestehenden Java-Projekt nutzen.

Einsatzprotokoll

Einsatzort: GEHEIM
Termin: 24.11.17
Uhrzeit: 22:15 Uhr
Programmierer: GEHEIM
Sprache: Java
Software: IntelliJ IDEA

Details zum Vorfall: Zielperson erstellt eine JSON-Datei, Person.json, als Java-Ressource im Paket com.abc. Die Zielperson begann sofort mit der Verwendung der JSON-Datei aus Java-Klassen im Projekt, als ob es sich bei ihr um eine Java-Klasse vom Typ com.abc.Person handele. Als die Zielperson Eigenschaften der JSON-Datei änderte und hinzufügte, wurden die Änderungen augenblicklich an anderer Stelle im Projekt per Codevervollständigung usw. verfügbar. Später führte die Zielperson einen Rename Refactor an der JSON-Datei durch, es erfolgte eine Umbenennung von Person zu Kontakt. Alle Referenzen zu Person wurden ohne Verzögerung in Kontakt abgeändert. Weiterhin führte die Zielperson mehrere Suchanfragen und Refactorings an den JSON Properties und -Typen durch, alle zeigten ein Verhalten, als wenn es sich bei JSON um Java handeln würde.

Auffallend ist, dass es keine generierten Klassendateien auf der Festplatte gab, die mit der JSON-Datei korrespondierten, nachdem die Zielperson das Projekt kompiliert hatte – keine zusätzlichen Build-Schritte, keine Artefakte. Die Zielperson erstellte mehrere Tests für das Projekt und führte sie ohne Zwischenfälle durch. Die JVM schien die JSON-Datei als Java-Klassendatei zu verwenden. Es waren keine zusätzlichen Class Loader involviert, es wurden keine Runtime-Agenten verwendet. Nur eine einzige .jar-Datei im Klassenpfad kam zum Einsatz: manifold.jar.

Es wurden ähnliche Ereignisse mit JavaScript-Dateien, Properties und verschiedenen anderen beobachtet. Die Technologie scheint mit jeder Art von Datenquelle kompatibel zu sein. Offenbar kann mit der Technologie das Typsystem von Java nach Belieben erweitert werden. Andere in jüngster Zeit beobachtete Zielpersonen führten andere absonderliche Aktivitäten durch. Extension Methods wurd...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang