Eclipse Handly™ 0.4

Release Date
Deliverables

This release will be delivered via a P2 repository.

Compatibility

This release is heavily focused on API quality and takes a significant step towards finalizing core Handly APIs, a goal we plan to accomplish within the 0.5 time frame (Eclipse Neon). Due to the API rework involved, this release introduces a number of breaking changes and is expected to be much more disruptive than previous releases. See the Breaking Changes list below.

Target Environments

This release requires at least Eclipse Juno (3.8) and is compatible with Eclipse Mars (4.5). Handly Xtext Integration supports Xtext 2.8 and 2.9. Handly requires Java 6 or later and has no operating system specific dependencies.

Name Date Description
M4 2015/10/30 An attempt at API freeze towards the 0.4 release
Final 2015/12/11
Themes

API Quality

Quite simply, the most important theme for this release.
  • Introduce model adaptation API [472841] (target milestone: 0.4)
  • Change the type of IHandleDelta#getFlags() from int to long [472900] (target milestone: 0.4)
  • Consider using Iterable or List instead of arrays in API method return types [472914] (target milestone: 0.4)
  • Make reconciling API more flexible [473417] (target milestone: 0.4)
  • Revise ISourceElement#getElementAt contract [473509] (target milestone: 0.4)
  • Rename ISourceFile#openBuffer(boolean, IProgressMonitor) to getBuffer [473799] (target milestone: 0.4)
  • Consider Java 8 impact on Handly API design [474001] (target milestone: 0.4)
  • Find a better name for IElementForEditorInputFactory [474217] (target milestone: 0.4)
  • Overhaul handle's toString facility [475446] (target milestone: 0.4)
  • Remove ISourceFileFactory [475573] (target milestone: 0.4)
  • Make working copy API more flexible [475862] (target milestone: 0.4)
  • SourceFile#createStructuralAst should take a progress monitor [475869] (target milestone: 0.4)
  • Enable progress reporting when building structure of elements [475926] (target milestone: 0.4)
  • Introduce forceAdd parameter into Handle#openWhenClosed [475929] (target milestone: 0.4)
  • Introduce a buffer for 'non-primary working copy' [476031] (target milestone: 0.4)
  • Buffers overhaul [476444] (target milestone: 0.4)
  • Deprecate ISourceFile#openBuffer(IProgressMonitor) [476558] (target milestone: 0.4)
  • Document thread safety guarantees of handles [476563] (target milestone: 0.4)
  • SourceFileDocumentProvider overhaul [476617] (target milestone: 0.4)
  • Introduce IBodyCache#putAll method [477157] (target milestone: 0.4)
  • StructureHelper overhaul [479027] (target milestone: 0.4)
  • Improve cancellation support in SourceElementLinkingHelper [479827] (target milestone: 0.4)
  • Working copy enhancements [480397] (target milestone: 0.4)
  • Allow ISourceFile#getFile() to return null [480766] (target milestone: 0.4)
  • HandleDelta overhaul [480945] (target milestone: 0.4)

Model Adaptation Facility

With model adaptation support, Handly can provide the benefits of a uniform handle-based API even for well-established models.
  • Model adaptation support [472840] (target milestone: 0.4)
  • Introduce model adaptation API [472841] (target milestone: 0.4)
  • Make common UI components content adapter aware [472843] (target milestone: 0.4)
  • Model adaptation example [473394] (target milestone: 0.4)

Breaking Changes

Not actually a theme, but a handy list of bugzillas with breaking changes in this release. In general, we try to preserve compatibility, but it's not always possible or even desirable (given the 0.x version).
  • Change the type of IHandleDelta#getFlags() from int to long [472900] (target milestone: 0.4)
  • Make reconciling API more flexible [473417] (target milestone: 0.4)
  • Revise ISourceElement#getElementAt contract [473509] (target milestone: 0.4)
  • Rename ISourceFile#openBuffer(boolean, IProgressMonitor) to getBuffer [473799] (target milestone: 0.4)
  • Find a better name for IElementForEditorInputFactory [474217] (target milestone: 0.4)
  • Overhaul handle's toString facility [475446] (target milestone: 0.4)
  • Remove ISourceFileFactory [475573] (target milestone: 0.4)
  • Make working copy API more flexible [475862] (target milestone: 0.4)
  • SourceFile#createStructuralAst should take a progress monitor [475869] (target milestone: 0.4)
  • Enable progress reporting when building structure of elements [475926] (target milestone: 0.4)
  • Introduce forceAdd parameter into Handle#openWhenClosed [475929] (target milestone: 0.4)
  • Buffers overhaul [476444] (target milestone: 0.4)
  • SourceFileDocumentProvider overhaul [476617] (target milestone: 0.4)
  • Introduce IBodyCache#putAll method [477157] (target milestone: 0.4)
  • StructureHelper overhaul [479027] (target milestone: 0.4)
  • Improve cancellation support in SourceElementLinkingHelper [479827] (target milestone: 0.4)
  • Working copy enhancements [480397] (target milestone: 0.4)
  • Allow ISourceFile#getFile() to return null [480766] (target milestone: 0.4)
  • HandleDelta overhaul [480945] (target milestone: 0.4)