package mil.nga.giat.geowave.test.service;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import mil.nga.giat.geowave.core.index.StringUtils;
import mil.nga.giat.geowave.core.store.operations.remote.options.DataStorePluginOptions;
import mil.nga.giat.geowave.test.TestUtils;
import mil.nga.giat.geowave.test.annotation.GeoWaveTestStore;
import mil.nga.giat.geowave.test.annotation.GeoWaveTestStore.GeoWaveStoreType;
import mil.nga.giat.geowave.test.annotation.GeoWaveTestStoreImpl;
import mil.nga.giat.geowave.test.mapreduce.MapReduceTestEnvironment;
public class ServicesTestUtils
{
private static final Logger LOGGER = LoggerFactory.getLogger(ServicesTestUtils.class);
protected static void writeConfigFile(
final File configFile ) {
try {
final PrintWriter writer = new PrintWriter(
configFile,
StringUtils.GEOWAVE_CHAR_SET.toString());
// just enable all store types through services regardless of which
// ones are required
for (final GeoWaveStoreType type : GeoWaveStoreType.values()) {
final Properties storeProps = new Properties();
final DataStorePluginOptions storeOptions = type.getTestEnvironment().getDataStoreOptions(
new GeoWaveTestStoreImpl(
TestUtils.TEST_NAMESPACE,
new GeoWaveStoreType[] {
type
},
new String[] {},
GeoWaveTestStore.class));
storeOptions.save(
storeProps,
DataStorePluginOptions.getStoreNamespace(type.name()));
try {
storeProps.store(
writer,
"Data Store Options for '" + type.name() + "'");
}
catch (final IOException e) {
LOGGER.warn(
"Unable to write store options for '" + type.name() + "'",
e);
}
}
final MapReduceTestEnvironment env = MapReduceTestEnvironment.getInstance();
writer.println("geoserver.url=" + ServicesTestEnvironment.GEOSERVER_BASE_URL);
writer.println("geoserver.username=" + ServicesTestEnvironment.GEOSERVER_USER);
writer.println("geoserver.password=" + ServicesTestEnvironment.GEOSERVER_PASS);
writer.println("geoserver.workspace=" + ServicesTestEnvironment.TEST_WORKSPACE);
writer.println("hdfs=" + env.getHdfs());
writer.println("hdfsBase=" + env.getHdfsBaseDirectory());
writer.println("jobTracker=" + env.getJobtracker());
writer.close();
}
catch (final FileNotFoundException e) {
LOGGER.error(
"Unable to find config file",
e);
}
catch (final UnsupportedEncodingException e) {
LOGGER.error(
"Unable to write config file in UTF-8",
e);
}
}
}