package Ġcom . byte train . prod inv . config Ċ Ċ import Ġcom . github . mongo bee . Mongo bee Ċ import Ġio . github . j hip ster . config . JH ip ster Constants Ċ import Ġio . github . j hip ster . domain . util . JS R 3 1 0 Date Converters . Date To Z onedDateTime Converter Ċ import Ġio . github . j hip ster . domain . util . JS R 3 1 0 Date Converters . Duration To Long Converter Ċ import Ġio . github . j hip ster . domain . util . JS R 3 1 0 Date Converters . Z onedDateTime ToDate Converter Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . cloud . Cloud Ċ import Ġorg . springframework . cloud . Cloud Exception Ċ import Ġorg . springframework . cloud . config . java . Abstract Cloud Config Ċ import Ġorg . springframework . cloud . service . common . Mongo Service Info Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . context . annotation . Configuration Ċ import Ġorg . springframework . context . annotation . Profile Ċ import Ġorg . springframework . core . convert . converter . Converter Ċ import Ġorg . springframework . data . mongodb . Mongo Db Factory Ċ import Ġorg . springframework . data . mongodb . core . Mongo Template Ċ import Ġorg . springframework . data . mongodb . core . convert . Mongo Custom Conversions Ċ import Ġorg . springframework . data . mongodb . core . mapping . event . Valid ating Mongo EventListener Ċ import Ġorg . springframework . data . mongodb . repository . config . Enable Mongo Repositories Ċ import Ġorg . springframework . validation . bean validation . Local Validator Factory Bean Ċ Ċ @ Configuration Ċ @ Enable Mongo Repositories (" com . byte train . prod inv . repository ") Ċ @ Profile ( JH ip ster Constants . SPR ING _ PROFILE _ CLOUD ) Ċ class ĠCloud Database Configuration Ġ: ĠAbstract Cloud Config () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( java Class ) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġmongo Factory (): ĠMongo Db Factory Ġ= Ġconnection Factory (). mongo Db Factory () ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġvalidator () Ġ= ĠLocal Validator Factory Bean () ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġvalidating Mongo EventListener () Ġ= ĠValid ating Mongo EventListener ( validator ()) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġcustom Conversions () Ġ= ĊĠĠĠĠĠĠĠ ĠMongo Custom Conversions ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable ListOf < Converter < *, Ġ* >>( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate To Z onedDateTime Converter . INSTANCE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠZ onedDateTime ToDate Converter . INSTANCE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDuration To Long Converter . INSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġmongo bee ( mongo Db Factory : ĠMongo Db Factory , Ġmongo Template : ĠMongo Template , Ġcloud : ĠCloud ): ĠMongo bee Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug (" Config uring ĠCloud ĠMongo bee ") ĊĠĠĠĠĠĠĠ Ġval Ġmatching Service Infos Ġ= Ġcloud . getService Infos ( Mongo Db Factory :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( matching Service Infos . size Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠCloud Exception (" No Ġunique Ġservice Ġmatching ĠMongo Db Factory Ġfound . ĠExpected Ġ 1 , Ġfound Ġ$ matching Service Infos . size ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= Ġmatching Service Infos [ 0 ] Ġas ĠMongo Service Info ĊĠĠĠĠĠĠĠ Ġreturn ĠMongo bee ( info . uri ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Db Name ( mongo Db Factory . db . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Mongo Template ( mongo Template ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpackage Ġto Ġscan Ġfor Ġmigrations ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Change Logs Scan Package (" com . byte train . prod inv . config . db migrations ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ