com.github.dennisit.vplus.data.spring.akka.SpringActorProducer Maven / Gradle / Ivy
package com.github.dennisit.vplus.data.spring.akka;
import akka.actor.Actor;
import akka.actor.IndirectActorProducer;
import org.springframework.context.ApplicationContext;
public class SpringActorProducer implements IndirectActorProducer {
final ApplicationContext applicationContext;
final String actorBeanName;
final Object[] args;
public SpringActorProducer(ApplicationContext applicationContext, String actorBeanName, Object... args) {
this.applicationContext = applicationContext;
this.actorBeanName = actorBeanName;
this.args = args;
}
@Override
public Actor produce() {
return (Actor) applicationContext.getBean(actorBeanName, args);
}
@Override
public Class actorClass() {
return (Class) applicationContext.getType(actorBeanName);
}
}