Command line scripts for converting a collection of java artifacts into a proper p2 repository.
In order to use the SDK files provided by IBM for development and debugging of their Eclipse based plugins, they have to be bundled as a p2 repository. These scripts provide the required functionality for creating a p2 repository on Windows and Linux.
To use the converted p2 repository as a maven dependency, which is required for compiling many of our projects, a local maven p2 repository has to be created. This is is explained in the following sections.
All manual steps described here would not be required if the RTC SDK were available on Maven Central for immediate use.
- Download and install Eclipse.
- Download and extract the IBM RTC Server SDK. The download for the SDK is usually in the 'All Downloads' tab. Note the extraction location, you will need it later.
The provided scripts are simple, they just call the FeaturesAndBundlesPublisher application with the required parameters. You can read more about the equinox publisher features in the eclipse wiki.
Please note that the destination path must be an absolute path from the root of your file system
If you get any errors regarding the logging configuration, you can safely ignore them. The equinox launcher will run correctly and log to console.
Find out the path to the equinox launcher jar which was installed with eclipse. Browse to the eclipse installation folder and go to the plugins folder. Inside it, there is a file that starts with org.eclipse.equinox.launcher_
. Note the path to this file.
Run the converter.ps1
script. The correct parameters are:
-launcher "path\to\equinox_launcher" (this is the path you noted above)
-dest "drive:\destination\path" (full path to where you want the p2 repository created)
-sdk "path\to\sdk" (location where you unpacked the sdk)
.\converter.ps1 D:\Software\eclipse\plugins\org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar D:\workspaces\jazz-p2-repository-converter\p2dest .\sdk
Find out the path to the equinox launcher jar which was installed with eclipse. The easiest way is to use find
from the eclipse installation directory: find . -name "org.eclipse.equinox.launcher_*"
.
Run the converter.sh
script. The parameters are positional:
$1: equinox/launcher/path (the path you found when using find above)
$2: /path/to/destination (absolute path where you want the p2 repository created)
$3: /path/to/sdk
./converter.sh /home/usr/eclipse/plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar /home/usr/workspaces/jazz-p2-repository-converter/p2dest /home/usr/workspaces/jazz-sdk
You can use docker to build the p2 repository. All dependencies except the sdk files are pulled when creating the image, there is no need to install them. To create and run the image, a simple wrapper script is provided that creates a tagged image, and runs it with the approriate parameters.
./docker-converter.sh /home/user/Downloads/rtc-sdks /home/user/workspaces/jazz/p2-repositories
This will create p2 repositories for every zip file in the rtc-sdks download folder. A seperate subfolder in the provided p2-repositories folder is created for every SDK.
In order to use the p2 repository you created above with maven, you have to add the location of your p2 repository as a local repository to your maven settings. The easiest way to do this for all projects is to add the location to your global maven settings file. In Windows, the default location of this file is in your C:\Users\username\.m2\settings.xml
directory, and in linux, the default location is in /home/usr/.m2/settings.xml
The easiest way of achieve this is to create a profile for your p2 repository and set it as the active profile when compiling jazz related java sources.
<settings>
...
<profiles>
<profile>
<id>p2 repositories</id>
<repositories>
<repository>
<id>ibm sdk p2 repository</id>
<layout>p2</layout>
<url>file:/home/usr/workspaces/jazz/jazz-p2-repository-converter/p2dest</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>p2 repositories</activeProfile>
</activeProfiles>
...
</settings>
Alternatively, you can configure the p2 repository on a per-project basis. In order to do so, you have to add the repository information to every pom.xml
that needs to have access to it.
<project>
...
<repositories>
<repository>
<id>rtc-sdk</id>
<layout>p2</layout>
<url>file:/home/sbi/Documents/workspaces/jazz/jazz-p2-repository-converter/p2dest</url>
</repository>
</repositories>
...
</project>
Please use the Issue Tracker of this repository to report issues or suggest enhancements.
For general contribution guidelines, please refer to CONTRIBUTING.md
Copyright (c) Siemens AG. All rights reserved.
Licensed under the MIT License.