package util.jms.replicatedobject import util.jms.replier.ActiveMQReplier import java.io.Serializable import javax.jms.ObjectMessage class ReplicatedObject( private val target: T, queueName: String, shared: Boolean = false ) { private val replier = ActiveMQReplier(queueName, shared) init { replier.onRequest { val call = (it as ObjectMessage).`object` as Call replier.createObjectMessage(call.execOn(target) as Serializable) } } fun start() { replier.start() } }