public EnvironmentResolver(String machineEnvironmentPropertyFile, String artifact)
	{
		
		if (machine!=null)
			return;
		
		artifactName = artifact;
		
		try{
			
			/*
			 * load the requested machine environment property file
			 */
			log.debug("loading machine environment properties file {}",machineEnvironmentPropertyFile);
			InputStream is = this.getClass().getClassLoader().getResourceAsStream(machineEnvironmentPropertyFile);
			if (is == null){
				throw new FileNotFoundException(machineEnvironmentPropertyFile + " not found in the classpath");
			}
			
			environments.load(is);
			
			for(String machine : environments.stringPropertyNames()){
				log.debug("found mapping: " + machine + " -> " + environments.getProperty(machine));
			}
			log.debug("detecting machine name...");
			machine = InetAddress.getLocalHost().getHostName().toUpperCase();
			log.info("running on machine: " + machine);
			
			if (environments.containsKey(machine))
			{
				environment = environments.getProperty(machine);
			}else
			{
				log.warn("no machine->environment mappingn found fo rthis machine, defaulting to \"local\"");
			}
			
			log.info("resolved machine: " + machine + " -> " + environment);
			
		}catch (UnknownHostException e)
		{
			log.error("UNABLE TO EXECUTE: InetAddress.getLocalHost().getHostName();");
		
		} catch (FileNotFoundException e) {
		} catch (IOException e) {
			log.error("UNABLE TO FIND machine properties file", e);
		}
		
		log.info("artifact: " + getArtifactName());
		log.info("environment: " + getEnvironment());
		
	}