package Ġcn . bd q fork . kotlin . web . processor Ċ Ċ import Ġcn . bd q fork . context . aware . ClassLoader Aware Ċ import Ġcn . bd q fork . core . exception . Beans Exception Ċ import Ġcn . bd q fork . core . factory . processor . Bean Post Processor Ċ import Ġcn . bd q fork . core . factory . processor . Order Aware Ċ import Ġcn . bd q fork . core . proxy . jav assist . Proxy Ċ import Ġcn . bd q fork . core . util . Annotation Utils Ċ import Ġcn . bd q fork . core . util . A op Utils Ċ import Ġcn . bd q fork . kotlin . web . Vert xA ware Ċ import Ġcn . bd q fork . kotlin . web . annotation . Vert icle Mapping Ċ import Ġcn . bd q fork . kotlin . web . service . Service Vert icle Ċ import Ġcn . bd q fork . kotlin . web . service . Vert icle Proxy Handler Ċ import Ġio . vertx . core . AsyncResult Ċ import Ġio . vertx . core . Vert x Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ /** Ċ Ġ* Ġ@ author Ġb dq Ċ Ġ* Ġ@ since Ġ 2 0 2 0 / 1 / 2 6 Ċ Ġ*/ Ċ class ĠVert icle Proxy Processor Ġ: ĠBean Post Processor , ĠClassLoader Aware , ĠVert xA ware , ĠOrder Aware Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvert x : ĠVert x ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclass Loader : ĠClassLoader ĊĊĠĠĠ Ġoverride Ġfun Ġpost Process Before Initial iz tion ( bean Name : ĠString , Ġbean : ĠAny ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbean ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Beans Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġpost Process After Initial iz tion ( bean Name : ĠString , Ġbean : ĠAny ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtarget Class Ġ= ĠA op Utils . getTarget Class ( bean ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Annotation Utils . is Annotation Present ( target Class , ĠVert icle Mapping :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvert icle Ġ= ĠService Vert icle ( bean ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvert x . deploy Vert icle ( vert icle ) Ġ{ Ġres : ĠAsync Result < String ?> Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( res . succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( log . isDebugEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . debug (" deployed Ġservice Ġ{} Ġof Ġ{} Ġby Ġid Ġ{} !", Ġbean Name , Ġtarget Class . canonical Name , Ġres . result ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( log . isError Enabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" failed Ġto Ġdeploy Ġservice Ġ{} Ġof Ġ{} !", Ġbean Name , Ġtarget Class . canonical Name , Ġres . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvert x . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProxy . new Proxy Instance ( class Loader , Ġtarget Class . interfaces , ĠVert icle Proxy Handler ( vertx , Ġtarget Class )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbean ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Beans Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġset Vert x ( vertx : ĠVert x ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . vertx Ġ= Ġvert x ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( Beans Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġset ClassLoader ( class Loader : ĠClassLoader ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . class Loader Ġ= Ġclass Loader ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Vert icle Proxy Processor :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Order (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠ Ġ} Ċ }