Hi @mjsax @StephanEwen @rmetzger Can you give me some suggestion about my idea of how to transfer user-defined class code to task? Thank you very much!
Regards Fengbin Fang ################# Dear all, I am work on task hooks of storm-compatibility. Storm support add hook through the Storm configuration using the "topology.auto.task.hooks" config. Users can use user-defined hooks class names as value of "topology.auto.task.hooks" of Configuration Map. These hooks are automatically registered in every spout or bolt. Example like this: public class Hooks extends BaseTaskHook { @Override public void boltExecute(BoltExecuteInfo info) { ...; } } public static void main(final String[] args) throws Exception { final FlinkTopologyBuilder builder = ExclamationTopology.buildTopology(); Config config = new Config(); config.put(Config.TOPOLOGY_AUTO_TASK_HOOKS, "org.apache.flink.stormcompatibility.util.Hook"); // execute program locally final FlinkLocalCluster cluster = FlinkLocalCluster.getLocalCluster(); cluster.submitTopology(topologyId, config, builder.createTopology()); } My question is how to transfer user-defined class code to task? Now I have a idea. I want to create user-defined hook object in FlinkClient and serialize it into bytes, then put bytes into storm configuration instead of user-defined hooks class names. So all spout/bout can get user-defined hook object from storm configuration. In this way, we can make a cleaner separation between the storm-compatibility and core code. But storm BaseTaskHook has not implements Serializable! So user-defined hooks class must implements Serializable. This is the difference. Can you give me some suggestion? Thank you very much!! Regards Fengbin Fang