Hi all,

we've just noticed a weird behavior of p2 during installation.

Here are the steps to reproduce:

- Install the bare 4.5-M4 SDK [1].

Note that it does not contain any bundles from Eclipse Code
Recommenders, Aether, or m2e.

- Next, install the latest version of "Code Recommenders for Java
Developers" from [2]

This installs all the bundles from Code Recommenders, some bundles from
Aether (which are made available through [2]) and(!) the bundle
org.eclipse.m2e.maven.runtime from [3], the update site pre-configured
by 4.5 M4.

And herein lies the problem:

> osgi> ss recommenders
> "Framework is launched."
> 
> 
> id    State       Bundle
> 263   INSTALLED   org.eclipse.recommenders.apidocs_2.1.12.v20141202-0751
> 264   INSTALLED   org.eclipse.recommenders.apidocs.rcp_2.1.12.v20141202-0751
> 265   INSTALLED   org.eclipse.recommenders.calls_2.1.12.v20141202-0751
> 266   INSTALLED   org.eclipse.recommenders.calls.rcp_2.1.12.v20141202-0751
> 267   STARTING    org.eclipse.recommenders.chain.rcp_2.1.12.v20141202-0751
> 268   STARTING    
> org.eclipse.recommenders.completion.rcp_2.1.12.v20141202-0751
> 269   STARTING    org.eclipse.recommenders.injection_2.1.12.v20141202-0751
> 270   RESOLVED    org.eclipse.recommenders.jayes_2.1.12.v20141202-0751
> 271   RESOLVED    org.eclipse.recommenders.jayes.io_2.1.12.v20141202-0751
> 272   RESOLVED    org.eclipse.recommenders.jdt_2.1.12.v20141217-0920
> 273   INSTALLED   org.eclipse.recommenders.models_2.1.12.v20141211-1032
> 274   INSTALLED   org.eclipse.recommenders.models.rcp_2.1.12.v20141203-0852
> 275   RESOLVED    org.eclipse.recommenders.net_2.1.12.v20141202-0751
> 276   INSTALLED   org.eclipse.recommenders.overrides_2.1.12.v20141202-0751
> 277   INSTALLED   org.eclipse.recommenders.overrides.rcp_2.1.12.v20141202-0751
> 278   STARTING    org.eclipse.recommenders.rcp_2.1.12.v20141202-0751
> 279   RESOLVED    org.eclipse.recommenders.subwords.rcp_2.1.12.v20141202-0751
> 280   RESOLVED    org.eclipse.recommenders.utils_2.1.12.v20141211-1252

Code Recommenders is totally unusable.

The root cause is that it cannot resolve some package imports of
org.eclipse.aether, even though the org.eclipse.aether.api bundle is
present on the Code Recommenders update site [2].

> osgi> diag 273
> org.eclipse.recommenders.models [273]
>   Unresolved requirement: Import-Package: 
> org.apache.maven.repository.internal; version="[3.1.0,3.2.0)"
>     -> Export-Package: org.apache.maven.repository.internal; 
> bundle-symbolic-name="org.eclipse.aether.maven"; 
> bundle-version="3.1.0.v20140706-2237"; version="3.1.0"; 
> uses:="com.google.inject,javax.inject,org.eclipse.aether,org.eclipse.aether.artifact,org.eclipse.aether.deployment,org.eclipse.aether.impl,org.eclipse.aether.installation,org.eclipse.aether.repository,org.eclipse.aether.resolution,org.eclipse.aether.spi.locator,org.eclipse.aether.spi.log"
>        org.eclipse.aether.maven [255]
>          Unresolved requirement: Import-Package: org.eclipse.aether; 
> version="[0.9.1,1.1.0)"

This is due to the fact that p2 has installed the bundle
org.eclipse.m2e.maven.runtime instead as a provider of the package
org.eclipse.aether:

> osgi> p org.eclipse.aether
> osgi.wiring.package; bundle-symbolic-name="org.eclipse.m2e.maven.runtime"; 
> bundle-version:Version="1.6.0.20141217-0916"; provider="m2e"; 
> version:Version="1.0.0.v20140518"; osgi.wiring.package="org.eclipse.aether"; 
> mandatory:="provider"<org.eclipse.m2e.maven.runtime_1.6.0.20141217-0916 [261]>

But this bundle is not a valid substitute for the org.eclipse.aether.api
bundle, due to the mandatory provider attribute of "m2e".

Is this a bug in p2? IMHO, p2 should be able to detect that
org.eclipse.m2e.maven.runtime does not provide the necessary package for
the bundle org.eclipse.aether.maven to import, as the latter's
Import-Package does not use provider="m2e".

FWIW, for the history of the provider="m2e" attribute added [4]
precisely to avoid these kind of wiring problems, see Bug 403243 [5].

Any insights as to why p2 behaves the way it does are greatly appreciated.

Best wishes,

Andreas

[1]
<http://download.eclipse.org/eclipse/downloads/drops4/S-4.5M4-201412102000/>
[2] <http://download.eclipse.org/recommenders/updates/head/>
[3] <http://download.eclipse.org/releases/mars>
[4]
<https://git.eclipse.org/c/m2e/m2e-core.git/commit/m2e-maven-runtime/org.eclipse.m2e.maven.runtime/pom.xml?id=7e198c6ae5cffbd6fc45e0cb3b54492123d7e2e4>
[5] <https://bugs.eclipse.org/bugs/show_bug.cgi?id=403243>

-- 
Codetrails GmbH
The knowledge transfer company

Robert-Bosch-Str. 7, 64293 Darmstadt
Phone: +49-6151-276-7092
Mobile: +49-170-811-3791
http://www.codetrails.com/

Managing Director: Dr. Marcel Bruch
Handelsregister: Darmstadt HRB 91940
_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev

Reply via email to