[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.
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.
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.
4. Remove the empty interface IDiff because it will no longer be used after performing the change for (3.).
Making the API easier to understand, and easier to evolve. All active data binding committers agree that we should do this.
The following bug depends on all aforementioned bugs:
[DataBinding] API sanity pass - https://bugs.eclipse.org/bugs/show_bug.cgi?id=171906
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.
Eclipse Platform/UI committer
IBM Rational Software, Ottawa Lab