Chnmuc:
En una prueba unitaria en un juego! 2.6.25 aplicación ejecutada en IntelliJ, estoy tratando de inyectar una prueba de configuración: Config en una aplicación: aplicación creada por Guice. Pero la aplicación: La aplicación no contiene la configuración inyectado. ¿Qué estoy haciendo mal?
Config config = ConfigFactory.parseFile(new File("test.conf")).resolve();
// myapp.key resolved to "value"
String value = config.getString("myapp.key");
GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder();
guiceApplicationBuilder.withConfigLoader(environment -> ConfigFactory.load(config));
Application app = guiceApplicationBuilder.build();
// why myapp.key cannot be resolved?
app.config().getString("myapp.key");
test.conf
myapp.key = value
También probamos (sin éxito):
guiceApplicationBuilder.loadConfig(config);
guiceApplicationBuilder.configure(config);
cbley:
En realidad se está desechando el Generador de aplicaciones que tiene su gestor propio de configuración ya que el constructor es una estructura de datos inmutables. Hazlo asi:
GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
.withConfigLoader(environment -> ConfigFactory.load(config));
o simplemente
GuiceApplicationBuilder guiceApplicationBuilder = new GuiceApplicationBuilder()
.configure(config);
Cuando se mira en la firma de los métodos se nota que todo retorno (una nueva!) GuiceApplicationBuilder
.