gitextract_phlx012v/ ├── Customer/ │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jmendoza/ │ │ │ └── swa/ │ │ │ └── hexagonal/ │ │ │ └── customer/ │ │ │ ├── CustomerApplication.java │ │ │ ├── application/ │ │ │ │ ├── rest/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── CustomerController.java │ │ │ │ │ ├── request/ │ │ │ │ │ │ └── README.md │ │ │ │ │ └── response/ │ │ │ │ │ ├── CreateCustomerResponse.java │ │ │ │ │ ├── CustomerLoginResponse.java │ │ │ │ │ └── ResponseMapper.java │ │ │ │ └── soap/ │ │ │ │ └── README.md │ │ │ ├── common/ │ │ │ │ ├── config/ │ │ │ │ │ └── CreateBean.java │ │ │ │ ├── constants/ │ │ │ │ │ └── CustomerConstanst.java │ │ │ │ ├── customannotations/ │ │ │ │ │ └── UseCase.java │ │ │ │ └── exception/ │ │ │ │ ├── CustomExceptionHandler.java │ │ │ │ ├── ErrorDetails.java │ │ │ │ ├── GlobalException.java │ │ │ │ ├── ParameterNotFoundException.java │ │ │ │ └── ResourceNotFoundException.java │ │ │ ├── domain/ │ │ │ │ ├── model/ │ │ │ │ │ └── Customer.java │ │ │ │ ├── ports/ │ │ │ │ │ ├── inbound/ │ │ │ │ │ │ ├── CreateCustomerUseCase.java │ │ │ │ │ │ ├── CustomerLoginUseCase.java │ │ │ │ │ │ ├── DeleteCustomerUseCase.java │ │ │ │ │ │ └── UpdateCustomerUseCase.java │ │ │ │ │ └── outbound/ │ │ │ │ │ ├── CreateCustomerPort.java │ │ │ │ │ ├── DeleteCustomerPort.java │ │ │ │ │ ├── ExistsCustomerPort.java │ │ │ │ │ ├── GetCustomerEmailPort.java │ │ │ │ │ ├── GetCustomerIdPort.java │ │ │ │ │ ├── PasswordEncodePort.java │ │ │ │ │ ├── PasswordMatchesPort.java │ │ │ │ │ └── UpdateCustomerPort.java │ │ │ │ └── services/ │ │ │ │ ├── CreateCustomerService.java │ │ │ │ ├── CustomerLoginService.java │ │ │ │ ├── DeleteCustomerService.java │ │ │ │ └── UpdateCustomerService.java │ │ │ └── infrastructure/ │ │ │ ├── databases/ │ │ │ │ ├── mongo/ │ │ │ │ │ ├── CreateCustomerAdapter.java │ │ │ │ │ ├── CustomerRepository.java │ │ │ │ │ ├── DeleteCustomerAdapter.java │ │ │ │ │ ├── ExistsCustomerAdapter.java │ │ │ │ │ ├── GetCustomerEmailAdapter.java │ │ │ │ │ ├── GetCustomerIdAdapter.java │ │ │ │ │ └── UpdateCustomerAdapter.java │ │ │ │ └── postgresql/ │ │ │ │ └── README.md │ │ │ ├── messagebroker/ │ │ │ │ └── README.md │ │ │ └── security/ │ │ │ ├── PasswordEncodeAdapter.java │ │ │ └── PasswordMatchesAdapter.java │ │ └── resources/ │ │ ├── application.properties │ │ └── log4j2.xml │ └── test/ │ └── java/ │ └── com/ │ └── jmendoza/ │ └── swa/ │ └── hexagonal/ │ └── customer/ │ └── CustomerApplicationTests.java ├── Order/ │ ├── .gitignore │ ├── README.md │ ├── application/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── jmendoza/ │ │ └── swa/ │ │ └── hexagonal/ │ │ └── application/ │ │ ├── rest/ │ │ │ ├── controller/ │ │ │ │ └── OrderController.java │ │ │ ├── request/ │ │ │ │ └── README.md │ │ │ └── response/ │ │ │ └── CreateOrderResponse.java │ │ └── soap/ │ │ └── README.md │ ├── common/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── jmendoza/ │ │ └── swa/ │ │ └── hexagonal/ │ │ └── common/ │ │ ├── constants/ │ │ │ └── OrderConstanst.java │ │ ├── customannotations/ │ │ │ └── UseCase.java │ │ └── exception/ │ │ ├── CustomExceptionHandler.java │ │ ├── ErrorDetails.java │ │ ├── GlobalException.java │ │ ├── ParameterNotFoundException.java │ │ └── ResourceNotFoundException.java │ ├── configuration/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jmendoza/ │ │ │ └── swa/ │ │ │ └── hexagonal/ │ │ │ └── configuration/ │ │ │ ├── HexagonalArchitectureConfigurationApplication.java │ │ │ └── db/ │ │ │ └── DataSourceConfig.java │ │ └── resources/ │ │ ├── application.properties │ │ └── log4j2.xml │ ├── domain/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── jmendoza/ │ │ └── swa/ │ │ └── hexagonal/ │ │ └── domain/ │ │ ├── model/ │ │ │ ├── Order.java │ │ │ └── OrderProduct.java │ │ ├── ports/ │ │ │ ├── inbound/ │ │ │ │ ├── CreateOrderUseCase.java │ │ │ │ └── GetOrderUseCase.java │ │ │ └── outbound/ │ │ │ ├── CreateOrderPort.java │ │ │ └── GetOrderPort.java │ │ └── services/ │ │ ├── CreateOrderService.java │ │ └── GetOrderService.java │ ├── infrastructure/ │ │ ├── .gitignore │ │ ├── pom.xml │ │ └── src/ │ │ └── main/ │ │ └── java/ │ │ └── com/ │ │ └── jmendoza/ │ │ └── swa/ │ │ └── hexagonal/ │ │ └── infrastracture/ │ │ ├── databases/ │ │ │ ├── mongo/ │ │ │ │ └── README.md │ │ │ └── postgresql/ │ │ │ ├── CreateOrderAdapter.java │ │ │ └── GetOrderAdapter.java │ │ └── messagebroker/ │ │ └── README.md │ ├── logs/ │ │ ├── Order-2020-06-05-1.log │ │ └── Order.log │ ├── pom.xml │ └── postgresql/ │ ├── 1-create_table_orders.sql │ ├── 2-create_sequence_order_id.sql │ ├── 3-create_function_create_order.sql │ ├── 4-create_table_order_product.sql │ ├── 5-create_order_product_id_seq.sql │ └── 6-create_function_get_order.sql ├── Product/ │ ├── .gitignore │ ├── README.md │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── jmendoza/ │ │ │ └── swa/ │ │ │ └── hexagonal/ │ │ │ └── product/ │ │ │ ├── ProductApplication.java │ │ │ ├── application/ │ │ │ │ ├── rest/ │ │ │ │ │ ├── controller/ │ │ │ │ │ │ └── ProductController.java │ │ │ │ │ ├── request/ │ │ │ │ │ │ └── README.md │ │ │ │ │ └── response/ │ │ │ │ │ └── CreateProductResponse.java │ │ │ │ └── soap/ │ │ │ │ └── README.md │ │ │ ├── common/ │ │ │ │ ├── config/ │ │ │ │ │ └── README.md │ │ │ │ ├── constants/ │ │ │ │ │ └── ProductConstanst.java │ │ │ │ ├── customannotations/ │ │ │ │ │ └── UseCase.java │ │ │ │ └── exception/ │ │ │ │ ├── CustomExceptionHandler.java │ │ │ │ ├── ErrorDetails.java │ │ │ │ ├── GlobalException.java │ │ │ │ ├── ParameterNotFoundException.java │ │ │ │ └── ResourceNotFoundException.java │ │ │ ├── domain/ │ │ │ │ ├── model/ │ │ │ │ │ └── Product.java │ │ │ │ ├── ports/ │ │ │ │ │ ├── inbound/ │ │ │ │ │ │ ├── CreateProductUseCase.java │ │ │ │ │ │ ├── DeleteProductUseCase.java │ │ │ │ │ │ ├── GetProductUseCase.java │ │ │ │ │ │ └── GetProductsUseCase.java │ │ │ │ │ └── outbound/ │ │ │ │ │ ├── CreateProductPort.java │ │ │ │ │ ├── DeleteProductPort.java │ │ │ │ │ ├── ExistsProductPort.java │ │ │ │ │ ├── GetProductIdPort.java │ │ │ │ │ └── GetProductsPort.java │ │ │ │ └── services/ │ │ │ │ ├── CreateProductService.java │ │ │ │ ├── DeleteProductService.java │ │ │ │ ├── GetProductService.java │ │ │ │ └── GetProductsService.java │ │ │ └── infrastructure/ │ │ │ ├── databases/ │ │ │ │ ├── mongo/ │ │ │ │ │ ├── CreateProductAdapter.java │ │ │ │ │ ├── DeleteProductAdapter.java │ │ │ │ │ ├── ExistsProductAdapter.java │ │ │ │ │ ├── GetProductIdAdapter.java │ │ │ │ │ ├── GetProductsAdapter.java │ │ │ │ │ └── ProductRepository.java │ │ │ │ └── postgresql/ │ │ │ │ └── README.md │ │ │ └── messagebroker/ │ │ │ └── README.md │ │ └── resources/ │ │ ├── application.properties │ │ └── log4j2.xml │ └── test/ │ └── java/ │ └── com/ │ └── jmendoza/ │ └── swa/ │ └── hexagonal/ │ └── product/ │ └── ProductApplicationTests.java ├── README.md ├── logs/ │ ├── Customer.log │ ├── Order.log │ └── Product.log └── prtsc/ └── Hexagonal-Architecture-Microservices.drawio