eclipse-rcprcptycho

Updating RCP project to Eclipse Tycho >= 2.0 leads to "Unable to satisfy dependency" for features from different repositories


Using tycho 1.x worked for my target platform definition based RCP application including features with dependencies from different repositories. Because of a bug with tool bars in RCP 4.18, I updated the project to RCP 4.20. With this RCP version, my UI tests does not work anymore with Tycho 1.x. So I updated to Tycho 2.x but get another problem: The dependencies of features from different repositories can not be resolved anymore, but it works, if I add all the repository URLs to features location in my target platform definition (or adding all repositories and units to one location entry). Because of different reasons, these are no options. Is there a possibility to get the old behavior and what is the reason for this change?


Solution

  • Since Tycho >= 2.0 is not scanning all locations of a target platform file, before resolving RCP features, there are two possibilities to fetch plugins, included in the feature, from different p2 repositories:

    1. Add all p2 repositories needed for the feature to the target platform location:
    <locations>
      <location ...
        <unit ... feature
        <repository ... of included plugin 1
        <repository ... of included plugin 2
      </location>
    </locations>
    
    1. Use p2 composite repositories with child repositories to resolve the feature:
    <locations>
      <location ...
        <unit ... feature
        <repository ... composite repo with child repos of included plugins
      </location>
    </locations>
    

    For me, the problem is only solved with composite repositories, because it is not possible to add multiple repositories to a location of a target platform generator file.