Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipse-pmc] API Request: Breaking changes to data binding API

I would like to request permission for the following breaking changes to the data binding API.

In particular, this is what we would like to do:

1. Remove two interfaces that refer to internals and are not useable in their current state because they refer to non-API types.
(Details: https://bugs.eclipse.org/bugs/show_bug.cgi?id=175418)

2. Replace BindSpec/DefaultBindSpec with UpdateValueStrategy/UpdateListStrategy to make setting up converters and validators much easier.  The old API (BindSpec) was confusing in that it applied to both values and lists, and configured both directions of a binding at the same time (UI to model and model to UI).  The new API is type-specific and configures only one direction of a binding.
(Details: https://bugs.eclipse.org/bugs/show_bug.cgi?id=172193)

3. Remove BindingListener, BindingEvent and the associated methods for registering listeners and firing events. The semantics of this part of the API were not well-defined.  After making the change for (2.) this part of the API will be redundant and should be removed because it would restrict how the API as a whole can be evolved in the future.
(Details: https://bugs.eclipse.org/bugs/show_bug.cgi?id=175840)

4. Remove the empty interface IDiff because it will no longer be used after performing the change for (3.).
(Details: https://bugs.eclipse.org/bugs/show_bug.cgi?id=162630)

GOALS/BENEFITS:
Making the API easier to understand, and easier to evolve.  All active data binding committers agree that we should do this.

CORRESPONDING BUG:
The following bug depends on all aforementioned bugs:
[DataBinding] API sanity pass - https://bugs.eclipse.org/bugs/show_bug.cgi?id=171906

RISKS:
Minimal risk.  The data binding API is full of disclaimers that it is experimental API and subject to change in the 3.3 cycle.  I downloaded all of Europa 3.3 M5 and found no consumers of the data binding API. We do have a number of early adopters in the community who would have to migrate to the new API, but this is not hard to do - it took me less than one hour to migrate our 12 snippets and our test suite with ~350 test cases.

PERFORMANCE IMPACTS:
none.

Thanks,
Boris

--
Boris Bokowski
Eclipse Platform/UI committer
IBM Rational Software, Ottawa Lab

Back to the top