public Collection<InvalidProperty> process(Map<String, String> properties) {
    List<InvalidProperty> result = new Vector<InvalidProperty>();

    final String files = properties.get(XmlTestConstants.SETTINGS_FILES);
    final String project = properties.get(XmlTestConstants.SETTINGS_PROJECT);

    if (PropertiesUtil.isEmptyOrNull(project) && PropertiesUtil.isEmptyOrNull(files)) {
      result.add(
          new InvalidProperty(
              XmlTestConstants.SETTINGS_FILES, "Files or project option must be specified"));
    }

    return result;
  }
 /**
  * It's not possible to store username/password in the test file, this cretentials are stored in a
  * properties file under user home directory.
  *
  * <p>This method would be used to fetch parameters for the test and allow to avoid committing
  * createntials with source file.
  *
  * @return username, repo, password
  */
 @NotNull
 public static Properties readGitHubAccount() {
   File propsFile = new File(System.getenv("USERPROFILE"), ".github.test.account");
   System.out.println("Loading properites from: " + propsFile);
   try {
     if (!propsFile.exists()) {
       FileUtil.createParentDirs(propsFile);
       Properties ps = new Properties();
       ps.setProperty(URL, "https://api.github.com");
       ps.setProperty(USERNAME, "jonnyzzz");
       ps.setProperty(REPOSITORY, "TeamCity.GitHub");
       ps.setProperty(PASSWORD_REV, rewind("some-password-written-end-to-front"));
       PropertiesUtil.storeProperties(ps, propsFile, "mock properties");
       return ps;
     } else {
       return PropertiesUtil.loadProperties(propsFile);
     }
   } catch (IOException e) {
     throw new RuntimeException("Could not read Amazon Access properties: " + e.getMessage(), e);
   }
 }