new ArchaiusModule(), new EurekaClientModule() { @Override
/** * Specify the CascadeStrategy used to load environment overrides for application and * library configurations. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindCascadeStrategy().to(MyCascadeStrategy.class); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<CascadeStrategy> bindCascadeStrategy() { return bind(CascadeStrategy.class); }
@Override protected final void configure() { install(new InternalArchaiusModule()); configureArchaius(); // TODO: Remove in next release if (configName != null) { this.bindConfigurationName().toInstance(configName); } // TODO: Remove in next release if (cascadeStrategy != null) { this.bindCascadeStrategy().to(cascadeStrategy); } // TODO: Remove in next release if (applicationOverride != null) { this.bindApplicationConfigurationOverride().toInstance(applicationOverride); } } }
@Override protected void configure() { ConfigurationInjectingListener listener = new ConfigurationInjectingListener(); requestInjection(listener); bind(ConfigurationInjectingListener.class).toInstance(listener); requestStaticInjection(ConfigurationInjectingListener.class); bindListener(Matchers.any(), listener); Multibinder.newSetBinder(binder(), ConfigReader.class) .addBinding().to(PropertiesConfigReader.class).in(Scopes.SINGLETON); }
@Override final protected void configure() { ConfigurationInjectingListener listener = new ConfigurationInjectingListener(); requestInjection(listener); bindListener(Matchers.any(), listener); bind(ConfigMapper.class).to(DefaultConfigMapper.class).in(Scopes.SINGLETON); }
@Override protected void configure() { Provider<T> provider = new ConfigProvider<T>(proxy); requestInjection(provider); bind(proxy).toProvider(Providers.guicify(provider)); } };
@Provides @Singleton ConfigLoader getLoader( @Raw CompositeConfig rawConfig, Set<ConfigReader> readers, OptionalCascadeStrategy cascadeStrategy ) throws ConfigException { return DefaultConfigLoader.builder() .withConfigReaders(readers) .withDefaultCascadingStrategy(cascadeStrategy.get()) .withStrLookup(ConfigStrLookup.from(rawConfig)) .build(); }
/** * Add a config to the bottom of the Config hierarchy. Use this when configuration is added * through code. Can be called multiple times as ConfigReader is added to a multibinding. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindDefaultConfig().to(MyDefaultConfig.class); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<Config> bindDefaultConfig() { return Multibinder.newSetBinder(binder(), Config.class, DefaultLayer.class).addBinding(); }
@Deprecated public ArchaiusModule withApplicationOverrides(Properties prop) { return withApplicationOverrides(MapConfig.from(prop)); }
List<Module> getModuleList(AbstractModule... modules) { List<Module> moduleList = Lists.newArrayList(); // Add default list of modules moduleList.add(new NdBenchGuiceModule()); moduleList.add(new NdBenchClientModule()); moduleList.add(new ArchaiusModule()); //Archaius-2 // Add any additional caller specified modules moduleList.addAll(Arrays.asList(modules)); return moduleList; }
/** * Specify the Config to use for the remote layer. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindRemoteConfig().to(SomeRemoteConfigImpl.class); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<Config> bindRemoteConfig() { return bind(Config.class).annotatedWith(RemoteLayer.class); }
@Provides @Singleton @Raw public CompositeConfig compositeConfig(TestCompositeConfig config) { return config; } }
/** * Add support for a new configuration format. Can be called multiple times to add support for * multiple file format. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindConfigReader().to(SomeConfigFormatReader.class); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<Config> bindConfigReader() { return Multibinder.newSetBinder(binder(), Config.class, DefaultLayer.class).addBinding(); }
List<Module> getModuleList(AbstractModule... modules) { List<Module> moduleList = Lists.newArrayList(); // Add default list of modules moduleList.add(new NdBenchGuiceModule()); moduleList.add(new NdBenchClientModule()); moduleList.add(new ArchaiusModule()); //Archaius-2 // Add any additional caller specified modules moduleList.addAll(Arrays.asList(modules)); return moduleList; }
/** * Set application overrides. This is normally done for unit tests. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindApplicationConfigurationOverride().toInstance(MapConfig.builder() * .put("some_property_to_override", "value") * .build() * ); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<Config> bindApplicationConfigurationOverride() { return bind(Config.class).annotatedWith(ApplicationOverride.class); }
@Provides @Singleton @Raw CompositeConfig getRawCompositeConfig() throws Exception { return new DefaultCompositeConfig(); }
/** * Set application overrides to a particular resource. This is normally done for unit tests. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindApplicationConfigurationOverrideResource("laptop"); * } * }); * </code> * * @return */ protected void bindApplicationConfigurationOverrideResource(String overrideResource) { Multibinder.newSetBinder(binder(), String.class, ApplicationOverrideResources.class).permitDuplicates().addBinding().toInstance(overrideResource); }
@Override protected void configure() { Module m = Modules .override(new ArchaiusModule()) .with(new OverrideModule(propFiles)); install(m); }
/** * Customize the filename for the main application configuration. The default filename is * 'application'. * * <code> * install(new ArchaiusModule() { * {@literal @}Override * protected void configureArchaius() { * bindConfigurationName().toInstance("myconfig"); * } * }); * </code> * * @return LinkedBindingBuilder to which the implementation is set */ protected LinkedBindingBuilder<String> bindConfigurationName() { return bind(String.class).annotatedWith(Names.named(InternalArchaiusModule.CONFIG_NAME_KEY)); }