| Oleg, 
 Comments below.
 
 Oleg Besedin wrote:
 I'm exceedingly lazy...“Progress is made by lazy men
looking
for easier ways to do things”.
 
 Couldn't we just use Map<String, Object>?  What's the
significance of the term "bag"?
 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
 
 
 - 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.
 
 Will we expect people to create context with specialized behavior? 
Which parts will be specialized and why?The contexts are organized in a
hierarchy.
Child context can add service objects that make sense at their level:
 IEquinoxContext
 myContext = ApplicationContext.newChild();
 
 
        
myContext.addObject("log",
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?
 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".
 
 What are those? :-P
 Contexts support dynamic events and
multiple service objects per ID.
 
  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
e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/e4-dev
 |