srdo commented on issue #3165: 'kafkaSpoutConfig' can be 'protected'
URL: https://github.com/apache/storm/pull/3165#issuecomment-554619841
 
 
   @jacobtolar No, I want to discourage subclassing entirely. I'd much rather 
encourage people to wrap the spout than to extend it, as that's less likely to 
break if we make changes internally in the spout.
   
   What you're trying to do sounds very reasonable, but it sounds like you 
could do it by composition as well. So you'd have something like
   ```
   class YourSpout extends BaseRichSpout {
   private final KafkaSpout wrapped;
   private final KafkaSpoutConfig config;
   
   public YourSpout(KafkaSpoutConfig config) {
     wrapped = new KafkaSpout(config)
     this.config = config;
   }
   }
   ```
   
   and then you'd provide implementations of the spout methods that call the 
wrapped methods, and also do your tracking. This 
   
   If you need additional hooks for e.g. knowing when a tuple has been 
discarded by the spout, we could add them to 
https://github.com/apache/storm/blob/master/external/storm-kafka-client/src/main/java/org/apache/storm/kafka/spout/KafkaTupleListener.java
   
   What do you think?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to