Java-Objekte versionieren: Gson und JaVers

Hier nur ein kleiner Hinweis auf zwei Java-Bibliotheken, über die ich kürzlich gestolpert bin. Beide verwendet man, wenn man Java-Objekte versionieren möchte, also deren Zustände aufheben, um darauf später zugreifen zu können – also Historisierung, Versionierung – wie man es nennen möchte. Trotzdem beide recht unterschiedlich: Gson mit der guter Einfühung und Dokumentation: Gson ist Read More…

Java-9-Highlights

Diese Woche durfte ich eine Schulung zu Java-9 mitmachen. Dabei habe ich die für mich interessantesten Highlights notiert, die ich hier kurz wiedergeben möchte. Da meines Erachtens das Modulsystem “Jigsaw” das hightlight darstellt, hat es einen eigenen Abschnitt – danach kommt nur noch “Kleinkram”. (Man möge mich belehren, wenn ich da etwas übersehe.) Modularisierung “Jigsaw” Read More…

Heroku bietet “automatisches” Hosting

Internet-Anwendungen kann man auf verschiedenen “Ebenen” hosten: z.B. auf Blech, auf virtuellen Maschinen, in Docker-Containern, auf Funktionsebene (Server-less) etc. Heroku bietet “automatisches” Hosting auf Anwendungsebene (so nenne ich das mal): Das heißt Man schreibt eine Anwendung (z.B. in Java mit Maven etc) und deployt sie, in dem man sie einfach in das Heroku-eigene git-Repository pusht. Read More…

Wann StringBuilder und wann StringBuffer verwenden?

Sowohl StringBuilder als auch StringBuffer machen das erstellen von langen, konkatenierten String effizienter, da Java ja nicht erlaubt, bestehende Strings zu verändern. Aber was ist der Unterschied zwischen beiden? Hier steht die simple Antwort. Kurzfassung: StringBuffer ist thread-safe und daher etwas weniger effizient. StringBuilder ist nicht thread-safe und dafür etwas effizienter.

Java JMX-Monitoring mit Zabbix

Java JMX-Monitoring erlaubt es, (u.a.) Messwerte aus der Java-Anwendung herauszuholen, zu graphen und zu monitoren. Hier ein Beispiel, das die GC-Werte meiner Beispiel-Anwendung zeigt (zugegebenermaßen etwas “langweilig”, aber das kommt schon noch…): Die grobe Architektur, die dazu nötig ist, sieht bei Zabbix so aus: Um das mit Zabbix hinzubekommen habe ich folgendes gemacht: Das Zabbix-Java-Gateway Read More…

Java Runtime-Debugging

Beide Tools sind Teil des JDK (liegen dort unter bin): jstack: Erstellt Thread-Dumps der laufenden Java-VM. z.B. so jstack -l <pid> Wie man das unter Windows macht, dazu stehen hier ein paar Tipps. Inklusive Hinweise auf PsExec.exe, wenn man unter Windows auch als Admin nicht die nötigen Recht hat, um Services “anzuschauen”. VisualVM (bzw. jvisualvm) Read More…

Feature Toogles in Java

Ich habe zwei Implementierungen zu dem Thema gefunden: Togglz: http://www.togglz.org/ Sehr einfach und schnell zu benutzen. Dürfte trotzdem für die meisten Fälle ausreichen. Feature Flipping for Java: http://ff4j.org/ Deutlich komplexer und mächtiger (Multiple persistance storage, Feature Strategies, Caching etc.) und daher auch für den Anfang unübersichtlicher. Beide sind auf github OpenSource unter der Apache-Lizenz.

Cross-Origin-Requests (CORS) im Griff

CORS (Cross-Origin Resource Sharing) kann einem den letzten Nerv rauben, weil es zwar einfach scheint und eigentlich auch ist, es aber einige Details zu beachten gibt, damit alles klappt. Meine Erkenntnisse dazu: Grundprinzip: Es geht um “Cross-Origin-Requests”, welche normalerweise durch die Same-Origin-Policy (SOP) verhindert werden: JavaScript wird von Webserver “quellsrv” geholt. JS ruft Server “zielsrv” Read More…

reaktives Microservice-Framework “Lagom”

Ein interessant klingenden reaktives Microservice-Framework mit dem Namen “Lagom” von der Firma Lightbend (ex Typesafe), von denen auch andere inderessante Dinge wie Play (Webframework für Scala und Java) und Akka (Framework für Concurrency, Resilience und Message-basierte JVM-Anwendungen) kommen: Lagom-Homepage Artikel dazu auf jaxenter.de Dort findet sich auch ein interessantes Einführungsvideo der Macher.