This Java library turns binary storage (files, S3 objects, anything) into a P2 repository. This library is a part of Artipie binary artifact management tool and provides a fully-functionable P2 Registry, which Eclipse can perfectly understand.
Source documentation is located here. API overview is available here.
If you have any question or suggestions, do not hesitate to create an issue
or contact us in Telegram.
Artipie roadmap.
Warning
Development is still in progress, adapter is not ready to use yet!
P2 repository has the following structure:
(repository root)
|
|-+ releases
| |-- p2.index
| |-- compositeContent.xml
| |-- compositeArtifacts.xml
| |-+ 3.14.10.v20210917-1938
| | |-+ features
| | | |-- *.jar
| | |-+ plugins
| | | |-- **
| | |-- p2.index
| | |-- content.xml / content.jar (e.g. zipped content.xml)
| | |-- artifacts.xml / artifacts.jar (e.g. zipped artifacts.xml)
| |-+ ...
|-+ updates
| | ... similar to the folder `releases`
p2.index
-- description of index file is available here- Feature archives -- description of archives which are located in
features
folder docs These files contain thefeature.xml
file inside.
File compositeContent.xml
:
<?xml version='1.0' encoding='UTF-8'?>
<?compositeMetadataRepository version='1.0.0'?>
<repository name='"Eclipse Project Test Site"'
type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
<properties size='1'>
<property name='p2.timestamp' value='1243822502499'/>
</properties>
<children size='2'>
<child location='3.14.10.v20210917-1938'/>
<child location='4.11.5.v20210930-1251'/>
</children>
</repository>
File: compositeArtifacts.xml
:
<?xml version='1.0' encoding='UTF-8'?>
<?compositeArtifactRepository version='1.0.0'?>
<repository name='"Eclipse Project Test Site"'
type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'>
<properties size='1'>
<property name='p2.timestamp' value='1243822502440'/>
</properties>
<children size='2'>
<child location='3.14.10.v20210917-1938'/>
<child location='4.11.5.v20210930-1251'/>
</children>
</repository>
File content.xml
:
<?xml version='1.0' encoding='UTF-8'?>
<?metadataRepository version='1.2.0'?>
<repository name='' type='org.eclipse.equinox.internal.p2.metadata.repository.LocalMetadataRepository' version='1'>
<properties size='1'>
<property name='p2.timestamp' value='1614818273187'/>
</properties>
<units size='19'>
<unit id='org.junit' version='4.13.0.v20200204-1500' singleton='false' generation='2'>
...
</unit>
...
</units>
</repository>
File artifact.xml
contains information about .jar
files
in the subfolders of the current directory. An example of such file:
<?xml version='1.0' encoding='UTF-8'?>
<?artifactRepository version='1.1.0'?>
<repository name='' type='org.eclipse.equinox.p2.artifact.repository.simpleRepository' version='1'>
<properties size='2'>
<property name='p2.timestamp' value='1614818273187'/>
<property name='publishPackFilesAsSiblings' value='true'/>
</properties>
...
<artifacts size='17'>
<artifact classifier='osgi.bundle' id='org.junit.jupiter.api' version='5.7.1.v20210222-1948'>
<properties size='5'>
<property name='download.size' value='204027'/>
<property name='artifact.size' value='204027'/>
<property name='download.md5' value='f827b34590464f21f09fc18bedb4b8c6'/>
<property name='download.checksum.md5' value='f827b34590464f21f09fc18bedb4b8c6'/>
<property name='download.checksum.sha-256' value='3cb3ad7afb0d0d6f30ee1bcc043675b163d81612edd286a28429e5762413d72b'/>
</properties>
</artifact>
...
</artifacts>
</repository>
The next dependency is required:
<dependency>
<groupId>com.artipie</groupId>
<artifactId>p2-adapter</artifactId>
<version>[...]</version>
</dependency>
TBD.
Fork repository, make changes, send us a pull request. We will review
your changes and apply them to the master
branch shortly, provided
they don't violate our quality standards. To avoid frustration, before
sending us your pull request please run full Maven build:
$ mvn clean install -Pqulice
To avoid build errors use Maven 3.2+ and please read contributing rules.