aplex opened a new pull request #3281: URL: https://github.com/apache/gobblin/pull/3281
Previously, to initialize Gobblin service, we used a mixture of dependency injection, direct class creation and config-based class creation. In this change, we unify the service initialization by moving towards using dependency injection(DI) with Guice everywhere. Using DI will help with (1) unit testing; (2) overriding classes in the middle of the dependency with company-specific implementations, and (3) will improve code readability, as dependencies between classes become visible from the outside and explicit. We also move away from name-based injection for classes. Name-based injection is useful when code needs several different implementations of the same interface. In our use case, we had only one implementation for each service that can be active. Name-based injection was used for company-specific overrides, but there is a better way to do it - with Guice module overrides. There are still several improvements left to be done to have a full Guice migration, but we'll make them in separate commits to limit the PR size. https://issues.apache.org/jira/browse/GOBBLIN-1444 -- 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]
