[ 
https://issues.apache.org/jira/browse/NIFI-4240?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michał Terbert updated NIFI-4240:
---------------------------------
    Description: 
We can not set in Kafka Consumer Processor (ConsumeKafka_0_10)  key.deserilzer 
or value.deserilizer:
{quote}Key/value De-Serializer must be ByteArrayDeserializer.class{quote}

After prepare our custom class based on ByteArrayDeserializer we can not still 
use them.

Workaround:
Modify KafkaProcessorUtils.java:
Comment below lines:

{code:java}
    final String keyDeSerializer = validationContext.getProperty(new 
PropertyDescriptor.Builder().name(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG).build()).getValue();
    if (keyDeSerializer != null && 
!ByteArrayDeserializer.class.getName().equals(keyDeSerializer)) {
        results.add(new 
ValidationResult.Builder().subject(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG)
                .explanation("Key De-Serializer must be '" + 
ByteArrayDeserializer.class.getName() + "' was '" + keyDeSerializer + 
"'").build());
    }

    final String valueDeSerializer = validationContext.getProperty(new 
PropertyDescriptor.Builder().name(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG).build()).getValue();
    if (valueDeSerializer != null && 
!ByteArrayDeserializer.class.getName().equals(valueDeSerializer)) {
        results.add(new 
ValidationResult.Builder().subject(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG)
                .explanation("Value De-Serializer must be " + 
ByteArrayDeserializer.class.getName() + "' was '" + valueDeSerializer + 
"'").build());
    }{code}


  was:
We can not set in Kafka Consumer Processor key.deserilzer or value.deserilizer:
{quote}Key/value De-Serializer must be ByteArrayDeserializer.class{quote}

After prepare our custom class based on ByteArrayDeserializer we can not still 
use them.

Workaround:
Modify KafkaProcessorUtils.java:
Comment below lines:

{code:java}
    final String keyDeSerializer = validationContext.getProperty(new 
PropertyDescriptor.Builder().name(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG).build()).getValue();
    if (keyDeSerializer != null && 
!ByteArrayDeserializer.class.getName().equals(keyDeSerializer)) {
        results.add(new 
ValidationResult.Builder().subject(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG)
                .explanation("Key De-Serializer must be '" + 
ByteArrayDeserializer.class.getName() + "' was '" + keyDeSerializer + 
"'").build());
    }

    final String valueDeSerializer = validationContext.getProperty(new 
PropertyDescriptor.Builder().name(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG).build()).getValue();
    if (valueDeSerializer != null && 
!ByteArrayDeserializer.class.getName().equals(valueDeSerializer)) {
        results.add(new 
ValidationResult.Builder().subject(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG)
                .explanation("Value De-Serializer must be " + 
ByteArrayDeserializer.class.getName() + "' was '" + valueDeSerializer + 
"'").build());
    }{code}


        Summary: Setting value.deserializer and key.deserializer in consume 
kafka 0.10  (was: Setting value.deserializer and key.deserializer in consume 
kafka )

> Setting value.deserializer and key.deserializer in consume kafka 0.10
> ---------------------------------------------------------------------
>
>                 Key: NIFI-4240
>                 URL: https://issues.apache.org/jira/browse/NIFI-4240
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: 1.3.0
>            Reporter: Michał Terbert
>
> We can not set in Kafka Consumer Processor (ConsumeKafka_0_10)  
> key.deserilzer or value.deserilizer:
> {quote}Key/value De-Serializer must be ByteArrayDeserializer.class{quote}
> After prepare our custom class based on ByteArrayDeserializer we can not 
> still use them.
> Workaround:
> Modify KafkaProcessorUtils.java:
> Comment below lines:
> {code:java}
>     final String keyDeSerializer = validationContext.getProperty(new 
> PropertyDescriptor.Builder().name(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG).build()).getValue();
>     if (keyDeSerializer != null && 
> !ByteArrayDeserializer.class.getName().equals(keyDeSerializer)) {
>         results.add(new 
> ValidationResult.Builder().subject(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG)
>                 .explanation("Key De-Serializer must be '" + 
> ByteArrayDeserializer.class.getName() + "' was '" + keyDeSerializer + 
> "'").build());
>     }
>     final String valueDeSerializer = validationContext.getProperty(new 
> PropertyDescriptor.Builder().name(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG).build()).getValue();
>     if (valueDeSerializer != null && 
> !ByteArrayDeserializer.class.getName().equals(valueDeSerializer)) {
>         results.add(new 
> ValidationResult.Builder().subject(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG)
>                 .explanation("Value De-Serializer must be " + 
> ByteArrayDeserializer.class.getName() + "' was '" + valueDeSerializer + 
> "'").build());
>     }{code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to