├── .gitattributes ├── .github └── workflows │ └── gradle.yml ├── .gitignore ├── .hocat ├── README.md └── README.zh-CN.md ├── README.md ├── README.zh-CN.md ├── adapter ├── client │ ├── build.gradle.kts │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── demo │ │ │ └── adapter │ │ │ └── client │ │ │ └── inventory │ │ │ ├── InventoryClient.java │ │ │ └── adapter │ │ │ └── DeductInventorAdapter.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── demo │ │ │ └── adapter │ │ │ └── client │ │ │ ├── TestApplication.java │ │ │ └── inventory │ │ │ ├── InventoryClientTest.java │ │ │ └── adapter │ │ │ └── DeductInventorAdapterTest.java │ │ └── resources │ │ └── contracts │ │ └── client │ │ └── inventory │ │ └── inventory.groovy ├── persistence-jdbc │ ├── build.gradle.kts │ ├── compose.yaml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── demo │ │ │ │ └── adapter │ │ │ │ └── persistencejdbc │ │ │ │ ├── JdbcConfiguration.java │ │ │ │ └── person │ │ │ │ └── PersonRepository.java │ │ └── resources │ │ │ └── db │ │ │ └── migration │ │ │ └── V1__Create_person_table.sql │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── demo │ │ │ └── adapter │ │ │ └── persistencejdbc │ │ │ ├── TestApplication.java │ │ │ └── person │ │ │ └── PersonRepositoryTest.java │ │ └── resources │ │ └── application.yaml ├── persistence │ ├── build.gradle.kts │ ├── compose.yaml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── demo │ │ │ │ └── adapter │ │ │ │ └── persistence │ │ │ │ └── order │ │ │ │ ├── OrderEntity.java │ │ │ │ ├── OrderEntityRepository.java │ │ │ │ └── adapter │ │ │ │ └── OrderPersistenceAdapter.java │ │ └── resources │ │ │ └── db │ │ │ └── migration │ │ │ ├── V1__Create_order_table.sql │ │ │ ├── V2__Add_buyer_id_to_orders.sql │ │ │ ├── V3__Add_dates_to_orders.sql │ │ │ └── V4__Add_product_and_quantity_to_orders.sql │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── demo │ │ │ └── adapter │ │ │ └── persistence │ │ │ ├── TestApplication.java │ │ │ └── order │ │ │ ├── OrderEntityRepositoryTest.java │ │ │ └── adapter │ │ │ └── OrderPersistenceAdapterTest.java │ │ └── resources │ │ ├── application.yaml │ │ └── sqls │ │ └── orders.sql ├── web-openapi │ ├── .gitignore │ ├── build.gradle.kts │ ├── specs │ │ ├── components │ │ │ ├── responses.yaml │ │ │ └── schemas.yaml │ │ ├── order.yaml │ │ └── petstore.yaml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── example │ │ │ └── demo │ │ │ └── adapter │ │ │ └── webopenapi │ │ │ └── adapter │ │ │ └── OrdersApiAdapter.java │ │ └── test │ │ └── java │ │ └── com │ │ └── example │ │ └── demo │ │ └── adapter │ │ └── webopenapi │ │ └── adapter │ │ └── OrdersApiAdapterTest.java └── web │ ├── build.gradle.kts │ └── src │ ├── contractTest │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── demo │ │ │ └── adapter │ │ │ └── web │ │ │ ├── ContractTestBase.java │ │ │ ├── OrdersBase.java │ │ │ └── TestApplication.java │ └── resources │ │ ├── application.yaml │ │ └── contracts │ │ └── orders │ │ ├── order-id.groovy │ │ ├── orders.groovy │ │ └── pay.groovy │ ├── main │ └── java │ │ └── com │ │ └── example │ │ └── demo │ │ └── adapter │ │ └── web │ │ ├── WebExceptionHandler.java │ │ ├── order │ │ ├── GetOrderController.java │ │ ├── PayOrderController.java │ │ ├── PlaceOrderController.java │ │ └── adapter │ │ │ ├── GetOrderAdapter.java │ │ │ ├── PayOrderAdapter.java │ │ │ └── PlaceOrderAdapter.java │ │ └── security │ │ └── SecurityConfig.java │ └── test │ └── java │ └── com │ └── example │ └── demo │ └── adapter │ └── web │ └── order │ └── adapter │ ├── GetOrderAdapterTest.java │ └── PlaceOrderAdapterTest.java ├── application ├── build.gradle.kts └── src │ ├── main │ └── java │ │ └── com │ │ └── example │ │ └── demo │ │ └── application │ │ ├── port │ │ ├── in │ │ │ ├── GetOrderQuery.java │ │ │ ├── OrderNotFoundException.java │ │ │ ├── PayOrderUseCase.java │ │ │ └── PlaceOrderUseCase.java │ │ └── out │ │ │ ├── DeductInventoryFailedException.java │ │ │ ├── DeductInventoryPort.java │ │ │ ├── FindOrderPort.java │ │ │ ├── SaveOrderPort.java │ │ │ └── SavePersonPort.java │ │ └── service │ │ ├── GetOrderService.java │ │ ├── PayOrderService.java │ │ └── PlaceOrderService.java │ └── test │ └── java │ └── com │ └── example │ └── demo │ └── application │ └── service │ ├── GetOrderServiceTest.java │ ├── PayOrderServiceIntegrationTest.java │ ├── PayOrderServiceTest.java │ ├── PlaceOrderServiceIntegrationTest.java │ └── PlaceOrderServiceTest.java ├── configuration ├── build.gradle.kts ├── compose.yaml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── demo │ │ │ ├── DemoApplication.java │ │ │ └── config │ │ │ └── InventoryConfig.java │ └── resources │ │ ├── application-default.yaml │ │ ├── application-prod.yaml │ │ └── application.yaml │ └── test │ ├── java │ └── com │ │ └── example │ │ └── demo │ │ ├── DemoApplicationTests.java │ │ └── PlaceOrderApplicationTest.java │ └── resources │ ├── application-default.yaml │ └── contracts │ └── client │ └── inventory │ └── inventory.groovy ├── docs ├── README.md └── domain-model.md ├── domain ├── build.gradle.kts └── src │ ├── main │ └── java │ │ └── com │ │ └── example │ │ └── demo │ │ └── domain │ │ ├── Identities.java │ │ ├── order │ │ ├── Order.java │ │ ├── OrderId.java │ │ └── OrderStatus.java │ │ ├── person │ │ ├── Address.java │ │ └── Person.java │ │ ├── product │ │ └── ProductId.java │ │ └── user │ │ └── UserId.java │ └── test │ └── java │ └── com │ └── example │ └── demo │ └── domain │ ├── order │ └── OrderTest.java │ └── person │ └── PersonTest.java ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── scripts ├── .gitignore └── run-stub-runner-server └── settings.gradle.kts /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/.github/workflows/gradle.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/.gitignore -------------------------------------------------------------------------------- /.hocat/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/.hocat/README.md -------------------------------------------------------------------------------- /.hocat/README.zh-CN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/.hocat/README.zh-CN.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/README.md -------------------------------------------------------------------------------- /README.zh-CN.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/README.zh-CN.md -------------------------------------------------------------------------------- /adapter/client/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/client/build.gradle.kts -------------------------------------------------------------------------------- /adapter/client/src/main/java/com/example/demo/adapter/client/inventory/InventoryClient.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/client/src/main/java/com/example/demo/adapter/client/inventory/InventoryClient.java -------------------------------------------------------------------------------- /adapter/client/src/main/java/com/example/demo/adapter/client/inventory/adapter/DeductInventorAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/client/src/main/java/com/example/demo/adapter/client/inventory/adapter/DeductInventorAdapter.java -------------------------------------------------------------------------------- /adapter/client/src/test/java/com/example/demo/adapter/client/TestApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/client/src/test/java/com/example/demo/adapter/client/TestApplication.java -------------------------------------------------------------------------------- /adapter/client/src/test/java/com/example/demo/adapter/client/inventory/InventoryClientTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/client/src/test/java/com/example/demo/adapter/client/inventory/InventoryClientTest.java -------------------------------------------------------------------------------- /adapter/client/src/test/java/com/example/demo/adapter/client/inventory/adapter/DeductInventorAdapterTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/client/src/test/java/com/example/demo/adapter/client/inventory/adapter/DeductInventorAdapterTest.java -------------------------------------------------------------------------------- /adapter/client/src/test/resources/contracts/client/inventory/inventory.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/client/src/test/resources/contracts/client/inventory/inventory.groovy -------------------------------------------------------------------------------- /adapter/persistence-jdbc/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/build.gradle.kts -------------------------------------------------------------------------------- /adapter/persistence-jdbc/compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/compose.yaml -------------------------------------------------------------------------------- /adapter/persistence-jdbc/src/main/java/com/example/demo/adapter/persistencejdbc/JdbcConfiguration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/src/main/java/com/example/demo/adapter/persistencejdbc/JdbcConfiguration.java -------------------------------------------------------------------------------- /adapter/persistence-jdbc/src/main/java/com/example/demo/adapter/persistencejdbc/person/PersonRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/src/main/java/com/example/demo/adapter/persistencejdbc/person/PersonRepository.java -------------------------------------------------------------------------------- /adapter/persistence-jdbc/src/main/resources/db/migration/V1__Create_person_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/src/main/resources/db/migration/V1__Create_person_table.sql -------------------------------------------------------------------------------- /adapter/persistence-jdbc/src/test/java/com/example/demo/adapter/persistencejdbc/TestApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/src/test/java/com/example/demo/adapter/persistencejdbc/TestApplication.java -------------------------------------------------------------------------------- /adapter/persistence-jdbc/src/test/java/com/example/demo/adapter/persistencejdbc/person/PersonRepositoryTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/src/test/java/com/example/demo/adapter/persistencejdbc/person/PersonRepositoryTest.java -------------------------------------------------------------------------------- /adapter/persistence-jdbc/src/test/resources/application.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence-jdbc/src/test/resources/application.yaml -------------------------------------------------------------------------------- /adapter/persistence/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/build.gradle.kts -------------------------------------------------------------------------------- /adapter/persistence/compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/compose.yaml -------------------------------------------------------------------------------- /adapter/persistence/src/main/java/com/example/demo/adapter/persistence/order/OrderEntity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/main/java/com/example/demo/adapter/persistence/order/OrderEntity.java -------------------------------------------------------------------------------- /adapter/persistence/src/main/java/com/example/demo/adapter/persistence/order/OrderEntityRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/main/java/com/example/demo/adapter/persistence/order/OrderEntityRepository.java -------------------------------------------------------------------------------- /adapter/persistence/src/main/java/com/example/demo/adapter/persistence/order/adapter/OrderPersistenceAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/main/java/com/example/demo/adapter/persistence/order/adapter/OrderPersistenceAdapter.java -------------------------------------------------------------------------------- /adapter/persistence/src/main/resources/db/migration/V1__Create_order_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/main/resources/db/migration/V1__Create_order_table.sql -------------------------------------------------------------------------------- /adapter/persistence/src/main/resources/db/migration/V2__Add_buyer_id_to_orders.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE 2 | orders ADD COLUMN buyer_id VARCHAR(36) NOT NULL; -------------------------------------------------------------------------------- /adapter/persistence/src/main/resources/db/migration/V3__Add_dates_to_orders.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/main/resources/db/migration/V3__Add_dates_to_orders.sql -------------------------------------------------------------------------------- /adapter/persistence/src/main/resources/db/migration/V4__Add_product_and_quantity_to_orders.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/main/resources/db/migration/V4__Add_product_and_quantity_to_orders.sql -------------------------------------------------------------------------------- /adapter/persistence/src/test/java/com/example/demo/adapter/persistence/TestApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/test/java/com/example/demo/adapter/persistence/TestApplication.java -------------------------------------------------------------------------------- /adapter/persistence/src/test/java/com/example/demo/adapter/persistence/order/OrderEntityRepositoryTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/test/java/com/example/demo/adapter/persistence/order/OrderEntityRepositoryTest.java -------------------------------------------------------------------------------- /adapter/persistence/src/test/java/com/example/demo/adapter/persistence/order/adapter/OrderPersistenceAdapterTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/test/java/com/example/demo/adapter/persistence/order/adapter/OrderPersistenceAdapterTest.java -------------------------------------------------------------------------------- /adapter/persistence/src/test/resources/application.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/test/resources/application.yaml -------------------------------------------------------------------------------- /adapter/persistence/src/test/resources/sqls/orders.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/persistence/src/test/resources/sqls/orders.sql -------------------------------------------------------------------------------- /adapter/web-openapi/.gitignore: -------------------------------------------------------------------------------- 1 | # OpenAPI generated files 2 | /specs/merged.yaml -------------------------------------------------------------------------------- /adapter/web-openapi/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web-openapi/build.gradle.kts -------------------------------------------------------------------------------- /adapter/web-openapi/specs/components/responses.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web-openapi/specs/components/responses.yaml -------------------------------------------------------------------------------- /adapter/web-openapi/specs/components/schemas.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web-openapi/specs/components/schemas.yaml -------------------------------------------------------------------------------- /adapter/web-openapi/specs/order.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web-openapi/specs/order.yaml -------------------------------------------------------------------------------- /adapter/web-openapi/specs/petstore.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web-openapi/specs/petstore.yaml -------------------------------------------------------------------------------- /adapter/web-openapi/src/main/java/com/example/demo/adapter/webopenapi/adapter/OrdersApiAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web-openapi/src/main/java/com/example/demo/adapter/webopenapi/adapter/OrdersApiAdapter.java -------------------------------------------------------------------------------- /adapter/web-openapi/src/test/java/com/example/demo/adapter/webopenapi/adapter/OrdersApiAdapterTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web-openapi/src/test/java/com/example/demo/adapter/webopenapi/adapter/OrdersApiAdapterTest.java -------------------------------------------------------------------------------- /adapter/web/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/build.gradle.kts -------------------------------------------------------------------------------- /adapter/web/src/contractTest/java/com/example/demo/adapter/web/ContractTestBase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/contractTest/java/com/example/demo/adapter/web/ContractTestBase.java -------------------------------------------------------------------------------- /adapter/web/src/contractTest/java/com/example/demo/adapter/web/OrdersBase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/contractTest/java/com/example/demo/adapter/web/OrdersBase.java -------------------------------------------------------------------------------- /adapter/web/src/contractTest/java/com/example/demo/adapter/web/TestApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/contractTest/java/com/example/demo/adapter/web/TestApplication.java -------------------------------------------------------------------------------- /adapter/web/src/contractTest/resources/application.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/contractTest/resources/application.yaml -------------------------------------------------------------------------------- /adapter/web/src/contractTest/resources/contracts/orders/order-id.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/contractTest/resources/contracts/orders/order-id.groovy -------------------------------------------------------------------------------- /adapter/web/src/contractTest/resources/contracts/orders/orders.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/contractTest/resources/contracts/orders/orders.groovy -------------------------------------------------------------------------------- /adapter/web/src/contractTest/resources/contracts/orders/pay.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/contractTest/resources/contracts/orders/pay.groovy -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/WebExceptionHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/WebExceptionHandler.java -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/order/GetOrderController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/order/GetOrderController.java -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/order/PayOrderController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/order/PayOrderController.java -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/order/PlaceOrderController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/order/PlaceOrderController.java -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/order/adapter/GetOrderAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/order/adapter/GetOrderAdapter.java -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/order/adapter/PayOrderAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/order/adapter/PayOrderAdapter.java -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/order/adapter/PlaceOrderAdapter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/order/adapter/PlaceOrderAdapter.java -------------------------------------------------------------------------------- /adapter/web/src/main/java/com/example/demo/adapter/web/security/SecurityConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/main/java/com/example/demo/adapter/web/security/SecurityConfig.java -------------------------------------------------------------------------------- /adapter/web/src/test/java/com/example/demo/adapter/web/order/adapter/GetOrderAdapterTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/test/java/com/example/demo/adapter/web/order/adapter/GetOrderAdapterTest.java -------------------------------------------------------------------------------- /adapter/web/src/test/java/com/example/demo/adapter/web/order/adapter/PlaceOrderAdapterTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/adapter/web/src/test/java/com/example/demo/adapter/web/order/adapter/PlaceOrderAdapterTest.java -------------------------------------------------------------------------------- /application/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/build.gradle.kts -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/in/GetOrderQuery.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/in/GetOrderQuery.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/in/OrderNotFoundException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/in/OrderNotFoundException.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/in/PayOrderUseCase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/in/PayOrderUseCase.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/in/PlaceOrderUseCase.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/in/PlaceOrderUseCase.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/out/DeductInventoryFailedException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/out/DeductInventoryFailedException.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/out/DeductInventoryPort.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/out/DeductInventoryPort.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/out/FindOrderPort.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/out/FindOrderPort.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/out/SaveOrderPort.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/out/SaveOrderPort.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/port/out/SavePersonPort.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/port/out/SavePersonPort.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/service/GetOrderService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/service/GetOrderService.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/service/PayOrderService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/service/PayOrderService.java -------------------------------------------------------------------------------- /application/src/main/java/com/example/demo/application/service/PlaceOrderService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/main/java/com/example/demo/application/service/PlaceOrderService.java -------------------------------------------------------------------------------- /application/src/test/java/com/example/demo/application/service/GetOrderServiceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/test/java/com/example/demo/application/service/GetOrderServiceTest.java -------------------------------------------------------------------------------- /application/src/test/java/com/example/demo/application/service/PayOrderServiceIntegrationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/test/java/com/example/demo/application/service/PayOrderServiceIntegrationTest.java -------------------------------------------------------------------------------- /application/src/test/java/com/example/demo/application/service/PayOrderServiceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/test/java/com/example/demo/application/service/PayOrderServiceTest.java -------------------------------------------------------------------------------- /application/src/test/java/com/example/demo/application/service/PlaceOrderServiceIntegrationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/test/java/com/example/demo/application/service/PlaceOrderServiceIntegrationTest.java -------------------------------------------------------------------------------- /application/src/test/java/com/example/demo/application/service/PlaceOrderServiceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/application/src/test/java/com/example/demo/application/service/PlaceOrderServiceTest.java -------------------------------------------------------------------------------- /configuration/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/build.gradle.kts -------------------------------------------------------------------------------- /configuration/compose.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/compose.yaml -------------------------------------------------------------------------------- /configuration/src/main/java/com/example/demo/DemoApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/main/java/com/example/demo/DemoApplication.java -------------------------------------------------------------------------------- /configuration/src/main/java/com/example/demo/config/InventoryConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/main/java/com/example/demo/config/InventoryConfig.java -------------------------------------------------------------------------------- /configuration/src/main/resources/application-default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/main/resources/application-default.yaml -------------------------------------------------------------------------------- /configuration/src/main/resources/application-prod.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /configuration/src/main/resources/application.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/main/resources/application.yaml -------------------------------------------------------------------------------- /configuration/src/test/java/com/example/demo/DemoApplicationTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/test/java/com/example/demo/DemoApplicationTests.java -------------------------------------------------------------------------------- /configuration/src/test/java/com/example/demo/PlaceOrderApplicationTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/test/java/com/example/demo/PlaceOrderApplicationTest.java -------------------------------------------------------------------------------- /configuration/src/test/resources/application-default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/test/resources/application-default.yaml -------------------------------------------------------------------------------- /configuration/src/test/resources/contracts/client/inventory/inventory.groovy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/configuration/src/test/resources/contracts/client/inventory/inventory.groovy -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # 项目文档 2 | 3 | 介绍项目特有的业务知识、领域模型。 -------------------------------------------------------------------------------- /docs/domain-model.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/docs/domain-model.md -------------------------------------------------------------------------------- /domain/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/build.gradle.kts -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/Identities.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/main/java/com/example/demo/domain/Identities.java -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/order/Order.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/main/java/com/example/demo/domain/order/Order.java -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/order/OrderId.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/main/java/com/example/demo/domain/order/OrderId.java -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/order/OrderStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/main/java/com/example/demo/domain/order/OrderStatus.java -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/person/Address.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/main/java/com/example/demo/domain/person/Address.java -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/person/Person.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/main/java/com/example/demo/domain/person/Person.java -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/product/ProductId.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/main/java/com/example/demo/domain/product/ProductId.java -------------------------------------------------------------------------------- /domain/src/main/java/com/example/demo/domain/user/UserId.java: -------------------------------------------------------------------------------- 1 | package com.example.demo.domain.user; 2 | 3 | public record UserId(String value) {} 4 | -------------------------------------------------------------------------------- /domain/src/test/java/com/example/demo/domain/order/OrderTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/test/java/com/example/demo/domain/order/OrderTest.java -------------------------------------------------------------------------------- /domain/src/test/java/com/example/demo/domain/person/PersonTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/domain/src/test/java/com/example/demo/domain/person/PersonTest.java -------------------------------------------------------------------------------- /gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/gradle/libs.versions.toml -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/gradlew.bat -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | /spring-cloud-contract-stub-runner-boot-*.jar 2 | -------------------------------------------------------------------------------- /scripts/run-stub-runner-server: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/scripts/run-stub-runner-server -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/macdao/hands-on-clean-architecture-template/HEAD/settings.gradle.kts --------------------------------------------------------------------------------