[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ecf-dev] IServiceListener API break
- From: Alex Blewitt <alex.blewitt@xxxxxxxxx>
- Date: Thu, 14 Aug 2014 23:03:56 +0100
- Delivered-to: firstname.lastname@example.org
On 14 Aug 2014, at 18:54, Markus Alexander Kuppe <ecf-dev_eclipse.org@xxxxxxxxxxx> wrote:
> On 14.08.2014 18:59, Wim Jongman wrote:
>> I would certainly not qualify it as a failure. IMO it is the only way
>> possible if you don't want to break clients. If you mean it failed for
>> platform because they now have
>> Interface1 to Interface20 then I agree. However, not breaking API is a
>> plus for consumers.
> I disagree. The reason why discovery 5.x is breaking consumers is
> because the bundle is a singleton. Without it, existing customers would
> be able to continue to use 4.x.
Plug-ins that use the Eclipse registry need to be singletons, and ECF uses the registry for its data.
It would be a good idea to enable API baselines, so that you get notified ahead of such breaking changes. You should also add @noimplement to interfaces if they aren’t expected to be implemented by clients, because that will indicate that they shouldn’t implement them (i.e. they use consumer role). The way to avoid these problems is to introduce a new IXxx2 interface, which is ugly but at least works.