Dependency Injection ("DI") and the IEclipseContext
DI (aka 'Inversion of Concerns") is a recent development in development. It's based on teh premise that it's better for a component to describe what it needs and having those requirements met through the use of an appropriate 'context' Rather than requiring the component to rely on external frameworks through which it can satisfy its own requirements.
In order for the component to expose its needs it uses a set of java annotations, some generic (@Inject, @PostConstruct...) as well as domain (e4) specific (@Focus, @CanExecute...).
In order to be useful there are a number of things that must be possible:
- Create a new instance of a class gicen the class spec and a context
- Inject an existing instance with the values in a context
- Find and execute specifically annotated methods within an existing instance