package Ġcom . trib 3 . db . modules Ċ Ċ import Ġcom . co da h ale . metrics . Metric Registry Ċ import Ġcom . co da h ale . metrics . health . HealthCheck Registry Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . google . inject . Abstract Module Ċ import Ġcom . google . inject . Provides Ċ import Ġcom . trib 3 . config . Config Loader Ċ import Ġcom . trib 3 . config . modules . K MS Module Ċ import Ġcom . trib 3 . db . config . Db Config Ċ import Ġorg . jooq . DSL Context Ċ import Ġjavax . inject . Singleton Ċ import Ġjavax . sql . DataSource Ċ Ċ /** Ċ Ġ* ĠModule Ġthat Ġexposes Ġa Ġ[ Db Config ] Ġand Ġthat Ġ[ Db Config ]' s Ġ[ DataSource ] Ġand Ġ[ DSL Context ] Ġfor Ċ Ġ* Ġuse Ġin Ġapplications . Ġ ĠAss umes Ġthe Ġdatabase Ġconfig Ġis Ġin Ġapplication . conf Ġat Ġ" db " Ċ Ġ*/ Ċ class ĠDb Module Ġ: ĠAbstract Module () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġconfigure () Ġ{ ĊĠĠĠĠĠĠĠ Ġinstall ( K MS Module ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Db Config ( ĊĠĠĠĠĠĠĠ Ġloader : ĠConfig Loader , ĊĠĠĠĠĠĠĠ Ġhealth Check Registry : ĠHealth Check Registry , ĊĠĠĠĠĠĠĠ Ġmetric Registry : ĠMetric Registry , ĊĠĠĠĠĠĠĠ ĠobjectMapper : ĠObjectMapper ĊĠĠĠ Ġ): ĠDb Config Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠDb Config ( loader , Ġ" db ", Ġhealth Check Registry , Ġmetric Registry , ĠobjectMapper ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide DataSource ( db Config : ĠDb Config ): ĠDataSource Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb Config . dataSource ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide DSL Context ( db Config : ĠDb Config ): ĠDSL Context Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdb Config . dsl Context ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġallow Ġmultiple Ġinstall ations Ġso Ġthat Ġmultiple Ġother Ġmodules Ġcan Ġinstall Ġthis Ġone ĊĠĠĠ Ġoverride Ġfun Ġequals ( other : ĠAny ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġother Ġis ĠDb Module ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠhashCode (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis :: class . hashCode () ĊĠĠĠ Ġ} Ċ } Ċ