io.split.methodrunner.modules.TestRunnerPropertiesModule Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of qosrunner Show documentation
Show all versions of qosrunner Show documentation
Framework for running JUnit Tests as a Continous Service (QoS)
package io.split.methodrunner.modules;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.inject.AbstractModule;
import com.google.inject.name.Names;
import io.split.testrunner.util.GuiceInitializator;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
import java.util.Properties;
/**
* Guice Module for parsing Properties file from the configuration file.
*/
public class TestRunnerPropertiesModule extends AbstractModule {
public static final String TIMEOUT_IN_MINUTES = "TIMEOUT_IN_MINUTES";
private static final Map defaultProperties = Maps.newHashMap();
static {
// Common
defaultProperties.put(TIMEOUT_IN_MINUTES, "20");
};
public TestRunnerPropertiesModule() {}
@Override
protected void configure() {
// Loads the default properties.
Properties theProperties = new Properties();
defaultProperties.entrySet()
.stream()
.forEach(entry -> theProperties.setProperty(entry.getKey(), entry.getValue()));
List paths = GuiceInitializator.getPaths();
List doNotExist = Lists.newArrayList();
for(Path propertiesPath : paths) {
// Loads the properties set in the properties file.
if (Files.exists(propertiesPath)) {
try {
theProperties.load(new FileInputStream(propertiesPath.toFile()));
} catch (IOException e) {
throw new IllegalStateException("Failed to load properties file " + propertiesPath, e);
}
} else {
doNotExist.add(propertiesPath);
}
}
if (!doNotExist.isEmpty()) {
throw new IllegalArgumentException(String.format("Properties %s of %s do not exist", doNotExist, paths));
}
Names.bindProperties(binder(), theProperties);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy