@Override
 public Collection<InvalidProperty> process(Map<String, String> properties) {
   Collection<InvalidProperty> result = new HashSet<InvalidProperty>();
   if (StringUtil.isEmptyOrSpaces(properties.get(DeployerRunnerConstants.PARAM_TARGET_URL))) {
     result.add(
         new InvalidProperty(
             DeployerRunnerConstants.PARAM_TARGET_URL, "The target must be specified."));
   }
   return result;
 }
  @NotNull
  public static GitHubApiReportEvent parse(@Nullable final String value) {
    // migration
    if (value == null || StringUtil.isEmptyOrSpaces(value)) return ON_START_AND_FINISH;

    for (GitHubApiReportEvent v : values()) {
      if (v.getValue().equals(value)) return v;
    }

    throw new IllegalArgumentException("Failed to parse GitHubApiReportEvent: " + value);
  }
 protected void assertLog(String... gold) {
   String actual = StringUtil.join(myLog, "\n");
   String expected = StringUtil.join(gold, "\n");
   Assert.assertEquals(actual, expected);
 }