package backtype.storm.serialization; import com.esotericsoftware.kryo.Kryo; import java.util.Map; /** * An interface that controls the Kryo instance used by Storm for serialization. * The lifecycle is: * * 1. The Kryo instance is constructed using getKryo 2. Storm registers the * default classes (e.g. arrays, lists, maps, etc.) 3. Storm calls preRegister * hook 4. Storm registers all user-defined registrations through * topology.kryo.register 5. Storm calls postRegister hook 6. Storm calls all * user-defined decorators through topology.kryo.decorators 7. Storm calls * postDecorate hook */ public interface IKryoFactory { Kryo getKryo(Map conf); void preRegister(Kryo k, Map conf); void postRegister(Kryo k, Map conf); void postDecorate(Kryo k, Map conf); }