private static Properties readOneConfigurationFile(String filename){
        Properties propsFromFile = null;
        try {
            FileInputStream inputStream = new FileInputStream(filename);
            propsFromFile = IO.readUtf8Properties(inputStream);
        } catch (Exception e){
            System.out.println("config.properties not found, using default");
        }

        // prepare configuration for current sb.id
        if (propsFromFile != null){
            Properties newConfiguration = new OrderSafeProperties();
            Pattern pattern = Pattern.compile("^%([a-zA-Z0-9_\\-]+)\\.(.*)$");
            for (Object key : propsFromFile.keySet()) {
                Matcher matcher = pattern.matcher(key + "");
                if (!matcher.matches()) {
                    newConfiguration.put(key, propsFromFile.get(key).toString().trim());
                }
            }
            for (Object key : propsFromFile.keySet()) {
                Matcher matcher = pattern.matcher(key + "");
                if (matcher.matches()) {
                    String instance = matcher.group(1);
                    if (instance.equals(id)) {
                        newConfiguration.put(matcher.group(2), propsFromFile.get(key).toString().trim());
                    }
                }
            }
            return newConfiguration;
        }
        return new Properties();
    }