Hi all, I would like to start a conversation about introducing some Dependency Injection framework (like Spring, Guice, Weld, etc.) in Hive.
IMHO the lack of such framework makes the codebase way less organised, and harder to maintain. Moreover, I think it also lead to introducing a huge amount of static/utility methods and classes (which is highly discouraged when using DI frameworks). When there is no DI framework, utility classes with static methods often seem to be the simplest and best way to share code across different Hive components/classes, but these constructs are really killing testability. For example it is much harder to mock static method calls, than mocking service/component instances. Poor testability is a major issue on its own, but having a DI framework could have much more benefit, like greater flexibility (modularity), better organised services, etc. I’m interested if there’s any reason why there is no DI in Hive so far. I know there’s no way to introduce it everywhere in a single step, but we could start using it where it is easy to start, and continuously expand its usage from class to class. If there is no strong reason why no to do it, I would like to start an open conversation around this topic. (Possible benefits, drawbacks, which framework to use, where to introduce it first, etc.) If anybody is interested in this initiative, please join the conversation, and add your thoughts, ideas, doubts, anything. Thanks, Laszlo Vegh veghlac...@gmail.com <mailto:veghlac...@gmail.com>