Add the implementation of Onion-Architecture#3532
Conversation
PR SummaryImplemented Onion Architecture with domain, application, and infrastructure layers, including domain models, use cases, repository abstractions, adapters, REST API, tests, and documentation. The solution enforces dependency direction: domain stays core, while Changes
autogenerated by presubmit.ai |
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- 1086832: Add the implementation of Onion-Architecture
Files Processed (30)
- onion-architecture/README.md (1 hunk)
- onion-architecture/application/pom.xml (1 hunk)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/dto/PersonResponse.java (1 hunk)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/dto/SavePersonCommand.java (1 hunk)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/usecase/GetPersonUseCase.java (1 hunk)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/usecase/SavePersonUseCase.java (1 hunk)
- onion-architecture/application/src/test/java/com/iluwatar/onion/application/usecase/GetPersonUseCaseTest.java (1 hunk)
- onion-architecture/application/src/test/java/com/iluwatar/onion/application/usecase/SavePersonUseCaseTest.java (1 hunk)
- onion-architecture/domain/pom.xml (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/exception/DomainException.java (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/model/Category.java (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/model/Person.java (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/repository/PersonRepository.java (1 hunk)
- onion-architecture/domain/src/test/java/com/iluwatar/onion/domain/model/CategoryTest.java (1 hunk)
- onion-architecture/domain/src/test/java/com/iluwatar/onion/domain/model/PersonTest.java (1 hunk)
- onion-architecture/etc/onion-architecture.png (0 hunks)
- onion-architecture/etc/onion-architecture.puml (1 hunk)
- onion-architecture/etc/postman/onion-architecture.postman_collection.json (1 hunk)
- onion-architecture/infrastructure/pom.xml (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/Application.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/config/ApplicationConfig.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/JpaCategoryEntity.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/JpaPersonEntity.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/PersonRepositoryAdapter.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/SpringDataPersonRepository.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/web/PersonController.java (1 hunk)
- onion-architecture/infrastructure/src/main/resources/application.properties (1 hunk)
- onion-architecture/infrastructure/src/main/resources/data.sql (1 hunk)
- onion-architecture/infrastructure/src/test/java/com/iluwatar/onion/infrastructure/persistence/PersonRepositoryAdapterTest.java (1 hunk)
- onion-architecture/infrastructure/src/test/java/com/iluwatar/onion/infrastructure/web/PersonControllerTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (2)
-
onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/model/Person.java [57-61]
best_practice: "Validate non-empty names in domain model"
-
onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/repository/PersonRepository.java [31-40]
maintainability: "Repository findAll return type design"
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- 49fa99d: Execute maven command: mvn spotless:apply
Files Processed (21)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/dto/PersonResponse.java (1 hunk)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/dto/SavePersonCommand.java (1 hunk)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/usecase/GetPersonUseCase.java (1 hunk)
- onion-architecture/application/src/main/java/com/iluwatar/onion/application/usecase/SavePersonUseCase.java (1 hunk)
- onion-architecture/application/src/test/java/com/iluwatar/onion/application/usecase/GetPersonUseCaseTest.java (1 hunk)
- onion-architecture/application/src/test/java/com/iluwatar/onion/application/usecase/SavePersonUseCaseTest.java (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/exception/DomainException.java (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/model/Category.java (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/model/Person.java (1 hunk)
- onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/repository/PersonRepository.java (1 hunk)
- onion-architecture/domain/src/test/java/com/iluwatar/onion/domain/model/CategoryTest.java (1 hunk)
- onion-architecture/domain/src/test/java/com/iluwatar/onion/domain/model/PersonTest.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/Application.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/config/ApplicationConfig.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/JpaCategoryEntity.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/JpaPersonEntity.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/PersonRepositoryAdapter.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/persistence/SpringDataPersonRepository.java (1 hunk)
- onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/web/PersonController.java (1 hunk)
- onion-architecture/infrastructure/src/test/java/com/iluwatar/onion/infrastructure/persistence/PersonRepositoryAdapterTest.java (1 hunk)
- onion-architecture/infrastructure/src/test/java/com/iluwatar/onion/infrastructure/web/PersonControllerTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (4)
-
onion-architecture/application/src/main/java/com/iluwatar/onion/application/usecase/GetPersonUseCase.java [60-75]
best_practice: "Potential Java version compatibility issue in executeAll"
-
onion-architecture/application/src/main/java/com/iluwatar/onion/application/dto/SavePersonCommand.java [29-37]
maintainability: "DTO includes unused address field"
-
onion-architecture/infrastructure/src/main/java/com/iluwatar/onion/infrastructure/web/PersonController.java [63-70]
maintainability: "Improve error response on validation failure"
-
onion-architecture/domain/src/main/java/com/iluwatar/onion/domain/model/Person.java [64-68]
maintainability: "Validate names should also check for blank values"
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3532 +/- ##
============================================
+ Coverage 83.28% 83.39% +0.11%
- Complexity 4023 4089 +66
============================================
Files 1060 1073 +13
Lines 14246 14414 +168
Branches 686 687 +1
============================================
+ Hits 11865 12021 +156
- Misses 2094 2107 +13
+ Partials 287 286 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
issue: #3231
What does this PR do?
This PR is the implementation of the Onion Architecture architectural pattern.
The project contains 3 modules:
This os the first Pr and there is no fix for the moment