├── .gitignore ├── README.md ├── activator ├── activator-launch-1.3.7.jar ├── activator.bat ├── hexagonalExample ├── application │ └── src │ │ └── main │ │ └── scala │ │ └── org │ │ └── kimutyam │ │ └── hexagonalExample │ │ └── application │ │ ├── boundedContextMapper │ │ └── AdConverter.scala │ │ ├── dto │ │ └── user │ │ │ ├── UserReadDTO.scala │ │ │ └── UserWriteDTO.scala │ │ └── service │ │ └── UserRegister.scala ├── domain │ └── boundedContext │ │ ├── core │ │ └── src │ │ │ └── main │ │ │ └── scala │ │ │ └── org │ │ │ └── kimutyam │ │ │ └── hexagonalExample │ │ │ └── domain │ │ │ └── boundedContext │ │ │ └── core │ │ │ ├── ad │ │ │ ├── Ad.scala │ │ │ ├── AdImpl.scala │ │ │ └── AdRepository.scala │ │ │ └── user │ │ │ ├── User.scala │ │ │ ├── UserImpl.scala │ │ │ └── UserRepository.scala │ │ └── sub │ │ └── src │ │ └── main │ │ └── scala │ │ └── org │ │ └── kimutyam │ │ └── hexagonalExample │ │ └── domain │ │ └── boundedContext │ │ └── sub │ │ └── thirdParty │ │ └── ad │ │ ├── ThirdPartyAd.scala │ │ ├── ThirdPartyAdImpl.scala │ │ ├── ThirdPartyAdRepository.scala │ │ └── ThirdPartyAdStatus.scala ├── port │ ├── primary │ │ ├── batch │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── scala │ │ │ │ └── org │ │ │ │ └── kimutyam │ │ │ │ └── hexagonalExample │ │ │ │ └── port │ │ │ │ └── primary │ │ │ │ └── batch │ │ │ │ └── adapter │ │ │ │ └── cli │ │ │ │ ├── AdDownloadBatch.scala │ │ │ │ └── Batch.scala │ │ └── webService │ │ │ └── src │ │ │ └── main │ │ │ ├── resources │ │ │ └── org.kimutyam.hexagonalExample.port.primary.webService.routes │ │ │ └── scala │ │ │ └── org │ │ │ └── kimutyam │ │ │ └── hexagonalExample │ │ │ └── port │ │ │ └── primary │ │ │ └── webService │ │ │ └── adapter │ │ │ └── http │ │ │ ├── controller │ │ │ ├── AdController.scala │ │ │ └── UserController.scala │ │ │ └── util │ │ │ ├── DefaultJsonHelper.scala │ │ │ ├── JsonDefaultFormatHelper.scala │ │ │ ├── JsonHelper.scala │ │ │ ├── JsonResponseHelper.scala │ │ │ └── Response.scala │ └── secondary │ │ ├── persistence │ │ └── src │ │ │ └── main │ │ │ └── scala │ │ │ └── org │ │ │ └── kimutyam │ │ │ └── hexagonalExample │ │ │ └── port │ │ │ └── secondary │ │ │ └── persistence │ │ │ ├── ad │ │ │ └── AdOptimisationRepository.scala │ │ │ ├── adapter │ │ │ ├── kvs │ │ │ │ ├── ad │ │ │ │ │ └── AdRepositoryOnKVS.scala │ │ │ │ └── user │ │ │ │ │ └── UserRepositoryOnKVS.scala │ │ │ └── rdbms │ │ │ │ ├── ad │ │ │ │ └── AdRepositoryOnRDBMS.scala │ │ │ │ └── user │ │ │ │ └── UserRepositoryOnRDBMS.scala │ │ │ └── user │ │ │ └── UserOptimisationRepository.scala │ │ └── thirdPartyAPI │ │ └── src │ │ └── main │ │ └── scala │ │ └── org │ │ └── kimutyam │ │ └── hexagonalExample │ │ └── port │ │ └── secondary │ │ └── thirdPartyAPI │ │ └── adapter │ │ └── http │ │ └── ad │ │ └── ThirdPartyAdRepositoryOnAPI.scala └── src │ └── main │ ├── resources │ ├── application.conf │ └── routes │ └── scala │ └── org │ └── kimutyam │ └── hexagonalExample │ ├── DependencyInjector.scala │ └── batch │ ├── AdDownloadBatchLauncher.scala │ └── BatchLauncher.scala └── project ├── build.properties └── plugins.sbt /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/README.md -------------------------------------------------------------------------------- /activator: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/activator -------------------------------------------------------------------------------- /activator-launch-1.3.7.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/activator-launch-1.3.7.jar -------------------------------------------------------------------------------- /activator.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/activator.bat -------------------------------------------------------------------------------- /hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/boundedContextMapper/AdConverter.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/boundedContextMapper/AdConverter.scala -------------------------------------------------------------------------------- /hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/dto/user/UserReadDTO.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/dto/user/UserReadDTO.scala -------------------------------------------------------------------------------- /hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/dto/user/UserWriteDTO.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/dto/user/UserWriteDTO.scala -------------------------------------------------------------------------------- /hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/service/UserRegister.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/application/src/main/scala/org/kimutyam/hexagonalExample/application/service/UserRegister.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/ad/Ad.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/ad/Ad.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/ad/AdImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/ad/AdImpl.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/ad/AdRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/ad/AdRepository.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/user/User.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/user/User.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/user/UserImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/user/UserImpl.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/user/UserRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/core/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/core/user/UserRepository.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAd.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAd.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAdImpl.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAdImpl.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAdRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAdRepository.scala -------------------------------------------------------------------------------- /hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAdStatus.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/domain/boundedContext/sub/src/main/scala/org/kimutyam/hexagonalExample/domain/boundedContext/sub/thirdParty/ad/ThirdPartyAdStatus.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/batch/src/main/scala/org/kimutyam/hexagonalExample/port/primary/batch/adapter/cli/AdDownloadBatch.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/batch/src/main/scala/org/kimutyam/hexagonalExample/port/primary/batch/adapter/cli/AdDownloadBatch.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/batch/src/main/scala/org/kimutyam/hexagonalExample/port/primary/batch/adapter/cli/Batch.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/batch/src/main/scala/org/kimutyam/hexagonalExample/port/primary/batch/adapter/cli/Batch.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/resources/org.kimutyam.hexagonalExample.port.primary.webService.routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/resources/org.kimutyam.hexagonalExample.port.primary.webService.routes -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/controller/AdController.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/controller/AdController.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/controller/UserController.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/controller/UserController.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/DefaultJsonHelper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/DefaultJsonHelper.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/JsonDefaultFormatHelper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/JsonDefaultFormatHelper.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/JsonHelper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/JsonHelper.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/JsonResponseHelper.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/JsonResponseHelper.scala -------------------------------------------------------------------------------- /hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/Response.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/primary/webService/src/main/scala/org/kimutyam/hexagonalExample/port/primary/webService/adapter/http/util/Response.scala -------------------------------------------------------------------------------- /hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/ad/AdOptimisationRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/ad/AdOptimisationRepository.scala -------------------------------------------------------------------------------- /hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/kvs/ad/AdRepositoryOnKVS.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/kvs/ad/AdRepositoryOnKVS.scala -------------------------------------------------------------------------------- /hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/kvs/user/UserRepositoryOnKVS.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/kvs/user/UserRepositoryOnKVS.scala -------------------------------------------------------------------------------- /hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/rdbms/ad/AdRepositoryOnRDBMS.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/rdbms/ad/AdRepositoryOnRDBMS.scala -------------------------------------------------------------------------------- /hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/rdbms/user/UserRepositoryOnRDBMS.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/adapter/rdbms/user/UserRepositoryOnRDBMS.scala -------------------------------------------------------------------------------- /hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/user/UserOptimisationRepository.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/secondary/persistence/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/persistence/user/UserOptimisationRepository.scala -------------------------------------------------------------------------------- /hexagonalExample/port/secondary/thirdPartyAPI/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/thirdPartyAPI/adapter/http/ad/ThirdPartyAdRepositoryOnAPI.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/port/secondary/thirdPartyAPI/src/main/scala/org/kimutyam/hexagonalExample/port/secondary/thirdPartyAPI/adapter/http/ad/ThirdPartyAdRepositoryOnAPI.scala -------------------------------------------------------------------------------- /hexagonalExample/src/main/resources/application.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/src/main/resources/application.conf -------------------------------------------------------------------------------- /hexagonalExample/src/main/resources/routes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/src/main/resources/routes -------------------------------------------------------------------------------- /hexagonalExample/src/main/scala/org/kimutyam/hexagonalExample/DependencyInjector.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/src/main/scala/org/kimutyam/hexagonalExample/DependencyInjector.scala -------------------------------------------------------------------------------- /hexagonalExample/src/main/scala/org/kimutyam/hexagonalExample/batch/AdDownloadBatchLauncher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/src/main/scala/org/kimutyam/hexagonalExample/batch/AdDownloadBatchLauncher.scala -------------------------------------------------------------------------------- /hexagonalExample/src/main/scala/org/kimutyam/hexagonalExample/batch/BatchLauncher.scala: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/hexagonalExample/src/main/scala/org/kimutyam/hexagonalExample/batch/BatchLauncher.scala -------------------------------------------------------------------------------- /project/build.properties: -------------------------------------------------------------------------------- 1 | sbt.version = 0.13.8 -------------------------------------------------------------------------------- /project/plugins.sbt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kimutyam/hexagonal-hands-on/HEAD/project/plugins.sbt --------------------------------------------------------------------------------