package Ġno . nav . hel se . medi ator Ċ Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġnet . logstash . log back . argument . Structured Arguments . key Value Ċ import Ġno . nav . hel se . ann ull ering stell er Ċ import Ġno . nav . hel se . medi ator . api .* Ċ import Ġno . nav . hel se . medi ator . api . mode ll . S aks be handler Ċ import Ġno . nav . hel se . medi ator . meld inger .* Ċ import Ġno . nav . hel se . mode ll .* Ċ import Ġno . nav . hel se . mode ll . ar be ids for hold . Ar be ids for hold l Ã¸ s ning Ċ import Ġno . nav . hel se . mode ll . ar be id sg iver . Ar be id sg iver Dao Ċ import Ġno . nav . hel se . mode ll . kom mand o . Command Context Ċ import Ġno . nav . hel se . mode ll . person . Person Dao Ċ import Ġno . nav . hel se . mode ll . ut bet aling . U tb et aling Dao Ċ import Ġno . nav . hel se . mode ll . ut bet aling . U tb et aling type Ċ import Ġno . nav . hel se . mode ll . ved tak sp eri ode . In n tek ts k ilde Ċ import Ġno . nav . hel se . mode ll . ved tak sp eri ode . Per i ode type Ċ import Ġno . nav . hel se . object Mapper Ċ import Ġno . nav . hel se . op pg ave . Opp g ave Ċ import Ġno . nav . hel se . op pg ave . Opp g ave Dao Ċ import Ġno . nav . hel se . op pg ave . Opp g ave Mediator Ċ import Ġno . nav . hel se . over sty ring . Over sty ring Dag Dto Ċ import Ġno . nav . hel se . over sty ring stell er Ċ import Ġno . nav . hel se . rap ids _ river s . Json Message Ċ import Ġno . nav . hel se . rap ids _ river s . Message Context Ċ import Ġno . nav . hel se . rap ids _ river s . R ap ids Connection Ċ import Ġno . nav . hel se . re serv as jon . Reser vas jon Dao Ċ import Ġno . nav . hel se . s aks be handler . S aks be handler Dao Ċ import Ġno . nav . hel se . tilde ling . T ilde ling Dao Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . LocalDateTime . now Ċ import Ġjava . time . temporal . Ch rono Unit . SECONDS Ċ import Ġjava . util .* Ċ import Ġjavax . sql . DataSource Ċ Ċ internal Ġclass ĠHen del se Mediator ( ĊĠĠĠ Ġprivate Ġval ĠdataSource : ĠDataSource , ĊĠĠĠ Ġprivate Ġval Ġrap ids Connection : ĠR ap ids Connection , ĊĠĠĠ Ġprivate Ġval Ġopp g ave Dao : ĠO pp g ave Dao Ġ= ĠO pp g ave Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġved tak Dao : ĠV ed tak Dao Ġ= ĠV ed tak Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġut bet aling Dao : ĠU tb et aling Dao Ġ= ĠU tb et aling Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġperson Dao : ĠPerson Dao Ġ= ĠPerson Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġsnapshot Dao : ĠSnapshot Dao Ġ= ĠSnapshot Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġcommand Context Dao : ĠCommand Context Dao Ġ= ĠCommand Context Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġar be id sg iver Dao : ĠAr be id sg iver Dao Ġ= ĠAr be id sg iver Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġh en del se Dao : ĠHen del se Dao Ġ= ĠHen del se Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġtil de ling Dao : ĠT ilde ling Dao Ġ= ĠT ilde ling Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġre serv as jon Dao : ĠReser vas jon Dao Ġ= ĠReser vas jon Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġs aks be handler Dao : ĠS aks be handler Dao Ġ= ĠS aks be handler Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġfe il ende Mel ding er Dao : ĠFe il ende Mel ding er Dao Ġ= ĠFe il ende Mel ding er Dao ( dataSource ), ĊĠĠĠ Ġprivate Ġval Ġopp g ave Mediator : ĠO pp g ave Mediator , ĊĠĠĠ Ġprivate Ġval Ġh en del se fab ri kk : ĠI H en del se fab ri kk Ċ ) Ġ: ĠI H en del se Mediator Ġ{ ĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( H en del se Mediator :: class . java ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġs ik ker Log g Ġ= ĠLoggerFactory . getLogger (" t jen est ek all ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġbeh ov Mediator Ġ= ĠBe h ov Mediator ( rap ids Connection , Ġs ik ker Log g ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠDeleg ated R apid ( rap ids Connection , Ġ:: for ber ed , Ġ:: fort set t , Ġ:: error Handler ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGod k jen nings be h ov . God k jen nings be h ov R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ent Person inf ol Ã¸ s ning . Person info R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ent En he tl Ã¸ s ning . H ent En het R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠH ent Info try gd ut bet al inger l Ã¸ s ning . Info try gd ut bet al inger R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠS aks be handler l Ã¸ s ning . S aks be handler l Ã¸ s ning R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAr be id sg iver inform as jon l Ã¸ s ning . Ar be id sg iver R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAr be ids for hold l Ã¸ s ning . Ar be ids for hold R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ed tak sp eri ode Fork ast et . V ed tak sp eri ode Fork ast et R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ed tak sp eri ode End ret . V ed tak sp eri ode End ret R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAd resse bes ky tt else End ret . Ad resse bes ky tt else End ret R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOver sty ring T ids lin je . Over sty ring T ids lin je R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOver sty ring In n te kt . Over sty ring In n te kt R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDigital Kont akt inform as jon l Ã¸ s ning . Digital Kont akt inform as jon R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠE gen An s att l Ã¸ s ning . E gen An s att R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠÃ ħ p ne G os ys Opp ga ver l Ã¸ s ning . Ã ħ p ne G os ys Opp ga ver R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR is ik ov ur der ing l Ã¸ s ning . V 2 R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠU tb et aling An null ert . U tb et aling An null ert R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠO pp dater Pers ons napshot . R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠU tb et aling End ret . R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV ed tak sp eri ode Re ber eg net . R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRev ur der ing Av v ist . R iver ( it , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġl Ã¸ s ning er : ĠL Ã¸ s ning er ? Ġ= Ġnull ĊĊĠĠĠ Ġ// Ġsam ler Ġopp Ġl Ã¸ s ning er ĊĠĠĠ Ġoverride Ġfun Ġl Ã¸ s ning ( ĊĠĠĠĠĠĠĠ Ġh en del se Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġcontext Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġbeh ov Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġl Ã¸ s ning : ĠAny , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith M DC ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be h ov Id " Ġto Ġ"$ be h ov Id " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl Ã¸ s ning er ( hen del se Id , Ġcontext Id )?. also Ġ{ Ġit . add ( hen del se Id , Ġcontext Id , Ġl Ã¸ s ning ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġlog . info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mot tok Ġl Ã¸ s ning Ġmed Ġbeh ov Id =$ be h ov Id Ġsom Ġik ke Ġkun ne Ġbru kes Ġfor di Ġkom mand o en Ġik ke Ġl eng re Ġer Ġsuspend ert , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" eller Ġfor di Ġh ende ls en Ġ$ hen del se Id Ġer Ġuk j ent " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġh Ã¥ nd ter ( god k jen ning DTO : ĠGod k jen ning DTO , Ġe post : ĠString , Ġoid : ĠUUID ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Id Ġ= Ġopp g ave Dao . fin n Context Id ( god k jen ning DTO . op pg aver e fer an se ) ĊĠĠĠĠĠĠĠ Ġval Ġh en del se Id Ġ= Ġopp g ave Dao . fin n H en del se Id ( god k jen ning DTO . op pg aver e fer an se ) ĊĠĠĠĠĠĠĠ Ġval Ġf Ã¸ d se ls nummer Ġ= Ġh en del se Dao . fin n F Ã¸ d se ls nummer ( hen del se Id ) ĊĠĠĠĠĠĠĠ Ġval Ġgod k jen ning Message Ġ= ĠJson Message . new Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstandard fel ter (" s aks be handler _ l Ã¸ s ning ", Ġf Ã¸ d se ls nummer ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" op pg ave Id ", Ġgod k jen ning DTO . op pg aver e fer an se ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" hen del se Id ", Ġh en del se Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" god kj ent ", Ġgod k jen ning DTO . god kj ent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" s aks be handler ident ", Ġgod k jen ning DTO . s aks be handler Ident ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" s aks be handler oid ", Ġoid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" s aks be hand l ere post ", Ġe post ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" god kj ent tid sp unkt ", ĠLocalDateTime . now ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgod k jen ning DTO . Ã¥ rs ak ?. let Ġ{ Ġput (" Ã¥ rs ak ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgod k jen ning DTO . be gr unnel ser ?. let Ġ{ Ġput (" be gr unnel ser ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgod k jen ning DTO . kom ment ar ?. let Ġ{ Ġput (" kom ment ar ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ik ker Log g . info (" Pub l iser er Ġs aks be handler - l Ã¸ s ning : Ġ${ it . toJson () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlog . info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Pub l iser er Ġs aks be handler - l Ã¸ s ning Ġfor Ġ{} . Ġ{} . Ġ{}", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" op pg ave Id ", Ġgod k jen ning DTO . op pg aver e fer an se ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" hen del se Id ", Ġh en del se Id ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrap ids Connection . publish ( f Ã¸ d se ls nummer , Ġgod k jen ning Message . toJson ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġintern Opp g ave Mediator Ġ= ĠO pp g ave Mediator ( op pg ave Dao , Ġtil de ling Dao , Ġre serv as jon Dao ) ĊĠĠĠĠĠĠĠ Ġintern Opp g ave Mediator . re server Opp g ave ( oid , Ġf Ã¸ d se ls nummer ) ĊĠĠĠĠĠĠĠ Ġintern Opp g ave Mediator . av vent er System ( god k jen ning DTO . op pg aver e fer an se , Ġgod k jen ning DTO . s aks be handler Ident , Ġoid ) ĊĠĠĠĠĠĠĠ Ġintern Opp g ave Mediator . lag re Opp ga ver ( rap ids Connection , Ġh en del se Id , Ġcontext Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġtil del Opp g ave Til S aks be handler ( ĊĠĠĠĠĠĠĠ Ġopp g ave Id : ĠLong , ĊĠĠĠĠĠĠĠ Ġs aks be handler refer an se : ĠUUID , ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs uk sess Ġ= Ġopp g ave Mediator . til del ( op pg ave Id , Ġs aks be handler refer an se ) ĊĠĠĠĠĠĠĠ Ġif Ġ( s uk sess ) Ġrap ids Connection . publish ( Opp g ave . lag Mel ding ( op pg ave Id , Ġ" op pg ave _ opp dat ert ", Ġopp g ave Dao ). toJson ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġs uk sess ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġle gg Opp g ave P Ã¥ Vent ( ĊĠĠĠĠĠĠĠ Ġopp g ave Id : ĠLong , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrap ids Connection . publish ( Opp g ave . lag Mel ding ( op pg ave Id , Ġ" op pg ave _ opp dat ert ", Ġopp g ave Dao ). toJson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġsend Mel ding P Ã¥ Topic ( meld ing : ĠJsonNode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfn r Ġ= Ġme ld ing [" f Ã¸ d se ls nummer "]. as Text () ĊĠĠĠĠĠĠĠ Ġval Ġraw Json Ġ= ĠobjectMapper . writeValue AsString ( meld ing ) ĊĠĠĠĠĠĠĠ Ġs ik ker Log g . info (" Man ue ll Ġpub lis ering Ġav Ġme ld ing Ġfor Ġfn r =${ fn r }, Ġme ld ing =${ raw Json }") ĊĠĠĠĠĠĠĠ Ġrap ids Connection . publish ( fn r , Ġraw Json ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġad resse bes ky tt else End ret ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠJson Message , ĊĠĠĠĠĠĠĠ Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( f Ã¸ d se ls nummer , Ġh en del se fab ri kk . ad resse bes ky tt else End ret ( id , Ġf Ã¸ d se ls nummer , Ġmessage . toJson ()), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġved tak sp eri ode End ret ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠJson Message , ĊĠĠĠĠĠĠĠ Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġved tak sp eri ode Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġved tak sp eri ode Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh en del se fab ri kk . ved tak sp eri ode End ret ( id , Ġved tak sp eri ode Id , Ġf Ã¸ d se ls nummer , Ġmessage . toJson ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġved tak sp eri ode Fork ast et ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠJson Message , ĊĠĠĠĠĠĠĠ Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġved tak sp eri ode Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġved tak sp eri ode Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh en del se fab ri kk . ved tak sp eri ode Fork ast et ( id , Ġved tak sp eri ode Id , Ġf Ã¸ d se ls nummer , Ġmessage . toJson ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgod k jen nings be h ov ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠJson Message , ĊĠĠĠĠĠĠĠ Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġakt Ã¸ r Id : ĠString , ĊĠĠĠĠĠĠĠ Ġorgan is as j ons nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġper i ode F om : ĠLocalDate , ĊĠĠĠĠĠĠĠ Ġper i ode Tom : ĠLocalDate , ĊĠĠĠĠĠĠĠ Ġsk j Ã¦ ring st id sp unkt : ĠLocalDate , ĊĠĠĠĠĠĠĠ Ġved tak sp eri ode Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġut bet aling Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġar be ids for hold Id : ĠString ?, ĊĠĠĠĠĠĠĠ Ġper i ode type : ĠPer i ode type , ĊĠĠĠĠĠĠĠ Ġut bet aling type : ĠU tb et aling type , ĊĠĠĠĠĠĠĠ Ġinn tek ts k ilde : ĠIn n tek ts k ilde , ĊĠĠĠĠĠĠĠ Ġakt ive V ed tak sper iod er : ĠList < God k jen nings be h ov . A ktiv V ed tak sp eri ode >, ĊĠĠĠĠĠĠĠ Ġorg num m ere Med A kt ive Ar be ids for hold : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( op pg ave Dao . har Gy ld ig Opp g ave ( ut bet aling Id ) Ġ|| Ġved tak Dao . er Autom atis k God kj ent ( ut bet aling Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ik ker Log g . info (" ved tak sp eri ode Id =$ ved tak sp eri ode Id Ġmed Ġut bet aling Id =$ ut bet aling Id Ġhar Ġgy ld ig Ġopp g ave Ġeller Ġer Ġautomatis k Ġgod kj ent . ĠIgn orer er Ġgod k jen nings be h ov Ġmed Ġid =$ id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh en del se fab ri kk . god k jen ning ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġakt Ã¸ r Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorgan is as j ons nummer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode F om , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Tom , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġved tak sp eri ode Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut bet aling Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar be ids for hold Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsk j Ã¦ ring st id sp unkt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut bet aling type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinn tek ts k ilde , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġakt ive V ed tak sper iod er , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg num m ere Med A kt ive Ar be ids for hold , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . toJson () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġs aks be handler l Ã¸ s ning ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠJson Message , ĊĠĠĠĠĠĠĠ Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġgod k jen nings be h ov hen del se Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġgod kj ent : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġs aks be handler ident : ĠString , ĊĠĠĠĠĠĠĠ Ġs aks be handler oid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġs aks be hand l ere post : ĠString , ĊĠĠĠĠĠĠĠ Ġgod kj ent tid sp unkt : ĠLocalDateTime , ĊĠĠĠĠĠĠĠ ĠÃ¥ rs ak : ĠString ?, ĊĠĠĠĠĠĠĠ Ġbe gr unnel ser : ĠList < String > ?, ĊĠĠĠĠĠĠĠ Ġkom ment ar : ĠString ?, ĊĠĠĠĠĠĠĠ Ġopp g ave Id : ĠLong , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer , Ġh en del se fab ri kk . s aks be handler l Ã¸ s ning ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgod k jen nings be h ov hen del se Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgod kj ent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler ident , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler oid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be hand l ere post , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgod kj ent tid sp unkt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠÃ¥ rs ak , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr unnel ser , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkom ment ar , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp g ave Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . toJson () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġover sty ring T ids lin je ( ĊĠĠĠĠĠĠĠ Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġoid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġnav n : ĠString , ĊĠĠĠĠĠĠĠ Ġident : ĠString , ĊĠĠĠĠĠĠĠ Ġe post : ĠString , ĊĠĠĠĠĠĠĠ Ġorg nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġbe gr un n else : ĠString , ĊĠĠĠĠĠĠĠ Ġover st yr te D ager : ĠList < Over sty ring Dag Dto >, ĊĠĠĠĠĠĠĠ Ġjson : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( f Ã¸ d se ls nummer , Ġh en del se fab ri kk . over sty ring T ids lin je ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer Ġ= Ġf Ã¸ d se ls nummer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoid Ġ= Ġoid , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav n Ġ= Ġnav n , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġident Ġ= Ġident , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe post Ġ= Ġe post , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorg nummer Ġ= Ġorg nummer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġbe gr un n else , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġover st yr te D ager Ġ= Ġover st yr te D ager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Ġ= Ġjson ĊĠĠĠĠĠĠĠ Ġ), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġover sty ring In n te kt ( ĊĠĠĠĠĠĠĠ Ġid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġoid : ĠUUID , ĊĠĠĠĠĠĠĠ Ġnav n : ĠString , ĊĠĠĠĠĠĠĠ Ġident : ĠString , ĊĠĠĠĠĠĠĠ Ġe post : ĠString , ĊĠĠĠĠĠĠĠ Ġorg nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġbe gr un n else : ĠString , ĊĠĠĠĠĠĠĠ Ġfork lar ing : ĠString , ĊĠĠĠĠĠĠĠ ĠmÃ¥ ned lig In n te kt : ĠDouble , ĊĠĠĠĠĠĠĠ Ġsk j Ã¦ ring st id sp unkt : ĠLocalDate , ĊĠĠĠĠĠĠĠ Ġjson : ĠString , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer , Ġh en del se fab ri kk . over sty ring In n te kt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer Ġ= Ġf Ã¸ d se ls nummer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoid Ġ= Ġoid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav n Ġ= Ġnav n , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġident Ġ= Ġident , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe post Ġ= Ġe post , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorg nummer Ġ= Ġorg nummer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbe gr un n else Ġ= Ġbe gr un n else , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfork lar ing Ġ= Ġfork lar ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmÃ¥ ned lig In n te kt Ġ= ĠmÃ¥ ned lig In n te kt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsk j Ã¦ ring st id sp unkt Ġ= Ġsk j Ã¦ ring st id sp unkt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Ġ= Ġjson ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġcontext ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġut bet aling An null ert ( ĊĠĠĠĠĠĠĠ Ġmessage : ĠJson Message , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( hen del se fab ri kk . ut bet aling An null ert ( message . toJson ()), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġut bet aling End ret ( ĊĠĠĠĠĠĠĠ Ġf Ã¸ d se ls nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġorgan is as j ons nummer : ĠString , ĊĠĠĠĠĠĠĠ Ġut bet aling Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġut bet aling type : ĠU tb et aling type , ĊĠĠĠĠĠĠĠ Ġmessage : ĠJson Message , ĊĠĠĠĠĠĠĠ Ġcontext : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ut bet aling type Ġ== ĠU tb et aling type . UT B ET AL ING Ġ&& Ġ! ut bet aling Dao . har V Ã¦ rt Til God k jen ning ( ut bet aling Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ik ker Log g . info (" Ign orer er Ġut bet aling _ end ret Ġfor Ġ{}, Ġhar Ġik ke Ġv Ã¦ rt Ġtil Ġgod k jen ning ", Ġkey Value (" ut bet aling Id ", Ġut bet aling Id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( ar be id sg iver Dao . find Ar be id sg iver By Org nummer ( organ is as j ons nummer ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" F ant Ġik ke Ġar be id sg iver Ġmed Ġ{}, Ġse Ġs ik ker log g Ġfor Ġmer Ġinform as jon ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" hen del se Id ", Ġmessage [" @ id "]. as Text ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ik ker Log g . warn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" For st Ã¥r Ġik ke Ġut bet aling _ end ret : Ġf ant Ġik ke Ġar be id sg iver Ġmed Ġ{}, Ġ{}, Ġ{}, Ġ{} . ĠMel ding en Ġer Ġlag ret Ġi Ġfe il ende _ meld inger ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" hen del se Id ", Ġmessage [" @ id "]. as Text ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" f Ã¸ d se ls nummer ", Ġf Ã¸ d se ls nummer ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" organ is as j ons nummer ", Ġorgan is as j ons nummer ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" ut bet aling Id ", Ġmessage [" ut bet aling Id "]. as Text ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfe il ende Mel ding er Dao . lag re ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUUID . fromString ( message [" @ id "]. as Text ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage [" @ event _ name "]. as Text (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . toJson () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( f Ã¸ d se ls nummer , Ġh en del se fab ri kk . ut bet aling End ret ( message . toJson ()), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġopp dater Pers ons napshot ( message : ĠJson Message , Ġcontext : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( hen del se fab ri kk . op pd ater Pers ons napshot ( message . toJson ()), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġav br yt S aks be handling ( message : ĠJson Message , Ġcontext : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( hen del se fab ri kk . ved tak sp eri ode Re ber eg net ( message . toJson ()), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrev ur der ing Av v ist ( f Ã¸ d se ls nummer : ĠString , Ġerror : ĠList < String >, Ġjson : String , Ġcontext : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( hen del se fab ri kk . rev ur der ing Av v ist ( f Ã¸ d se ls nummer , Ġerror , Ġjson ), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġh Ã¥ nd ter ( over sty ring Message : ĠOver st yr T ids lin je Kafka Dto ) Ġ{ ĊĠĠĠĠĠĠĠ Ġover sty ring stell er . labels (" op pl ys ning stype ", Ġ" t ids lin je "). inc () ĊĊĠĠĠĠĠĠĠ Ġval Ġover sty ring Ġ= ĠJson Message . new Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstandard fel ter (" over st yr _ t ids lin je ", Ġover sty ring Message . f Ã¸ d se ls nummer ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" akt Ã¸ r Id ", Ġover sty ring Message . akt Ã¸ r Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" organ is as j ons nummer ", Ġover sty ring Message . organ is as j ons nummer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" d ager ", Ġover sty ring Message . d ager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" be gr un n else ", Ġover sty ring Message . be gr un n else ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" s aks be handler Oid ", Ġover sty ring Message . s aks be handler Oid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" s aks be handler Nav n ", Ġover sty ring Message . s aks be handler Nav n ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" s aks be handler Ident ", Ġover sty ring Message . s aks be handler Ident ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput (" s aks be handler E post ", Ġover sty ring Message . s aks be handler E post ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ik ker Log g . info (" Pub l iser er Ġover sty ring :\ n ${ it . toJson () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrap ids Connection . publish ( over sty ring Message . f Ã¸ d se ls nummer , Ġover sty ring . toJson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġh Ã¥ nd ter ( over sty ring Message : ĠOver st yr In n te kt Kafka Dto ) Ġ{ ĊĠĠĠĠĠĠĠ Ġover sty ring stell er . labels (" op pl ys ning stype ", Ġ" inn te kt "). inc () ĊĊĠĠĠĠĠĠĠ Ġval Ġover sty ring Ġ= Ġover sty ring Message . som Kafka Message (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ik ker Log g . info (" Pub l iser er Ġover sty ring Ġav Ġinn te kt :\ n ${ it . toJson () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrap ids Connection . publish ( over sty ring Message . f Ã¸ d se ls nummer , Ġover sty ring . toJson ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġh Ã¥ nd ter ( ann ull ering Dto : ĠAn null ering Dto , Ġs aks be handler : ĠS aks be handler ) Ġ{ ĊĠĠĠĠĠĠĠ Ġan null ering stell er . inc () ĊĠĠĠĠĠĠĠ Ġs aks be handler . pers ister ( s aks be handler Dao ) ĊĊĠĠĠĠĠĠĠ Ġval Ġan null ering Message Ġ= Ġan null ering Dto . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Message . new Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstandard fel ter (" ann ull ering ", Ġf Ã¸ d se ls nummer ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput All ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" organ is as j ons nummer " Ġto Ġorgan is as j ons nummer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" akt Ã¸ r Id " Ġto Ġakt Ã¸ r Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s aks be handler " Ġto Ġs aks be handler . json (). to Mutable Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġput (" ident ", Ġan null ering Dto . s aks be handler Ident ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f ags ystem Id " Ġto Ġf ags ystem Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" be gr unnel ser " Ġto Ġ( be gr unnel ser ) Ġas ĠAny , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" gj el der S iste Sk j Ã¦ ring st id sp unkt " Ġto Ġan null ering Dto . gj el der S iste Sk j Ã¦ ring st id sp unkt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ+ Ġ( kom ment ar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of < String , ĠAny >(" kom ment ar " Ġto Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġmap Of ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrap ids Connection . publish ( ann ull ering Dto . f Ã¸ d se ls nummer , Ġan null ering Message . toJson (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ik ker Log g . info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sender Ġan null ering Ġfor Ġ{}, Ġ{}\ n \ t $ it ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" f Ã¸ d se ls nummer ", Ġan null ering Dto . f Ã¸ d se ls nummer ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey Value (" organ is as j ons nummer ", Ġan null ering Dto . organ is as j ons nummer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġh Ã¥ nd ter ( op pd ater Pers ons napshot Dto : ĠO pp dater Pers ons napshot Dto ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrap ids Connection . publish ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp dater Pers ons napshot Dto . f Ã¸ d se ls nummer , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Message . new Message ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstandard fel ter (" op pd ater _ person snapshot ", Ġopp dater Pers ons napshot Dto . f Ã¸ d se ls nummer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). toJson () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġs ik ker Log g . info (" Pub l iser te Ġevent Ġfor ĠÃ¥ Ġbe Ġom Ġsist e Ġvers jon Ġav Ġperson : Ġ${ op pd ater Pers ons napshot Dto . f Ã¸ d se ls nummer }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfor ber ed () Ġ{ ĊĠĠĠĠĠĠĠ Ġl Ã¸ s ning er Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġl Ã¸ s ning er ( hen del se Id : ĠUUID , Ġcontext Id : ĠUUID ): ĠL Ã¸ s ning er ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġl Ã¸ s ning er Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġh en del se Ġ= Ġh en del se Dao . fin n ( hen del se Id , Ġh en del se fab ri kk ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommand Context Ġ= Ġcommand Context Dao . fin n Suspend ert ( context Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hen del se Ġ== Ġnull Ġ|| Ġcommand Context Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" f inner Ġik ke Ġh en del se Ġmed Ġid =$ hen del se Id Ġeller Ġcommand Ġcontext Ġmed Ġid =$ context Id ; Ġign orer er Ġme ld ing ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠL Ã¸ s ning er ( hen del se , Ġcontext Id , Ġcommand Context ). also Ġ{ Ġl Ã¸ s ning er Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġfort setter Ġen Ġcommand Ġ( resume ) Ġmed Ġopp sam let Ġl Ã¸ s ning er ĊĠĠĠ Ġprivate Ġfun Ġfort set t ( message : ĠString , Ġcontext : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġl Ã¸ s ning er ?. fort set t ( this , Ġmessage , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠerrorHandler ( err : ĠException , Ġmessage : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . error (" al vor lig Ġfe il : Ġ${ err . message } Ġ( se Ġs ik ker log g Ġfor Ġme ld ing )", Ġerr ) ĊĠĠĠĠĠĠĠ Ġs ik ker Log g . error (" al vor lig Ġfe il : Ġ${ err . message }\ n \ t $ message ", Ġerr ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġny Context ( hen del se : ĠHen del se , Ġcontext Id : ĠUUID ) Ġ= ĠCommand Context ( context Id ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġh en del se Dao . op prett ( hen del se ) ĊĠĠĠĠĠĠĠ Ġopp rett ( command Context Dao , Ġh en del se ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġutf Ã¸ r ( ved tak sp eri ode Id : ĠUUID , Ġh en del se : ĠHen del se , Ġmessage Context : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! hen del se Dao . har K ob ling Til ( ved tak sp eri ode Id )) Ġreturn Ġlog . debug (" ign orer er Ġh en del se Id =${ hen del se . id } Ġfor di Ġvi Ġik ke Ġk jen ner Ġtil Ġ$ ved tak sp eri ode Id ") ĊĠĠĠĠĠĠĠ Ġreturn Ġutf Ã¸ r ( hen del se , Ġmessage Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġutf Ã¸ r ( f Ã¸ d se ls nummer : ĠString , Ġh en del se : ĠHen del se , Ġmessage Context : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( person Dao . find Person By F Ã¸ d se ls nummer ( f Ã¸ d se ls nummer ) Ġ== Ġnull ) Ġreturn Ġlog . debug (" ign orer er Ġh en del se Id =${ hen del se . id } Ġfor di Ġvi Ġik ke Ġk jen ner Ġtil Ġperson en ") ĊĠĠĠĠĠĠĠ Ġreturn Ġutf Ã¸ r ( hen del se , Ġmessage Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġutf Ã¸ r ( hen del se : ĠHen del se , Ġmessage Context : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Id Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġlog . info (" op pret ter Ġny Ġkom mand ok ont ek st Ġmed Ġcontext _ id =$ context Id Ġfor Ġh en del se _ id =${ hen del se . id }") ĊĠĠĠĠĠĠĠ Ġutf Ã¸ r ( hen del se , Ġny Context ( hen del se , Ġcontext Id ), Ġcontext Id , Ġmessage Context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġutf Ã¸ r ( ĊĠĠĠĠĠĠĠ Ġh en del se : ĠHen del se , ĊĠĠĠĠĠĠĠ Ġcontext : ĠCommand Context , ĊĠĠĠĠĠĠĠ Ġcontext Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġmessage Context : ĠMessage Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith M DC ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" context _ id " Ġto Ġ"$ context Id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hen del se _ id " Ġto Ġ"${ hen del se . id }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ved tak sp eri ode _ id " Ġto Ġ"${ hen del se . ved tak sp eri ode Id () Ġ?: Ġ" N / A "} " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" utf Ã¸ rer Ġ${ hen del se :: class . simple Name } Ġmed Ġcontext _ id =$ context Id Ġfor Ġh en del se _ id =${ hen del se . id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( context . utf Ã¸ r ( command Context Dao , Ġh en del se )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" kom mand o Ġer Ġutf Ã¸ rt Ġfer dig . ĠDet Ġsk j ed de Ġca Ġ{} s Ġet ter Ġat Ġkom mand o en Ġble Ġstart et ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSE CON DS . between ( command Context Dao . context Opp rett et Tid sp unkt ( context Id ), Ġnow ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġlog . info ("${ hen del se :: class . simple Name } Ġer Ġsuspend ert ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbeh ov Mediator . h Ã¥ nd ter ( hen del se , Ġcontext , Ġcontext Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopp g ave Mediator . lag re Og Til del Opp ga ver ( hen del se . id , Ġh en del se . f Ã¸ d se ls nummer (), Ġcontext Id , Ġmessage Context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( err : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Fe il Ġved Ġk j Ã¸ ring Ġav Ġ${ hen del se :: class . simple Name }: Ġcontext Id ={}, Ġmessage ={ }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerr . message , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerr ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh en del se . undo ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġerr ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" utf Ã¸ rt Ġ${ hen del se :: class . simple Name } Ġmed Ġcontext _ id =$ context Id Ġfor Ġh en del se _ id =${ hen del se . id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠL Ã¸ s ning er ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġh en del se : ĠHen del se , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontext Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcommand Context : ĠCommand Context ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġadd ( hen del se Id : ĠUUID , Ġcontext Id : ĠUUID , Ġl Ã¸ s ning : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( hen del se Id Ġ== Ġh en del se . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( context Id Ġ== Ġthis . context Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Context . add ( l Ã¸ s ning ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġfort set t ( medi ator : ĠHen del se Mediator , Ġmessage : ĠString , Ġcontext : ĠMessage Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" fort setter Ġutf Ã¸ rel se Ġav Ġkom mand ok ont ek st Ġp ga . Ġbeh ov _ id =${ hen del se . id } Ġmed Ġcontext _ id =$ context Id Ġfor Ġh en del se _ id =${ hen del se . id }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* s ik ker Log g . info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fort setter Ġutf Ã¸ rel se Ġav Ġkom mand ok ont ek st Ġp ga . Ġbeh ov _ id =${ hen del se . id } Ġmed Ġcontext _ id =$ context Id Ġfor Ġh en del se _ id =${ hen del se . id }. \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" In nk om men de Ġme ld ing :\ n \ t $ message " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmedi ator . utf Ã¸ r ( hen del se , Ġcommand Context , Ġcontext Id , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġstandard fel ter ( hen del set ype : ĠString , Ġf Ã¸ d se ls nummer : ĠString ) Ġ= Ġmutable Map Of < String , ĠAny >( ĊĠĠĠ Ġ"@ event _ name " Ġto Ġh en del set ype , ĊĠĠĠ Ġ"@ op prett et " Ġto ĠLocalDateTime . now (), ĊĠĠĠ Ġ"@ id " Ġto ĠUUID . randomUUID (), ĊĠĠĠ Ġ" f Ã¸ d se ls nummer " Ġto Ġf Ã¸ d se ls nummer Ċ ) Ċ