Olá, pessoal.
Segui a documentação do site do Vraptor (http://vraptor.caelum.com.br/documentacao/injecao-de-dependencias/) e estou tentando injetar as dependências através dos meus módulos pré-existentes do Guice.
Consegui fazer o que queria, mas a solução me pareceu pouco elegante. Fiz assim:
public class CustomProvider extends GuiceProvider {
@Override
protected Module customModule() {
final Module customModule = super.customModule();
final DaoFactoryModule daoFactoryModule = new DaoFactoryModule() {
@Override
protected void configure() {
super.configure();
customModule.configure(binder());
}
};
final CtiManagerModule ctiManagerModule = new CtiManagerModule() {
@Override
protected void configure() {
super.configure();
daoFactoryModule.configure(binder());
}
};
return new AgentMonitorModule() {
@Override
protected void configure() {
super.configure();
ctiManagerModule.configure(binder());
}
};
}
}
Como podem ver, eu quero que três AbstractModules específicas sejam consideradas pelo injector, o que equivaleria a instanciar um injector passando-as no construtor:
Guice.createInjector(new DaoFactoryModule(), new CtiManagerModule(), new AgentMonitorModule());
É assim mesmo que isto deve ser feito? Encadeando as modules no provider? Não existe uma forma mais elegante?