// Path: ExternalStormConfiguration/src/nl/tno/storm/configuration/api/ExternalStormConfiguration.java
// public interface ExternalStormConfiguration {
// 
// 	public Map<String, String> getTopologyConfiguration()
// 			throws StormConfigurationException;
// 
// 	public void registerTopologyConfigurationListener(
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public void unregisterTopologyConfigurationListener(
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public Map<String, String> getTaskConfiguration(String taskId)
// 			throws StormConfigurationException;
// 
// 	public void registerTaskConfigurationListener(String taskId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public void unregisterTaskConfigurationListener(String taskId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public Map<String, String> getChannelConfiguration(String channelId)
// 			throws StormConfigurationException;
// 
// 	public void registerChannelConfigurationListener(String channelId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public void unregisterChannelConfigurationListener(String channelId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// }
// 
// Path: ExternalStormConfiguration/src/nl/tno/storm/configuration/api/StormConfigurationException.java
// public class StormConfigurationException extends Exception {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public StormConfigurationException(String msg) {
// 		super(msg);
// 	}
// 
// 	public StormConfigurationException(String msg, Exception e) {
// 		super(msg, e);
// 	}
// 
// 	public StormConfigurationException(Exception e) {
// 		super(e);
// 	}
// 
// }


import java.util.Map;
import nl.tno.storm.configuration.api.ExternalStormConfiguration;
import nl.tno.storm.configuration.api.StormConfigurationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
package nl.tno.sensorstorm.config;




public class FetcherConfigManager extends ConfigManager {
	private final Logger logger = LoggerFactory
			.getLogger(FetcherConfigManager.class);

	private final ExternalStormConfiguration stormConfiguration;
	private final String fetcherName;

	/**
	 * Create a new config manager for a specific fetcher instance. Each fetcher
	 * instance should have its own config manager. The fetcherName must be
	 * exactly the name as is used in zookeeper. The config is loaded from the
	 * /topologies/[topologyname]/conf/fetchers/[fetcherName]
	 * 
	 * @param stormConfiguration
	 * @param fetcherName
	 */
// Path: ExternalStormConfiguration/src/nl/tno/storm/configuration/api/ExternalStormConfiguration.java
// public interface ExternalStormConfiguration {
// 
// 	public Map<String, String> getTopologyConfiguration()
// 			throws StormConfigurationException;
// 
// 	public void registerTopologyConfigurationListener(
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public void unregisterTopologyConfigurationListener(
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public Map<String, String> getTaskConfiguration(String taskId)
// 			throws StormConfigurationException;
// 
// 	public void registerTaskConfigurationListener(String taskId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public void unregisterTaskConfigurationListener(String taskId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public Map<String, String> getChannelConfiguration(String channelId)
// 			throws StormConfigurationException;
// 
// 	public void registerChannelConfigurationListener(String channelId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// 	public void unregisterChannelConfigurationListener(String channelId,
// 			ConfigurationListener listener) throws StormConfigurationException;
// 
// }
// 
// Path: ExternalStormConfiguration/src/nl/tno/storm/configuration/api/StormConfigurationException.java
// public class StormConfigurationException extends Exception {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public StormConfigurationException(String msg) {
// 		super(msg);
// 	}
// 
// 	public StormConfigurationException(String msg, Exception e) {
// 		super(msg, e);
// 	}
// 
// 	public StormConfigurationException(Exception e) {
// 		super(e);
// 	}
// 
// }


// Path: SensorStorm/src/nl/tno/sensorstorm/config/FetcherConfigManager.java
import java.util.Map;
import nl.tno.storm.configuration.api.ExternalStormConfiguration;
import nl.tno.storm.configuration.api.StormConfigurationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

package nl.tno.sensorstorm.config;




public class FetcherConfigManager extends ConfigManager {
	private final Logger logger = LoggerFactory
			.getLogger(FetcherConfigManager.class);

	private final ExternalStormConfiguration stormConfiguration;
	private final String fetcherName;

	/**
	 * Create a new config manager for a specific fetcher instance. Each fetcher
	 * instance should have its own config manager. The fetcherName must be
	 * exactly the name as is used in zookeeper. The config is loaded from the
	 * /topologies/[topologyname]/conf/fetchers/[fetcherName]
	 * 
	 * @param stormConfiguration
	 * @param fetcherName
	 */
	public FetcherConfigManager(ExternalStormConfiguration stormConfiguration,