[ 
https://issues.apache.org/jira/browse/KAFKA-3455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16048626#comment-16048626
 ] 

Bobby Calderwood commented on KAFKA-3455:
-----------------------------------------

Hi Michal Borowiecki,

Sorry for the late reply.  I am trying to implement both {{Transformer}} and 
{{Processor}} on the same class.  For some interesting use-cases in a Clojure 
compatibility library for Kafka Streams that I'm writing, I'd like to hook a 
single piece of logic into both the high-level (via {{Transformer}}) and 
low-level (via {{Processor}}) APIs.  However, when implementing both 
interfaces, I encounter the following error due to differing signatures of the 
respective {{punctuate(long)}} methods:

{code:none}
<redacted>/TransducerProcessor.java
    Error:Error:line (44)java: method punctuate(long) is already defined in 
class kafka_streams_clojure.TransducerProcessor
    Error:Error:line (10)java: kafka_streams_clojure.TransducerProcessor is not 
abstract and does not override abstract method punctuate(long) in 
org.apache.kafka.streams.kstream.Transformer
    Error:Error:line (40)java: punctuate(long) in 
kafka_streams_clojure.TransducerProcessor cannot implement punctuate(long) in 
org.apache.kafka.streams.kstream.Transformer
  return type void is not compatible with java.lang.Object
{code}

I believe you're right about AutoCloseable, it's been a while since I've been 
in Java-land :-)

Yes, I believe that once the incompatible punctuate methods are deprecated and 
then removed, my issue would be resolved.

> Connect custom processors with the streams DSL
> ----------------------------------------------
>
>                 Key: KAFKA-3455
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3455
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: streams
>    Affects Versions: 0.10.0.1
>            Reporter: Jonathan Bender
>              Labels: user-experience
>
> From the kafka users email thread, we discussed the idea of connecting custom 
> processors with topologies defined from the Streams DSL (and being able to 
> sink data from the processor).  Possibly this could involve exposing the 
> underlying processor's name in the streams DSL so it can be connected with 
> the standard processor API.
> {quote}
> Thanks for the feedback. This is definitely something we wanted to support
> in the Streams DSL.
> One tricky thing, though, is that some operations do not translate to a
> single processor, but a sub-graph of processors (think of a stream-stream
> join, which is translated to actually 5 processors for windowing / state
> queries / merging, each with a different internal name). So how to define
> the API to return the processor name needs some more thinking.
> {quote}



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

Reply via email to