package util.jms.replicatedobject import util.jms.requestor.ActiveMQRequestor import java.lang.reflect.Proxy class ReplicatedObjectFactory(private val classType: Class) { fun create(queueName: String, shared: Boolean = false): T { val requestor = ActiveMQRequestor(queueName, shared) return Proxy.newProxyInstance( this::class.java.classLoader, arrayOf(classType), ReplicatedObjectHandler(requestor) ) as T } }