package Ġorg . gob lin framework . rpc . registry Ċ Ċ import Ġorg . gob lin framework . core . service . G ob lin Managed Bean Ċ import Ġorg . gob lin framework . core . service . G ob lin ManagedObject Ċ import Ġorg . gob lin framework . registry . zookeeper . Z ookeeper Client Setting Ċ import Ġorg . gob lin framework . rpc . module . config . Rpc Registry Config Manager Ċ import Ġjava . util . concurrent . atomic . Atomic Reference Ċ Ċ @ G ob lin Managed Bean (" Rpc ") Ċ class ĠRpc Registry Manager Ġprivate Ġconstructor () ĊĠ Ġ: ĠG ob lin ManagedObject (), ĠRpc Registry Manager MX Bean Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Field Ġval ĠINSTANCE Ġ= ĠRpc Registry Manager () ĊĠ Ġ} ĊĊĠ Ġprivate Ġval Ġregistry Reference Ġ= ĠAtomic Reference < Rpc Registry ?> () ĊĊĠ Ġoverride Ġfun Ġinitialize Bean () Ġ{ ĊĠĠĠ ĠRpc Registry Config Manager . INSTANCE . get Rpc Registry Config ()?. run Ġ{ ĊĠĠĠĠĠ Ġval Ġconfig Ġ= Ġthis ĊĠĠĠĠĠ Ġval Ġclient Ġ= ĠZ ookeeper Client Setting . builder () ĊĠĠĠĠĠĠĠĠĠ Ġ. addresses ( config . getZ ookeeper ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. connection Timeout ( config . getConnection Timeout ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. session Timeout ( config . getSession Timeout ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. serializer ( config . get Serializer ()) ĊĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠ Ġ. create Z ookeeper Client () ĊĠĠĠĠĠ Ġval Ġregistry Ġ= ĠRpc Registry ( client ) ĊĠĠĠĠĠ Ġregistry Reference . set ( registry ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Rpc Registry (): ĠRpc Registry ? Ġ{ ĊĠĠĠ Ġreturn Ġregistry Reference . get () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġdispose Bean () Ġ{ ĊĠĠĠ Ġregistry Reference . get AndSet ( null )?. dispose () ĊĠ Ġ} Ċ }