Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] IServiceListener API break

Hi,

I think given the current situation the only solution is to follow Markus' suggestion and implement the method without @override (and ask every developer to switch off automatic adding of annotations). In the future, i.e. java 8, it will be possible to add method implementations to interfaces. This would solve a lot of problems.

With respect to the scaling discussion, I have my fierce opinions, but I will put it on the agenda for the next time we meet in IRL because these things are best discussed when holding a glass of beer.


Cheers.

Wim


On Thu, Aug 14, 2014 at 8:36 PM, Scott Lewis <slewis@xxxxxxxxxxxxx> wrote:
Hey guys,

To clarify the current situation...AFAIK, the only reason the org.eclipse.ecf.discovery API was/is a singleton was because it declared a discovery namespace via plugin.xml (uses extension registry).   With bugs [1][2], this restriction goes away...and moving forward I believe it would be possible for the discovery API to not be declared as a singleton.  But since I'm not the maintainer of the discovery API I haven't actually removed the singleton bit from this bundle, and there could be other reasons why doing this could be problematic, that I don't know about.

Unfortunately, we can't go back in time to rewrite manifest history :) i.e. older versions of the discovery API have this singleton bit set...so even if we remove this restriction now it doesn't help Wim's situation.

I suspect we're all agreed on some general principles:  1) the Interface# approach doesn't scale at all well (as evidenced by the Platform UI's dependence on it; 2) It's best not to break clients; 2) Especially with listeners/callbacks, 2 can be a very onerous restriction and sometimes it makes sense to violate it.

Given that we've already had releases with the current version, at this point I don't think we could do the Interface# approach even if we all agreed that we wanted to.

Any thoughts on what to do?   I could schedule a meeting to discuss if that's easier (and it might be).  Please let me know what you guys think.

Thanks,

Scott

[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=421569
[2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=432778


On 8/14/2014 10:54 AM, Markus Alexander Kuppe 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.

M.
_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev

_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/ecf-dev


Back to the top