Search in sources :

Example 1 with ConfigException

use of org.apache.kafka.common.config.ConfigException in project kafka by apache.

the class ClientUtils method createChannelBuilder.

/**
     * @param config client configs
     * @return configured ChannelBuilder based on the configs.
     */
public static ChannelBuilder createChannelBuilder(AbstractConfig config) {
    SecurityProtocol securityProtocol = SecurityProtocol.forName(config.getString(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG));
    if (!SecurityProtocol.nonTestingValues().contains(securityProtocol))
        throw new ConfigException("Invalid SecurityProtocol " + securityProtocol);
    String clientSaslMechanism = config.getString(SaslConfigs.SASL_MECHANISM);
    return ChannelBuilders.clientChannelBuilder(securityProtocol, JaasContext.Type.CLIENT, config, null, clientSaslMechanism, true);
}
Also used : SecurityProtocol(org.apache.kafka.common.protocol.SecurityProtocol) ConfigException(org.apache.kafka.common.config.ConfigException)

Example 2 with ConfigException

use of org.apache.kafka.common.config.ConfigException in project kafka by apache.

the class StreamPartitionAssignor method configure.

/**
     * We need to have the PartitionAssignor and its StreamThread to be mutually accessible
     * since the former needs later's cached metadata while sending subscriptions,
     * and the latter needs former's returned assignment when adding tasks.
     * @throws KafkaException if the stream thread is not specified
     */
@Override
public void configure(Map<String, ?> configs) {
    numStandbyReplicas = (Integer) configs.get(StreamsConfig.NUM_STANDBY_REPLICAS_CONFIG);
    Object o = configs.get(StreamsConfig.InternalConfig.STREAM_THREAD_INSTANCE);
    if (o == null) {
        KafkaException ex = new KafkaException("StreamThread is not specified");
        log.error(ex.getMessage(), ex);
        throw ex;
    }
    if (!(o instanceof StreamThread)) {
        KafkaException ex = new KafkaException(String.format("%s is not an instance of %s", o.getClass().getName(), StreamThread.class.getName()));
        log.error(ex.getMessage(), ex);
        throw ex;
    }
    streamThread = (StreamThread) o;
    streamThread.partitionAssignor(this);
    String userEndPoint = (String) configs.get(StreamsConfig.APPLICATION_SERVER_CONFIG);
    if (userEndPoint != null && !userEndPoint.isEmpty()) {
        try {
            String host = getHost(userEndPoint);
            Integer port = getPort(userEndPoint);
            if (host == null || port == null)
                throw new ConfigException(String.format("stream-thread [%s] Config %s isn't in the correct format. Expected a host:port pair" + " but received %s", streamThread.getName(), StreamsConfig.APPLICATION_SERVER_CONFIG, userEndPoint));
        } catch (NumberFormatException nfe) {
            throw new ConfigException(String.format("stream-thread [%s] Invalid port supplied in %s for config %s", streamThread.getName(), userEndPoint, StreamsConfig.APPLICATION_SERVER_CONFIG));
        }
        this.userEndPoint = userEndPoint;
    }
    internalTopicManager = new InternalTopicManager(new StreamsKafkaClient(this.streamThread.config), configs.containsKey(StreamsConfig.REPLICATION_FACTOR_CONFIG) ? (Integer) configs.get(StreamsConfig.REPLICATION_FACTOR_CONFIG) : 1, configs.containsKey(StreamsConfig.WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG) ? (Long) configs.get(StreamsConfig.WINDOW_STORE_CHANGE_LOG_ADDITIONAL_RETENTION_MS_CONFIG) : WINDOW_CHANGE_LOG_ADDITIONAL_RETENTION_DEFAULT);
    this.copartitionedTopicsValidator = new CopartitionedTopicsValidator(streamThread.getName());
}
Also used : KafkaException(org.apache.kafka.common.KafkaException) ConfigException(org.apache.kafka.common.config.ConfigException)

Example 3 with ConfigException

use of org.apache.kafka.common.config.ConfigException in project kafka by apache.

the class WindowedDeserializer method configure.

@Override
public void configure(Map<String, ?> configs, boolean isKey) {
    if (inner == null) {
        String propertyName = isKey ? "key.deserializer.inner.class" : "value.deserializer.inner.class";
        Object innerDeserializerClass = configs.get(propertyName);
        propertyName = (innerDeserializerClass == null) ? "deserializer.inner.class" : propertyName;
        String value = null;
        try {
            value = (String) configs.get(propertyName);
            inner = Deserializer.class.cast(Utils.newInstance(value, Deserializer.class));
            inner.configure(configs, isKey);
        } catch (ClassNotFoundException e) {
            throw new ConfigException(propertyName, value, "Class " + value + " could not be found.");
        }
    }
}
Also used : Deserializer(org.apache.kafka.common.serialization.Deserializer) ConfigException(org.apache.kafka.common.config.ConfigException)

Example 4 with ConfigException

use of org.apache.kafka.common.config.ConfigException in project kafka by apache.

the class StreamPartitionAssignorTest method shouldThrowExceptionIfApplicationServerConfigPortIsNotAnInteger.

@Test
public void shouldThrowExceptionIfApplicationServerConfigPortIsNotAnInteger() throws Exception {
    final Properties properties = configProps();
    final String myEndPoint = "localhost:j87yhk";
    properties.put(StreamsConfig.APPLICATION_SERVER_CONFIG, myEndPoint);
    final StreamsConfig config = new StreamsConfig(properties);
    final UUID uuid1 = UUID.randomUUID();
    final String client1 = "client1";
    final String applicationId = "application-id";
    builder.setApplicationId(applicationId);
    final StreamThread streamThread = new StreamThread(builder, config, mockClientSupplier, applicationId, client1, uuid1, new Metrics(), Time.SYSTEM, new StreamsMetadataState(builder, StreamsMetadataState.UNKNOWN_HOST), 0);
    try {
        partitionAssignor.configure(config.getConsumerConfigs(streamThread, applicationId, client1));
        Assert.fail("expected to an exception due to invalid config");
    } catch (ConfigException e) {
    // pass
    }
}
Also used : Metrics(org.apache.kafka.common.metrics.Metrics) ConfigException(org.apache.kafka.common.config.ConfigException) Properties(java.util.Properties) UUID(java.util.UUID) StreamsConfig(org.apache.kafka.streams.StreamsConfig) Test(org.junit.Test)

Example 5 with ConfigException

use of org.apache.kafka.common.config.ConfigException 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.
     */
public static ConfigDef enrich(ConfigDef baseConfigDef, Map<String, String> props, boolean requireFullConfig) {
    final List<String> transformAliases = (List<String>) ConfigDef.parseType(TRANSFORMS_CONFIG, props.get(TRANSFORMS_CONFIG), Type.LIST);
    if (transformAliases == null || transformAliases.isEmpty()) {
        return baseConfigDef;
    }
    final ConfigDef newDef = new ConfigDef(baseConfigDef);
    for (String alias : new LinkedHashSet<>(transformAliases)) {
        final String prefix = TRANSFORMS_CONFIG + "." + alias + ".";
        final String group = TRANSFORMS_GROUP + ": " + alias;
        int orderInGroup = 0;
        final String transformationTypeConfig = prefix + "type";
        final ConfigDef.Validator typeValidator = new ConfigDef.Validator() {

            @Override
            public void ensureValid(String name, Object value) {
                getConfigDefFromTransformation(transformationTypeConfig, (Class) value);
            }
        };
        newDef.define(transformationTypeConfig, Type.CLASS, ConfigDef.NO_DEFAULT_VALUE, typeValidator, Importance.HIGH, "Class for the '" + alias + "' transformation.", group, orderInGroup++, Width.LONG, "Transformation type for " + alias, Collections.<String>emptyList(), new TransformationClassRecommender());
        final ConfigDef transformationConfigDef;
        try {
            final String className = props.get(transformationTypeConfig);
            final Class<?> cls = (Class<?>) ConfigDef.parseType(transformationTypeConfig, className, Type.CLASS);
            transformationConfigDef = getConfigDefFromTransformation(transformationTypeConfig, cls);
        } catch (ConfigException e) {
            if (requireFullConfig) {
                throw e;
            } else {
                continue;
            }
        }
        newDef.embed(prefix, group, orderInGroup, transformationConfigDef);
    }
    return newDef;
}
Also used : LinkedHashSet(java.util.LinkedHashSet) ConfigException(org.apache.kafka.common.config.ConfigException) ArrayList(java.util.ArrayList) List(java.util.List) ConfigDef(org.apache.kafka.common.config.ConfigDef)

Aggregations

ConfigException (org.apache.kafka.common.config.ConfigException)136 HashMap (java.util.HashMap)29 Test (org.junit.jupiter.api.Test)28 Test (org.junit.Test)20 Properties (java.util.Properties)10 KafkaException (org.apache.kafka.common.KafkaException)10 ArrayList (java.util.ArrayList)9 List (java.util.List)9 Pattern (java.util.regex.Pattern)9 Serde (org.apache.kafka.common.serialization.Serde)8 SimpleConfig (org.apache.kafka.connect.transforms.util.SimpleConfig)8 File (java.io.File)7 SSLContext (javax.net.ssl.SSLContext)7 Map (java.util.Map)6 ByteArraySerializer (org.apache.kafka.common.serialization.ByteArraySerializer)6 KeyStore (java.security.KeyStore)5 KeyManagerFactory (javax.net.ssl.KeyManagerFactory)5 TrustManagerFactory (javax.net.ssl.TrustManagerFactory)5 ConfigDef (org.apache.kafka.common.config.ConfigDef)5 IOException (java.io.IOException)4