Thanks, Arthur! --Matt From: Arthur Maciejewicz <[email protected]> Reply-To: "[email protected]" <[email protected]> Date: Wednesday, December 21, 2016 at 9:45 AM To: "[email protected]" <[email protected]> Subject: Re: What distinguishes a Windowing Bolt?
You must satisfy the IWindowedBolt and IComponent interfaces. BaseWindowedBolt is there for your convenience. When constructing the topology, there is a setBolt method on TopologyBuilder specifically for bolts satisfying the IWindowedBolt interface. It will be wrapped with a WindowedBoltExecutor by the TopologyBuilder for you. You can implement windows yourself by returning a HashMap from getComponentConfiguration in your custom bolt (as long as they also implement the IWindowedBolt interface). On Wed, Dec 21, 2016 at 12:30 PM, Matt Foley <[email protected]> wrote: Hi, I’ve been unable to find this in the Storm documentation: How does the Storm topology loader identify if a Bolt is a “windowing” bolt and therefore needs to be wrapped with WindowedBoltExecutor? Does it look at: 1. Whether the Bolt’s getComponentConfiguration() method presents some or all of the windowing-related configuration parameters, as BaseWindowedBolt does; 2. Or does it use reflection to determine if the Bolt implements IWindowedBolt interface; 3. Or does the Bolt actually have to extend BaseWindowedBolt? There are indications in the docs that it is #2, but I wasn’t able to become certain. Please clarify. Thanks, --Matt
