Skip to content

fabenan-f/code-kata-rtl

Repository files navigation

Aufgabe:

Eine Java Spring Boot Applikation (✅) schreiben mit folgenden Anforderungen: Der Bean ArticleImporterService steht zur Verfügung (via eine Maven-Dependency) und liefert eine Liste von Artikeln zurück, wenn die Methode retrieveArticles() aufgerufen wird (✅):

(❕Annahme: Artikeldaten sind kurzlebig, nicht für immer aufrufbar -> siehe Zwischenspeicher in MongoDB bei fehlgeschlagenen CMS Import)

public interface ArticleImporterService { 
	List<Article> retrieveArticles();
}

Article ist ein Pojo:

public class Article { 
   private String id; 
   private String title; 
   private String kicker; 
   private Markup articleText; 
   private Date creationDate; 
   private List<Picture> pictures; 
   private Status status; 
... etc 
}

Die Applikation sollte periodisch (alle 5 Minuten z.B.) die obige Methode abrufen, um Artikel zu bekommen. (✅ Cron-Job)

Die von dem obigen Service gelieferten Artikel sollten via einer Rest API in einem CMS erstellt werden: Create (POST): https:/cms-rest-api/create

{ 
	"title": "xxx", 
	"kicker": "yyy", 
	"articleText": "zzzy 
	"creationDate": "12/09/2022", 
	"pictures": { 
		  ... 
	}, 
}

(✅ Rest-Client)

Wenn der Create-Aufruf fehlschlägt, sollte die Applikation nochmal versuchen (nach 10 Minuten z.B.) den jeweiligen Artikel zu erstellen.
(✅ Retry-Mechanismus: Exponential Backoff + Daten werden in MongoDB zwischengespeichert, wenn Import trotzdem fehlschlägt, und mit zweiten Cron-Job importiert)

Die Applikation sollte zukünftig in Kubernetes Clusters deployed werden, deshalb sollte die verschiedenen Parameter konfigurierbar sein (Rest API Endpoint, die Zeiten für die periodischen Abrufe, etc ). (✅ Werte können in application.properties konfiguriert werden)

Die Applikation muss nicht lauffähig sein.

Zwei Möglichkeiten Applikation in Aktion zu sehen:

  • Integrationstests: mvn test
  • Simples Docker Compose: docker-compose up

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors