Erfahren Sie in dieser Ausgabe, welche Auswirkungen und Risiken die Lizenzänderungen durch Oracle mit sich bringen und wie Java-Nutzer darauf reagieren können. Freuen Sie sich außerdem auf einen Artikel über das 10-jährige Jubiläum des iJUG mit spannenden Zahlen und Fakten zu der Vereinsgeschichte. Viel Spaß beim Lesen!
Zum Download
- Java-Tagebuch, Andreas Badelt
- Markus‘ Eclipse-Corner, Markus Karg
- Java: Was ändert sich? Risiken und Handlungsalternativen für Java-Nutzer, Michael Paege
- Gemeinsam großartige Teams schaffen Agile Self-Selection-Prozesse erfolgreich durchführen, Gelesen von: Michael Fritz
- Zehn Jahre iJUG – eine Erfolgsgeschichte, Stefan Koospal
- Calliope-Workshop, Tino Sperlich
- Microservices mit dem Helidon Framework, Marcel Amende
- CQRS und Event Sourcing mit dem Axon Framework, Christian Iwanzik
- Objektorientierte Programmierung als bewusste Entscheidung, Torben Fojuth
- BootsFaces: JSF in Zeiten von Angular, React und Co. Stephan Rauh
- GraphQL für Java-Anwendungen, Nils Hartmann
- Eine moderne und konsistenteImplementierung natürlicher Ordnung bei Java- Objekten – Teil 1, Christian Heitzmann
- Implementierung von Event-Storming-Modellen mit Axon, Sven-Torben Janus
- iOS-Apps in Java, Thomas Künneth
Implementierung von Event-Storming-Modellen mit Axon (S. 53 - 60)
Sven-Torben Janus
public class Produktempfehlung {
@Inject
private EmpfohleneProdukte empfohleneProdukte;
@Inject
private Repository<Warenkorb> warenkoerbe;
@QueryHandler
public List<UUID> on(EmpfohleneProdukteQuery query) {
return empfohleneProdukte.findByKundenId(query.getKundenId());
}
@EventHandler
public void on(WarenkorbBestellt event) {
List<EmpfohlenesProdukt> bestellteProdukte = warenkoerbe.load(event.getWarenkorbId().toString())
.invoke(Warenkorb::getProdukte).keySet()
.stream()
.map(Produkt::getProduktId)
.map(produktId -> new EmpfohlenesProdukt(event.getKundenId(), produktId))
.collect(Collectors.toList());
empfohleneProdukte.removeAll(bestellteProdukte);
}
@EventHandler
public void on(ProduktAusWarenkorbEntfernt event) {
empfohleneProdukte.add(new EmpfohlenesProdukt(event.getKundenId(), event.getProduktId()));
}
}
Listing 8


