Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tycho-dev] Help investigate target platform repository problems


In I created a test for reproducing the p2 mirroring issues during a p2 repository build. I've added some notes/finding to:

The culprit seems to be within the "targetPlatformRepository".

When the p2 mirror application is invoked, only the category IU is specified as source IU. The category IU correctly defines all three bundles as requirements.

If an IU is included directly in the category via its identifier it's also listed in targetPlatformRepository/content.xml. However, if it's only included via query, it's not listed in targetPlatformRepository/category.xml. Therefore, the mirror application slicers fails to expand the category requirements.
When the p2 dependencies metadata for the category is created, the following is generated:

InstallableUnit(testrepo 1.0.0)
  - RequiredCapability(prr.example.bundle 0.0.0)
matchExpression: providedCapabilities.exists(x | == $0 && x.namespace == $1)
  - RequiredCapability(id ~= /prr.example.*/)
    matchExpression: id ~= /prr.example.*/

Then, later one when the target platform is built, the p2 Projector comes back with a solution that only includes prr.example.bundle but non of the other bundles.

That doesn't seem right.

To recap:
- The bundles are correctly discovered and added to the category.
- Mirroring fails because they are not visible in the target platform.

It looks like the query (matchExpression) is not matching and this the content is not added to the target platform. Any where I can look to influence the matching of the target platform repository?

It's weird that the query fails for the target platform repository but works when creating the category IU.


Gunnar Wagenknecht

Back to the top