Posts

Es werden Posts vom September, 2020 angezeigt.

AWS lambda Services mit Spring Boot erstellen

Bild
Amazon Web Services ermöglicht mit Lambda Services Code-Ausführung ohne (eigenen) Server - serverless. Hier wird gezeigt, wie man Lambda Code in Java mit Spring Boot erstellt bzw. wie man ein RestContoller-basiertes Hello World mit AWS Lambda und Spring Boot erstellt.  Spring Boot Lambda Projekt mit Maven Archetype generieren Die AWS Labs bieten ein Maven Archetype Template an, mit dem man sich einfach ein neues Spring Boot Projekt generieren kann. Wenn man Maven installiert und in seiner Shell eingerichtet hat, kann man einfach folgenden Befehl ( Achtung vorher Zeilenumbrüche entfernen ) ausführen: mvn archetype:generate -DgroupId=de.demo  -DartifactId=aws-demo -Dversion=0.0.1 -DarchetypeGroupId= com.amazonaws.serverless.archetypes   -DarchetypeArtifactId= aws-serverless-springboot2-archetype   -DarchetypeVersion= 1.5.1 Das neue Projekt wird im selben Verzeichnis erstellt, in dem auch der Befehl ausgeführt wurde. 💣Archetype Version 1.5.1 generiert einen Bug in der pom.xml Datei, weit

Automatisiertes JUnit-Testing von asynchronen Methoden

Falls Du in Deinen Unit-Test Klassen "Thread.sleep" verwendest, um z.B. die Ergebnisse asynchroner Methoden zu testen, dann zeige ich Dir im folgenden Artikel die clean code Variante. Was ist das Problem mit Thread.sleep in Unit-Tests? Unser Team entwickelt zur Zeit einen Import Service, der große Datenmengen einliest und verarbeitet. Der Import Prozess dauert relativ lange, daher ist eine asynchrone Verarbeitung des Imports eine nahe liegende Lösung, die vereinfacht so aussehen könnte: public void importDataAsync() throws Exception {   // Java 8 lambda expression for a thread.   Runnable asyncImport = () -> {     // Import data takes a long time.     // Writes state 'done' in database,      // when import finished successful.   };   // Java 8 solution to run threads asynchronously.   CompletableFuture.runAsync(asyncImport)n       .orTimeout(120, TimeUnit.SECONDS); } Wie könnte nun ein einfacher JUnit Test dazu aussehen? An anderen Stellen fand ich diese Thread.sle