public void loadConfig(String path){
        propList.clear();
        InputStream in = null;
        try {
            final File file = new File(path);
            if (!file.exists()) {
                throw new GameServerStartupException("File " + path + " is not exists");
            }
            in = new FileInputStream(file);
            properties.load(in);
            for(Map.Entry<String,Class> kv:propNameList.entrySet()){
                if (properties.contains(kv.getKey())) {
                    if (kv.getValue() == Integer.class) {
                        propList.put(kv.getKey(), Integer.parseInt(properties.getProperty(kv.getKey(), "0")));
                    } else if (kv.getValue() == String.class) {
                        propList.put(kv.getKey(), properties.getProperty(kv.getKey(), ""));
                    }
                }
            }

        }
        catch (Exception e) {
            System.err.println("Error reading config properties in PropertyManager.loadProps() " + e);
            Logger.error(e);
        }
        finally {
            try {
                in.close();
            } catch (Exception e) { }
        }
    }