├── .gitignore ├── README.md ├── application ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── microservice │ └── quarkus │ └── application │ ├── ports │ ├── api │ │ └── LoanAPIService.java │ └── commands │ │ └── LoanStatusService.java │ └── service │ └── LoanAPIServiceImpl.java ├── bootloader ├── .dockerignore ├── pom.xml └── src │ └── main │ ├── docker │ ├── Dockerfile.jvm │ ├── Dockerfile.legacy-jar │ ├── Dockerfile.native │ └── Dockerfile.native-micro │ ├── java │ └── com │ │ └── microservices │ │ └── quarkus │ │ └── config │ │ └── bootloader │ │ └── AppContext.java │ └── resources │ ├── META-INF │ └── resources │ │ └── index.html │ └── application.yml ├── domain ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── microservice │ └── quarkus │ └── domain │ ├── events │ └── LoanStateChanged.java │ ├── model │ ├── loan │ │ ├── Loan.java │ │ ├── LoanFactory.java │ │ ├── LoanId.java │ │ └── LoanState.java │ └── user │ │ └── UserId.java │ ├── ports │ └── spi │ │ ├── EventBus.java │ │ └── LoanRepository.java │ ├── services │ └── LoanService.java │ └── shared │ ├── DomainEvent.java │ ├── Entity.java │ ├── RootAggregate.java │ └── ValueObject.java ├── infrastructure ├── adapter-dynamodb │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── microservice │ │ │ └── quarkus │ │ │ └── infrastructure │ │ │ └── db │ │ │ └── dynamodb │ │ │ ├── config │ │ │ ├── DevBootstrap.java │ │ │ └── DynamoDBConfig.java │ │ │ ├── dbo │ │ │ └── LoanEntity.java │ │ │ ├── exceptions │ │ │ └── DboException.java │ │ │ ├── mapper │ │ │ └── LoanEntityMapper.java │ │ │ └── repository │ │ │ └── LoanDboRepository.java │ │ └── resources │ │ └── application.yml ├── adapter-kafka │ ├── pom.xml │ └── src │ │ └── main │ │ ├── avro │ │ └── loan.avsc │ │ ├── java │ │ └── com │ │ │ └── microservice │ │ │ └── quarkus │ │ │ └── infrastructure │ │ │ └── events │ │ │ └── kafka │ │ │ ├── incoming │ │ │ └── LoanConsumer.java │ │ │ └── outgoing │ │ │ └── LoanProducer.java │ │ └── resources │ │ └── application.yml ├── adapter-postgresql │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── microservice │ │ │ └── quarkus │ │ │ └── infrastructure │ │ │ └── db │ │ │ └── hibernate │ │ │ ├── dbo │ │ │ └── LoanEntity.java │ │ │ ├── exceptions │ │ │ └── DboException.java │ │ │ ├── mapper │ │ │ └── LoanMapper.java │ │ │ └── repository │ │ │ ├── LoanDboRepository.java │ │ │ └── LoanPanacheRepository.java │ │ └── resources │ │ ├── application.yml │ │ └── db │ │ └── migration │ │ └── V1.0.0__Quarkus.sql ├── adapter-rest │ ├── JavaJaxRS │ │ └── spec │ │ │ ├── api.mustache │ │ │ ├── apiMethod.mustache │ │ │ ├── model.mustache │ │ │ └── pojo.mustache │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── microservice │ │ │ │ └── quarkus │ │ │ │ └── infrastructure │ │ │ │ └── rest │ │ │ │ ├── api │ │ │ │ └── LoanResource.java │ │ │ │ └── mapper │ │ │ │ └── LoanDTOMapper.java │ │ └── resources │ │ │ ├── api.yml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── com │ │ └── microservice │ │ └── quarkus │ │ └── infrastructure │ │ └── rest │ │ ├── LoanApiServiceDefault.java │ │ └── LoanResourceTest.java └── pom.xml └── pom.xml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/README.md -------------------------------------------------------------------------------- /application/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/application/pom.xml -------------------------------------------------------------------------------- /application/src/main/java/com/microservice/quarkus/application/ports/api/LoanAPIService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/application/src/main/java/com/microservice/quarkus/application/ports/api/LoanAPIService.java -------------------------------------------------------------------------------- /application/src/main/java/com/microservice/quarkus/application/ports/commands/LoanStatusService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/application/src/main/java/com/microservice/quarkus/application/ports/commands/LoanStatusService.java -------------------------------------------------------------------------------- /application/src/main/java/com/microservice/quarkus/application/service/LoanAPIServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/application/src/main/java/com/microservice/quarkus/application/service/LoanAPIServiceImpl.java -------------------------------------------------------------------------------- /bootloader/.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/.dockerignore -------------------------------------------------------------------------------- /bootloader/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/pom.xml -------------------------------------------------------------------------------- /bootloader/src/main/docker/Dockerfile.jvm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/src/main/docker/Dockerfile.jvm -------------------------------------------------------------------------------- /bootloader/src/main/docker/Dockerfile.legacy-jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/src/main/docker/Dockerfile.legacy-jar -------------------------------------------------------------------------------- /bootloader/src/main/docker/Dockerfile.native: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/src/main/docker/Dockerfile.native -------------------------------------------------------------------------------- /bootloader/src/main/docker/Dockerfile.native-micro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/src/main/docker/Dockerfile.native-micro -------------------------------------------------------------------------------- /bootloader/src/main/java/com/microservices/quarkus/config/bootloader/AppContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/src/main/java/com/microservices/quarkus/config/bootloader/AppContext.java -------------------------------------------------------------------------------- /bootloader/src/main/resources/META-INF/resources/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/src/main/resources/META-INF/resources/index.html -------------------------------------------------------------------------------- /bootloader/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/bootloader/src/main/resources/application.yml -------------------------------------------------------------------------------- /domain/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/pom.xml -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/events/LoanStateChanged.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/events/LoanStateChanged.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/model/loan/Loan.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/model/loan/Loan.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/model/loan/LoanFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/model/loan/LoanFactory.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/model/loan/LoanId.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/model/loan/LoanId.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/model/loan/LoanState.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/model/loan/LoanState.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/model/user/UserId.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/model/user/UserId.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/ports/spi/EventBus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/ports/spi/EventBus.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/ports/spi/LoanRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/ports/spi/LoanRepository.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/services/LoanService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/services/LoanService.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/shared/DomainEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/shared/DomainEvent.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/shared/Entity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/shared/Entity.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/shared/RootAggregate.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/shared/RootAggregate.java -------------------------------------------------------------------------------- /domain/src/main/java/com/microservice/quarkus/domain/shared/ValueObject.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/domain/src/main/java/com/microservice/quarkus/domain/shared/ValueObject.java -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-dynamodb/pom.xml -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/config/DevBootstrap.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/config/DevBootstrap.java -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/config/DynamoDBConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/config/DynamoDBConfig.java -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/dbo/LoanEntity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/dbo/LoanEntity.java -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/exceptions/DboException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/exceptions/DboException.java -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/mapper/LoanEntityMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/mapper/LoanEntityMapper.java -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/repository/LoanDboRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-dynamodb/src/main/java/com/microservice/quarkus/infrastructure/db/dynamodb/repository/LoanDboRepository.java -------------------------------------------------------------------------------- /infrastructure/adapter-dynamodb/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /infrastructure/adapter-kafka/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-kafka/pom.xml -------------------------------------------------------------------------------- /infrastructure/adapter-kafka/src/main/avro/loan.avsc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-kafka/src/main/avro/loan.avsc -------------------------------------------------------------------------------- /infrastructure/adapter-kafka/src/main/java/com/microservice/quarkus/infrastructure/events/kafka/incoming/LoanConsumer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-kafka/src/main/java/com/microservice/quarkus/infrastructure/events/kafka/incoming/LoanConsumer.java -------------------------------------------------------------------------------- /infrastructure/adapter-kafka/src/main/java/com/microservice/quarkus/infrastructure/events/kafka/outgoing/LoanProducer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-kafka/src/main/java/com/microservice/quarkus/infrastructure/events/kafka/outgoing/LoanProducer.java -------------------------------------------------------------------------------- /infrastructure/adapter-kafka/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-kafka/src/main/resources/application.yml -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/pom.xml -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/dbo/LoanEntity.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/dbo/LoanEntity.java -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/exceptions/DboException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/exceptions/DboException.java -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/mapper/LoanMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/mapper/LoanMapper.java -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/repository/LoanDboRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/repository/LoanDboRepository.java -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/repository/LoanPanacheRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/src/main/java/com/microservice/quarkus/infrastructure/db/hibernate/repository/LoanPanacheRepository.java -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/src/main/resources/application.yml -------------------------------------------------------------------------------- /infrastructure/adapter-postgresql/src/main/resources/db/migration/V1.0.0__Quarkus.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-postgresql/src/main/resources/db/migration/V1.0.0__Quarkus.sql -------------------------------------------------------------------------------- /infrastructure/adapter-rest/JavaJaxRS/spec/api.mustache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/JavaJaxRS/spec/api.mustache -------------------------------------------------------------------------------- /infrastructure/adapter-rest/JavaJaxRS/spec/apiMethod.mustache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/JavaJaxRS/spec/apiMethod.mustache -------------------------------------------------------------------------------- /infrastructure/adapter-rest/JavaJaxRS/spec/model.mustache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/JavaJaxRS/spec/model.mustache -------------------------------------------------------------------------------- /infrastructure/adapter-rest/JavaJaxRS/spec/pojo.mustache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/JavaJaxRS/spec/pojo.mustache -------------------------------------------------------------------------------- /infrastructure/adapter-rest/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/pom.xml -------------------------------------------------------------------------------- /infrastructure/adapter-rest/src/main/java/com/microservice/quarkus/infrastructure/rest/api/LoanResource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/src/main/java/com/microservice/quarkus/infrastructure/rest/api/LoanResource.java -------------------------------------------------------------------------------- /infrastructure/adapter-rest/src/main/java/com/microservice/quarkus/infrastructure/rest/mapper/LoanDTOMapper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/src/main/java/com/microservice/quarkus/infrastructure/rest/mapper/LoanDTOMapper.java -------------------------------------------------------------------------------- /infrastructure/adapter-rest/src/main/resources/api.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/src/main/resources/api.yml -------------------------------------------------------------------------------- /infrastructure/adapter-rest/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/src/main/resources/application.yml -------------------------------------------------------------------------------- /infrastructure/adapter-rest/src/test/java/com/microservice/quarkus/infrastructure/rest/LoanApiServiceDefault.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/src/test/java/com/microservice/quarkus/infrastructure/rest/LoanApiServiceDefault.java -------------------------------------------------------------------------------- /infrastructure/adapter-rest/src/test/java/com/microservice/quarkus/infrastructure/rest/LoanResourceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/adapter-rest/src/test/java/com/microservice/quarkus/infrastructure/rest/LoanResourceTest.java -------------------------------------------------------------------------------- /infrastructure/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/infrastructure/pom.xml -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fredofm/quarkus-hexagonal/HEAD/pom.xml --------------------------------------------------------------------------------