package Ġio . ark it ik . tr av ako . starter . processor . function Ċ Ċ import Ġio . ark it ik . tr av ako . core . domain . job . Job Instance Domain Ċ import Ġio . ark it ik . tr av ako . core . domain . leader . Leader Domain Ċ import Ġio . ark it ik . tr av ako . core . domain . runner . Scheduler Runner Domain Ċ import Ġio . ark it ik . tr av ako . core . domain . server . Server Domain Ċ import Ġio . ark it ik . tr av ako . function . processor . Pre Processor Ċ import Ġio . ark it ik . tr av ako . function . processor . Processor Ċ import Ġio . ark it ik . tr av ako . function . transaction . Transactional Executor Ċ import Ġorg . springframework . beans . factory . Initializing Bean Ċ import Ġorg . springframework . boot . CommandLine Runner Ċ Ċ /** Ċ Ġ* ĠCreated ĠBy Ġ[* I br ah im ĠAl - T am imi Ġ ï £ ¿ * ]( https :// www . linkedin . com / in / ilo om /) Ċ Ġ* ĠCreated ĠAt Ġ 2 8 Ġ 1 0 : 3 1 ĠPM , Ġ** Tue , ĠDecember Ġ 2 0 2 1 ** Ċ Ġ* ĠProject Ġ* tr av ako * Ġ[ ark it ik . io ]( https :// ark it ik . io ) Ċ Ġ*/ Ċ class ĠTr av ako Startup Processor ( ĊĠĠĠ Ġprivate Ġval Ġregistered Processors : ĠList < Processor <* >>, ĊĠĠĠ Ġprivate Ġval Ġtransaction al Executor : ĠTransaction al Executor , Ċ ) Ġ: ĠCommandLine Runner , ĠInitial izing Bean Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrun ( var arg Ġargs : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtransaction al Executor . run On Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocessors Ġ= Ġregistered Processors . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ! is ĠPre Processor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Processors ( processors ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġafter Properties Set () Ġ{ ĊĠĠĠĠĠĠĠ Ġtransaction al Executor . run On Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocessors Ġ= Ġregistered Processors . filter Is Instance < Pre Processor <* >>() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Processors ( processors ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun Processors ( processors : ĠList < Processor <* >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġprocessors ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . type Ġ== ĠServer Domain :: class . java Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġprocessor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessor . process () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprocessors ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . type Ġ== ĠScheduler Runner Domain :: class . java Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġprocessor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessor . process () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprocessors ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . type Ġ== ĠLeader Domain :: class . java Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġprocessor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessor . process () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprocessors ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . type Ġ== ĠJob Instance Domain :: class . java Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġprocessor Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocessor . process () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ