package Ġcom . ne va . jav are l . storage . store . impl Ċ Ċ import Ġcom . mongodb . Mongo Client Ċ import Ġcom . mongodb . Mongo Credential Ċ import Ġcom . mongodb . Server Address Ċ import Ġcom . ne va . jav are l . foundation . api . J av are l Constants Ċ import Ġcom . ne va . jav are l . storage . store . api . Store Connection Ċ import Ġorg . apache . fel ix . scr . annotations . Activate Ċ import Ġorg . apache . fel ix . scr . annotations . Component Ċ import Ġorg . apache . fel ix . scr . annotations . Property Ċ import Ġorg . apache . fel ix . scr . annotations . Service Ċ Ċ @ Component ( ĊĠĠĠĠĠĠĠ Ġimmediate Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġconfiguration Factory Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġmet atype Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġlabel Ġ= Ġ"${ J av are l Constants . SERVICE _ PREFIX } ĠStorage Ġ- ĠStore ĠConnection " Ċ ) Ċ @ Service Ċ class ĠMulti Store Connection Ġ: ĠStore Connection Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNAME _ DEFAULT Ġ= Ġ" default " ĊĊĠĠĠĠĠĠĠ Ġ@ Property ( name Ġ= ĠNAME _ PROP , Ġvalue Ġ= Ġ" default ", Ġlabel Ġ= Ġ" Connection Ġname ", Ġdescription Ġ= Ġ" Unique Ġidentifier ") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNAME _ PROP Ġ= Ġ" name " ĊĊĠĠĠĠĠĠĠ Ġ@ Property ( name Ġ= ĠHOST _ PROP , Ġvalue Ġ= Ġ" localhost ", Ġlabel Ġ= Ġ" Host ", Ġdescription Ġ= Ġ" Server ĠIP Ġaddress Ġor Ġhostname ") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHOST _ PROP Ġ= Ġ" host Prop " ĊĊĠĠĠĠĠĠĠ Ġ@ Property ( name Ġ= ĠPORT _ PROP , Ġvalue Ġ= Ġ" 2 7 0 1 7 ", Ġlabel Ġ= Ġ" Port ", Ġdescription Ġ= Ġ" Port Ġnumber ") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPORT _ PROP Ġ= Ġ" port Prop " ĊĊĠĠĠĠĠĠĠ Ġ@ Property ( name Ġ= ĠDB _ NAME _ PROP , Ġvalue Ġ= Ġ" jav are l ", Ġlabel Ġ= Ġ" Database Ġname ") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDB _ NAME _ PROP Ġ= Ġ" dbName Prop " ĊĊĠĠĠĠĠĠĠ Ġ@ Property ( name Ġ= ĠUSER _ PROP , Ġvalue Ġ= Ġ"", Ġlabel Ġ= Ġ" Username ") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUSER _ PROP Ġ= Ġ" user Prop " ĊĊĠĠĠĠĠĠĠ Ġ@ Property ( name Ġ= ĠPASSWORD _ PROP , Ġvalue Ġ= Ġ"", Ġlabel Ġ= Ġ" Password ") ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPASSWORD _ PROP Ġ= Ġ" password Prop " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġprops : ĠMap < String , ĠAny > ĊĊĠĠĠ Ġ@ Activate ĊĠĠĠ Ġprivate Ġfun Ġactivate ( props : ĠMap < String , ĠAny >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . props Ġ= Ġprops ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprops [ NAME _ PROP ] Ġas ĠString ĊĊĠĠĠ Ġprivate Ġval Ġhost : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprops [ HOST _ PROP ] Ġas ĠString ĊĊĠĠĠ Ġprivate Ġval Ġport : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠInteger . parseInt ( props [ PORT _ PROP ] Ġas ĠString ) ĊĊĠĠĠ Ġoverride Ġval Ġdb Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprops [ DB _ NAME _ PROP ] Ġas ĠString ĊĊĠĠĠ Ġprivate Ġval Ġuser : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprops [ USER _ PROP ] Ġas ĠString ĊĊĠĠĠ Ġprivate Ġval Ġpassword : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġprops [ PASSWORD _ PROP ] Ġas ĠString ĊĊĠĠĠ Ġoverride Ġval Ġclient : ĠMongo Client ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= ĠServer Address ( host , Ġport ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcredentials Ġ= Ġmutable ListOf < Mongo Credential >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! user . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials . add ( Mongo Credential . create Credential ( user , Ġdb Name , Ġpassword . toCharArray ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMongo Client ( address , Ġcredentials ) ĊĠĠĠĠĠĠĠ Ġ} Ċ }