package Ġno . nav . e ess i . pens jon . listeners Ċ Ċ import Ġio . micro meter . core . instrument . Metrics Ċ import Ġio . micro meter . core . instrument . simple . Simple Meter Registry Ċ import Ġno . nav . e ess i . pens jon . eux . E ux D okument Helper Ċ import Ġno . nav . e ess i . pens jon . eux . U ten land sk Id Ċ import Ġno . nav . e ess i . pens jon . eux . U ten land sk Person Ident if is ering Ċ import Ġno . nav . e ess i . pens jon . eux . model . bu c . Bu c Ċ import Ġno . nav . e ess i . pens jon . eux . model . document . Fore nk let SED Ċ import Ġno . nav . e ess i . pens jon . eux . model . document . S ed Status Ċ import Ġno . nav . e ess i . pens jon . eux . model . sed . SED Ċ import Ġno . nav . e ess i . pens jon . handler . Opp g ave Handler Ċ import Ġno . nav . e ess i . pens jon . metrics . Metrics Helper Ċ import Ġno . nav . e ess i . pens jon . models . End r ings meld ing Ċ import Ġno . nav . e ess i . pens jon . models . P dl End ring Op pl ys ning Ċ import Ġno . nav . e ess i . pens jon . models . Person op pl ys ning er Ċ import Ġno . nav . e ess i . pens jon . models . S ed H en del se Model Ċ import Ġno . nav . e ess i . pens jon . models . er Gy ld ig Ċ import Ġno . nav . e ess i . pens jon . p dl . Person M ott ak K lient Ċ import Ġno . nav . e ess i . pens jon . p dl . fil tr ering . P dl Fil tr ering Ċ import Ġno . nav . e ess i . pens jon . p dl . valid ering . P dl Val ider ing Ċ import Ġno . nav . e ess i . pens jon . person ident if is ering . Ident if is ert Person Ċ import Ġno . nav . e ess i . pens jon . person ident if is ering . Person ident if is ering Service Ċ import Ġno . nav . e ess i . pens jon . services . kode ver k . K ode ver k Client Ċ import Ġorg . apache . kafka . clients . consumer . Consumer Record Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . slf 4 j . M DC Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . kafka . annotation . Kafka Listener Ċ import Ġorg . springframework . kafka . support . Ack nowled gment Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent .* Ċ import Ġjavax . annotation . Post Construct Ċ Ċ @ Service Ċ class ĠSed Listener ( ĊĠĠĠ Ġprivate Ġval Ġperson ident if is ering Service : ĠPerson ident if is ering Service , ĊĠĠĠ Ġprivate Ġval Ġdokument Helper : ĠE ux D okument Helper , ĊĠĠĠ Ġprivate Ġval Ġperson M ott ak K lient : ĠPerson M ott ak K lient , ĊĠĠĠ Ġprivate Ġval Ġut en land sk Person Ident if is ering : ĠU ten land sk Person Ident if is ering , ĊĠĠĠ Ġprivate Ġval Ġp dl Fil tr ering : ĠP dl Fil tr ering , ĊĠĠĠ Ġprivate Ġval Ġp dl Val ider ing : ĠP dl Val ider ing , ĊĠĠĠ Ġprivate Ġval Ġk ode ver k Client : ĠK ode ver k Client , ĊĠĠĠ Ġprivate Ġval Ġopp g ave Handler : ĠO pp g ave Handler , ĊĠĠĠ Ġ@ Value ("\ ${ SPR ING _ PRO FILES _ ACTIVE }") Ġprivate Ġval Ġprofile : ĠString , ĊĠĠĠ Ġ@ Autowired ( required Ġ= Ġfalse ) Ġprivate Ġval Ġmetrics Helper : ĠMetrics Helper Ġ= ĠMetrics Helper ( Simple Meter Registry ()) Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( S ed Listener :: class . java ) ĊĊĠĠĠ Ġprivate Ġval Ġl atch Ġ= ĠCount DownLatch ( 1 ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconsume Incoming S ed : ĠMetrics Helper . Metric ĊĊĠĠĠ Ġfun Ġget Latch () Ġ= Ġl atch ĊĊĠĠĠ Ġ@ Post Construct ĊĠĠĠ Ġfun Ġinit Metrics () Ġ{ ĊĠĠĠĠĠĠĠ Ġconsume Incoming S ed Ġ= Ġmetrics Helper . init (" consume Incoming S ed ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Kafka Listener ( ĊĠĠĠĠĠĠĠ Ġcontainer Factory Ġ= Ġ" sed Kafka Listener Container Factory ", ĊĠĠĠĠĠĠĠ Ġtopics Ġ= Ġ[" \ ${ kafka . sed M ott att . topic } "], ĊĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġ"\ ${ kafka . sed M ott att . group id }" ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġconsume S ed M ott att ( hen del se : ĠString , Ġcr : ĠConsumer Record < String , ĠString >, Ġacknowled gment : ĠAck nowled gment ) Ġ{ ĊĠĠĠĠĠĠĠ ĠM DC . put Closeable (" x _ request _ id ", ĠUUID . randomUUID (). toString ()). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconsume Incoming S ed . measure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconsume H en del se ( cr , Ġh en del se , Ġacknowled gment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl atch . count Down () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconsume H en del se ( ĊĠĠĠĠĠĠĠ Ġcr : ĠConsumer Record < String , ĠString >, ĊĠĠĠĠĠĠĠ Ġh en del se : ĠString , ĊĠĠĠĠĠĠĠ Ġacknowled gment : ĠAck nowled gment ĊĠĠĠ Ġ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġlogger . info ("$ hen del ses Type Ġh en del se Ġi Ġpart is jon : Ġ${ cr . partition ()}, Ġmed Ġoffset : Ġ${ cr . offset () }") ĊĠĠĠĠĠĠĠ Ġlogger . debug ( hen del se ) ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Profile : Ġ$ profile ") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsed H en del se Ġ= Ġsed H en del se Mapping ( hen del se ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( G yl di ge H en del ser . mot t att ( sed H en del se )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb uc Type Ġ= Ġsed H en del se . bu c Type !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" *** ĠSt arter Ġp dl Ġend r ings meld ing Ġpro sess Ġfor ĠB uc Type : Ġ$ bu c Type , ĠS ED : Ġ${ sed H en del se . sed Type }, ĠR ina S ak ID : Ġ${ sed H en del se . r ina S ak Id } Ġ*** ") ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb uc Ġ= Ġh ent Bu c ( sed H en del se ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalle Document er Ġ= Ġh ent Alle Document er ( bu c ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalle G yl di ge SED Ġ= Ġh ent Alle G yl di ge S ed F ra BU C ( sed H en del se , Ġalle Document er ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// tre kk ĠUT Ġu ident Ġf ra ĠS ED Ġsom Ġkun Ġer Ġmot t att . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġut en lands ke I der F ra S ed Ġ= Ġut en land sk Person Ident if is ering . h ent Alle U ten lands ke I der ( alle G yl di ge SED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ident if is ere ĠPerson Ġh ent ĠPerson Ġf ra ĠP DL Ġval ider ĠPerson ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġident if iser te Person er Ġ= Ġperson ident if is ering Service . h ent Ident if is ert Person er ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalle G yl di ge SED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb uc Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsed H en del se . sed Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsed H en del se . r ina D okument Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// lit t Ġlogging ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogging Av Fore nk led S ed ( alle Document er , Ġalle G yl di ge SED ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! er id enter G yl di ge ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp dl Val ider ing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġident if iser te Person er , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsed H en del se , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut en lands ke I der F ra S ed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġreturn ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" Val ider er Ġuid Ġf ra Ġsed Ġsom Ġik ke Ġfin nes Ġi ĠP DL : Ġ${ ident if iser te Person er . size }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfil tr er Uid S om Ik ke Fin nes IP dl Ġ= Ġp dl Fil tr ering . fin nes Uid F ra S ed IP DL ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġident if iser te Person er . first (). uid F ra P dl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut en lands ke I der F ra S ed . first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// s je kk Ġom ĠP DL uid Ġer Ġident isk ĠS ED uid Ġ( true Ġs Ã¥ Ġfin nes Ġde Ġog Ġer Ġident is ke ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fil tr er Uid S om Ik ke Fin nes IP dl ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" P DL uid Ġer Ġident isk Ġmed ĠS ED uid ĠA cket Ġsed M ott att : Ġ${ cr . offset () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" P DL uid Ġer Ġident isk Ġmed ĠS ED uid ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// valid ering Ġav Ġuid Ġk orre kt Ġformat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! p dl Val ider ing . er Person Valid ert P aa Land ( uten lands ke I der F ra S ed . first ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" In gen Ġval ider te Ġident if iser te Ġperson er Ġfun net ĠA cket Ġsed M ott att : Ġ${ cr . offset () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" In gen Ġval ider te Ġident if iser te Ġperson er Ġfun net ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// s je kk Ġom Ġdet Ġskal Ġopp rt te Ġen Ġopp g ave ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p dl Fil tr ering . sk al Opp g ave Opp ret tes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġident if iser te Person er . first (). uid F ra P dl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut en lands ke I der F ra S ed . first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// yt ter lig ere Ġs je kk Ġom Ġf . eks ĠS WE Ġfn r Ġi ĠP DL Ġf akt isk Ġer Ġident isk Ġmed Ġsed UID Ġ( h vis Ġs Ã¥ Ġik ke Ġopp rett Ġopp g ave Ġbare Ġav sl utt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p dl Fil tr ering . s je kk Y ter lig ere P aa P DL uid Mot S ed Uid ( ident if iser te Person er . first (). uid F ra P dl , Ġut en lands ke I der F ra S ed . first ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Det Ġfin nes Ġall ere de Ġen Ġan nen Ġuid Ġf ra Ġsam me Ġland , Ġopp ret te Ġopp g ave ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġopp g ave Handler . op prett Opp g ave For Uid ( sed H en del se , Ġut en lands ke I der F ra S ed . first (), Ġident if iser te Person er . first ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result ) Ġcount En het (" Det Ġfin nes Ġall ere de Ġen Ġan nen Ġuid Ġf ra Ġsam me Ġland Ġ( Opp g ave )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Opp ret ter Ġik ke Ġopp g ave , ĠDet Ġsom Ġfin nes Ġi ĠP DL Ġer Ġf akt isk Ġli kt Ġdet Ġsom Ġfin nes Ġi ĠS ED , Ġav sl utter ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" P DL uid Ġer Ġident isk Ġmed ĠS ED uid ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Utf Ã¸ rer Ġf akt isk Ġin ns ending Ġav Ġend r ings meld ing Ġtil ĠP DL Ġ( ny ĠUID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsed H en del se . av sender Nav n ?. let Ġ{ Ġav sender Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlag End r ings Mel ding ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut en lands ke I der F ra S ed . first (), Ġident if iser te Person er . first (). fn r !!. value , Ġav sender ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" In ns ending Ġav Ġend r ings meld ing ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" A cket Ġsed M ott att Ġme ld ing Ġmed Ġoffset : Ġ${ cr . offset ()} Ġi Ġpart is jon Ġ${ cr . partition () }") ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" No e Ġg ikk Ġg alt Ġunder Ġbe handling Ġav ĠS ED - hen del se :\ n Ġ$ hen del se Ġ\ n ", Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" No e Ġg ikk Ġg alt Ġunder Ġbe handling Ġav ĠS ED - hen del se ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġer id enter G yl di ge ( ĊĠĠĠĠĠĠĠ Ġp dl Val ider ing : ĠP dl Val ider ing , ĊĠĠĠĠĠĠĠ Ġident if iser te Person er : ĠList < Ident if is ert Person >, ĊĠĠĠĠĠĠĠ Ġacknowled gment : ĠAck nowled gment , ĊĠĠĠĠĠĠĠ Ġsed H en del se : ĠSed H en del se Model , ĊĠĠĠĠĠĠĠ Ġut en lands ke I der : ĠList < U ten land sk Id > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! p dl Val ider ing . fin nes Ident if iser te Person er ( ident if iser te Person er )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" In gen Ġident if iser te ĠF NR Ġfun net , ĠA cket Ġme ld ing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" In gen Ġident if iser te ĠF NR Ġfun net ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ident if iser te Person er . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Ant all Ġident if iser te ĠF NR Ġer Ġf ler Ġen n Ġen , ĠA cket Ġme ld ing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" Ant all Ġident if iser te ĠF NR Ġer Ġf ler Ġen n Ġen ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ident if iser te Person er . first (). er Do ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Ident if is ert Ġperson Ġregist r ert Ġmed Ġdo ed sf all , Ġkan Ġik ke Ġopp ret te Ġend r ings meld ing . ĠA cket Ġme ld ing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" Ident if is ert Ġperson Ġregist r ert Ġmed Ġdo ed sf all ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( uten lands ke I der . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Ant all Ġut en lands ke ĠID er Ġer Ġfl ere Ġen n Ġen ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" Ant all Ġut en lands ke ĠID er Ġer Ġfl ere Ġen n Ġen ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( uten lands ke I der . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" In gen Ġut en lands ke ĠID er Ġfun net Ġi ĠBU C ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" In gen Ġut en lands ke ĠID er Ġfun net Ġi ĠBU C ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( sed H en del se . av sender Land Ġ== Ġnull Ġ|| Ġp dl Val ider ing . er Uid Land An net En n Av sender Land ( uten lands ke I der . first (), Ġsed H en del se . av sender Land )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġacknowled gment . ack nowledge () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Av sender land Ġm ang ler Ġeller Ġav sender land Ġer Ġik ke Ġdet Ġsam me Ġsom Ġuid land , Ġstop per Ġident if is ering Ġav Ġperson er ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount En het (" Av sender land Ġm ang ler Ġeller Ġav sender land Ġer Ġik ke Ġdet Ġsam me Ġsom Ġuid land ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġh ent Bu c ( sed H en del se : ĠSed H en del se Model ): ĠB uc Ġ= Ġdokument Helper . h ent Bu c ( sed H en del se . r ina S ak Id ) ĊĊĠĠĠ Ġprivate Ġfun Ġh ent Alle Document er ( bu c : ĠB uc ): ĠList < Fore nk let SED > Ġ= Ġdokument Helper . h ent Alle Document er ( bu c ) ĊĊĠĠĠ Ġprivate Ġfun Ġh ent Alle G yl di ge S ed F ra BU C ( sed H en del se : ĠSed H en del se Model , Ġdocs : ĠList < Fore nk let SED >): ĠList < Pair < Fore nk let SED , ĠS ED >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalle Gy ld ig D oku enter Ġ= Ġdocs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . type . er Gy ld ig () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġlogger . info (" F ant Ġ${ it . size } Ġdokument er Ġi ĠBU C : Ġ$ it ") Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdokument Helper . h ent Alle S ed I Bu c ( sed H en del se . r ina S ak Id Ġ, Ġalle Gy ld ig D oku enter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlag End r ings Mel ding ( uten land sk Pin : ĠU ten land sk Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn ors k Fn r : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ilde : ĠString ) Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp dl End r ings Op pl ys ning er Ġ= ĠP dl End ring Op pl ys ning ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPerson op pl ys ning er ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġident Ġ= Ġn ors k Fn r , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend r ings meld ing Ġ= ĠEnd r ings meld ing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġident ifik as j ons nummer Ġ= Ġut en land sk Pin . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġut st eder land Ġ= Ġk ode ver k Client . fin n Land kode ( uten land sk Pin . land ) Ġ?: Ġthrow ĠRuntimeException (" Fe il Ġved Ġland kode "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġk ilde Ġ= Ġk ilde ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġperson M ott ak K lient . op prett Person op pl ys ning ( p dl End r ings Op pl ys ning er ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlogging Av Fore nk led S ed ( alled ocs Ġ: ĠList < Fore nk let SED > Ġ, Ġlist : ĠList < Pair < Fore nk let SED , ĠS ED >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" U fil tr ert ĠSed Ġi Ġb uc ") ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Ant all ĠSed Ġi Ġb uc : Ġ${ alled ocs . size Ġ} ") ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Ant all ĠSed Ġmot t att Ġi Ġb uc : Ġ${ alled ocs . filter Ġ{ Ġdoc Ġ-> Ġdoc . status Ġ== ĠSed Status . RECE IVED Ġ}. size Ġ} ") ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Ant all ĠSed Ġsend t Ġi Ġb uc : Ġ${ alled ocs . filter Ġ{ Ġdoc Ġ-> Ġdoc . status Ġ== ĠSed Status . SENT Ġ}. size Ġ} ") ĊĠĠĠĠĠĠĠ Ġlogger . debug ("* ". repeat ( 2 0 )) ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Fil tr erte Ġg yl di ge ĠSed Ġi Ġb uc : Ġ${ alled ocs . size Ġ} ") ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Ant all ĠSed Ġi Ġb uc : Ġ${ list . filter Ġ{ Ġ( doc , Ġ_) Ġ-> Ġdoc . har Gy ld ig Status () Ġ}. size Ġ} ") ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Ant all ĠSed Ġmot t att Ġi Ġb uc : Ġ${ list . filter Ġ{ Ġ( doc , Ġ_) Ġ-> Ġdoc . status Ġ== ĠSed Status . RECE IVED Ġ}. size Ġ} ") ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Ant all ĠSed Ġsend t Ġi Ġb uc : Ġ${ list . filter Ġ{ Ġ( doc , Ġ_) Ġ-> Ġdoc . status Ġ== ĠSed Status . SENT Ġ}. size Ġ} ") ĊĠĠĠĠĠĠĠ Ġlogger . debug ("* ". repeat ( 2 0 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcount En het ( meld ing : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMetrics . counter (" P DL meld ing St eg ", ĠĠ Ġ" meld ing ", Ġme ld ing ). increment () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" Metrics Ġfe ilet ĠpÃ¥ Ġen het : Ġ$ meld ing ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsed H en del se Mapping ( hen del se : ĠString ): ĠSed H en del se Model Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsed H en del se Temp Ġ= ĠSed H en del se Model . fromJson ( hen del se ) ĊĊĠĠĠĠĠĠĠ Ġ// st Ã¸ tte Ġav sender land ĠSE Ġi Ġtest mil j Ã¸ ĠQ 2 ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( profile Ġ!= Ġ" prod " Ġ&& Ġprofile Ġ!= Ġ" integration test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsed H en del se Temp . copy ( av sender Land Ġ= Ġ" SE ", Ġav sender Nav n Ġ= Ġ" SE : test ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsed H en del se Temp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ