package Ġorg . radar base . app config . inject Ċ Ċ import Ġcom . hazelcast . config . Config Ċ import Ġcom . hazelcast . core . H azelcast Ċ import Ġcom . hazelcast . core . H azelcast Instance Ċ import Ġnl . the hy ve . lang . expression . Variable Resolver Ċ import Ġorg . glass fish . j ersey . internal . inject . Abstract Binder Ċ import Ġorg . radar base . app config . config . H azelcast Config Ċ import Ġorg . radar base . app config . persistence . Hibernate Variable Resolver Ċ import Ġorg . radar base . j ersey . enh ancer . J ersey Resource Enh ancer Ċ import Ġjak arta . inject . Singleton Ċ import Ġjavax . persistence . EntityManager Ċ import Ġjak arta . ws . rs . core . Context Ċ Ċ class ĠHibernate Persistence Resource Enh ancer ( private Ġval Ġh azelcast Config : ĠH azelcast Config ) Ġ: ĠJ ersey Resource Enh ancer Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠAbstract Binder . en hance () Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . setProperty (" hazelcast . logging . type ", Ġ" slf 4 j "); ĊĠĠĠĠĠĠĠ Ġval Ġh z Config Ġ= Ġif Ġ( hazelcast Config . config Path Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcom . hazelcast . internal . config . Config Loader . load ( hazelcast Config . config Path ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Config Ġ= Ġh azelcast Config . network ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcluster Name Ġ= Ġh azelcast Config . cluster Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Name Ġ= Ġh azelcast Config . instance Name ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġh azelcast Instance Ġ= ĠH azelcast . new H azelcast Instance ( hz Config ) ĊĊĠĠĠĠĠĠĠ Ġbind ( hazelcast Instance ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to ( H azelcast Instance :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` in `( Singleton :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġbind ( Hibernate Client Variable Resolver :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to ( Client Variable Resolver :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. ` in `( Singleton :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠHibernate Client Variable Resolver ( ĊĠĠĠĠĠĠĠ Ġ@ Context Ġprivate Ġval Ġem : Ġjak arta . inject . Provider < EntityManager >, ĊĠĠĠĠĠĠĠ Ġ@ Context Ġprivate Ġval Ġh azelcast Instance : ĠH azelcast Instance , ĊĠĠĠ Ġ) Ġ: ĠClient Variable Resolver Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ( clientId : ĠString ): ĠVariable Resolver Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHibernate Variable Resolver ( em , ĠclientId , Ġh azelcast Instance . getMap ( clientId )) ĊĠĠĠ Ġ} Ċ } Ċ