JRebel
JRebel ist ein von ZeroTurnaround entwickeltes Werkzeug, welches das dynamische Deployen von Java Web-Applikationen in einem sogenannten Applikations-Server unterstützt. Damit wird veränderter Java-Code ad-hoc im Applikationsserver verwendet und es ist kein Redeploy oder Hotdeploy nötig.<ref name="computerwoche_jrebel">JRebel ermöglicht dynamisches Deployment in Java. Computerwoche, 27. Juli 2013, abgerufen am 22. Mai 2016.</ref>
| JRebel
| |
|---|---|
| [[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)|150px]] | |
| Basisdaten
| |
| Maintainer | Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value) |
| Entwickler | ZeroTurnaround |
| Erscheinungsjahr | 2007 |
| Aktuelle Version | 2026.3.0 (6. Juli 2026) |
| Aktuelle Vorabversion | Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1703: attempt to index field 'wikibase' (a nil value)) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | Java |
| Kategorie | Programmierwerkzeug |
| Lizenz | ZeroTurnaround EULA |
| zeroturnaround.com | |
Prinzip und Umsetzung[Bearbeiten]
JRebel ist als JVM „-javaagent“ Plugin umgesetzt und wird als ein einziges JAR-File ausgeliefert. Es integriert sich als solches in die Class-Loader der JVM und des Applikationsservers. Dabei werden keine neuen Class-Loader erstellt oder bestehende gewrapped. Werden Klassen vom Class-Loader geladen, versucht JRebel die zugehörige .class Datei zu finden und speichert sich den Timestamp dieser Datei. Dieser wird dann überwacht und bei Änderungen werden diese über den class-loader an die laufende Applikation weitergegeben. Dabei werden bestehende Instanzen dieser Klasse erhalten. Sollte allerdings eine Member-Variable hinzugekommen sein, wird diese nicht initialisiert, da der Konstruktor nicht erneut aufgerufen wird.<ref name="jrebel_faq">ZeroTurnaround JRebel FAQ. zeroturnaround, abgerufen am 22. Mai 2016.</ref>
Lizenz[Bearbeiten]
JRebel ist in einem Mietlizenzmodell für 1, 2 oder 3 Jahre erhältlich.<ref name="jrebel_jrebel">ZeroTurnaround JRebel Buy. ZeroTurnaround, abgerufen am 22. Mai 2016.</ref>
2011 stellte ZeroTurnaround mit der Version 4.5 eine frei verfügbare Lizenz für nicht-kommerzielle Projekte vor. Um die Lizenz zu erwerben, muss man sich mittels Facebook oder Twitter registrieren. Mit der Registrierung werden Benutzungsstatistiken des Werkzeugs über die sozialen Medien geteilt. Der Name social JRebel wurde später auf myJRebel geändert.<ref name="heise_jrebel">JRebel mit Update und kostenfreier Social-Edition. Heise, 21. September 2011, abgerufen am 22. Mai 2016.</ref>
JRebel.Android[Bearbeiten]
Im Jahr 2015 stellte ZeroTurnaround JRebel.Android vor. Dieses Werkzeug erlaubt es, ähnlich wie die Desktop-Variante, dynamische Deployments, nur auf Android-Geräten. Dabei wurde die Plugin Architektur um einen Service erweitert, welcher auf der Entwicklermaschine läuft. Dieser Service überwacht Änderungen in den Resource-Ordnern der Android Applikation und schickt sie als für JRebel transformierten Bytecode an den Agenten, welcher am Android Gerät läuft. Dieser Agent übernimmt dann die geänderten Klassen in die laufende Android-Applikation.<ref name="ieee_jrebel_android2">R. Raudjärv, A. R. Gregersen: JRebel.Android: Runtime Class- and Ressource Reloading for Android. 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Florence 2015, doi:10.1109/ICSE.2015.337, S. 741–744.</ref>
Weblinks[Bearbeiten]
Einzelnachweise[Bearbeiten]
<references />