package Ġno . nav . k 9 p uns j . kafka Ċ Ċ import Ġno . nav . k 9 p uns j . Ik ke Test Pro fil Ċ import Ġno . nav . k 9 p uns j . kafka . Kafka Config . Companion . ON _ PRE M Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Qualifier Ċ import Ġorg . springframework . kafka . core . Kafka Template Ċ import Ġorg . springframework . kafka . support . Send Result Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġorg . springframework . util . concurrent . List enable Future Ċ import Ġorg . springframework . util . concurrent . List enable Future Callback Ċ Ċ @ Component Ċ @ Ik ke Test Pro fil Ċ class ĠKafka H en del se Producer ( ĊĠĠĠ Ġ@ Qualifier ( ON _ PRE M ) Ġprivate Ġval Ġkafka Template : ĠKafka Template < String , ĠString > Ċ ): ĠHen del se Producer Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġsend ( topic Name : ĠString , Ġdata : ĠString , Ġkey : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfuture : ĠList enable Future < Send Result < String ?, ĠString ? >> Ġ= Ġkafka Template . send ( topic Name , Ġkey , Ġdata ) ĊĠĠĠĠĠĠĠ Ġfuture . add Callback ( object Ġ: ĠList enable Future Callback < Send Result < String ?, ĠString ?> ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠSend Result < String ?, ĠString ?> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Mel ding Ġsend t ĠpÃ¥ ĠKafka - topic : Ġ$ topic Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠFe iler Ġp . t . Ġik ke Ġin ns ending Ġs lik Ġat Ġfe ilen Ġik ke Ġb lir Ġsyn lig Ġfor Ġs aks be handler ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" K un ne Ġik ke Ġleg ge Ġs Ã¸ kn ad ĠpÃ¥ ĠKafka - topic Ġ$ topic Name Ġ: Ġ${ ex . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠKafka Exception (" K un ne Ġik ke Ġs ende Ġs ende Ġtil Ġtopic : Ġ$ topic Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsend Med On Success ( topic Name : ĠString , Ġdata : ĠString , Ġkey : ĠString , ĠonSuccess : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfuture : ĠList enable Future < Send Result < String ?, ĠString ? >> Ġ= Ġkafka Template . send ( topic Name , Ġkey , Ġdata ) ĊĠĠĠĠĠĠĠ Ġfuture . add Callback ( object Ġ: ĠList enable Future Callback < Send Result < String ?, ĠString ?> ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠSend Result < String ?, ĠString ?> ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Mel ding Ġsend t ĠpÃ¥ ĠKafka - topic : Ġ$ topic Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO : ĠFe iler Ġp . t . Ġik ke Ġin ns ending Ġs lik Ġat Ġfe ilen Ġik ke Ġb lir Ġsyn lig Ġfor Ġs aks be handler ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" K un ne Ġik ke Ġleg ge Ġs Ã¸ kn ad ĠpÃ¥ ĠKafka - topic Ġ$ topic Name Ġ: Ġ${ ex . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠKafka Exception (" K un ne Ġik ke Ġs ende Ġs ende Ġtil Ġtopic : Ġ$ topic Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ġ= ĠLoggerFactory . getLogger ( Kafka H en del se Producer :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ