package Ġorg . ed ude v . arch . db Ċ Ċ import ĠMain . logger Ċ import Ġcom . mongodb . ConnectionString Ċ import Ġmu . K Logging Ċ import Ġorg . eclipse . micro profile . config . inject . Config Property Ċ import Ġjava . util .* Ċ import Ġjavax . enterprise . context . Application Scoped Ċ import Ġjavax . enterprise . inject . Produces Ċ import Ġjavax . inject . Inject Ċ Ċ data Ġclass ĠMongo Config ( ĊĠĠĠ Ġval Ġurl : ĠConnection String , ĊĠĠĠ Ġval Ġusername : ĠString ?, ĊĠĠĠ Ġval Ġpassword : ĠString ? Ċ ) Ċ Ċ @ Application Scoped Ċ class ĠDatabase Configuration Producer Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġ@ Config Property ( name Ġ= Ġ" MONGO DB _ URL ") Ġvar Ġurl : ĠString , ĊĠĠĠ Ġ@ Config Property ( name Ġ= Ġ" MONGO DB _ USERNAME ", ĠdefaultValue Ġ= Ġ"") Ġvar Ġusername : ĠOptional < String >, ĊĠĠĠ Ġ@ Config Property ( name Ġ= Ġ" MONGO DB _ PASSWORD ", ĠdefaultValue Ġ= Ġ"") Ġvar Ġpassword : ĠOptional < String > Ċ ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Ġ* Ġ* Ġ* ĠSUB IN DO ĠB AN CO ĠEM Ġ$ url Ġ* Ġ* Ġ*" Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Produces ĊĠĠĠ Ġfun Ġproduce () Ġ= ĠMongo Config ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠConnection String ( url ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġusername . orElse ( null ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġpassword . orElse ( null ) ĊĠĠĠĠĠĠĠ Ġ) Ċ Ċ } Ċ