In this project, the source code for a Java 5 single threaded web crawler was provided.
The objective was to produce a modern Java 17 application.
The following skills/features were demonstrated
- Crawler configuration via JSON (de)serialisation. Annotations and parsing JSON files (Jackson)
- Concurrent programming by implementing a recursive function and Forkjoinpool
- Functional programming using stream api, lambdas, method references
- Design patterns (e.g. Builder)
- Measuring performance / Profiling by implementing a method interceptor
- Test driven development with Maven