Bug 453248 - Support linking to marketplace entry from p2 metadata
Summary: Support linking to marketplace entry from p2 metadata
Status: RESOLVED FIXED
Alias: None
Product: MPC
Classification: Technology
Component: wizard (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 1.4.0   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-25 16:15 EST by Carsten Reckord CLA
Modified: 2015-05-28 06:21 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carsten Reckord CLA 2014-11-25 16:15:02 EST
In order to fill the "Installed" tab, we are currently relying on known mappings between Marketplace node ids and the associated feature/plugin ids. This mapping is updated each time a Marketplace entry is shown in the MPC. To determine which solutions to show on the "Installed" tab, these known mappings are then matched against the plugins and features in the current Eclipse instance.

This works for the solutions that have been installed via MPC _into the current Eclipse_. But with many other install vectors available, this list is hardly ever complete:

- Many Eclipse projects take part in both the simultaneous release and have a Marketplace entry. Installing them through the simrel site will not show them in MPC
- Similarly, several Eclipse projects that also have a Marketplace entry come as part of the most popular Eclipse download packages and won't show up as installed in MPC
- Migrating installed plug-ins between Eclipse instances/releases via File > Import/Export > Install > Installed Software Items or by using the old Eclipse as a Repository will lose MPC install information in the new instance
- Other ways of easily getting a configured Eclipse, like the Oomph Installer, become increasingly popular and won't have the mapping info for MPC available

To remedy this, we could determine the list of ius that we don't have mapping information for before calculating "installed" state and get the missing mappings from the server. In order to limit server requests, we could probably restrict this to ius marked as install roots, i.e. exclude nested features and plugins from the query. 

*Additional ideas to limit requests/provide alternatives*
- mapping data is currently kept separately for each Eclipse installation by default. It would help to have it available across instances, e.g. in ~/.eclipse.
- we could enable solution providers to help by specifying their marketplace node ids in the p2 metadata of their update sites. This way, we could determine marketplace nodes for installed features of cooperating providers based on this data without querying the marketplace
Comment 1 Carsten Reckord CLA 2014-12-18 11:48:15 EST
We've decided not to perform server queries to proactively find out which marketplace entries have already been installed through other means (e.g. preinstalled from epp packages, like with EGit, or just installed via regular update site).

Instead we will enable plug-in providers to specify the corresponding Marketplace entry for their plug-in/feature on their update sites using P2 metadata properties. Those can be specified in p2.inf files in the feature project and will be picked up by the usual packaging tools (pde build, tycho, buckminster).

I've changed the bug description accordingly.
Comment 2 Carsten Reckord CLA 2015-05-28 06:21:59 EDT
Fixed in 2d39fd4f7e9a20d331f8be1e22799087d616c840.

Add a P2 property to your main feature with name 'org.eclipse.epp.mpc.node' and your marketplace entry's URL as its value.

With tycho, this can be achieved by adding a p2.inf file to your feature project with the following content:

properties.0.name=org.eclipse.epp.mpc.node
properties.0.value=http://marketplace.eclipse.org/content/my-entry