A goofy aggregator of cartoon information that demonstrates some practical concepts from Spring's built-in messaging capabilities.
This project gave me opportunity to experiment with Spring Integration, and its messaging and control bus concepts.
Aggregates cartoon data from two sources:
- PoorlyDrawnLines (RSS feed)
- ComicsRss (RSS feed; only selected subfeeds)
- XKCD (JSON)
On startup each source is pulled according to configuration, then pulled data is converted into internal application model, combined and sorted by publication date with most recent records first. Result is exposed over a simple REST endpoint on a default path @ localhost:8080.
Once initial fetch is complete, periodic check for latest updates is issued, and the results are updated. If this app is ran for a long enough period of time that would allow a remote source to publish new data, it will eventually fetch latest data and update its endpoint, while removing the oldest publication(s) to remain within the fetch limit.
Sources are pulled using org.springframework.integration.dsl.IntegrationFlow
.
Directly with maven:
mvn clean spring-boot:run
or packaged with docker:
mvn clean package
docker-compose up
App running in Firefox
Additional integrations should be easy. Here is list of potential sources: