Bug 527378 - Stop supporting old update manager for launching
Summary: Stop supporting old update manager for launching
Status: RESOLVED FIXED
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 4.7   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.17 M1   Edit
Assignee: Alex Blewitt CLA
QA Contact:
URL:
Whiteboard:
Keywords: helpwanted
: 539475 559480 (view as bug list)
Depends on:
Blocks: 530357 563542
  Show dependency tree
 
Reported: 2017-11-17 02:43 EST by Alexander Kurtakov CLA
Modified: 2020-10-13 03:45 EDT (History)
7 users (show)

See Also:


Attachments
errors in log on startup (71.85 KB, text/x-log)
2017-11-29 10:16 EST, Andrey Loskutov CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kurtakov CLA 2017-11-17 02:43:31 EST
In bug 518351 it's planned to remove update.configurator but pde.core still uses it to consult old installations (pre 3.4). It's useless feature which should be gone now to ease maintenance.
Comment 1 Eclipse Genie CLA 2017-11-17 02:47:07 EST
New Gerrit change created: https://git.eclipse.org/r/111763
Comment 3 Eclipse Genie CLA 2017-11-25 01:18:30 EST
New Gerrit change created: https://git.eclipse.org/r/112285
Comment 5 Eclipse Genie CLA 2017-11-25 01:49:20 EST
New Gerrit change created: https://git.eclipse.org/r/112286
Comment 6 Dani Megert CLA 2017-11-25 04:49:08 EST
(In reply to Eclipse Genie from comment #4)
> Gerrit change https://git.eclipse.org/r/112285 was merged to [master].
> Commit:
> http://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=5f91451096c94318a509f4a6d8d43aa2d10652fa
> 

This reverted the previous change. Can you give a short explanation why it was reverted?
Comment 7 Alexander Kurtakov CLA 2017-11-26 10:17:36 EST
ITargetPlatformService.newFeatureLocation can no longer properly read the contents as it tries to read it as p2 repo but for the tests old update style is used. Maybe we should mandate feature location to be p2 site from now on?
Comment 8 Alexander Kurtakov CLA 2017-11-27 04:26:55 EST
Dani, Vikas, any concerns with proposal in the previous comment?
Comment 9 Vikas Chandra CLA 2017-11-27 06:51:25 EST
1) Will clients be broken ? ( those that use old update style similar to tests).
2) Not sure if making API that existed for a long time should be made no-op and @deprecated in the same go.
3) I think such changes late in the iteration should be avoided  ( provided we have convincing answers for 1) and 2) ).

Dani, your views ?
Comment 10 Andrey Loskutov CLA 2017-11-27 07:19:53 EST
(In reply to Vikas Chandra from comment #9)
> 1) Will clients be broken ? ( those that use old update style similar to
> tests).

One can use http://andrei.gmxhome.de/eclipse/ update site which is "p2-free" and totally old-school. If the updates from there aren't working anymore, this would be a no-go from my side :-)
Comment 11 Dani Megert CLA 2017-11-27 09:15:12 EST
(In reply to Vikas Chandra from comment #9)
> 2) Not sure if making API that existed for a long time should be made no-op
> and @deprecated in the same go.

Combine those steps is definitely a no go unless it was announced before in the removal guide.


Note that we now have an API Tools warning for PDE Core;

http://download.eclipse.org/eclipse/downloads/drops4/I20171126-2000/apitools/analysis/html/org.eclipse.pde.core/report.html

The minor version should be the same for version 3.12.0, since no new APIs have been 
 added since version 3.11.100


==> An API filter is needed.
Comment 12 Alexander Kurtakov CLA 2017-11-27 09:31:21 EST
(In reply to Vikas Chandra from comment #9)
> 1) Will clients be broken ? ( those that use old update style similar to
> tests).

The question is for how long we plan to support that. IMHO it's time to get rid of it following the deprecation/removal procedure.
And IMHO requiring p2 sites nowadays is quite normal. What do you think of this as a goal? (not about procedures, we will exec things according to the book).

> 2) Not sure if making API that existed for a long time should be made no-op
> and @deprecated in the same go.

Yes we should not do it in one go.

> 3) I think such changes late in the iteration should be avoided  ( provided
> we have convincing answers for 1) and 2) ).

Actually, it's not that late in the iteration as soon enough we will be doing 3 month long iteration and we still have more than 6 in this one.

> 
> Dani, your views ?

(In reply to Dani Megert from comment #11)
> (In reply to Vikas Chandra from comment #9)
> > 2) Not sure if making API that existed for a long time should be made no-op
> > and @deprecated in the same go.
> 
> Combine those steps is definitely a no go unless it was announced before in
> the removal guide.

So announcing the removal is the next step to do. 

> 
> 
> Note that we now have an API Tools warning for PDE Core;
> 
> http://download.eclipse.org/eclipse/downloads/drops4/I20171126-2000/apitools/
> analysis/html/org.eclipse.pde.core/report.html
> 
> The minor version should be the same for version 3.12.0, since no new APIs
> have been 
>  added since version 3.11.100
> 
> 
> ==> An API filter is needed.

Will be fixed ASAP.
Comment 13 Eclipse Genie CLA 2017-11-29 06:13:40 EST
New Gerrit change created: https://git.eclipse.org/r/112547
Comment 14 Andrey Loskutov CLA 2017-11-29 10:16:05 EST
Created attachment 271700 [details]
errors in log on startup

If I start latest SDK build 4.8.0.I20171128-2000 I see tons of errors in the error log reported, similar to this:

eclipse.buildId=4.8.0.I20171128-2000
java.version=1.8.0_131
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments:  -os linux -ws gtk -arch x86_64

org.eclipse.update.configurator
Error
Wed Nov 29 16:10:38 CET 2017
Could not install bundle plugins/org.eclipse.ui.views_3.9.100.v20171030-2117.jar   A bundle is already installed with the name "org.eclipse.ui.views" and version "3.9.100.v20171030-2117"

Also I see few other errors like:

org.osgi.framework.BundleException: Could not resolve module: org.eclipse.emf.ecore.xmi [2849]
  Another singleton bundle selected: osgi.identity; type="osgi.bundle"; version:Version="2.13.0.v20170609-0707"; osgi.identity="org.eclipse.emf.ecore.xmi"; singleton:="true"

	at org.eclipse.osgi.container.Module.start(Module.java:444)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1550)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

Is this known? If not, it must be fixed for M4, otherwise we will be flooded by the bug reports.
Comment 15 Alexander Kurtakov CLA 2017-11-30 02:10:48 EST
This is a known issue tracked in Bug 527783. Should be fixed with today's build.
Comment 16 Dani Megert CLA 2018-01-24 04:40:01 EST
(In reply to Alexander Kurtakov from comment #12)
> > ==> An API filter is needed.
> 
> Will be fixed ASAP.

This is still not fixed. See http://download.eclipse.org/eclipse/downloads/drops4/I20180123-2000/apitools/analysis/html/org.eclipse.pde.core/report.html
Comment 17 Eclipse Genie CLA 2018-01-24 05:58:10 EST
New Gerrit change created: https://git.eclipse.org/r/115956
Comment 19 Dani Megert CLA 2018-01-24 10:03:29 EST
(In reply to Eclipse Genie from comment #18)
> Gerrit change https://git.eclipse.org/r/115956 was merged to [master].
> Commit:
> http://git.eclipse.org/c/pde/eclipse.pde.ui.git/commit/?id=f2629918ebe0138ed741c5ad30885d7d01badd8b
> 

Thanks!
Comment 20 Lars Vogel CLA 2018-01-26 05:13:05 EST
Can this be marked as fixed?
Comment 21 Alexander Kurtakov CLA 2018-01-26 05:27:31 EST
(In reply to Lars Vogel from comment #20)
> Can this be marked as fixed?

No, this is still pending task which I haven't found time to look at.
Comment 22 Julian Honnen CLA 2020-01-24 02:52:49 EST
*** Bug 559480 has been marked as a duplicate of this bug. ***
Comment 23 Alex Blewitt CLA 2020-05-30 20:13:42 EDT
I'm happy to take this cleanup on.
Comment 24 Lars Vogel CLA 2020-05-31 02:50:51 EDT
(In reply to Alex Blewitt from comment #23)
> I'm happy to take this cleanup on.

Thanks
Comment 25 Eclipse Genie CLA 2020-06-02 15:08:21 EDT
New Gerrit change created: https://git.eclipse.org/r/164019
Comment 26 Eclipse Genie CLA 2020-06-02 15:08:23 EDT
New Gerrit change created: https://git.eclipse.org/r/164020
Comment 27 Eclipse Genie CLA 2020-06-02 15:52:51 EDT
New Gerrit change created: https://git.eclipse.org/r/164023
Comment 28 Eclipse Genie CLA 2020-06-02 17:21:01 EDT
New Gerrit change created: https://git.eclipse.org/r/164034
Comment 29 Eclipse Genie CLA 2020-06-02 17:21:04 EDT
New Gerrit change created: https://git.eclipse.org/r/164035
Comment 30 Eclipse Genie CLA 2020-06-02 17:21:08 EDT
New Gerrit change created: https://git.eclipse.org/r/164036
Comment 31 Eclipse Genie CLA 2020-06-02 17:21:10 EDT
New Gerrit change created: https://git.eclipse.org/r/164037
Comment 32 Eclipse Genie CLA 2020-06-02 17:21:15 EDT
New Gerrit change created: https://git.eclipse.org/r/164038
Comment 33 Eclipse Genie CLA 2020-06-02 17:21:19 EDT
New Gerrit change created: https://git.eclipse.org/r/164039
Comment 34 Alex Blewitt CLA 2020-06-02 17:27:51 EDT
I've worked through the programmatic changes needed to remove this and broken them apart into small reviews (hence the multitude of changes on here). I am having difficulty with the testing, because org.eclipse.performance.tests is missing from the workspace and the README doesn't have any information about what's needed.

Unfortunately the gerrit bot hangs so it's not possible ot use that to verify whether or not the tests work as expected.

I have done some smoke testing on the changes, but I'm prepared that there may be other scenarios which are worth testing and I'm happy to respond to feedback and reorder where necessary.

Finally, some parts of the code appear to depend on a 'pedbuild.jar' and I'm not sure where that's coming from. That has some of the old API in it which may result in problems when being used elsewhere.

One possibility is that we could leave the old PluginPathFinder and UpdateManagerHelper into a fragment which attaches to the host plugin, and to extend the fragment to depend on the updateconfigurator, but I think that will prolong the problem.

Obviously these changes should be targeted for 4.17 - they are not intended for merging in the 4.16 timeframe.
Comment 35 Julian Honnen CLA 2020-06-03 02:50:12 EDT
Can someone summarize what this removal effectively entails? I've never (consciously) used update configurator.

Do we just lose support for targets <= 3.3?


(In reply to Alex Blewitt from comment #34)
> I've worked through the programmatic changes needed to remove this and
> broken them apart into small reviews (hence the multitude of changes on
> here). I am having difficulty with the testing, because
> org.eclipse.performance.tests is missing from the workspace and the README
> doesn't have any information about what's needed.
Try using the oomph setup: https://wiki.eclipse.org/Eclipse_Platform_SDK_Provisioning

> Finally, some parts of the code appear to depend on a 'pedbuild.jar' and I'm
> not sure where that's coming from. That has some of the old API in it which
> may result in problems when being used elsewhere.
That's from the org.eclipse.pde.build bundle. You can clone it via the oomph setup above.
Comment 36 Alex Blewitt CLA 2020-06-03 05:40:44 EDT
(In reply to Julian Honnen from comment #35)
> Can someone summarize what this removal effectively entails? I've never
> (consciously) used update configurator.
> 
> Do we just lose support for targets <= 3.3?

Before P2, Eclipse used Update Manager to install new plugins and features. Update Manager used update.configurator under the covers to do the plumbing work, and so PDE supported both “Platforms with P2” and “Platforms with Update Manager”.

Update manager went away a while ago, which means that the UI is no longer present and users of Eclipse can’t use it any more. Most of the dependencies of update.configurator went away.

The only one still present is PDE, because PDE had support for old/new world during P2’s introduction, and those code paths were never removed. As a result, PDE today still has a dependency on update.configurator and is the reason why it’s still in IDEs to this day. Unfortunately, update.configurator runs early on in the boot process and takes (on my machine, at least) ~350ms to start up, for something that’s never going to be used.

The goal of this bug is to remove the code paths that lead to update.configurator (I doubt anyone using Eclipse 2020-* is using it to launch a pre-Eclipse 3.3 instance) such that the update.configurator no longer needs to be installed in IDE packages, which will allow for a (slightly) faster startup.

> (In reply to Alex Blewitt from comment #34)
> > I've worked through the programmatic changes needed to remove this and
> > broken them apart into small reviews (hence the multitude of changes on
> > here). I am having difficulty with the testing, because
> > org.eclipse.performance.tests is missing from the workspace and the README
> > doesn't have any information about what's needed.
> Try using the oomph setup:
> https://wiki.eclipse.org/Eclipse_Platform_SDK_Provisioning

OK it might be good if that were mentioned in the README :) I’ll propose another bug/patch for that.

> > Finally, some parts of the code appear to depend on a 'pedbuild.jar' and I'm
> > not sure where that's coming from. That has some of the old API in it which
> > may result in problems when being used elsewhere.
> That's from the org.eclipse.pde.build bundle. You can clone it via the oomph
> setup above.

Sounds good, thanks. I wonder if the same changes will be needed there as well.
Comment 37 Lars Vogel CLA 2020-06-03 05:50:36 EDT
Alex, one scenario to test is the support of the dropins folder. (I think Andrey already said this somewhere in one of the reviews) 

IIRC this used some old code and was one of the reasons why we did not manage to remove update manager even though it was announced to be deleted years ago. You may have covered that already in your Gerrits but just wanted to highlight that again.
Comment 38 Julian Honnen CLA 2020-06-03 06:28:42 EDT
(In reply to Lars Vogel from comment #37)
> Alex, one scenario to test is the support of the dropins folder. (I think
> Andrey already said this somewhere in one of the reviews) 
> 
> IIRC this used some old code and was one of the reasons why we did not
> manage to remove update manager even though it was announced to be deleted
> years ago. You may have covered that already in your Gerrits but just wanted
> to highlight that again.
That runtime support would be part of Platform/Equinox not PDE, right?
Comment 39 Lars Vogel CLA 2020-06-03 07:47:55 EDT
(In reply to Julian Honnen from comment #38)
> (In reply to Lars Vogel from comment #37)
> > Alex, one scenario to test is the support of the dropins folder. (I think
> > Andrey already said this somewhere in one of the reviews) 
> > 
> > IIRC this used some old code and was one of the reasons why we did not
> > manage to remove update manager even though it was announced to be deleted
> > years ago. You may have covered that already in your Gerrits but just wanted
> > to highlight that again.
> That runtime support would be part of Platform/Equinox not PDE, right?

I think so too.
Comment 41 Alex Blewitt CLA 2020-06-12 09:29:09 EDT
Lars noted in https://git.eclipse.org/r/#/c/164023/ that the dialog box was seen when running an RCP application, when it's expected this would not require update manager. I wasn't able to reproduce that, but I was able to reproduce it by creating a dummy OSGi application with the following bundles:

0	ACTIVE      org.eclipse.osgi_3.15.300.qualifier
1	ACTIVE      org.apache.felix.gogo.runtime_1.1.0.v20180713-1646
2	ACTIVE      org.eclipse.equinox.console_1.4.100.v20200525-1407
3	ACTIVE      org.apache.felix.gogo.shell_1.1.0.v20180713-1646

Run without this change, ti works as expected. With the change in 164023, it throws the exception when launched as an Eclipse app. When launched as an OSGi app, it works, but in both cases is listing all the installed bundles.

Some more work to do here, I think.
Comment 43 Alex Blewitt CLA 2020-06-12 10:59:17 EDT
I've fixed the issue that Lars saw, but I am still working on the Equinox launcher, which appears to be loading many bundles more than it should.
Comment 44 Alex Blewitt CLA 2020-06-12 11:59:17 EDT
Think the above might be a different issue; I've raised bug 564251 to cover it.
Comment 46 Julian Honnen CLA 2020-06-23 07:10:46 EDT
This bug has become a bit of a mess. To summarize:

1) 
In 2017 it was decided to mark support for non-p2 update sites for removal and leave the functionality in place (comment 12).
This affects the following API (please comment if there's more):
org.eclipse.pde.core.plugin.TargetPlatform::createPlatformConfiguration

AFAICS that removal notice was never sent though. If there are no vetos to keep that ancient functionality, I'll do that now.


2) 
The recently merged changes removed support for target platforms based on eclipse <= 3.3


3) 
Any further cleanup is blocked until the API removal process is complete.
Comment 47 Alex Blewitt CLA 2020-06-23 07:17:18 EDT
> 3) Any further cleanup is blocked until the API removal process is complete.

The API was marked for removal 2 years ago, in Jan 2018.

https://github.com/eclipse/eclipse.pde.ui/commit/f2629918ebe0138ed741c5ad30885d7d01badd8b

We can keep the API in place but change the behaviour to throw an exception instead. That way the API remains in place but has no effect.
Comment 48 Alex Blewitt CLA 2020-06-23 07:24:39 EDT
Julian,

I'll take a look at what we can do to preserve that part of the API and have it behave the same. I don't think it's necessary to stop work on this, because it's only one method from UpdateHelper and we could e.g. in-line the implementation into this method and keep the same behaviour.

If you could send out the removal notice and get that running that would be good. I suggest we have a separate bug for that rather than this one though :)
Comment 49 Lars Vogel CLA 2020-06-23 07:55:59 EDT
> 
AFAICS that removal notice was never sent though. If there are no vetos to keep that ancient functionality, I'll do that no

The PMC decided that individual announcement is not necessary, that is why we send one note linking to the api removal document per release. So no need to send this individual message.
Comment 50 Julian Honnen CLA 2020-06-23 08:17:03 EDT
(In reply to Lars Vogel from comment #49)
> The PMC decided that individual announcement is not necessary, that is why
> we send one note linking to the api removal document per release. So no need
> to send this individual message.
I can't find it in PMC archives or removal guide either.
https://git.eclipse.org/c/platform/eclipse.platform.common.git/tree/bundles/org.eclipse.platform.doc.isv/porting/removals.html
Comment 51 Lars Vogel CLA 2020-06-24 10:43:03 EDT
(In reply to Julian Honnen from comment #50)
> (In reply to Lars Vogel from comment #49)
> > The PMC decided that individual announcement is not necessary, that is why
> > we send one note linking to the api removal document per release. So no need
> > to send this individual message.
> I can't find it in PMC archives or removal guide either.
> https://git.eclipse.org/c/platform/eclipse.platform.common.git/tree/bundles/
> org.eclipse.platform.doc.isv/porting/removals.html

I assumed that https://bugs.eclipse.org/bugs/show_bug.cgi?id=311590 would also cover any dependent API (which I think we have here). If others think we need a separate removal for this (IMHO dependent) PDE API, then +1 to mark it for removal.
Comment 52 Julian Honnen CLA 2020-06-24 10:53:20 EDT
(In reply to Lars Vogel from comment #51)
> I assumed that https://bugs.eclipse.org/bugs/show_bug.cgi?id=311590 would
> also cover any dependent API (which I think we have here).
If that's the case, great but the removal document lists only 

1. Update Manager
Bundle org.eclipse.update.core from the old update manager API was removed. This API was marked for deletion in the 4.2. release via bug 311590.


and not the org.eclipse.update.configurator bundle PDE dependent on. If we're not covered already by that notice we should mark update.configurator for removal now as well.
Comment 53 Lars Vogel CLA 2020-06-24 11:02:51 EDT
(In reply to Julian Honnen from comment #52)
> (In reply to Lars Vogel from comment #51)
> > I assumed that https://bugs.eclipse.org/bugs/show_bug.cgi?id=311590 would
> > also cover any dependent API (which I think we have here).
> If that's the case, great but the removal document lists only 
> 
> 1. Update Manager
> Bundle org.eclipse.update.core from the old update manager API was removed.
> This API was marked for deletion in the 4.2. release via bug 311590.
> 
> 
> and not the org.eclipse.update.configurator bundle PDE dependent on. If
> we're not covered already by that notice we should mark update.configurator
> for removal now as well.

From https://bugs.eclipse.org/bugs/show_bug.cgi?id=311590
-----------
The bundles to be removed are:

 - org.eclipse.update.configurator
 - org.eclipse.update.core
 - org.eclipse.update.scheduler
 - org.eclipse.update.ui
--------------

Maybe the API removal process was handled different in 2010.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=311590#c8 says the only reason why the bundles were not deleted is that they are used and that is was not worth the effort. 

Quote:
-----------
 org.eclipse.update.core is left in master because it is still used in some of our tests. org.eclipse.update.configurator is still shipped in the platform because it it used quite extensively in PDE and I felt it was not worth the effort to migrate. It is only 3 API classes so a tiny fraction of old update. 
------------

So IMHO , we should be fine to delete these.

Alex, WDYT? Other PMC members, any opinion?
Comment 54 Alex Blewitt CLA 2020-06-24 11:20:20 EDT
There’s one public api and we should still be able to reimplement it without needing to keep the bundle. I don’t think we should block the removal of the bundle but there’s an orthogonal aspect of whether the API here is changed or not. 

If we can remove it, great. But I think we can put in an emulator shim for that method and allow us to remove the update configuration and dependency on PDE. I’m working on a new version of the change that Julian commented on to see if we can do this.
Comment 55 Alexander Kurtakov CLA 2020-06-24 15:06:43 EDT
(In reply to Alex Blewitt from comment #54)
> There’s one public api and we should still be able to reimplement it without
> needing to keep the bundle. I don’t think we should block the removal of the
> bundle but there’s an orthogonal aspect of whether the API here is changed
> or not. 
> 
> If we can remove it, great. But I think we can put in an emulator shim for
> that method and allow us to remove the update configuration and dependency
> on PDE. I’m working on a new version of the change that Julian commented on
> to see if we can do this.

This sounds like perfect solution to me. I vote for keeping explicit notifications for things to be removed.
Comment 56 Alex Blewitt CLA 2020-06-26 14:46:33 EDT
I've rebased and resubmitted the patches; they all test/build clean now. I've left the public API in place but put in a re-implementation for the transitional period between now and the subsequent removal.

Lars/Julian did you send out the removal process notification? Should we have a separate bug for the removal of org.eclipse.pde.core.plugin.TargetPlatform::createPlatformConfiguration and the UpdateManagerHelperDeprecated introduced in https://git.eclipse.org/r/#/c/164038/11/ui/org.eclipse.pde.core/src/org/eclipse/pde/internal/core/UpdateManagerHelperDeprecated.java
Comment 64 Julian Honnen CLA 2020-06-30 02:13:12 EDT
*** Bug 539475 has been marked as a duplicate of this bug. ***
Comment 65 Julian Honnen CLA 2020-06-30 02:28:04 EDT
The update.configurator dependency is now gone thanks to Alex's great work.

I'll close this bug once we have a PMC decision on the TargetPlatform API.

I've opened bug 564760 to remove update.configurator from the RCP.
Comment 66 Lars Vogel CLA 2020-06-30 02:34:18 EDT
(In reply to Julian Honnen from comment #65)
> The update.configurator dependency is now gone thanks to Alex's great work.

Thanks Alex for fixing this long outstanding issue.

> I'll close this bug once we have a PMC decision on the TargetPlatform API.

Please open a new bug for this mark for deletion.
Comment 67 Julian Honnen CLA 2020-06-30 02:48:25 EDT
(In reply to Lars Vogel from comment #66)
> Please open a new bug for this mark for deletion.
Done: bug 564763
Comment 68 Ed Merks CLA 2020-09-03 05:16:08 EDT
The changes for this bug have caused a major regression.

Details of the investigation are described here:

https://www.eclipse.org/forums/index.php/mv/msg/1105083/1831927/#msg_1831927

The fundamental problem is that the org.eclipse.pde.internal.core.PluginPathFinder.getFeaturePaths(String) method's implementation only works for installations with a collocated bundle pool, i.e., it only finds features in the features folder of the installation.  An installation that uses a shared bundle pool does not have such a folder.

I believe the implementation should be reading this file

configuration/org.eclipse.update/platform.xml

But with all these changes, it's not clear if the intent is for this file to continue to exist and if not, where the information about the installation's features should properly come from.

This file is still present in the EPP package distros...

Furthermore, there are more complex scenarios such as shared read-only installations with cascaded configurations where the user could install features in their surrogate and I expect the current implementation does not work properly for these either.

I suppose we should open a new bug for this regression, right?
Comment 69 Julian Honnen CLA 2020-09-03 06:49:27 EDT
Thanks for the analysis, Ed! Please do open a new bug.

Seems like update.configurator was scheduled for removal without a clear replacement (related: bug 565239).

I don't see many options here other than restoring the previous behavior. Rather than depending on update.configurator again, we could parse the platform.xml ourself or try to get the required information from IBundleGroupProvider.
Comment 70 Ed Merks CLA 2020-09-03 07:52:27 EDT
I've opened this follow up:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=566642
Comment 71 Andrey Loskutov CLA 2020-10-02 09:40:41 EDT
For the record, another regression is bug 567318.