Where can I find the p2 repository specification?
Asked Answered
S

2

8

I tried googling left and right, and couldn't find a specification for the p2 repository format that Eclipse is using.

I am interested in reading p2 metadata (content.xml/jar and artifacts.xml/jar) and I'd like to know their grammar, the repository layout (composite vs simple, etc.)

I can, of course, reverse-engineer this by looking at a few existing repositories, but I'd like to know if there is a document that describes this in detail.

Sable answered 26/9, 2012 at 12:15 Comment(0)
A
5

The format of these files is not considered API, and as such, there is no specification. These are actually just one such format for p2 repositories, and you can plug-in your own format if you'd like. The only API for the repository format is an implementation of IMetadataRepository and IArtifactRepository.

If you would like to process these files, I suggest loading the repositories (using the IMetadataRepositoryManager and IArtifactRepositoryManager) and using the API these interfaces expose.

Abagael answered 28/9, 2012 at 21:56 Comment(1)
Are there implementations for these interfaces that don't require an OSGi container? I am writing a small command line utility and I don't want to pull a dependency on Eclipse.Sable
R
1

Yes, p2 is practically unusable without OSGi. However, if you need an example of small command line application using p2 API I suggest taking a look at p2diff. You may also find the following link interesting: Query Language for p2. If you really are dead set against using Equinox, you might try looking at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryIO.Parser and org.eclipse.equinox.internal.p2.artifact.repository.simple.SimpleArtifactRepositoryIO.Parser - it's just XML after all (albeit complicated).

Ree answered 20/1, 2014 at 12:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.