Oleg,
Comments below.
Oleg Besedin wrote:
"Progress is made by lazy men looking for easier ways to do things".
I'm exceedingly lazy...
I think this is exactly how the concept of contexts came to life. Our
code runs in some environment; way too often we need to pass tens of
arguments from method to method and from class to class just to keep
them aware of the environment.
To make it easier we are considering adding a concept of "context". At
the conceptual level a "context" is a combination of:
- a bag that could be stuffed with elements that compose environment, and
Couldn't we just use Map<String, Object>? What's the significance of
the term "bag"?
- a mechanism to inject elements from the bag into your POJO objects
Such a mechanism could be independent of how the "bag" itself is
implemented.
The contexts are organized in a hierarchy. Child context can add
service objects that make sense at their level:
IEquinoxContext myContext = ApplicationContext.newChild();
Will we expect people to create context with specialized behavior?
Which parts will be specialized and why?
myContext.addObject("log", myLog);
The service objects from the context can be injected into POJO objects
using field and method injection:
myContext.injectInto(object)
resulting in the field object.equinoxLog being set to "myLog".
I could imagine a static Injector.inject(Map<String, Object> values,
Object target) utility doing all this type of work with no additional
interfaces or implementations of those interfaces. Of course then
there's be only one implementation of this, which conceptually seems
less flexible, but that's the question earlier. What parts of which
mechanisms would clients be trying to specialize?
Contexts support dynamic events and multiple service objects per ID.
What are those? :-P
In addition, contexts can be tied into creation of objects from the
extension registry and help access OSGi services.
I think I'm missing a lot of the picture even looking in the bugzilla.
It sounds interesting though...
I'd like to raise this subject at the E4 call to see what people think
about it. The details of this work can be found in the enhancement
request 259423:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=259423
Sincerely,
Oleg Besedin
------------------------------------------------------------------------
_______________________________________________
e4-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/e4-dev
_______________________________________________
e4-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/e4-dev