Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cross-project-issues-dev] Why Can't 'osgi.service; (objectClass=org.osgi.service.event.EventAdmin) Resolve?

Andrey,

Thanks for the response.

I did a little more investigation into why specifically I cannot resolve a target platform for EMF's Oomph setup which uses Targlets against 2019-03.  First I tried to create a minimal example so I modified Oomph such that it can represent a requirement that maps to org.eclipse.equinox.p2.metadata.MetadataFactory.createRequirement(String, String, IMatchExpression<IInstallableUnit>, int, int, boolean), i.e., to a org.eclipse.equinox.internal.p2.metadata.RequiredPropertiesMatch.RequiredPropertiesMatch.  I used that to try to resolve exactly the requirement that the p2 director is complaining can't be found:

<?xml version="1.0" encoding="UTF-8"?>
<p2:Requirement
    xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:p2="http://www.eclipse.org/oomph/p2/1.0"
    name="(objectClass=org.osgi.service.event.EventAdmin)"
    namespace="osgi.service"/>

But that works properly so there is definitely not a bug in p2's ability to resolve this specific property match requirement.

In the end, after trying many combinations I could not reproduce the resolution failure with a test case.

What finally fixed/avoided the EMF-specific problem was to change the following explicit requirement to be optional (though greedy, which is the model's default):

<?xml version="1.0" encoding="UTF-8"?>
<p2:Requirement
    xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI"
    xmlns:p2="http://www.eclipse.org/oomph/p2/1.0"
    name="org.eclipse.equinox.ds"
    optional="true"/>

This in combination resolves successfully and org.eclipse.equinox.ds is successfully resolved in the resulting target platform.  The fact that it fails to resolve when it's not optional but succeeds and greedily resolves it successfully when optional seems very strange and unexpected. 

I expect the problem reported on the forum is also a result of some hard-to-reproduce combination of already-installed IUs.

To confirm this, I downloaded the following package and tried to update it to the latest release:

https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2018-12/R/eclipse-committers-2018-12-R-win32-x86_64.zip

By, the way, has anyone noticed that we have a number of variants of the license?

Note that the most broadly used version has an encoding problem for the "TM" Unicode trademark character. Maybe we could fix this mess in 2019-06!  Note that all of them are wrong in some way!!

In any case, I could successfully update to the latest release, so there is not a general/pervasive p2 bug that prevents updates from 2018-12 to 2019-03.

That just leaves us with a mysterious, hard-to-reproduce problem...

Regards,
Ed


On 21.03.2019 17:56, Andrey Loskutov wrote:
I've answered on the forum. Unfortunately I'm not p2 guru, but I guess this is a bug in p2. 

Am 21. März 2019 17:13:38 MEZ schrieb Ed Merks <ed.merks@xxxxxxxxx>:
Does anyone know why we might encounter failures like this:

  ERROR: org.eclipse.equinox.p2.director code=10053 Cannot complete the

install because one or more required items could not be found.
    ERROR: org.eclipse.equinox.p2.director code=0 Software being 
installed: artificial_root 1.0.0.v1553184475173
    ERROR: org.eclipse.equinox.p2.director code=0 Missing requirement: 
Eclipse UI Application Services 1.3.400.v20190212-2214 
(org.eclipse.e4.ui.services 1.3.400.v20190212-2214) requires 
'osgi.service; (objectClass=org.osgi.service.event.EventAdmin)' but it 
could not be found
    ERROR: org.eclipse.equinox.p2.director code=1 Cannot satisfy 
dependency:
      ERROR: org.eclipse.equinox.p2.director code=0 From: 
artificial_root 1.0.0.v1553184475173
      ERROR: org.eclipse.equinox.p2.director code=0 To: 
org.eclipse.equinox.p2.iu; org.eclipse.platform.feature.group 0.0.0
    ERROR: org.eclipse.equinox.p2.director code=1 Cannot satisfy 
dependency:
      ERROR: org.eclipse.equinox.p2.director code=0 From: Eclipse 4 
Rich Client Platform 1.6.400.v20190305-0602 
(org.eclipse.e4.rcp.feature.group 1.6.400.v20190305-0602)
      ERROR: org.eclipse.equinox.p2.director code=0 To: 
org.eclipse.equinox.p2.iu; org.eclipse.e4.ui.services 
[1.3.400.v20190212-2214,1.3.400.v20190212-2214]
    ERROR: org.eclipse.equinox.p2.director code=1 Cannot satisfy 
dependency:
      ERROR: org.eclipse.equinox.p2.director code=0 From: Eclipse 
Platform 4.11.0.v20190307-0500 (org.eclipse.platform.feature.group 
4.11.0.v20190307-0500)
      ERROR: org.eclipse.equinox.p2.director code=0 To: 
org.eclipse.equinox.p2.iu; org.eclipse.rcp.feature.group 
[4.11.0.v20190307-0500,4.11.0.v20190307-0500]
    ERROR: org.eclipse.equinox.p2.director code=1 Cannot satisfy 
dependency:
      ERROR: org.eclipse.equinox.p2.director code=0 From: Eclipse RCP 
4.11.0.v20190307-0500 (org.eclipse.rcp.feature.group
4.11.0.v20190307-0500)
      ERROR: org.eclipse.equinox.p2.director code=0 To: 
org.eclipse.equinox.p2.iu; org.eclipse.e4.rcp.feature.group 
[1.6.400.v20190305-0602,1.6.400.v20190305-0602]

I have this problem resolving the a target platform using Oomph's 
Targlets against 2019-03, but users are reporting what's essentially
the 
same error/cause trace when trying to update from Eclipse 2018-12 to 
2019-03:

https://www.eclipse.org/forums/index.php/mv/msg/1098132/1804241/#msg_1804241

_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe
>from this list, visit
https://www.eclipse.org/mailman/listinfo/cross-project-issues-dev
--
Kind regards,
Andrey Loskutov

https://www.eclipse.org/user/aloskutov
Спасение утопающих - дело рук самих утопающих

Back to the top