[
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)