class Configuration {

  public String getDefaultAgentTaskTimeout(boolean isPackageInstallationTask) {
    ConfigurationProperty<Long> configurationProperty = isPackageInstallationTask
        ? AGENT_PACKAGE_INSTALL_TASK_TIMEOUT
        : AGENT_TASK_TIMEOUT;

    String key = configurationProperty.getKey();
    Long defaultValue = configurationProperty.getDefaultValue();
    String value = getProperty(configurationProperty);
    if (StringUtils.isNumeric(value)) {
      return value;
    } else {
      LOG.warn(String.format("Value of %s (%s) should be a number, " +
          "falling back to default value (%s)",
        key, value, defaultValue));

      return String.valueOf(defaultValue);
    }
  }

  public  Configuration();
  public  Configuration(Properties properties);

}