package Ġnet . cord a . be have . node . configuration Ċ Ċ import Ġnet . cord a . be have . database . Database Type Ċ import Ġnet . cord a . be have . node . Distribution Ċ import Ġnet . cord a . core . identity . C ord a X 5 0 0 Name Ċ import Ġnet . cord a . core . internal . write Text Ċ import Ġnet . cord a . core . utilities . context Logger Ċ import Ġjava . nio . file . Path Ċ Ċ class ĠConfiguration ( ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġdistribution : ĠDistribution Ġ= ĠDistribution . MASTER , ĊĠĠĠĠĠĠĠ Ġval Ġdatabase Type : ĠDatabase Type Ġ= ĠDatabase Type . H 2 , ĊĠĠĠĠĠĠĠ Ġval Ġlocation : ĠString Ġ= Ġ" L ondon ", ĊĠĠĠĠĠĠĠ Ġval Ġcountry : ĠString Ġ= Ġ" GB ", ĊĠĠĠĠĠĠĠ Ġval Ġusers : ĠUser Configuration Ġ= ĠUser Configuration (). with User (" cord a ", ĠDEFAULT _ PASSWORD ), ĊĠĠĠĠĠĠĠ Ġval Ġnode Interface : ĠNetwork Interface Ġ= ĠNetwork Interface (), ĊĠĠĠĠĠĠĠ Ġval Ġdatabase : ĠDatabase Configuration Ġ= ĠDatabase Configuration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Interface . host , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode Interface . db Port , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= ĠDEFAULT _ PASSWORD ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġval Ġnot ary : ĠNot ary Configuration Ġ= ĠNot ary Configuration (), ĊĠĠĠĠĠĠĠ Ġval Ġc ord apps : ĠC ord app Configuration Ġ= ĠC ord app Configuration (), ĊĠĠĠĠĠĠĠ Ġvar arg Ġconfig Elements : ĠConfiguration Template Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdeveloper Mode Ġ= Ġtrue ĊĊĠĠĠ Ġval Ġc ord a X 5 0 0 Name : ĠC ord a X 5 0 0 Name Ġby Ġlazy ({ ĊĠĠĠĠĠĠĠ ĠC ord a X 5 0 0 Name ( name , Ġlocation , Ġcountry ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġprivate Ġval Ġbasic Config Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| my Legal Name =" C =$ country , L =$ location , O =$ name " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| key Store Password =" cord acade v pass " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| trust Store Password =" trust pass " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| dev Mode =$ developer Mode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| jar Dirs Ġ= Ġ[ Ġ"../ libs " Ġ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĊĠĠĠ Ġprivate Ġval Ġextra Config Ġ= Ġ( config Elements . toList () Ġ+ ĠlistOf ( users , Ġnode Interface )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ"\ n ") Ġ{ Ġit . generate ( this ) Ġ} ĊĊĠĠĠ Ġfun Ġwrite ToFile ( file : ĠPath ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfile . write Text ( this . generate ()) ĊĠĠĠĠĠĠĠ Ġlog . debug ( this . generate ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate () Ġ= ĠlistOf ( basic Config , Ġdatabase . config (), Ġextra Config ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isNotBlank () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ("\ n ") ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= Ġcontext Logger () ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ PASSWORD Ġ= Ġ" S 0 me S 3 cret W 0 rd " ĊĠĠĠ Ġ} Ċ } Ċ