Background
The goal of this work is to further converge Reviews and R4E while maintaining and enriching each approach. We'll be improving the Gerrit connector and also supporting a new R4E review type that fully integrates with the Gerrit review process, while preserving model extensibility to support richer R4E features.
The most important aspect of this effort for the first half of 2013 will be engineering the underlying technologies needed to support a common UI, persistence, and core model infrastructure, based on appropriate EMF based-technologies.
Architecture
This section provides an initial "straw person" high-level design view of the proposed architecture.
Current Architecture
Interim Architecture
Proposed Architecture
Key
- Purple
- Mylyn Components
- Blue
- Gerrit UI Components
- Green
- EMF-Based Components
- Orange
- External Components
- Gray
- Future Components
- Cylinders
- Data/Model Stores
- Squares
- API Components
- Squares (Burved Bottom)
- UI Components
Discussion
Deliverables
- Common UI Update Gerrit Editor for Model Changes Plan 0.0 / 4.0
- Common Editor Support Create Reviews EMF Edit Model Plan Migrate Model Code to EMF Edit Plan bug 400169bug 399700 0.0 / 1.5
- Improve Gerrit Task Editor Update Gerrit Editor for Model Changes Plan 0.0 / 0.5
- Common Edit Framework 0.0 / 22.0
- Implement EMF Edit support; migrate R4E and Gerrit Reviews Edit Framework Create Reviews EMF Edit Model Plan Migrate Model Code to EMF Edit Plan Support Shared Models Plan Share Review Models Plan Model Update Notification Plan Manage Review Models Plan bug 395646bug 394020bug 399700bug 394020bug 394020bug 400169bug 399700 0.0 / 7.0
- UI Synchronization and Concurrency support UI Synchronization and Concurrency 0.0 / 4.0
- Remote Reviews API 0.0 / 8.0
- Design Generic EMF-based Remote API Remote API Generic Remote API Plan bug 400167 0.0 / 1.0
- Remote API implementation for Gerrit connector Submit Model to Gerrit Plan Update Model from Gerrit Plan bug 394020bug 384770bug 344087 0.0 / 3.0
Stories
UI Synchronization and Concurrency
|
Prevent Concurrency Errors
|
All changes to Reviews whether driven from user interface or Reviews UI take place without concurrency related failures.
|
Plan
|
|
Fail on Long-Running UI Changes
|
Poorly behaved model edits are handled gracefully.
|
Plan
|
|
UI Editing and Updating Performance
|
All Review interaction is performant under all usage scenarios.
|
Plan
|
|
Batch Changes
|
Large Jobs (such as Gerrit based model updates) can be managed without interfering with UI or other model behavior.
|
Plan
|
|
Specify Concurrency Model
|
Discuss and test alternatives for sychronization/concurrent updating.
|
Plan
|
bug 332589
|
|
Reviews Edit Framework
|
Create Reviews EMF Edit Model
|
Implement Initial EMF based model.
|
Plan
|
|
Migrate Model Code to EMF Edit
|
All complex model changes should be mediated through EMF edit changes within Item Providers, ensuring that any model changes preserve model integrity.
|
Plan
|
bug 399700bug 400169
|
Share Review Models
|
Provide API for accessing one and only one model for each review from Eclipse workbench.
|
Plan
|
bug 394020
|
Model Update Notification
|
Interested listeners (e.g. open review editors, review navigator) are notified when model elements have changed.
|
Plan
|
bug 399700bug 395646
|
Manage Review Models
|
Provide a mechanism for caching, updating and disposing of stale reviews. This may be managed in EMF by having a single large model containing all elements, or perhaps by storing the reviews separately.
|
Plan
|
bug 394020
|
|
Remote API
|
Differ Model Reads
|
Support deferring reads until the actual model elements are needed, with a generic interface for requesting these at a more granular level.
|
Plan
|
bug 394020
|
|
Improve Editor
|
Update Gerrit Editor for Model Changes
|
null
|
Plan
|
|
|