1e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin/* 2e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * Copyright (C) 2012 Google Inc. 3e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * 4e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * Licensed under the Apache License, Version 2.0 (the "License"); 5e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * you may not use this file except in compliance with the License. 6e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * You may obtain a copy of the License at 7e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * 8e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * http://www.apache.org/licenses/LICENSE-2.0 9e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * 10e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * Unless required by applicable law or agreed to in writing, software 11e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * distributed under the License is distributed on an "AS IS" BASIS, 12e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * See the License for the specific language governing permissions and 14e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * limitations under the License. 15e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin */ 16e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin 17e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffinpackage com.google.caliper.config; 18e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin 19e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffinimport dagger.Module; 20e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffinimport dagger.Provides; 21e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin 22e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffinimport java.util.logging.LogManager; 23e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffinimport javax.inject.Singleton; 24e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin 25e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin/** 26e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * Bindings for Caliper configuration. 27e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin */ 28e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin@Module 29e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffinpublic final class ConfigModule { 30e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin 31e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin /** 32e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * The {@code doNotRemove} parameter is required here to ensure that the logging configuration 33e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin * is loaded and used to update the logger settings before the configuration is loaded. 34e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin */ 35e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin @Provides @Singleton 36e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin static CaliperConfig provideCaliperConfig( 37e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin CaliperConfigLoader configLoader, 38e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin @SuppressWarnings("unused") LoggingConfigLoader doNotRemove) 39e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin throws InvalidConfigurationException { 40e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin 41e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin return configLoader.loadOrCreate(); 42e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin } 43e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin 44e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin @Provides static LogManager provideLogManager() { 45e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin return LogManager.getLogManager(); 46e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin } 47e236301e5fc778bffe1748ed80d7936e6c807012Paul Duffin} 48