[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [p2-dev] @noimplement on IMetadataRepository ?
- From: John Arthorne <arthorne.eclipse@xxxxxxxxx>
- Date: Fri, 19 Feb 2010 10:16:14 -0500
- Delivered-to: email@example.com
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=VUHDQFeGxYjo0NHzbBcZAIVanBrSWn3uz5VDNxARdg49iKuNCR3ho9qe2pBifCPrLW 6ghGVayjaUNSALAvvZYRTYxMQebpfaqWignuuY4wG6/KKFchZr9FPsEThkZIOcu9S11r ijPM9Ct1oxPFCp1FFfaDt0Tdt5p0BXawVa5sQ=
The @noimplement tag really means "we intend to add methods to this interface in a future release". This might be an acceptable limitation for some repository implementations - they can just use version ranges to specify a tight range on the p2.repository bundle so they aren't used on a future release, and then release a new version of their implementation whenever new versions are added. If so, you can add a an API warning filter to get rid of the warning. If we get rid of the tag, we'll need to introduce new interfaces ever time we add methods in the future, which creates a messy API that is very hard for clients to understand and work with (see ITextViewerExtension8 for an example of what this can look like a few years later).
On Fri, Feb 19, 2010 at 4:06 AM, Thomas Hallgren <thomas@xxxxxxx>
I think the real issue here is; Is p2 in any way dependent on that the
underlying implementation uses the abstract base class?
If it's not, I suggest we replace the @noimplement with javadoc
informing the reader about the abstract class, leaving the choice of
using it to him. The @noimplement gives the impression that you're
doing something wrong defying it although its actually OK.