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 "Architecture Council/Minutes May 15 2008"

Line 34: Line 34:
 
* Related to Jobs and Scheduling Rules issues, see below
 
* Related to Jobs and Scheduling Rules issues, see below
 
* Modal Context Dialog; SWT Dispatch Thread; WorkspaceRunnables; Executor pattern
 
* Modal Context Dialog; SWT Dispatch Thread; WorkspaceRunnables; Executor pattern
==== Security ====
+
* Should there be other patterns for Concurrency than we know now (Jobs, Runnables, ISchedulingRule)
 +
==== Jobs and Scheduling Rules ====
 +
* +1: MartinO
 +
* Many calls into (workspace, or other contributed) API require downstream locks via ISchedulingRule
 +
* It's often not documented what rules / locks a call requires
 +
* If the "master Job" that's responsible for an operation requires an ISchedulingRule itself (e.g. for guaranteed sequential execution), it cannot call API functions that require other ISchedulingRule locks (because it cannot acquire them while it runs -- locks must be known before the Job runs, but it's often not known what locks will be required)
 +
==== Role-based Access and Security ====
 
* +1: MartinO
 
* +1: MartinO
 
* Role-based Access: Hide unavailable functionality for a user who has access to certain roles only, rather than just denying access
 
* Role-based Access: Hide unavailable functionality for a user who has access to certain roles only, rather than just denying access
Line 44: Line 50:
 
* Should everything be a command / handler / workspace operation?
 
* Should everything be a command / handler / workspace operation?
 
* Or do we need a different kind of coupling / bus?
 
* Or do we need a different kind of coupling / bus?
==== Jobs and Scheduling Rules ====
 
* +1: MartinO
 
* Many calls into (workspace, or other contributed) API require downstream locks via ISchedulingRule
 
* It's often not documented what rules / locks a call requires
 
* If the "master Job" that's responsible for an operation requires an ISchedulingRule itself (e.g. for guaranteed sequential execution), it cannot call API functions that require other ISchedulingRule locks (because it cannot acquire them while it runs -- locks must be known before the Job runs, but it's often not known what locks will be required)
 
 
==== Workspace, Resources, Content Types ====
 
==== Workspace, Resources, Content Types ====
 
* +1: MartinO
 
* +1: MartinO

Revision as of 22:01, 13 May 2008

Meeting Title: Architecture Council meeting on Architectural Foundations for E4
Date & Time: Thursday May 15, 2008 at 1500 UTC / 0800 SFO / 1600 London / 1700 Berlin
Ical.gifiCal
Dial-in: (+1) 613.287.8000 (Ottawa and international) or
866.362.7064 (toll-free North America)
passcode 874551#

Attendees

  • Invited attendees are all EAC members as well as interested architects who know Eclipse well and want to shape its future foundations
  • Signed-up:
    • Martin Oberhuber

Agenda

  • Attendees are welcome to edit the agenda on the Wiki. Place a +1 / -1 next to an item that you would like / would not like to discuss.
  • While the meeting is ongoing and one hour after, the Wiki should not be edited except by a notes-taker to be designated during the meeting
  • After initial notes have been posted, everybody is free to edit the Wiki for corrections

Meeting Goals

  • The primary goal of this meeting is to collect topics for the upcoming E4/Summit, and gather initial opinions.

Review and Sort Agenda Items

Architectural Foundations

Dependency Injection

Too Many Listeners

  • +1: MartinO

Becoming More Asynchronous

  • +1: MartinO
  • What parts of Eclipse are Thread-safe? Is thread-safety documented everywhere?
  • Related to Jobs and Scheduling Rules issues, see below
  • Modal Context Dialog; SWT Dispatch Thread; WorkspaceRunnables; Executor pattern
  • Should there be other patterns for Concurrency than we know now (Jobs, Runnables, ISchedulingRule)

Jobs and Scheduling Rules

  • +1: MartinO
  • Many calls into (workspace, or other contributed) API require downstream locks via ISchedulingRule
  • It's often not documented what rules / locks a call requires
  • If the "master Job" that's responsible for an operation requires an ISchedulingRule itself (e.g. for guaranteed sequential execution), it cannot call API functions that require other ISchedulingRule locks (because it cannot acquire them while it runs -- locks must be known before the Job runs, but it's often not known what locks will be required)

Role-based Access and Security

  • +1: MartinO
  • Role-based Access: Hide unavailable functionality for a user who has access to certain roles only, rather than just denying access
  • Capabilities are a relatively coarse-granular means of access control, need something more fine granular
  • Related to Preference Levelling, see below

Macro Recording and Playback

  • +1: MartinO
  • Pervasive macro recording, see bug 8519 vs. Editor macro recording vs. Debugger macro recording
  • Should everything be a command / handler / workspace operation?
  • Or do we need a different kind of coupling / bus?

Workspace, Resources, Content Types

  • +1: MartinO
  • Content Types:
    • Pattern Matching for content types rather than just file extensions + stream evaluation
    • Case sensitive patterns for content types
    • Project-specific content types
  • Eclipse Projects
    • bug 35973 Physically nested projects
    • Namespace Resolution for projects with same name in a single workspace
    • Inclusion of files from anywhere (liked linked resource), plus exclusion of elements by pattern (exclude from resource tree rather than just hide)
    • Full native support for symbolic links (better algorithms for detecting link cycles and avoiding OutOfMemoryError)
    • Multiple projects in the same folder?
    • Logical Project Hierarchy Preference Levelling (like Apache Maven) - inherit settings from parent project?

Preference Leveling

  • We currently have (installation, instance, project) levels, what about user level / role-level Preferences? What about multiple levels of nested projects (see below)?

Non-UI Scripting

  • Loading a file into an Editor from the Commandline; other macros executed from commandline

Launch / Debug Enhancements

  • Need a Launch Stepper to execute fine-grained operations, rather than monolithic Launches
  • Need extendable / modifiable Launches
  • Multicore Debug Workflow (Pin&Clone, Colored Contexts)

Eclipse Application Model

  • +1 MartinO
  • See E4/Eclipse Application Model
  • Why are Workbench / PlatformUI / Platform not part of the initial Application Model?
    • What about SWT, Views, Widgets, Trees, Labels, ... JFace Dialogs, Fonts, Text, Editors... Perspectives... Databinding
    • Capabilities
    • Content Types, Associations
    • Markers
    • Workspace, Resources (related to Team Support)
    • Launching Framework
    • Core Variables / Launch String Substitution
    • What about EFS (core.filesystem)
  • What about Extension Registry (IExtensionRegistry), IExtensionTracker is not everything?
  • What about Secure Preferences
  • What about the rest of OSGi (NLS, Services, Bundle States / Activator / Classloader; Log; State Location)
  • What about standard bundle layout (related to Provisioning / Update / Plugins, Products, Features)


Next Meeting

Back to the top