Bug 475944 - Delete IPluginDescriptor and related API
Summary: Delete IPluginDescriptor and related API
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.5   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.12 M1   Edit
Assignee: Lars Vogel CLA
QA Contact:
URL:
Whiteboard:
Keywords: bugday, helpwanted
Depends on: 545476
Blocks: 547186
  Show dependency tree
 
Reported: 2015-08-26 11:34 EDT by Lars Vogel CLA
Modified: 2019-05-11 21:18 EDT (History)
10 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Vogel CLA 2015-08-26 11:34:57 EDT
IPluginDescriptor was only used for plug-ins using org.eclipse.core.runtime.compatibility, see its Javadoc. 

This plug-in will be deleted via Bug 394739 hence we should mark IPluginDescriptor for deletion (or delete it directly as a result of solving Bug 394739).
Comment 1 Mat Booth CLA 2015-08-26 12:06:35 EDT
In fact, all these should be removed:

ILibrary
IPlatformRunnable
IPluginDescriptor
IPluginPrerequisite
IPluginRegistry

I vote for remove immediately since they are deprecated since Eclipse 3.0 and are useless without the implementations from org.eclipse.core.runtime.compatibility
Comment 2 Dani Megert CLA 2015-08-26 13:49:34 EDT
Those classes are referenced by a lot of classes and methods, e.g. IPluginDescriptor has over 70 references. We would have to check whether all those are already deprecated and then also have to mark all those for deletion.
Comment 3 Lars Vogel CLA 2015-08-26 14:16:21 EDT
(In reply to Dani Megert from comment #2)
> Those classes are referenced by a lot of classes and methods, e.g.
> IPluginDescriptor has over 70 references. We would have to check whether all
> those are already deprecated and then also have to mark all those for
> deletion.

I think the best is to prepare a Gerrit review for the removal and see from this. Mat, are you interested in providing such a Gerrit?
Comment 4 Dani Megert CLA 2015-08-27 13:13:11 EDT
(In reply to Lars Vogel from comment #3)
> (In reply to Dani Megert from comment #2)
> > Those classes are referenced by a lot of classes and methods, e.g.
> > IPluginDescriptor has over 70 references. We would have to check whether all
> > those are already deprecated and then also have to mark all those for
> > deletion.
> 
> I think the best is to prepare a Gerrit review for the removal and see from
> this. Mat, are you interested in providing such a Gerrit?

There will be several ones since it crosses repositories.
Comment 5 Alexander Kurtakov CLA 2015-09-04 04:18:23 EDT
Verifying everything is marked as deprecated would definetely help for the visibility of the problem. At a minimum many methods will have to be made noop in order to prevent exception.
Comment 6 Ed Willink CLA 2015-09-11 09:43:47 EDT
(In reply to Mat Booth from comment #1)
> In fact, all these should be removed:
> IPlatformRunnable

EMF makes use of IPlatformRunnable reducing the deprecation inconvenience by:

@SuppressWarnings("deprecation")
interface DeprecatedPlatformRunnable extends org.eclipse.core.runtime.IPlatformRunnable
{
  // Empty extension to limit the effect of suppressing the deprecation warning.
}

It looks as if the deprecation effort has been deferred...
Comment 7 Ed Willink CLA 2015-09-12 04:30:18 EDT
(In reply to Mat Booth from comment #1)
> In fact, all these should be removed:
> 
> ILibrary
> IPlatformRunnable
> IPluginDescriptor
> IPluginPrerequisite
> IPluginRegistry
> 
> I vote for remove immediately since they are deprecated since Eclipse 3.0
> and are useless without the implementations from
> org.eclipse.core.runtime.compatibility

http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fporting%2Fremovals.html

announces removal of IPlatformRunnable in June 2017.

The others still need an announcement and two year notice period.
Comment 8 Eclipse Genie CLA 2019-02-11 06:25:31 EST
New Gerrit change created: https://git.eclipse.org/r/136671
Comment 9 Lars Vogel CLA 2019-02-11 06:26:26 EST
Planning to delete IPluginDescriptor and related API early in 4.12.

Ed, is EMF still using IPluginDescriptor?
Comment 10 Eclipse Genie CLA 2019-02-11 06:29:50 EST
New Gerrit change created: https://git.eclipse.org/r/136672
Comment 11 Thomas Watson CLA 2019-02-11 11:09:26 EST
What about org.eclipse.ui.plugin.AbstractUIPlugin.AbstractUIPlugin(IPluginDescriptor)
Comment 12 Eclipse Genie CLA 2019-02-11 11:56:16 EST
New Gerrit change created: https://git.eclipse.org/r/136706
Comment 13 Lars Vogel CLA 2019-02-11 12:04:24 EST
(In reply to Thomas Watson from comment #11)
> What about
> org.eclipse.ui.plugin.AbstractUIPlugin.AbstractUIPlugin(IPluginDescriptor)

Thanks, see new Gerrit. Note that this is planned for early 4.12. I don't want to break clients shortly before a release.
Comment 14 Karsten Thoms CLA 2019-03-18 03:49:04 EDT
(In reply to Lars Vogel from comment #9)
> Planning to delete IPluginDescriptor and related API early in 4.12.
> 
> Ed, is EMF still using IPluginDescriptor?

EMF is still using this method. But also when it gets removed, how would older EMF versions behave on a newer platform then?

I'll provide a patch for EMF. The method in doubt is deprecated since 2004.
Comment 15 Ed Willink CLA 2019-03-18 09:02:12 EDT
(In reply to Karsten Thoms from comment #14)
> > Ed, is EMF still using IPluginDescriptor?
> 
> EMF is still using this method. But also when it gets removed, how would
> older EMF versions behave on a newer platform then?

The uses of IPluginDescriptor seem to be in deprecated methods so they shouldn't get called by reasonable code. Not a problem.

More serious is IPlatformRunnable, which is actively used by the codegen Generator class. Therefore if the platform removed IPlatformRunnable today, there would no graceful transition.

Since removal of IPluginDescriptor undermines the ongoing claim to perfect 2.x API preservation, it would be good to eliminate all active uses of DeprecatedPlatformRunnable in EMF 2.18 so that 2.18 and upwards can be used on platforms without IPlatformRunnable 2.17 and lower will be unable to genmodel.
Comment 16 Ed Merks CLA 2019-03-18 09:11:17 EDT
(In reply to Ed Willink from comment #15)
> 
> Since removal of IPluginDescriptor undermines the ongoing claim to perfect
> 2.x API preservation, it would be good to eliminate all active uses of
> DeprecatedPlatformRunnable in EMF 2.18 so that 2.18 and upwards can be used
> on platforms without IPlatformRunnable 2.17 and lower will be unable to
> genmodel.

Yes, deleting all uses of IPlatformRunnable  would be good at this point.  It's only partially done:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=531159

There's currently no Bugzilla for complete removal.
Comment 18 Eclipse Genie CLA 2019-03-22 04:29:12 EDT
New Gerrit change created: https://git.eclipse.org/r/139303
Comment 19 Eclipse Genie CLA 2019-03-22 04:35:44 EDT
New Gerrit change created: https://git.eclipse.org/r/139305
Comment 23 Andrey Loskutov CLA 2019-03-22 09:42:00 EDT
Lars, please fix 
 - API errors in org.eclipse.help.ui and org.eclipse.core.runtime,
 - compile errors in org.eclipse.ui.tests.
Comment 24 Eclipse Genie CLA 2019-03-22 10:33:03 EDT
New Gerrit change created: https://git.eclipse.org/r/139326
Comment 25 Eclipse Genie CLA 2019-03-22 10:35:17 EDT
New Gerrit change created: https://git.eclipse.org/r/139327
Comment 28 Eclipse Genie CLA 2019-03-22 10:52:14 EDT
New Gerrit change created: https://git.eclipse.org/r/139331
Comment 29 Dani Megert CLA 2019-03-22 11:03:14 EDT
(In reply to Andrey Loskutov from comment #23)
> Lars, please fix 
>  - API errors in org.eclipse.help.ui and org.eclipse.core.runtime,
>  - compile errors in org.eclipse.ui.tests.
Lars, why did you not see those?
Comment 30 Andrey Loskutov CLA 2019-03-22 11:04:41 EDT
(In reply to Eclipse Genie from comment #27)
> Gerrit change https://git.eclipse.org/r/139327 was merged to [master].
> Commit:
> http://git.eclipse.org/c/platform/eclipse.platform.ua.git/commit/
> ?id=acfe5d2abdb943961ac8c486bccd359fba6c213e

This does not fix API error on org.eclipse.help.ui.
Comment 32 Lars Vogel CLA 2019-03-22 11:49:21 EDT
Thanks, Andrey. Should be fixed now.
Comment 33 Dani Megert CLA 2019-03-22 11:51:23 EDT
(In reply to Lars Vogel from comment #32)
> Thanks, Andrey. Should be fixed now.
Can you please respond to comment 29. Thanks.
Comment 34 Lars Vogel CLA 2019-03-22 11:56:20 EDT
(In reply to Andrey Loskutov from comment #30)
> This does not fix API error on org.eclipse.help.ui.

It does for me. Did you try with a clean build? API tools usually require a clean build. If you still see the API error, please use the quick fix directly, as I cannot see this error.
Comment 35 Lars Vogel CLA 2019-03-22 11:57:47 EDT
(In reply to Dani Megert from comment #33)
> (In reply to Lars Vogel from comment #32)
> > Thanks, Andrey. Should be fixed now.
> Can you please respond to comment 29. Thanks.

API tools remain instable for me. See for example comment 34.
Comment 36 Dani Megert CLA 2019-03-22 12:00:48 EDT
(In reply to Lars Vogel from comment #34)
> (In reply to Andrey Loskutov from comment #30)
> > This does not fix API error on org.eclipse.help.ui.
> 
> It does for me. Did you try with a clean build? API tools usually require a
> clean build.
That is just not true. Please file a bug report if you see this.
Comment 37 Dani Megert CLA 2019-03-22 12:01:52 EDT
(In reply to Lars Vogel from comment #35)
> API tools remain instable for me. See for example comment 34.
Do you use the correct baseline (4.11)?
Comment 38 Eclipse Genie CLA 2019-03-22 12:08:06 EDT
New Gerrit change created: https://git.eclipse.org/r/139338
Comment 39 Andrey Loskutov CLA 2019-03-22 12:10:17 EDT
(In reply to Lars Vogel from comment #34)
> (In reply to Andrey Loskutov from comment #30)
> > This does not fix API error on org.eclipse.help.ui.
> 
> It does for me. Did you try with a clean build?

Sure.

(In reply to Eclipse Genie from comment #38)
> New Gerrit change created: https://git.eclipse.org/r/139338

Not sure how you got the *old* bundle version for the filter. With the current version the error is gone.
Comment 40 Andrey Loskutov CLA 2019-03-22 12:31:39 EDT
(In reply to Eclipse Genie from comment #38)
> New Gerrit change created: https://git.eclipse.org/r/139338

This build fails because "Only qualifier changed for (org.eclipse.help.ui/4.1.400.v20190322-1607)" and also patch before failed, https://git.eclipse.org/r/#/c/139327/ !

Looks like it was created on *old* bundle version and only rebased on server, means Lars had very old source version (before 4.11) and also didn't verified the build result.

I will bump the version and fix the filter again.
Comment 41 Dani Megert CLA 2019-03-22 12:33:45 EDT
(In reply to Andrey Loskutov from comment #40)
> (In reply to Eclipse Genie from comment #38)
> > New Gerrit change created: https://git.eclipse.org/r/139338
> 
> This build fails because "Only qualifier changed for
> (org.eclipse.help.ui/4.1.400.v20190322-1607)" and also patch before failed,
> https://git.eclipse.org/r/#/c/139327/ !
> 
> Looks like it was created on *old* bundle version and only rebased on
> server, means Lars had very old source version (before 4.11) and also didn't
> verified the build result.
> 
> I will bump the version and fix the filter again.
Thanks Andrey. I don't see how it can be that hard to make this right in the first run.
Comment 43 Dani Megert CLA 2019-03-23 04:20:30 EDT
(In reply to Dani Megert from comment #41)
> I don't see how it can be that hard to make this right in the first run.
Sorry, this was not constructive.

There can be several reasons why the errors were not seen:
- old target platform
- wrong baseline
- reduced severity for some problems in the workspace from Error to Warning/Ignore