MINOR: feat(event-subscriptions): event consumer extension #19591
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introducing Dependency Injection for Quartz Jobs
Quartz jobs might require different dependencies to function. These dependencies are handled via the CustomJobFactory for OpenMetadata applications.
While this is convient as it allows to share state from the running app to the jobs which are stateless, it couples all applications implementing the
[AbstractNativeApplication](https://github.com/open-metadata/OpenMetadata/pull/19591)
to the dependencies.The solution in this PR uses a simple DIContainer class that can register arbitrary dependencies. The dependencies can be restricted based on some policy at a later time. Adding a new dependency does not require changing any of the implementing classes, and each application can use only the dependencies it requires.
Changes
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>