Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
E4/Architectural Foundations
< E4
Revision as of 16:42, 19 May 2008 by Unnamed Poltroon (Talk) (→Architectural Foundations of Eclipse)
From Architecture Council/Minutes May 15 2008#Executive Summary of the Discussion:
Contents
Too Many Listeners
- From Architecture Council/Minutes May 15 2008#Too Many Listeners, there are two distinct problems:
- too many different listener classes -- need to unify on generic Listener architecture
- too many listener instances -- a general Command Bus / Event Bus may help. Related to Application Model / Commands / Macro Recording.
- Champions to sit and merge concepts from (EMF, DataBinding, Others)
Becoming More Asynchronous
- From Architecture Council/Minutes May 15 2008#Becoming More Asynchronous
- Need a consistent overall picture; get above the level where we deal with these things one by one
- Jobs and Scheduling Rules have some problems; DataBinding Realms and Runnables are good; We have too many Runnables; Futures could be a solution
- Too many different ways of doing things, a more consistent Application Model would help getting more asynchronous
- Consistent (machine-usable?) Documentation of Concurrency Properties
- Recommend usage, e.g. Avoid Modal Dialogs; Verboten: Spinning the event loop
Dependency Injection
- Closely related to Application Model -- If components (view, editor) shouldn't know about the context in which they appear, dependency injection is a technique for this. Instead of PlatformUI.getWorkbench.getHelpSystem(), have the HelpSystem constructor injected.
- Jeff: One of my favorites, has a fundamental impact on the entire Platform in terms of programming model, ease of testing etc.
Java 5 Usage
- Should the Platform start using Generics and other Java 5 Concepts?
- Could there be tooling to allow writing code with Generics and other Java 5 Concepts, but still automatically convert the code into a variant that can also run on Micro Edition / Older JVM's ?