From ff4de1b4e0f17cbf3133b0be98a2b1e655a4ddee Mon Sep 17 00:00:00 2001 From: Johan Rask Date: Mon, 21 Jun 2010 09:06:40 +0200 Subject: [PATCH] When interfaces are used, target instances are now created correctly --- .../src/main/scala/ActiveObjectFactoryBean.scala | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/akka-spring/src/main/scala/ActiveObjectFactoryBean.scala b/akka-spring/src/main/scala/ActiveObjectFactoryBean.scala index b1093a9a08..b6a51138dc 100644 --- a/akka-spring/src/main/scala/ActiveObjectFactoryBean.scala +++ b/akka-spring/src/main/scala/ActiveObjectFactoryBean.scala @@ -110,15 +110,15 @@ class ActiveObjectFactoryBean extends AbstractFactoryBean[AnyRef] with Logging { if (argList == "r") { ActiveObject.newRemoteInstance(target.toClass, timeout, transactional, host, port, callbacks) } else if (argList == "ri" ) { - ActiveObject.newRemoteInstance(interface.toClass, target.toClass, timeout, transactional, host, port, callbacks) + ActiveObject.newRemoteInstance(interface.toClass, aNewInstance(target.toClass), timeout, transactional, host, port, callbacks) } else if (argList == "rd") { ActiveObject.newRemoteInstance(target.toClass, timeout, transactional, dispatcherInstance, host, port, callbacks) } else if (argList == "rid") { - ActiveObject.newRemoteInstance(interface.toClass, target.toClass, timeout, transactional, dispatcherInstance, host, port, callbacks) + ActiveObject.newRemoteInstance(interface.toClass, aNewInstance(target.toClass), timeout, transactional, dispatcherInstance, host, port, callbacks) } else if (argList == "i") { - ActiveObject.newInstance(interface.toClass, target.toClass, timeout, transactional, callbacks) + ActiveObject.newInstance(interface.toClass, aNewInstance(target.toClass), timeout, transactional, callbacks) } else if (argList == "id") { - ActiveObject.newInstance(interface.toClass, target.toClass, timeout, transactional, dispatcherInstance, callbacks) + ActiveObject.newInstance(interface.toClass, aNewInstance(target.toClass), timeout, transactional, dispatcherInstance, callbacks) } else if (argList == "d") { ActiveObject.newInstance(target.toClass, timeout, transactional, dispatcherInstance, callbacks) } else { @@ -126,6 +126,10 @@ class ActiveObjectFactoryBean extends AbstractFactoryBean[AnyRef] with Logging { } } + def aNewInstance[T <: AnyRef](clazz: Class[T]) : T = { + clazz.newInstance().asInstanceOf[T] + } + /** * create Option[RestartCallback] */