package Ġcom . j ah s . configuration Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . fasterxml . jackson . module . kotlin . register Kotlin Module Ċ import Ġcom . m change . v 2 . c 3 p 0 . Combo P ooled DataSource Ċ import Ġorg . ax on framework . common . caching . Cache Ċ import Ġorg . ax on framework . common . caching . No Cache Ċ import Ġorg . ax on framework . common . jpa . Container Managed EntityManager Provider Ċ import Ġorg . ax on framework . common . jpa . EntityManager Provider Ċ import Ġorg . ax on framework . common . transaction . Transaction Manager Ċ import Ġorg . ax on framework . event handling . EventBus Ċ import Ġorg . ax on framework . event handling . saga . repository . jpa . Jpa Saga Store Ċ import Ġorg . ax on framework . event handling . token store . Token Store Ċ import Ġorg . ax on framework . event handling . token store . jpa . Jpa Token Store Ċ import Ġorg . ax on framework . events ourcing . event store . Embedded Event Store Ċ import Ġorg . ax on framework . events ourcing . event store . Event Storage Engine Ċ import Ġorg . ax on framework . events ourcing . event store . Event Store Ċ import Ġorg . ax on framework . events ourcing . event store . jpa . Jpa Event Storage Engine Ċ import Ġorg . ax on framework . serialization . Serializer Ċ import Ġorg . ax on framework . serialization . json . Jack son Serializer Ċ import Ġorg . ax on framework . spring . events ourcing . Spring Aggregate Snapshot ter Ċ import Ġorg . ax on framework . spring . events ourcing . Spring Aggregate Snapshot ter Factory Bean Ċ import Ġorg . hibernate . boot . model . naming . Implicit Naming Strategy Component Path Impl Ċ import Ġorg . hibernate . cfg . Available Settings Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . context . annotation . Configuration Ċ import Ġorg . springframework . context . annotation . Primary Ċ import Ġorg . springframework . orm . jpa . Jpa Transaction Manager Ċ import Ġorg . springframework . orm . jpa . Local Container EntityManager Factory Bean Ċ import Ġorg . springframework . orm . jpa . vendor . Hibernate Jpa Vendor Adapter Ċ import Ġorg . springframework . transaction . Platform Transaction Manager Ċ import Ġorg . springframework . transaction . annotation . Enable Transaction Management Ċ import Ġjavax . persistence . EntityManager Factory Ċ import Ġjavax . sql . DataSource Ċ Ċ @ Configuration Ċ @ Enable Transaction Management Ċ open Ġclass ĠAx on Configuration Ġ{ ĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġ@ Primary ĊĠĠĠ Ġopen Ġfun Ġax on DataSource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . datasource . url }") Ġurl : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . datasource . username }") Ġusername : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . datasource . password }") Ġpassword : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . datasource . driver - class - name }") Ġdriver : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . hibernate . c 3 p 0 . max - size }") ĠmaxSize : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . hibernate . c 3 p 0 . min - size }") Ġmin Size : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . hibernate . c 3 p 0 . test - query }") Ġtest Query : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . hibernate . c 3 p 0 . idle - test - period }") Ġidle Test Period : ĠInt ): ĠDataSource Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCombo P ooled DataSource (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . initial PoolSize Ġ= Ġmin Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . min PoolSize Ġ= Ġmin Size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . max PoolSize Ġ= ĠmaxSize ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . idle Connection Test Period Ġ= Ġidle Test Period ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . preferred Test Query Ġ= Ġtest Query ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . jdbc Url Ġ= Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . password Ġ= Ġpassword ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . user Ġ= Ġusername ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . driver Class Ġ= Ġdriver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġ@ Primary ĊĠĠĠ Ġopen Ġfun Ġentity ManagerFactory ( dataSource : ĠDataSource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . hibernate . ddl - auto }") Ġd dl Auto : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Value ("\ ${ write - model . hibernate . show - sql }") Ġshow Sql : ĠBoolean ): ĠEntity ManagerFactory Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Container EntityManager Factory Bean (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . dataSource Ġ= ĠdataSource ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . jpa Vendor Adapter Ġ= ĠHibernate Jpa Vendor Adapter (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Generate D dl ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Show Sql ( show Sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . jpa Property Map Ġ= Ġmap Of ( Available Settings . IMP LICIT _ NAM ING _ STR ATE GY Ġto ĠImp licit Naming Strategy Component Path Impl :: class . java . canonical Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAvailable Settings . H BM 2 DDL _ AUTO Ġto Ġd dl Auto ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Packages To Scan (" org . ax on framework ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . after Properties Set () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. ` object ` ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġ@ Primary ĊĠĠĠ Ġopen Ġfun Ġtransaction Manager ( projection EntityManager Factory : ĠEntity ManagerFactory ): ĠPlatform Transaction Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ pa Transaction Manager ( projection EntityManager Factory ) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġ@ Primary ĊĠĠĠ Ġopen Ġfun Ġevent Storage Engine ( serializer : ĠSerializer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource : ĠDataSource , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager Provider : ĠEntity Manager Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Manager : ĠTransaction Manager ): ĠEvent Storage Engine Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ pa Event Storage Engine ( serializer , Ġnull , ĠdataSource , Ġentity Manager Provider , Ġtransaction Manager ) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġ@ Primary ĊĠĠĠ Ġopen Ġfun Ġs aga Store ( serializer : ĠSerializer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity Manager Provider : ĠEntity Manager Provider ): ĠJ pa Saga Store Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ pa Saga Store ( serializer , Ġentity Manager Provider ) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġ@ Primary ĊĠĠĠ Ġopen Ġfun Ġentity Manager Provider (): ĠEntity Manager Provider Ġ= ĠContainer Managed EntityManager Provider () ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġ@ Primary ĊĠĠĠ Ġopen Ġfun Ġtoken Store ( serializer : ĠSerializer , Ġentity Manager Provider : ĠEntity Manager Provider ): ĠToken Store Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ pa Token Store ( entityManager Provider , Ġserializer ) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġopen Ġfun Ġspring Aggregate Snapshot ter Factory Bean (): ĠSpring Aggregate Snapshot ter Factory Bean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSpring Aggregate Snapshot ter Factory Bean () ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġopen Ġfun Ġsnapshot ter ( factory : ĠSpring Aggregate Snapshot ter Factory Bean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplatform Transaction Manager : ĠPlatform Transaction Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Store : ĠEvent Store ): ĠSpring Aggregate Snapshot ter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfactory . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Transaction Manager ( platform Transaction Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Event Store ( event Store ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. ` object ` ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġopen Ġfun Ġserializer (): ĠSerializer Ġ= ĠJack son Serializer ( ObjectMapper (). register Kotlin Module ()) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġopen Ġfun Ġevent Bus ( event Storage Engine : ĠEvent Storage Engine ): ĠEvent Bus Ġ= ĠEmbedded Event Store ( event Storage Engine ) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġopen Ġfun Ġcache (): ĠCache Ġ= ĠNo Cache . INSTANCE ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġopen Ġfun Ġevent Store ( event Bus : ĠEvent Bus ): ĠEvent Store Ġ= Ġevent Bus Ġas ĠEvent Store Ċ } Ċ