25 lines
557 B
Kotlin
25 lines
557 B
Kotlin
package util.jms.replicatedobject
|
|
|
|
import util.jms.replier.ActiveMQReplier
|
|
import java.io.Serializable
|
|
import javax.jms.ObjectMessage
|
|
|
|
class ReplicatedObject<T : Any>(
|
|
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()
|
|
}
|
|
}
|