Discussion:
[tycho-user] Missing IUs in a repository
Justin Georgeson
2017-02-28 14:37:44 UTC
Permalink
I have a 3rd party which I've wrapped into bundle jars with bnd-maven-plugin, and created a feature and software site for them. I then have a second build using Tycho with a 1st party feature including the 3rd party feature, and publishing a software site. It is this site which is missing some IUs, specifically the 3rd party plugins included in the 3rd party feature. The 3rd party feature jar is archived into the repository, just not the plugins. The content.xml clearly shows that the 3rd feature group depends on the 3rd party plugins, and the Maven output shows it downloaded the 3rd plugins along with the 3rd party feature when resolving the target platform of the 1st party feature.

I suspect it has something to do with the packaging of the 3rd party feature and 3rd party repository. Because I want to have a single build that performs the OSGI wrapping of the plugins and packaging into feature and software site, and not being able to mix pom and manifest projects in a single reactor, I'm not using eclipse-feature and eclipse-repository packaging types for the 3rd party build. For the feature I'm using a regular jar project with the feature.xml in src/main/resources, with filtering to substitute the qualifier.

<?xml version="1.0" encoding="UTF-8"?>
<feature id="com.example.3rdparty.feature" label="Example 3rd Party feature" version="${project.version}" provider-name="Example">
<plugin id="com.example.3rdparty" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="com.example.3rdparty.extra" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="com.example.3rdparty.linux.gtk.x86_64" os="linux" ws="gtk" arch="x86_64" fragment="true" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
<plugin id="com.example.3rdparty.win32.win32.x86_64" os="win32" ws="win32" arch="x86_64" fragment="true" download-size="0" install-size="0" version="0.0.0" unpack="false"/>
</feature>

For the repository I'm using a pom project which uses dependency:copy to stage the feature jar and plugin jars in target/source then calls tycho-p2-extras-plugin:publish-features-and-bundles goal to generate the P2 site. I've confirmed with the p2.director application that this site has the correct dependencies listed from feature.group to feature.jar and all the plugins. I've further used p2.director application to install the feature.group to a dummy folder and all the plugins are provisioned at the destination as expected.

It's just when Tycho is creating the 1st party software site (category.xml includes 1st party feature, 1st party feature includes 3rd party feature) that the 3rd party plugins are not added.

If I include the 3rd party plugins directly in my 1st party feature, or if I set includeAllDependencies to true in my final software site, then the 3rd party plugins are included in the final software site.

Any hints on what I might have missed in my 3rd party feature/site that Tycho seems to consider the 3rd party plugins as required instead of included.

----------------------------------------------------------------------
This e-mail, including any attached files, may contain confidential and privileged information for the sole use of the intended recipient. Any review, use, distribution, or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive information for the intended recipient), please contact the sender by reply e-mail and delete all copies of this message.
Loading...