package Ġs ny k Ċ Ċ import Ġcom . intellij . openapi . diagnostic . logger Ċ import Ġs ny k . Property Loader . Property Keys . ENVIRONMENT Ċ import Ġs ny k . Property Loader . Property Keys . SEGMENT _ ANAL YT ICS _ WRITE _ KEY Ċ import Ġs ny k . Property Loader . Property Keys . S ENTRY _ DS N Ċ import Ġjava . io . IOException Ċ import Ġjava . util . Properties Ċ Ċ object ĠProperty Loader Ġ{ ĊĠĠĠ Ġprivate Ġval ĠLOG Ġ= Ġlogger < Property Loader >() ĊĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ PROPERTY _ FILE Ġ= Ġ" application . properties " ĊĊĠĠĠ Ġprivate Ġval Ġproperties Ġ= ĠProperties () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . load ( java Class . class Loader . getResource AsStream ( DEFAULT _ PROPERTY _ FILE )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn (" Property Ġfile Ġcontains Ġa Ġmalformed ĠUnicode Ġescape Ġsequence ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . warn (" Could Ġnot Ġload Ġ$ DEFAULT _ PROPERTY _ FILE ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġplugin Ġenvironment Ġ( default Ġvalue Ġis Ġ` DE VELO P MENT `) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġenvironment : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġloaded Value Ġ= Ġproperties . getProperty ( ENVIRONMENT ) ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue Ġ= Ġ" DE VELO P MENT " ĊĠĠĠĠĠĠĠ Ġif Ġ( loaded Value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Missing Property ( ENVIRONMENT , ĠdefaultValue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloaded Value Ġ?: ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsegment Write Key : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġloaded Value Ġ= Ġproperties . getProperty ( SEGMENT _ ANAL YT ICS _ WRITE _ KEY ) ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( loaded Value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Missing Property ( SEGMENT _ ANAL YT ICS _ WRITE _ KEY , ĠdefaultValue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloaded Value Ġ?: ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe ĠS entry ĠD SN ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġs entry D sn : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġloaded Value Ġ= Ġproperties . getProperty ( S ENTRY _ DS N ) ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġif Ġ( loaded Value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Missing Property ( S ENTRY _ DS N , ĠdefaultValue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġloaded Value Ġ?: ĠdefaultValue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlog Missing Property ( value : ĠString , ĠdefaultValue : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLOG . warn (" Property Ġ'$ value ' Ġwas Ġnot Ġfound Ġin Ġ$ DEFAULT _ PROPERTY _ FILE , Ġuse Ġ'$ defaultValue ' Ġas Ġdefault Ġvalue ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProperty Ġkeys Ġfrom Ġ` src / main / resources / application . properties ` Ġfile . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġobject ĠProperty Keys Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠENV IRONMENT Ġ= Ġ" environment " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSEG MENT _ ANAL YT ICS _ WRITE _ KEY Ġ= Ġ" segment . analytics . write - key " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS ENTRY _ DS N Ġ= Ġ" sentry . dsn " ĊĠĠĠ Ġ} Ċ } Ċ