Ampliando el módulo de Google Guice
Como comenté al final de mi post anterior mi intención era añadir al módulo de play las clases que añaden el scope LazySingleton.
Los cambios están en este commit.
Añadí a la clase GuiceSupport una variable con el stage en función del modo en el que se está ejecutando play y creé la clase PlayAbstractModule que incluye el método bindLazySingletonOnDev.
Para utilizarlo:
conf/dependencies.yml
require:
- play
- axelhzf -> guice 1.3
repositories:
- axelhzf-guice-repository:
type: http
artifact: "http://cloud.github.com/downloads/axelhzf/play-guice-module/guice-[revision].zip"
contains:
- axelhzf -> guice
Configurar el inyector
GuiceConfig.java
public class GuiceConfig extends GuiceSupport {
@Override
protected Injector configure() {
return Guice.createInjector(stage, new PlayAbstractModule() {
@Override
protected void configure() {
bindLazySingletonOnDev(MyService.class, MyServiceImpl.class);
bindLazySingletonOnDev(MyDependentService.class, MyDependentServiceImpl.class);
}
});
}
}