public void loadConfig( String confFileName )
throws Exception
{
configMap = ( Map )JSON.decode( MStringUtil.loadStrFromFile( confFileName ) );
debug( configMap );

if( !configMap.containsKey( "zone" ) )
	{
	throw new Exception( "\"zone\" not found on the configuration file." );
	}
else
	{
	zone = ( String )configMap.get( "zone" );
	}

if( !configMap.containsKey( "user" ) )
	{
	throw new Exception( "\"user\" not found on the configuration file." );
	}
else
	{
	user = ( String )configMap.get( "user" );
	}

if( !configMap.containsKey( "apiKey" ) )
	{
	throw new Exception( "\"apiKey\" not found on the configuration file." );
	}
else
	{
	apiKey = ( String )configMap.get( "apiKey" );
	}

hosts = ( List )configMap.get( "hosts" );

if( configMap.containsKey( "default" ) )
	{
	defaultConf = ( Map )configMap.get( "default" );
	debug( defaultConf );
	for( int i = 0; i < hosts.size(); ++i )
		{
		Map base = new HashMap();
		base.putAll( defaultConf );
		
		Map hostConf = ( Map )hosts.get( i );
		base.putAll( hostConf );
		
		hostConf.putAll( base );
		
		debug( hostConf );
		}
	}

}