Source code for Modern Java Recipes (O'Reilly, 2017)
http://shop.oreilly.com/product/0636920056669.do
This project has been modernized and updated with the latest tooling:
- Java 17 (using Gradle toolchain support)
- Gradle 8.14.2 (latest stable)
- JUnit 5.13.2 (migrated from JUnit 4, using BOM management)
- Modern build configuration with dependency management
- Java 17 or later (automatically managed by Gradle toolchain)
- No additional setup required - Gradle wrapper handles everything
# Clone the repository
git clone <repository-url>
cd java_8_recipes
# Run tests
./gradlew test
# Build the project
./gradlew build
- Clone repo or download zip and extract
- Use
File -> Open
or if no project is open,Import
- Navigate to the
build.gradle
file inside the project - Click enter and accept all the defaults
- IntelliJ will automatically configure the project with Java 17
- Open a command prompt in the root of the project
- Type
./gradlew cleanEclipse eclipse
(Unix/Mac) orgradlew cleanEclipse eclipse
(Windows) - Wait for the dependencies to be downloaded
- Choose
File -> Import… -> General -> Existing Projects into Workspace
- Navigate to the root of the project and select it
All tests have been migrated to JUnit 5 and use modern testing patterns:
# Run all tests
./gradlew test
# Run tests with detailed output
./gradlew test --info
# Run specific test class
./gradlew test --tests "concurrency.CompletableFutureTests"
The project contains examples and tests for Java 8+ features including:
- Concurrency: CompletableFuture, parallel streams
- Streams: Operations, collectors, patterns
- Optional: Usage patterns and best practices
- Date/Time: Modern java.time API
- Lambdas: Functional programming patterns
- Collectors: Custom and built-in collectors
- Upgraded from Gradle 7.5.1 to 8.14.2
- Migrated from Java 11 to Java 17 (using toolchain)
- Complete migration from JUnit 4 to JUnit 5
- Modernized dependency management with version catalogs
- Removed deprecated JUnit vintage engine dependency