Error Prone on Java 17 and beyond

Java Bibliotheken

The Error Prone library from Google is a useful tool for detecting unnecessary Bug Patterns in your own sources. When converting some of my own libraries to Java 17, the Error Prone checks suddenly stopped working. The problem was quickly identified, but fixing it was a real strain on the developer’s patience..

Von Buddies und Agenten – dynamische Codegenerierung in Java

Java Bibliotheken

Manchmal reichen die üblichen Möglichkeiten der Programmiersprache nicht aus und die exotischeren Ansätze müssen zum Einsatz kommen. Angefangen bei ClassLoader, Reflections, ServiceLoader, über AnnotationProcessor und JavaAgents bis hin zum Modifizieren des Bytecodes.

Automatisch generierte Enum Converter (2)

Im vorherigen Beitrag wurde ein Annotation Processor vorgestellt, mit dem AttributeConverter für Enum Klassen automatisch generiert werden können. Kaum war dieser fertig gestellt, bahnten sich schon die ersten Änderungen an. Die WithEnumConverter Annotation erhält die neuen Attribute ordinal, nullKeyForbidden, exceptionIfMissing und verliert das Attribut representation

Automatisch generierte Enum Converter

In diesem Beitrag finden zwei meiner Steckenpferde hier im Blog zusammen. Es sind die Annotation Processors und die Enums. Beide gemeinsam können ein schon lange bestehendes Problem der Enums auf recht elegante Weise lösen.

Unterschiede finden mit dem Java Annotation Processor (Teil 3)

In den ersten und zweiten Beitrag dieser Reihe wurde ein Annotation Processor implementiert, der bei der Feststellung von Unterschieden zwischen zwei Java Beans unterstützt. In diesem Beitrag soll die Implementierung für Collection Klassen und Bean Strukturen erweitert werden.

Unterschiede finden mit dem Java Annotation Processor (Teil 2)

Im ersten Beitrag wurde die Implementierung eines AnnotationProcessor vorgestellt, der Vergleichsklassen erzeugte. Um zwei Instanzen einer Klasse ExampleBean zu vergleichen, muss nur ein spezielles Interface definiert werden, um automatisch eine passende Implementierung zu erhalten.

Unterschiede finden mit dem Java Annotation Prozessor

Ein traditionelles Problem in der Software Entwicklung ist die Bestimmung von Unterschieden zwischen zwei Instanzen einer Klasse. Um das Problem zu lösen gibt es eine ganze Reihe von Möglichkeiten.
In diesem Beitrag wird der Ansatz, eigenen Vergleichscode zu schreiben, mit der Verwendung einer AnnotationProcessor Implementierung verbunden, um den Vergleichs-Code automatisch erstellen zu lassen.

Hamcrest Matcher Generator (Teil 2)

Im vorherigen Beitrag wurde die grobe Struktur eines Generators für Hamcrest Matcher vorgestellt. In diesem Beitrag vervollständigen wir den Entwurf, in dem die losen Enden verknüpft und die tatsächlichen Matcher-Klassen generiert werden.