package Ġno . nav . bid rag . cucumber Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġno . nav . bid rag . cucumber . input . Integration Input Ċ import Ġno . nav . bid rag . cucumber . s ik ker het . S ik ker het Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . yaml . s na key aml . Yaml Ċ import Ġjava . io . File Ċ Ċ internal Ġobject ĠN ais Configuration Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠLOGGER Ġ= ĠLoggerFactory . getLogger ( N ais Configuration :: class . java ) ĊĠĠĠ Ġprivate Ġval ĠENV IRONMENT _ FOR _ APPLICATION : ĠMutable Map < String , ĠEnvironment File > Ġ= ĠHashMap () ĊĠĠĠ Ġprivate Ġval ĠA LI AS _ TO _ NA IS _ APPLICATION : ĠMap < String , ĠString > Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ ĠPair (" bid rag D okument ", Ġ" bid rag - d okument "), ĊĠĠĠĠĠĠĠ ĠPair (" bid rag D okument Ar k iv ", Ġ" bid rag - d okument - ark iv "), ĊĠĠĠĠĠĠĠ ĠPair (" bid rag D okument Journal post ", Ġ" bid rag - d okument - journal post "), ĊĠĠĠĠĠĠĠ ĠPair (" bid rag Organ is as jon ", Ġ" bid rag - organ is as jon "), ĊĠĠĠĠĠĠĠ ĠPair (" bid rag Person ", Ġ" bid rag - person "), ĊĠĠĠĠĠĠĠ ĠPair (" bid rag S ak ", Ġ" bid rag - sak "), ĊĠĠĠĠĠĠĠ ĠPair (" bid rag S jab lon ", Ġ" bid rag - sj ablon ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġread ( application Or Alias : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapplication Name Ġ= Ġdetermine App k lication Name ( application Or Alias ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! ENVIRONMENT _ FOR _ APPLICATION . containsKey ( application Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġread N ais Configuration ( application Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġapplication Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġread N ais Configuration ( application Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintegration Input Ġ= ĠEnvironment . fetch Integration Input () ĊĠĠĠĠĠĠĠ Ġval Ġapp lf older Ġ= ĠFile ("${ integration Input . na is Project Folder }/ $ application Name ") ĊĠĠĠĠĠĠĠ Ġval Ġna is Folder Ġ= ĠFile ("${ integration Input . na is Project Folder }/ $ application Name / na is ") ĊĠĠĠĠĠĠĠ Ġval Ġhidden N ais Folder Ġ= ĠFile ("${ integration Input . na is Project Folder }/ $ application Name /. na is ") ĊĊĠĠĠĠĠĠĠ ĠLOGGER . info ("> Ġap pl Folder ĠĠĠĠĠĠ Ġ- Ġ${ exists ( app lf older )} Ġ$ app lf older ") ĊĠĠĠĠĠĠĠ ĠLOGGER . info ("> Ġna is Folder ĠĠĠĠĠĠ Ġ- Ġ${ exists ( na is Folder )} Ġ$ na is Folder ") ĊĠĠĠĠĠĠĠ ĠLOGGER . info ("> Ġhidden N ais Folder Ġ- Ġ${ exists ( hidden N ais Folder )} Ġ$ hidden N ais Folder ") ĊĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġfetch Env File By Environment ( if Ġ( na is Folder . exists ()) Ġna is Folder Ġelse Ġhidden N ais Folder , Ġintegration Input ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment File Ġ= ĠEnvironment File ( application Name , Ġfile ) ĊĠĠĠĠĠĠĠ ĠENV IRONMENT _ FOR _ APPLICATION [ application Name ] Ġ= Ġenvironment File ĊĠĠĠĠĠĠĠ ĠS ik ker het . set t Opp ( environment File ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Env File By Environment ( na is Folder : ĠFile , Ġintegration Input : ĠIntegration Input ): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmil jo Json Ġ= ĠFile ( na is Folder , Ġ"${ integration Input . environment }. json ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( mil jo Json . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmil jo Json ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmil jo Yaml Ġ= ĠFile ( na is Folder , Ġ"${ integration Input . environment }. yaml ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( mil jo Yaml . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmil jo Yaml ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Unable Ġto Ġfind Ġ$ na is Folder /${ integration Input . environment }. ? Ġ( json Ġor Ġyaml )") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexists ( file : ĠFile ) Ġ= Ġif Ġ( file . exists ()) Ġ" Existing Ġpath " Ġelse Ġ" Missing Ġpath " ĊĊĠĠĠ Ġinternal Ġfun Ġh ent Application Host Url ( application Name Or Alias : ĠString ): ĠString Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġapplication Name Ġ= Ġdetermine App k lication Name ( application Name Or Alias ) ĊĠĠĠĠĠĠĠ Ġval Ġenvironment File Ġ= ĠENV IRONMENT _ FOR _ APPLICATION [ application Name ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" no Ġpath Ġfor Ġ$ application Name Ġin Ġ$ ENVIRONMENT _ FOR _ APPLICATION ") ĊĊĠĠĠĠĠĠĠ Ġval Ġing resses Ġ= Ġif Ġ( environment File . endsWith (". yaml ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ing resses From Yaml ( environment File ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Ing resses FromJson ( environment File ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġingress Ġ= Ġfetch Ingress ( ing resses ). replace ("// ", Ġ"/ "). replace (" https :/ ", Ġ" https :// ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ingress . endsWith ("/ ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġingress Ġ= Ġingress . remove Suffix ("/") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġingress ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Ing resses From Yaml ( environment File : ĠEnvironment File ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġyaml Reader Ġ= Ġenvironment File . buffered Reader () ĊĠĠĠĠĠĠĠ Ġval Ġyaml Map Ġ= ĠYaml (). load < Map < String , ĠList < String >> >( yaml Reader ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġyaml Map . getValue (" ing resses ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Ing resses FromJson ( environment File : ĠEnvironment File ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson File As Map Ġ= Ġenvironment File . read With Gson () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( json Ġin Ġjson File As Map ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( json ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") Ġreturn Ġjson File As Map [" ing resses "] Ġas ĠList < String > ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Ingress ( ing resses : ĠList < String ?> ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfetch Ingress ( ing resses , Ġ" dev . intern . nav . no ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfetch Ingress ( ing resses , Ġ" dev . ade o ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġfetch Ingress ( ing resses , Ġ" pre prod . local ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalStateException (" K un ne Ġik ke Ġfast sl Ã¥ Ġingress Ġtil Ġt jen este !") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Ingress ( ing resses : ĠList < String ? >, Ġhost Name : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( ingress Ġin Ġing resses ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ingress ?. contains ( Regex ( host Name )) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġingress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdetermine App k lication Name ( application Name Or Alias : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ALIAS _ TO _ NA IS _ APPLICATION . containsKey ( application Name Or Alias )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠA LI AS _ TO _ NA IS _ APPLICATION . getValue ( application Name Or Alias ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Environment . na is Applications . contains ( application Name Or Alias )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġapplication Name Or Alias ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Unable Ġto Ġdetermine Ġapplication Ġname Ġfor Ġ'$ application Name Or Alias '" ĊĠĠĠĠĠĠĠ ĠLOGGER . error ( message ) ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException ( message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġdata Ġclass ĠEnvironment File ( ĊĠĠĠĠĠĠĠ Ġval Ġapplication Name : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġna is Environment File : ĠFile ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparent File : ĠFile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġna is Environment File . parent File ĊĊĠĠĠĠĠĠĠ Ġfun Ġend sWith ( suffix : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġna is Environment File . absolute Path . endsWith ( suffix ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuffered Reader () Ġ= Ġna is Environment File . buffered Reader ( Charsets . UTF _ 8 ) ĊĠĠĠĠĠĠĠ Ġfun Ġread With Gson (): ĠMap < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuffered Reader Ġ= Ġbuffered Reader () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġgson . fromJson ( buffered Reader , ĠMap :: class . java ) Ġas ĠMap < String , ĠAny > ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ