use of org.apache.kafka.common.config.ConfigDef in project kafka by apache.
the class ConnectorConfig method enrich.
/**
* Returns an enriched {@link ConfigDef} building upon the {@code ConfigDef}, using the current configuration specified in {@code props} as an input.
* <p>
* {@code requireFullConfig} specifies whether required config values that are missing should cause an exception to be thrown.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public static ConfigDef enrich(Plugins plugins, ConfigDef baseConfigDef, Map<String, String> props, boolean requireFullConfig) {
ConfigDef newDef = new ConfigDef(baseConfigDef);
new EnrichablePlugin<Transformation<?>>("Transformation", TRANSFORMS_CONFIG, TRANSFORMS_GROUP, (Class) Transformation.class, props, requireFullConfig) {
@SuppressWarnings("rawtypes")
@Override
protected Set<PluginDesc<Transformation<?>>> plugins() {
return plugins.transformations();
}
@Override
protected ConfigDef initialConfigDef() {
// All Transformations get these config parameters implicitly
return super.initialConfigDef().define(PredicatedTransformation.PREDICATE_CONFIG, Type.STRING, "", Importance.MEDIUM, "The alias of a predicate used to determine whether to apply this transformation.").define(PredicatedTransformation.NEGATE_CONFIG, Type.BOOLEAN, false, Importance.MEDIUM, "Whether the configured predicate should be negated.");
}
@Override
protected Stream<Map.Entry<String, ConfigDef.ConfigKey>> configDefsForClass(String typeConfig) {
return super.configDefsForClass(typeConfig).filter(entry -> {
// The implicit parameters mask any from the transformer with the same name
if (PredicatedTransformation.PREDICATE_CONFIG.equals(entry.getKey()) || PredicatedTransformation.NEGATE_CONFIG.equals(entry.getKey())) {
log.warn("Transformer config {} is masked by implicit config of that name", entry.getKey());
return false;
} else {
return true;
}
});
}
@Override
protected ConfigDef config(Transformation<?> transformation) {
return transformation.config();
}
@Override
protected void validateProps(String prefix) {
String prefixedNegate = prefix + PredicatedTransformation.NEGATE_CONFIG;
String prefixedPredicate = prefix + PredicatedTransformation.PREDICATE_CONFIG;
if (props.containsKey(prefixedNegate) && !props.containsKey(prefixedPredicate)) {
throw new ConfigException("Config '" + prefixedNegate + "' was provided " + "but there is no config '" + prefixedPredicate + "' defining a predicate to be negated.");
}
}
}.enrich(newDef);
new EnrichablePlugin<Predicate<?>>("Predicate", PREDICATES_CONFIG, PREDICATES_GROUP, (Class) Predicate.class, props, requireFullConfig) {
@Override
protected Set<PluginDesc<Predicate<?>>> plugins() {
return plugins.predicates();
}
@Override
protected ConfigDef config(Predicate<?> predicate) {
return predicate.config();
}
}.enrich(newDef);
return newDef;
}
use of org.apache.kafka.common.config.ConfigDef in project kafka by apache.
the class TopicCreationConfig method defaultGroupConfigDef.
public static ConfigDef defaultGroupConfigDef() {
int orderInGroup = 0;
ConfigDef configDef = new ConfigDef();
configDef.define(INCLUDE_REGEX_CONFIG, ConfigDef.Type.LIST, ".*", new ConfigDef.NonNullValidator(), ConfigDef.Importance.LOW, INCLUDE_REGEX_DOC, DEFAULT_TOPIC_CREATION_GROUP, ++orderInGroup, ConfigDef.Width.LONG, "Inclusion Topic Pattern for " + DEFAULT_TOPIC_CREATION_GROUP).define(EXCLUDE_REGEX_CONFIG, ConfigDef.Type.LIST, Collections.emptyList(), new ConfigDef.NonNullValidator(), ConfigDef.Importance.LOW, EXCLUDE_REGEX_DOC, DEFAULT_TOPIC_CREATION_GROUP, ++orderInGroup, ConfigDef.Width.LONG, "Exclusion Topic Pattern for " + DEFAULT_TOPIC_CREATION_GROUP).define(REPLICATION_FACTOR_CONFIG, ConfigDef.Type.SHORT, ConfigDef.NO_DEFAULT_VALUE, REPLICATION_FACTOR_VALIDATOR, ConfigDef.Importance.LOW, REPLICATION_FACTOR_DOC, DEFAULT_TOPIC_CREATION_GROUP, ++orderInGroup, ConfigDef.Width.LONG, "Replication Factor for Topics in " + DEFAULT_TOPIC_CREATION_GROUP).define(PARTITIONS_CONFIG, ConfigDef.Type.INT, ConfigDef.NO_DEFAULT_VALUE, PARTITIONS_VALIDATOR, ConfigDef.Importance.LOW, PARTITIONS_DOC, DEFAULT_TOPIC_CREATION_GROUP, ++orderInGroup, ConfigDef.Width.LONG, "Partition Count for Topics in " + DEFAULT_TOPIC_CREATION_GROUP);
return configDef;
}
use of org.apache.kafka.common.config.ConfigDef in project kafka by apache.
the class TopicCreationConfig method configDef.
public static ConfigDef configDef(String group, short defaultReplicationFactor, int defaultParitionCount) {
int orderInGroup = 0;
ConfigDef configDef = new ConfigDef();
configDef.define(INCLUDE_REGEX_CONFIG, ConfigDef.Type.LIST, Collections.emptyList(), REGEX_VALIDATOR, ConfigDef.Importance.LOW, INCLUDE_REGEX_DOC, group, ++orderInGroup, ConfigDef.Width.LONG, "Inclusion Topic Pattern for " + group).define(EXCLUDE_REGEX_CONFIG, ConfigDef.Type.LIST, Collections.emptyList(), REGEX_VALIDATOR, ConfigDef.Importance.LOW, EXCLUDE_REGEX_DOC, group, ++orderInGroup, ConfigDef.Width.LONG, "Exclusion Topic Pattern for " + group).define(REPLICATION_FACTOR_CONFIG, ConfigDef.Type.SHORT, defaultReplicationFactor, REPLICATION_FACTOR_VALIDATOR, ConfigDef.Importance.LOW, REPLICATION_FACTOR_DOC, group, ++orderInGroup, ConfigDef.Width.LONG, "Replication Factor for Topics in " + group).define(PARTITIONS_CONFIG, ConfigDef.Type.INT, defaultParitionCount, PARTITIONS_VALIDATOR, ConfigDef.Importance.LOW, PARTITIONS_DOC, group, ++orderInGroup, ConfigDef.Width.LONG, "Partition Count for Topics in " + group);
return configDef;
}
use of org.apache.kafka.common.config.ConfigDef in project kafka by apache.
the class QuotaConfigs method userConfigs.
public static ConfigDef userConfigs() {
ConfigDef configDef = new ConfigDef();
ScramMechanism.mechanismNames().forEach(mechanismName -> {
configDef.define(mechanismName, ConfigDef.Type.STRING, null, ConfigDef.Importance.MEDIUM, "User credentials for SCRAM mechanism " + mechanismName);
});
buildUserClientQuotaConfigDef(configDef);
return configDef;
}
use of org.apache.kafka.common.config.ConfigDef in project kafka by apache.
the class QuotaConfigs method clientConfigs.
public static ConfigDef clientConfigs() {
ConfigDef configDef = new ConfigDef();
buildUserClientQuotaConfigDef(configDef);
return configDef;
}
Aggregations