Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cross-project-issues-dev] API Tooling tag changes -> regexes to replace in batch


I suggest that people wait to see what errors come up before making big changes to their API contracts. The example problem on IResource mentioned by Michael turned out to be an invalid problem (https://bugs.eclipse.org/bugs/show_bug.cgi?id=255646).  Since most APIs don't currently specify @noextend on their interfaces, adding this new restriction is a contract change that needs to be considered carefully.

John



Markus Keller <markus_keller@xxxxxxxxxx>
Sent by: cross-project-issues-dev-bounces@xxxxxxxxxxx

11/18/2008 02:34 PM

Please respond to
Cross project issues <cross-project-issues-dev@xxxxxxxxxxx>

To
Cross project issues <cross-project-issues-dev@xxxxxxxxxxx>
cc
Subject
Re: [cross-project-issues-dev] API Tooling tag changes -> regexes to        replace in batch






Most of the existing @noimplement tags should probably be replaced by @noimplement & @noextend.


To make this change in batch, you can search for this regex in *.java files:

\* @noimplement This interface is not intended to be implemented by clients\.\R


Then, verify the results in the Search view, select the matches you want to update, and choose 'Replace Selected...' from the context menu. Replace them with regex:

\0 * @noextend This interface is not intended to be extended by clients.\R


To later find @noimplement interfaces where the above replacement has not been applied, search for:

\* @noimplement This interface is not intended to be implemented by clients\.\R(?! \* @noextend This interface is not intended to be extended by clients\.)


If you used non-standard Javadoc tags, you may have to adapt the regular expressions.


HTH,

Markus


From: Michael Rennie <Michael_Rennie@xxxxxxxxxx>
To: cross-project-issues-dev@xxxxxxxxxxx
Date: 2008-11-17 22:57
Subject: [cross-project-issues-dev] API Tooling tag changes






Preamble


Available in this weeks' I-build the supported tags for an interface are being reverted to include the @noextend tag once again.

The bug fix in question is
https://bugs.eclipse.org/bugs/show_bug.cgi?id=230189. The bug fix that is being reverted is https://bugs.eclipse.org/bugs/show_bug.cgi?id=227368.

Effect on Clients


Since the fix to bug 227368 the @noimplement tag has been pulling double duty as both a no implement AND no extend restriction. With the fix 230189 this is no longer true, @noimplement only means no implement, so to also get a no extend restriction you must add the @noextend tag back to these interfaces.

The effect of this change is that you may see some unexpected errors about added methods or fields, problems that would have been suppressed by the no implement tag alone before, which now require the @noextend tag as well.


For example the problem:


The method org.eclipse.core.resources.IResource.isHidden(int) in an interface that is intended to be implemented or extended has been added


shows up, but will be removed once an @noextend tag is added to IResource.



Michael Rennie
_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx

https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev


Back to the top