public void loadProperties(String fileName) throws FileNotFoundException {
        InputStream in = null;
        try {
            in = PropertiesReader.class.getClassLoader().getResourceAsStream(fileName);
            if(in == null ){
                in = new FileInputStream(System.getProperty("user.dir")+ File.separator+fileName);
            }
            if(in != null){
                properties.load(in);

                String value = "";
                for(String key : properties.stringPropertyNames()){
                    value = "";
                    if(StringUtils.isBlank(key)){
                        continue;
                    }
                    value = (String) properties.get(key);
                    if(StringUtils.isNotBlank(value)){
//                        value = RegexUtil.replayWithSysProps(value, sys_properties);
                        value = replaceWithUsrProps(value, properties);
                    }
                    properties.setProperty(key, value);
                }
            }
        }catch (FileNotFoundException e){
            throw e;
        }
        catch (Exception e) {
            log.error(e);
        }finally {
            IOUtils.close(in);
        }
    }