Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "E4/Architectural Foundations"

< E4
(Architectural Foundations of Eclipse)
(Architectural Foundations of Eclipse)
Line 1: Line 1:
== Architectural Foundations of Eclipse ==
+
From [[Architecture Council/Minutes May 15 2008#Executive Summary of the Discussion]]:
* dependency injection, too many listeners, becoming more asynchronous, security, ...
+
 
* See [[Architecture_Council/Minutes_May_15_2008]] for an initial discussion
+
== 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
 +
** [[Architecture Council/Minutes May 15 2008#Jobs and Scheduling Rules|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. [[Architecture Council/Minutes May 15 2008#Avoid Modal Dialogs|Avoid Modal Dialogs]]; [[Architecture Council/Minutes May 15 2008#Verboten: Spinning the event loop|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 ?
 +
 
 +
== Other Topics ==
  
 
[[Category:e4]]
 
[[Category:e4]]

Revision as of 16:42, 19 May 2008

From Architecture Council/Minutes May 15 2008#Executive Summary of the Discussion:

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

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 ?

Other Topics

Back to the top