Question

we have several internal p2 repositories. Each repository has many versions of different features. We need to have an external update site for our clients. We would like to aggregate only specific versions of specific features. Would is a good way/tool to "aggregate" them?

For example we have a p2 repository repo1 with feature feature1 with versions 1.0.0, 2.0.0, 3.0.0 and another p2 repository repo2 with feature feature2 with versions 1.0.0 and 2.0.0.
We would like to aggregate versions 1.0.0 and 3.0.0 of feature1 and version 2.0.0 of feature2:

feature1
  1.0.0
  3.0.0
feature2
  2.0.0

Currently we are looking at b3 and Nexus Pro. But maybe there is something better?

b3 allows only aggregating range of features and not specific versions.
Nexus Pro is more like proxy or "magic box". We want to have a separate physical copy (mirrored one) of p2 repository.

Any suggestions?

Was it helpful?

Solution 2

p2.mirror can aggregate specified features and create a p2 repository. It is possible to configure it to download only required bundles too.

Here is an example which aggregates two versions of a feature:

<p2.mirror>
  <repository location="${repositoryPath}" name="My External p2 Repository" append="false" />
  <source>
    <repository location="http://repository:8081/p2/project1" />
    <repository location="http://download.eclipse.org/eclipse/updates/3.6" />
    <repository location="http://repository:8081/p2/project2" />
  </source>
  <iu id="dk.sorokin.maksim.feature.feature.group" version="0.0.5.201012071808" />
  <iu id="dk.sorokin.maksim.feature.feature.group" version="2.0.0.201012071540" />
  <slicingoptions followStrict="true" />
</p2.mirror>

Moreover, afterwards it is possible to run a eclipse.publish.featuresAndBundles task to categorize created repository.

OTHER TIPS

P2 has composite repository concept that should match what you're looking for.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top