if ( propFileName != null ) { File propFile = new File(propFileName);
if ( propFileName == null ) {  propFileName = getHomeDir() + File.separator + "roosster.properties"; }  File propFile = new File(propFileName);
    public static Properties loadProperties(Map cmdLine)                               throws IOException, IllegalArgumentException    {        InputStream propInput = MapperUtil.class.getResourceAsStream(PROP_FILE);        if ( propInput == null )            throw new IllegalArgumentException("Can't load default properties file");        Properties props = new Properties();        props.load(propInput);        // try to load user defines properties        String propFileName =  (String) cmdLine.get(PROP_FILE_ARG);        if ( propFileName != null ) {            File propFile = new File(propFileName);            if ( propFile.canRead() ) {                LOG.fine("Overriding default setting with user defined settings");                propInput = new FileInputStream(propFile);                props.load(propInput);            } else {                LOG.warning("Can't read from user specified properties file "+propFileName);            }        }        // now override with commandline parameters        props.putAll(cmdLine);        if ( LOG.isLoggable(Level.FINE) ) {            LOG.fine("Configuration Properties are: \n");            Iterator keys = props.keySet().iterator();            while ( keys.hasNext() ) {                Object key = keys.next();                LOG.fine(key +" => "+ props.get(key));            }        }        return props;    }