Skip to content

Conversation

@sugan0tech
Copy link
Contributor

Added the Vertical Slice Architecture #2373. previous PR: #2828

@github-actions
Copy link

github-actions bot commented Feb 7, 2025

PR Summary

This PR introduces the Vertical Slice Architecture design pattern. The application is organized by feature, each with its own models, services, repositories, and views. This improves modularity and reduces mocking needs. New files include models, services, repositories, views, tests, and updated documentation.

Changes

File Summary
pom.xml The pom.xml file was modified to include the new vertical-slice-architecture module.
vertical-slice-architecture/README.md This README describes the Vertical Slice Architecture, its intent, explanation with real-world examples, class diagrams, applicability, and resources.
vertical-slice-architecture/etc/vertical-slice-architecture.urm.png New file: Class diagram for the Vertical Slice Architecture.
vertical-slice-architecture/etc/vertical-slice-architecture.urm.puml New file: PlantUML class diagram for the Vertical Slice Architecture.
vertical-slice-architecture/pom.xml This file configures the Maven project for the vertical-slice-architecture module, including dependencies for Spring Boot, JPA, and H2 database.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/App.java This is the main application class for the vertical slice architecture example. It uses Spring Boot for dependency injection and configuration.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/Runner.java This class initializes and populates the database with sample data for testing purposes. It uses Spring's CommandLineRunner interface.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/Customer.java This is the entity class for Customer, representing a customer in the system. It uses JPA annotations for database persistence.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/CustomerRepository.java This is the repository interface for Customer, providing methods for database interaction. It extends Spring Data JPA's JpaRepository.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/CustomerService.java This service class provides business logic for Customer operations, such as creating and retrieving customers.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/CustomerView.java This class handles the presentation logic for Customer, displaying customer information.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/OrderRepository.java This is the repository interface for Orders, providing methods for database interaction. It extends Spring Data JPA's JpaRepository.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/OrderService.java This service class provides business logic for Order operations, such as creating and retrieving orders.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/OrderView.java This class handles the presentation logic for Order, displaying order information.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/Orders.java This is the entity class for Orders, representing an order in the system. It uses JPA annotations for database persistence.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/Product.java This is the entity class for Product, representing a product in the system. It uses JPA annotations for database persistence.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/ProductRepository.java This is the repository interface for Product, providing methods for database interaction. It extends Spring Data JPA's JpaRepository.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/ProductService.java This service class provides business logic for Product operations, such as creating and retrieving products.
vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/ProductView.java This class handles the presentation logic for Product, displaying product information.
vertical-slice-architecture/src/main/resources/application.properties This file contains configuration properties for the application, such as database connection details.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/AppTests.java This test class verifies the application context and main method.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/customer/CustomerServiceTest.java This test class contains unit tests for the CustomerService class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/customer/CustomerTest.java This test class contains unit tests for the Customer entity class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/customer/CustomerViewTest.java This test class contains unit tests for the CustomerView class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/order/OrderServiceTest.java This test class contains unit tests for the OrderService class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/order/OrderViewTest.java This test class contains unit tests for the OrderView class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/order/OrdersTest.java This test class contains unit tests for the Orders entity class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/product/ProductServiceTest.java This test class contains unit tests for the ProductService class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/product/ProductTest.java This test class contains unit tests for the Product entity class.
vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/product/ProductViewTest.java This test class contains unit tests for the ProductView class.

autogenerated by presubmit.ai

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (22)
  • a53c5d9: Merge branch 'iluwatar:master' into master
  • b1c2f35: fix: prevent H2 shutdown warnings by disabling DB_CLOSE_ON_EXIT
  • b12e751: fix: align logging dependencies with Spring Boot by excluding incompatible SLF4J and Logback versions
  • 0a39bed: Merge branch 'iluwatar:master' into master
  • 6d83016: Merge branch 'iluwatar:master' into master
  • 7e775f3: Merge branch 'master' into master
  • e704103: Merge branch 'master' into master
  • 08b77c5: added file structure.
  • 70fde67: Merge remote-tracking branch 'origin/master'
  • c52566d: correction updated with pattern template.
  • dda150f: Merge branch 'master' into master
  • 72c9c87: Merge branch 'master' into master
  • b84112d: Merge branch 'master' into master
  • 0b160cb: Merge branch 'master' into master
  • 4e0c2c2: Merge branch 'master' into master
  • 24d5063: Added better explanation and updated README.md
  • cf06c64: Merge branch 'iluwatar:master' into master
  • c189ae9: added more context with example
  • 272cb87: local variable in var declaration
  • 1b130b1: App code coverage changes
  • 3f1828a: fixed code smell
  • 777a5dc: #2373 add: Vertical Slice Architecture.
Files Processed (30)
  • pom.xml (1 hunk)
  • vertical-slice-architecture/README.md (1 hunk)
  • vertical-slice-architecture/etc/vertical-slice-architecture.urm.png (0 hunks)
  • vertical-slice-architecture/etc/vertical-slice-architecture.urm.puml (1 hunk)
  • vertical-slice-architecture/pom.xml (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/App.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/Runner.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/Customer.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/CustomerRepository.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/CustomerService.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/customer/CustomerView.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/OrderRepository.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/OrderService.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/OrderView.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/order/Orders.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/Product.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/ProductRepository.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/ProductService.java (1 hunk)
  • vertical-slice-architecture/src/main/java/com/iluwatar/verticalslicearchitecture/product/ProductView.java (1 hunk)
  • vertical-slice-architecture/src/main/resources/application.properties (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/AppTests.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/customer/CustomerServiceTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/customer/CustomerTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/customer/CustomerViewTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/order/OrderServiceTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/order/OrderViewTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/order/OrdersTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/product/ProductServiceTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/product/ProductTest.java (1 hunk)
  • vertical-slice-architecture/src/test/java/com/iluwatar/verticalslicearchitecture/product/ProductViewTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (0)

@sugan0tech sugan0tech marked this pull request as ready for review February 7, 2025 03:04
@iluwatar
Copy link
Owner

The build is failing. Please ensure that all the checks pass before requesting review.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
  • 0dc87ed: Merge branch 'master' into master
Files Processed (0)
Actionable Comments (0)
Skipped Comments (0)

@github-actions
Copy link

This PR is stale because it has been open 60 days with no activity.

@github-actions github-actions bot added the Stale label Apr 21, 2025
@iluwatar
Copy link
Owner

Closed due to inactivity. Thank you for the contribution.

@iluwatar iluwatar closed this Apr 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants