// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.replication.v0_6.impl;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
import org.openstreetmap.osmosis.core.OsmosisRuntimeException;
import org.openstreetmap.osmosis.core.util.PropertiesPersister;
/**
* Loads and exposes the configuration properties for downloading replication history.
*
* @author Brett Henderson
*/
public class ReplicationDownloaderConfiguration {
private static final String KEY_BASE_URL = "baseUrl";
private static final String KEY_MAX_INTERVAL = "maxInterval";
private Properties properties;
/**
* Creates a new instance.
*
* @param configFile
* The configuration file to read from.
*/
public ReplicationDownloaderConfiguration(File configFile) {
properties = new PropertiesPersister(configFile).load();
}
/**
* Returns the URL that change files should be downloaded from.
*
* @return The download URL.
*/
public URL getBaseUrl() {
String baseUrl;
baseUrl = properties.getProperty(KEY_BASE_URL);
if (!baseUrl.substring(baseUrl.length() - 1).equals("/")) {
baseUrl += "/";
}
try {
return new URL(baseUrl);
} catch (MalformedURLException e) {
throw new OsmosisRuntimeException(
"Unable to convert URL string (" + baseUrl + ") into a URL.", e);
}
}
/**
* Returns the maximum interval to be downloaded in a single invocation.
*
* @return The maximum download interval.
*/
public int getMaxInterval() {
return Integer.parseInt(properties.getProperty(KEY_MAX_INTERVAL)) * 1000;
}
}