package util.jms.replicatedobject import util.jms.requestor.Requestor import java.lang.reflect.InvocationHandler import java.lang.reflect.Method import javax.jms.ObjectMessage class ReplicatedObjectHandler( private val requestor: Requestor ) : InvocationHandler { override fun invoke(p0: Any, p1: Method, p2: Array): Any { val call = Call(p1.name, p2) val msg = requestor.createObjectMessage(call) return (requestor.request(msg) as ObjectMessage).`object` } }