@Test public void testBasicTypes() { ConfigDef def = new ConfigDef().define("a", Type.INT, 5, Range.between(0, 14), Importance.HIGH, "docs") .define("b", Type.LONG, Importance.HIGH, "docs") .define("c", Type.STRING, "hello", Importance.HIGH, "docs")
.documentation(SCHEMA_CACHE_MS_DOC) .group(GROUP_SCHEMA) .validator(Range.atLeast(60000)) .build() ).define( .documentation(BATCH_SIZE_DOC) .group(GROUP_TARGET) .validator(Range.atLeast(1)) .build() ).define( .documentation(UNCOMITTED_RECORD_MAX_DOC) .group(GROUP_TARGET) .validator(Range.atLeast(100)) .build() ).define( .documentation(UNCOMITTED_RECORD_TIMEOUT_DOC) .group(GROUP_TARGET) .validator(Range.atLeast(100)) .build() .documentation(BACKOFF_TIME_MS_DOC) .group(GROUP_SOURCE) .validator(Range.atLeast(50)) .build() );
.define(MONGODB_COLLECTIONS_CONF, Type.STRING, MONGODB_COLLECTIONS_DEFAULT, Importance.MEDIUM, MONGODB_COLLECTIONS_DOC) .define(MONGODB_COLLECTION_CONF, Type.STRING, MONGODB_COLLECTION_DEFAULT, Importance.HIGH, MONGODB_COLLECTION_DOC) .define(MONGODB_MAX_NUM_RETRIES_CONF, Type.INT, MONGODB_MAX_NUM_RETRIES_DEFAULT, ConfigDef.Range.atLeast(0), Importance.MEDIUM, MONGODB_MAX_NUM_RETRIES_DOC) .define(MONGODB_RETRIES_DEFER_TIMEOUT_CONF, Type.INT, MONGODB_RETRIES_DEFER_TIMEOUT_DEFAULT, ConfigDef.Range.atLeast(0), Importance.MEDIUM, MONGODB_RETRIES_DEFER_TIMEOUT_DOC) .define(MONGODB_VALUE_PROJECTION_TYPE_CONF, Type.STRING, MONGODB_VALUE_PROJECTION_TYPE_DEFAULT, EnumValidator.in(FieldProjectionTypes.values()), Importance.LOW, MONGODB_VALUE_PROJECTION_TYPE_DOC) .define(MONGODB_VALUE_PROJECTION_LIST_CONF, Type.STRING, MONGODB_VALUE_PROJECTION_LIST_DEFAULT, Importance.LOW, MONGODB_VALUE_PROJECTION_LIST_DOC) .define(MONGODB_DELETE_ON_NULL_VALUES, Type.BOOLEAN, MONGODB_DELETE_ON_NULL_VALUES_DEFAULT, Importance.MEDIUM, MONGODB_DELETE_ON_NULL_VALUES_DOC) .define(MONGODB_WRITEMODEL_STRATEGY, Type.STRING, MONGODB_WRITEMODEL_STRATEGY_DEFAULT, Importance.LOW, MONGODB_WRITEMODEL_STRATEGY_DOC) .define(MONGODB_MAX_BATCH_SIZE, Type.INT, MONGODB_MAX_BATCH_SIZE_DEFAULT, ConfigDef.Range.atLeast(0), Importance.MEDIUM, MONGODB_MAX_BATCH_SIZE_DOC) .define(MONGODB_RATE_LIMITING_TIMEOUT, Type.INT, MONGODB_RATE_LIMITING_TIMEOUT_DEFAULT, ConfigDef.Range.atLeast(0), Importance.LOW, MONGODB_RATE_LIMITING_TIMEOUT_DOC) .define(MONGODB_RATE_LIMITING_EVERY_N, Type.INT, MONGODB_RATE_LIMITING_EVERY_N_DEFAULT, ConfigDef.Range.atLeast(0), Importance.LOW, MONGODB_RATE_LIMITING_EVERY_N_DOC)
Type.INT, DEFAULT_MAX_BUFFER_SIZE, ConfigDef.Range.between(1, Integer.MAX_VALUE), Importance.MEDIUM, "The maximum number of messages that can be received for the messages on a topic " Type.LONG, DEFAULT_MAX_BUFFER_BYTES, ConfigDef.Range.between(1, DEFAULT_MAX_BUFFER_BYTES), Importance.MEDIUM, "The maximum number of bytes that can be received for the messages on a topic " Type.INT, DEFAULT_DELAY_THRESHOLD_MS, ConfigDef.Range.between(1, Integer.MAX_VALUE), Importance.MEDIUM, "The maximum amount of time to wait after receiving the first message in a batch for a " Type.INT, DEFAULT_REQUEST_TIMEOUT_MS, ConfigDef.Range.between(10000, Integer.MAX_VALUE), Importance.MEDIUM, "The maximum amount of time to wait for a single publish request to Cloud Pub/Sub.") Type.INT, DEFAULT_TOTAL_TIMEOUT_MS, ConfigDef.Range.between(10000, Integer.MAX_VALUE), Importance.MEDIUM, "The maximum amount of time to wait for a publish to complete (including retries) in "
.define(MONGODB_COLLECTIONS_CONF, Type.STRING, MONGODB_COLLECTIONS_DEFAULT, Importance.MEDIUM, MONGODB_COLLECTIONS_DOC) .define(MONGODB_COLLECTION_CONF, Type.STRING, MONGODB_COLLECTION_DEFAULT, Importance.HIGH, MONGODB_COLLECTION_DOC) .define(MONGODB_MAX_NUM_RETRIES_CONF, Type.INT, MONGODB_MAX_NUM_RETRIES_DEFAULT, ConfigDef.Range.atLeast(0), Importance.MEDIUM, MONGODB_MAX_NUM_RETRIES_DOC) .define(MONGODB_RETRIES_DEFER_TIMEOUT_CONF, Type.INT, MONGODB_RETRIES_DEFER_TIMEOUT_DEFAULT, ConfigDef.Range.atLeast(0), Importance.MEDIUM, MONGODB_RETRIES_DEFER_TIMEOUT_DOC) .define(MONGODB_VALUE_PROJECTION_TYPE_CONF, Type.STRING, MONGODB_VALUE_PROJECTION_TYPE_DEFAULT, EnumValidator.in(FieldProjectionTypes.values()), Importance.LOW, MONGODB_VALUE_PROJECTION_TYPE_DOC) .define(MONGODB_VALUE_PROJECTION_LIST_CONF, Type.STRING, MONGODB_VALUE_PROJECTION_LIST_DEFAULT, Importance.LOW, MONGODB_VALUE_PROJECTION_LIST_DOC) .define(MONGODB_DELETE_ON_NULL_VALUES, Type.BOOLEAN, MONGODB_DELETE_ON_NULL_VALUES_DEFAULT, Importance.MEDIUM, MONGODB_DELETE_ON_NULL_VALUES_DOC) .define(MONGODB_WRITEMODEL_STRATEGY, Type.STRING, MONGODB_WRITEMODEL_STRATEGY_DEFAULT, Importance.LOW, MONGODB_WRITEMODEL_STRATEGY_DOC) .define(MONGODB_MAX_BATCH_SIZE, Type.INT, MONGODB_MAX_BATCH_SIZE_DEFAULT, ConfigDef.Range.atLeast(0), Importance.MEDIUM, MONGODB_MAX_BATCH_SIZE_DOC) .define(MONGODB_RATE_LIMITING_TIMEOUT, Type.INT, MONGODB_RATE_LIMITING_TIMEOUT_DEFAULT, ConfigDef.Range.atLeast(0), Importance.LOW, MONGODB_RATE_LIMITING_TIMEOUT_DOC) .define(MONGODB_RATE_LIMITING_EVERY_N, Type.INT, MONGODB_RATE_LIMITING_EVERY_N_DEFAULT, ConfigDef.Range.atLeast(0), Importance.LOW, MONGODB_RATE_LIMITING_EVERY_N_DOC)
PLUGIN_PATH_DOC) .define(METRICS_SAMPLE_WINDOW_MS_CONFIG, Type.LONG, 30000, atLeast(0), Importance.LOW, CommonClientConfigs.METRICS_SAMPLE_WINDOW_MS_DOC) .define(METRICS_NUM_SAMPLES_CONFIG, Type.INT, 2, atLeast(1), Importance.LOW, CommonClientConfigs.METRICS_NUM_SAMPLES_DOC) .define(METRICS_RECORDING_LEVEL_CONFIG, Type.STRING,
ConfigDef.Range.atLeast(CONFIG_VALUE_MQ_BATCH_SIZE_MINIMUM), Importance.LOW, CONFIG_DOCUMENTATION_MQ_BATCH_SIZE, CONFIG_GROUP_MQ, 14, Width.MEDIUM, CONFIG_DISPLAY_MQ_BATCH_SIZE);
Type.INT, DEFAULT_CPS_MAX_BATCH_SIZE, ConfigDef.Range.between(1, Integer.MAX_VALUE), Importance.MEDIUM, "The minimum number of messages to batch per pull request to Cloud Pub/Sub.") Type.INT, DEFAULT_KAFKA_PARTITIONS, ConfigDef.Range.between(1, Integer.MAX_VALUE), Importance.MEDIUM, "The number of Kafka partitions for the Kafka topic in which messages will be "
.define(NAME_CONFIG, Type.STRING, ConfigDef.NO_DEFAULT_VALUE, nonEmptyStringWithoutControlChars(), Importance.HIGH, NAME_DOC, COMMON_GROUP, ++orderInGroup, Width.MEDIUM, NAME_DISPLAY) .define(CONNECTOR_CLASS_CONFIG, Type.STRING, Importance.HIGH, CONNECTOR_CLASS_DOC, COMMON_GROUP, ++orderInGroup, Width.LONG, CONNECTOR_CLASS_DISPLAY) .define(TASKS_MAX_CONFIG, Type.INT, TASKS_MAX_DEFAULT, atLeast(TASKS_MIN_CONFIG), Importance.HIGH, TASKS_MAX_DOC, COMMON_GROUP, ++orderInGroup, Width.SHORT, TASK_MAX_DISPLAY) .define(KEY_CONVERTER_CLASS_CONFIG, Type.CLASS, null, Importance.LOW, KEY_CONVERTER_CLASS_DOC, COMMON_GROUP, ++orderInGroup, Width.SHORT, KEY_CONVERTER_CLASS_DISPLAY) .define(VALUE_CONVERTER_CLASS_CONFIG, Type.CLASS, null, Importance.LOW, VALUE_CONVERTER_CLASS_DOC, COMMON_GROUP, ++orderInGroup, Width.SHORT, VALUE_CONVERTER_CLASS_DISPLAY)
public static ConfigDef config() { return new ConfigDef() //HTTPS .define(HTTPS_ENABLE_CONF, ConfigDef.Type.BOOLEAN, false, ConfigDef.Importance.HIGH, HTTPS_ENABLE_DOC) .define(HTTPS_PORT_CONF, ConfigDef.Type.INT, 8443, ValidPort.of(1000, 65535), ConfigDef.Importance.HIGH, HTTPS_PORT_DOC) .define(HTTPS_KEY_STORE_PATH_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.MEDIUM, HTTPS_KEY_STORE_PATH_DOC) .define(HTTPS_KEY_STORE_PASSWORD_CONF, ConfigDef.Type.PASSWORD, "", ConfigDef.Importance.MEDIUM, HTTPS_KEY_STORE_PASSWORD_DOC) .define(HTTPS_KEY_MANAGER_PASSWORD_CONF, ConfigDef.Type.PASSWORD, "", ConfigDef.Importance.MEDIUM, HTTPS_KEY_MANAGER_PASSWORD_DOC) .define(HTTPS_TRUST_STORE_PATH_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.MEDIUM, HTTPS_TRUST_STORE_PATH_DOC) .define(HTTPS_TRUST_STORE_PASSWORD_CONF, ConfigDef.Type.PASSWORD, "", ConfigDef.Importance.MEDIUM, HTTPS_TRUST_STORE_PASSWORD_DOC) .define(HTTPS_IDLE_TIMEOUT_MS_CONF, ConfigDef.Type.INT, 30000, ConfigDef.Range.between(5000, 1000 * 300), ConfigDef.Importance.LOW, HTTPS_IDLE_TIMEOUT_MS_DOC) .define(HTTP_ENABLE_CONF, ConfigDef.Type.BOOLEAN, true, ConfigDef.Importance.HIGH, HTTP_ENABLE_DOC) .define(HTTP_PORT_CONF, ConfigDef.Type.INT, 8080, ValidPort.of(1000, 65535), ConfigDef.Importance.HIGH, HTTP_PORT_DOC) .define(HTTP_IDLE_TIMEOUT_MS_CONF, ConfigDef.Type.INT, 30000, ConfigDef.Range.between(5000, 1000 * 300), ConfigDef.Importance.LOW, HTTP_IDLE_TIMEOUT_MS_DOC) .define(THREAD_POOL_MAX_SIZE_CONF, ConfigDef.Type.INT, 100, ConfigDef.Range.between(10, 1000), ConfigDef.Importance.MEDIUM, THREAD_POOL_MAX_SIZE_DOC) .define(THREAD_POOL_MIN_SIZE_CONF, ConfigDef.Type.INT, 10, ConfigDef.Range.between(10, 1000), ConfigDef.Importance.MEDIUM, THREAD_POOL_MIN_SIZE_DOC) .define(HEALTH_CHECK_ENABLE_CONF, ConfigDef.Type.BOOLEAN, true, ConfigDef.Importance.MEDIUM, HEALTH_CHECK_ENABLE_DOC) .define(HEALTH_CHECK_PATH_CONF, ConfigDef.Type.STRING, "/healthcheck", ConfigDef.Importance.MEDIUM, HEALTH_CHECK_PATH_DOC); } }
public static ConfigDef config() { return new ConfigDef() //HTTPS .define(HTTPS_ENABLE_CONF, ConfigDef.Type.BOOLEAN, false, ConfigDef.Importance.HIGH, HTTPS_ENABLE_DOC) .define(HTTPS_PORT_CONF, ConfigDef.Type.INT, 8443, ValidPort.of(1000, 65535), ConfigDef.Importance.HIGH, HTTPS_PORT_DOC) .define(HTTPS_KEY_STORE_PATH_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.MEDIUM, HTTPS_KEY_STORE_PATH_DOC) .define(HTTPS_KEY_STORE_PASSWORD_CONF, ConfigDef.Type.PASSWORD, "", ConfigDef.Importance.MEDIUM, HTTPS_KEY_STORE_PASSWORD_DOC) .define(HTTPS_KEY_MANAGER_PASSWORD_CONF, ConfigDef.Type.PASSWORD, "", ConfigDef.Importance.MEDIUM, HTTPS_KEY_MANAGER_PASSWORD_DOC) .define(HTTPS_TRUST_STORE_PATH_CONF, ConfigDef.Type.STRING, "", ConfigDef.Importance.MEDIUM, HTTPS_TRUST_STORE_PATH_DOC) .define(HTTPS_TRUST_STORE_PASSWORD_CONF, ConfigDef.Type.PASSWORD, "", ConfigDef.Importance.MEDIUM, HTTPS_TRUST_STORE_PASSWORD_DOC) .define(HTTPS_IDLE_TIMEOUT_MS_CONF, ConfigDef.Type.INT, 30000, ConfigDef.Range.between(5000, 1000 * 300), ConfigDef.Importance.LOW, HTTPS_IDLE_TIMEOUT_MS_DOC) .define(HTTP_ENABLE_CONF, ConfigDef.Type.BOOLEAN, true, ConfigDef.Importance.HIGH, HTTP_ENABLE_DOC) .define(HTTP_PORT_CONF, ConfigDef.Type.INT, 8080, ValidPort.of(1000, 65535), ConfigDef.Importance.HIGH, HTTP_PORT_DOC) .define(HTTP_IDLE_TIMEOUT_MS_CONF, ConfigDef.Type.INT, 30000, ConfigDef.Range.between(5000, 1000 * 300), ConfigDef.Importance.LOW, HTTP_IDLE_TIMEOUT_MS_DOC) .define(THREAD_POOL_MAX_SIZE_CONF, ConfigDef.Type.INT, 100, ConfigDef.Range.between(10, 1000), ConfigDef.Importance.MEDIUM, THREAD_POOL_MAX_SIZE_DOC) .define(THREAD_POOL_MIN_SIZE_CONF, ConfigDef.Type.INT, 10, ConfigDef.Range.between(10, 1000), ConfigDef.Importance.MEDIUM, THREAD_POOL_MIN_SIZE_DOC) .define(HEALTH_CHECK_ENABLE_CONF, ConfigDef.Type.BOOLEAN, true, ConfigDef.Importance.MEDIUM, HEALTH_CHECK_ENABLE_DOC) .define(HEALTH_CHECK_PATH_CONF, ConfigDef.Type.STRING, "/healthcheck", ConfigDef.Importance.MEDIUM, HEALTH_CHECK_PATH_DOC); } }
public static ConfigDef config() { return new ConfigDef() .define(TOPIC_FORMAT_CONFIG, Type.STRING, "${databaseName}.${tableName}", Importance.HIGH, TOPIC_FORMAT_DOC) .define(NAMESPACE_CONFIG, Type.STRING, "com.example.data.${databaseName}", Importance.HIGH, NAMESPACE_DOC) .define(KEY_NAME_FORMAT_CONFIG, Type.STRING, "${namespace}.${tableName}Key", Importance.HIGH, KEY_NAME_FORMAT_DOC) .define(VALUE_NAME_FORMAT_CONFIG, Type.STRING, "${namespace}.${tableName}Value", Importance.HIGH, VALUE_NAME_FORMAT_DOC) .define(BATCH_SIZE_CONFIG, Type.INT, 512, Range.atLeast(1), Importance.LOW, BATCH_SIZE_DOC) .define(BACKOFF_TIME_MS_CONFIG, Type.INT, 1000, Range.atLeast(50), Importance.LOW, BACKOFF_TIME_MS_DOC) .define(SCHEMA_CACHE_MS_CONFIG, Type.INT, 5 * 60 * 1000, Range.atLeast(60000), Importance.LOW, SCHEMA_CACHE_MS_DOC) .define(UNCOMITTED_RECORD_MAX_CONFIG, Type.INT, 50000, Range.atLeast(100), Importance.LOW, UNCOMITTED_RECORD_MAX_DOC) .define(UNCOMITTED_RECORD_TIMEOUT_CONFIG, Type.LONG, 5L * 60L * 1000L, Range.atLeast(100), Importance.LOW, UNCOMITTED_RECORD_TIMEOUT_DOC) .define(SCHEMA_CASE_FORMAT_INPUT_CONFIG, Type.STRING, CaseFormat.UPPER_UNDERSCORE.toString(), ValidEnum.of(CaseFormat.class, CaseFormat.LOWER.toString(), CaseFormat.UPPER.toString(), CaseFormat.NONE.toString()), Importance.LOW, SCHEMA_CASE_FORMAT_INPUT_DOC) .define(SCHEMA_CASE_FORMAT_DATABASE_NAMES_CONFIG, Type.STRING, CaseFormat.NONE.name(), ValidEnum.of(CaseFormat.class), Importance.LOW, SCHEMA_CASE_FORMAT_DATABASE_NAMES_DOC) .define(SCHEMA_CASE_FORMAT_SCHEMA_NAMES_CONFIG, Type.STRING, CaseFormat.NONE.name(), ValidEnum.of(CaseFormat.class), Importance.LOW, SCHEMA_CASE_FORMAT_SCHEMA_NAMES_DOC) .define(SCHEMA_CASE_FORMAT_TABLE_NAMES_CONFIG, Type.STRING, CaseFormat.NONE.name(), ValidEnum.of(CaseFormat.class), Importance.LOW, SCHEMA_CASE_FORMAT_TABLE_NAMES_DOC) .define(SCHEMA_CASE_FORMAT_COLUMN_NAMES_CONFIG, Type.STRING, CaseFormat.NONE.name(), ValidEnum.of(CaseFormat.class), Importance.LOW, SCHEMA_CASE_FORMAT_COLUMN_NAMES_DOC); }
/** * A numeric range that checks only the lower bound * @param min The minimum acceptable value */ public static Range atLeast(Number min) { return new Range(min, null); }
/** * A numeric range that checks both the upper and lower bound */ public static Range between(Number min, Number max) { return new Range(min, max); }
public static void addClientSaslSupport(ConfigDef config) { config.define(SaslConfigs.SASL_KERBEROS_SERVICE_NAME, ConfigDef.Type.STRING, null, ConfigDef.Importance.MEDIUM, SaslConfigs.SASL_KERBEROS_SERVICE_NAME_DOC) .define(SaslConfigs.SASL_KERBEROS_KINIT_CMD, ConfigDef.Type.STRING, SaslConfigs.DEFAULT_KERBEROS_KINIT_CMD, ConfigDef.Importance.LOW, SaslConfigs.SASL_KERBEROS_KINIT_CMD_DOC) .define(SaslConfigs.SASL_KERBEROS_TICKET_RENEW_WINDOW_FACTOR, ConfigDef.Type.DOUBLE, SaslConfigs.DEFAULT_KERBEROS_TICKET_RENEW_WINDOW_FACTOR, ConfigDef.Importance.LOW, SaslConfigs.SASL_KERBEROS_TICKET_RENEW_WINDOW_FACTOR_DOC) .define(SaslConfigs.SASL_KERBEROS_TICKET_RENEW_JITTER, ConfigDef.Type.DOUBLE, SaslConfigs.DEFAULT_KERBEROS_TICKET_RENEW_JITTER, ConfigDef.Importance.LOW, SaslConfigs.SASL_KERBEROS_TICKET_RENEW_JITTER_DOC) .define(SaslConfigs.SASL_KERBEROS_MIN_TIME_BEFORE_RELOGIN, ConfigDef.Type.LONG, SaslConfigs.DEFAULT_KERBEROS_MIN_TIME_BEFORE_RELOGIN, ConfigDef.Importance.LOW, SaslConfigs.SASL_KERBEROS_MIN_TIME_BEFORE_RELOGIN_DOC) .define(SaslConfigs.SASL_LOGIN_REFRESH_WINDOW_FACTOR, ConfigDef.Type.DOUBLE, SaslConfigs.DEFAULT_LOGIN_REFRESH_WINDOW_FACTOR, Range.between(0.5, 1.0), ConfigDef.Importance.LOW, SaslConfigs.SASL_LOGIN_REFRESH_WINDOW_FACTOR_DOC) .define(SaslConfigs.SASL_LOGIN_REFRESH_WINDOW_JITTER, ConfigDef.Type.DOUBLE, SaslConfigs.DEFAULT_LOGIN_REFRESH_WINDOW_JITTER, Range.between(0.0, 0.25), ConfigDef.Importance.LOW, SaslConfigs.SASL_LOGIN_REFRESH_WINDOW_JITTER_DOC) .define(SaslConfigs.SASL_LOGIN_REFRESH_MIN_PERIOD_SECONDS, ConfigDef.Type.SHORT, SaslConfigs.DEFAULT_LOGIN_REFRESH_MIN_PERIOD_SECONDS, Range.between(0, 900), ConfigDef.Importance.LOW, SaslConfigs.SASL_LOGIN_REFRESH_MIN_PERIOD_SECONDS_DOC) .define(SaslConfigs.SASL_LOGIN_REFRESH_BUFFER_SECONDS, ConfigDef.Type.SHORT, SaslConfigs.DEFAULT_LOGIN_REFRESH_BUFFER_SECONDS, Range.between(0, 3600), ConfigDef.Importance.LOW, SaslConfigs.SASL_LOGIN_REFRESH_BUFFER_SECONDS_DOC) .define(SaslConfigs.SASL_MECHANISM, ConfigDef.Type.STRING, SaslConfigs.DEFAULT_SASL_MECHANISM, ConfigDef.Importance.MEDIUM, SaslConfigs.SASL_MECHANISM_DOC) .define(SaslConfigs.SASL_JAAS_CONFIG, ConfigDef.Type.PASSWORD, null, ConfigDef.Importance.MEDIUM, SaslConfigs.SASL_JAAS_CONFIG_DOC) .define(SaslConfigs.SASL_CLIENT_CALLBACK_HANDLER_CLASS, ConfigDef.Type.CLASS, null, ConfigDef.Importance.MEDIUM, SaslConfigs.SASL_CLIENT_CALLBACK_HANDLER_CLASS_DOC) .define(SaslConfigs.SASL_LOGIN_CALLBACK_HANDLER_CLASS, ConfigDef.Type.CLASS, null, ConfigDef.Importance.MEDIUM, SaslConfigs.SASL_LOGIN_CALLBACK_HANDLER_CLASS_DOC) .define(SaslConfigs.SASL_LOGIN_CLASS, ConfigDef.Type.CLASS, null, ConfigDef.Importance.MEDIUM, SaslConfigs.SASL_LOGIN_CLASS_DOC); } }
@Test(expected = ConfigException.class) public void testInvalidDefaultRange() { new ConfigDef().define("name", Type.INT, -1, Range.between(0, 10), Importance.HIGH, "docs"); }
/** * A numeric range that checks both the upper (inclusive) and lower bound */ public static Range between(Number min, Number max) { return new Range(min, max); }
@Test public void testValidators() { testValidators(Type.INT, Range.between(0, 10), 5, new Object[]{1, 5, 9}, new Object[]{-1, 11, null}); testValidators(Type.STRING, ValidString.in("good", "values", "default"), "default", new Object[]{"good", "values", "default"}, new Object[]{"bad", "inputs", null}); testValidators(Type.LIST, ConfigDef.ValidList.in("1", "2", "3"), "1", new Object[]{"1", "2", "3"}, new Object[]{"4", "5", "6"}); testValidators(Type.STRING, new ConfigDef.NonNullValidator(), "a", new Object[]{"abb"}, new Object[] {null}); testValidators(Type.STRING, ConfigDef.CompositeValidator.of(new ConfigDef.NonNullValidator(), ValidString.in("a", "b")), "a", new Object[]{"a", "b"}, new Object[] {null, -1, "c"}); testValidators(Type.STRING, new ConfigDef.NonEmptyStringWithoutControlChars(), "defaultname", new Object[]{"test", "name", "test/test", "test\u1234", "\u1324name\\", "/+%>&):??<&()?-", "+1", "\uD83D\uDE01", "\uF3B1", " test \n\r", "\n hello \t"}, new Object[]{"nontrailing\nnotallowed", "as\u0001cii control char", "tes\rt", "test\btest", "1\t2", ""}); }
/** * A numeric range that checks only the lower bound * * @param min The minimum acceptable value */ public static Range atLeast(Number min) { return new Range(min, null); }