package Ġcom . b mc . drop wizard . connect Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġcom . google . common . io . Resources Ċ import Ġcom . google . common . net . Host And Port Ċ import Ġio . drop wizard . setup . Environment Ċ import Ġorg . apache . kafka . common . utils . Utils Ċ import Ġorg . apache . kafka . connect . runtime . Her der Ċ import Ġorg . apache . kafka . connect . runtime . Worker Config Ċ import Ġorg . apache . kafka . connect . runtime . distributed . Distributed Config Ċ import Ġorg . apache . kafka . connect . runtime . rest . errors . Connect Exception Mapper Ċ import Ġorg . apache . kafka . connect . runtime . rest . resources . Connector Plugins Resource Ċ import Ġorg . apache . kafka . connect . runtime . rest . resources . Connectors Resource Ċ import Ġorg . apache . kafka . connect . runtime . rest . resources . Root Resource Ċ import Ġorg . apache . kafka . connect . runtime . standalone . Standalone Config Ċ import Ġorg . hibernate . validator . constraints . NotEmpty Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* Ġ ĠKafka ĠConnection ĠConfiguration Ċ Ġ*/ Ċ class ĠConnect Configuration Ġ{ ĊĊĠĠĠ Ġenum Ġclass ĠMODE Ġ{ ĊĠĠĠĠĠĠĠ Ġstandalone , Ġdistributed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdefault Port Ġ= Ġ 9 9 9 2 ĊĊĠĠĠ Ġ@ JsonProperty ĊĠĠĠ Ġvar Ġmode Ġ= ĠMODE . standalone ĊĊĠĠĠ Ġ@ JsonProperty ĊĠĠĠ Ġvar Ġrest Port : ĠInt ? Ġ= Ġnull ; ĊĊĠĠĠ Ġ@ JsonProperty ĊĠĠĠ Ġvar Ġrest Host : ĠString ? Ġ= Ġnull ; ĊĊĊĠĠĠ Ġ@ JsonProperty ĊĠĠĠ Ġ@ NotEmpty ĊĠĠĠ Ġvar Ġworker Props Ġ= Ġ" kafka - connect /${ mode }. worker . properties " ĊĊĊĠĠĠ Ġ@ JsonProperty ĊĠĠĠ Ġ@ NotEmpty ĊĠĠĠ Ġvar Ġconnector Props Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" kafka - connect / connector . properties " ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ JsonProperty ĊĠĠĠ Ġvar Ġbootstrap Servers : ĠList < Host And Port > Ġ= ĠlistOf (); ĊĊĠĠĠ Ġfun Ġconnector Configs (): ĠList < Map < String , ĠString >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġconnector Props ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġresource As Properties ( it ) Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġworker Config (): ĠWorker Config Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= Ġresource As Properties ( worker Props ) ĊĠĠĠĠĠĠĠ Ġif Ġ( bootstrap Servers . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservers Ġ= Ġbootstrap Servers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġport Ġ= Ġit . getPort OrDefault ( default Port ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ it . host Text }: $ port " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. join ToString (",") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . put (" bootstrap . servers ", Ġservers ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( rest Host ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . put (" rest . host . name ", Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwith ( rest Port ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . put (" rest . port ", Ġthis . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE . standalone Ġ-> ĠStand alone Config ( p ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMODE . distributed Ġ-> ĠDistributed Config ( p ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Connector ( environment : ĠEnvironment ): ĠConnect Embedded Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġembedded Ġ= ĠConnect Embedded ( worker Config (), Ġconnector Configs ()) ĊĠĠĠĠĠĠĠ Ġenvironment . lifecycle (). manage ( embedded ) ĊĊĠĠĠĠĠĠĠ Ġwire Rest API ( environment , Ġembedded . her der ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġembedded ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwire Rest API ( environment : ĠEnvironment , Ġher der : ĠHer der ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġenable Ġcors Ġsupport ĊĠĠĠĠĠĠĠ Ġ// Ġalso Ġto Ġconsider : Ġhost Ġthese Ġresources Ġunder Ġa Ġconfigurable Ġpath ĊĠĠĠĠĠĠĠ Ġ// Ġor Ġmaybe Ġhost Ġthem Ġon Ġthe Ġadmin Ġconnector ĊĊĠĠĠĠĠĠĠ Ġenvironment . j ersey (). register ( Root Resource :: class . java ) ĊĠĠĠĠĠĠĠ Ġenvironment . j ersey (). register ( Connectors Resource ( her der )) ĊĠĠĠĠĠĠĠ Ġenvironment . j ersey (). register ( Connector Plugins Resource ( her der )) ĊĠĠĠĠĠĠĠ Ġenvironment . j ersey (). register ( Connect Exception Mapper :: class . java ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresource As Properties ( resourceName : ĠString ): ĠMutable Map < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠResources . getResource ( resourceName ) ĊĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġp . load ( url . open Stream ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠUtils . props ToString Map ( p ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ