Analyze bnd-platform gradle task to automate creation of needed bundles + repositories

Description

There is a gradle plugin called bnd-plugin which automates the whole process of handling dependencies used for the UI (as osgi dependencies). Currently, we download the needed dependencies and change them, upload them back to nexus, use the prodToLib task to put them into the lib/prod folder for being picked up by the target platform.

We should check what we can replace with this plugin. The following questions / points should be considered:

  • can we upload the generated p2 repository easily?

  • does nexus needs to be used or does it provide any advantage in using it as a proxy?

  • if we upload the p2 repository, what about fast changes in development to try out new versions. How would be the process of doing so?

Environment

None

Activity

Show:
Ivan Senic
June 24, 2016, 2:27 PM
Ivan Senic
June 28, 2016, 1:34 PM

I just found out that this plug-in has Java8 as dependency. What should we do? Should we postpone it or go for it anyway at least to try it out. Then we can integrate with when we move to Java 8. Not sure?

Ivan Senic
July 1, 2016, 8:01 AM

We agreed we wanted to also check the wuff plugin and solve the complete dependency to eclipse and pdeBuild that we execute manually.

Ivan Senic
July 29, 2016, 12:05 PM

I tested the Wuff plugin and tried to make it work for us, but I hit the obstacles that i can not overcome at the moment.. First of all the plugin is far from stable, it's still in version 0.0.20 and it has over 80 issues on the GitHub.. A lot of people were complaining also about the problems I encountered, but the solutions are simply not there..

The first problem is about the eclipse version and the plugin does not support v3.8.2 that we use. But I found a way to overcome this and specify all needed properties on our own. But the second problem that I got was not solvable.. Apparently the plugin takes all the dependencies that you declare as compile and stores them in the maven repository it creates locally on your machine.. However any external dependencies that you might have, you need to provide via the update site.. It's because the Wuff wants to store them in the maven under the different organisation.. I tried combining this with bnd-platform, but this does not work because the update site created by bnd-platform is available after you run the updateSiteZip task.. But Wuff already complains in the configuration phase that dependencies are not existing (maybe this is solvable by calling the task during configuration).

Anyway I would like to split this up in separate tasks, so it's easier to integrate and plus we have enough benefits already with using bnd-platform plugin.

Alexander Wert
September 9, 2016, 6:31 AM

SUCCESS: Integrated in

inspectIT - Integration #193
INSPECTIT-2085: Introduced bnd-platform gradle plugin to handle OSGi (patrice.bouillet: 1a4ce9ced03d341ce88ad0155091a87ee748c025)

  • (edit) resources/target/inspectIT.target

  • (edit) inspectit.ui.rcp/src/main/resources/META-INF/MANIFEST.MF

  • (edit) inspectit.shared.cs/src/main/resources/META-INF/MANIFEST.MF

  • (edit) inspectit.ui.rcp/inspectit.ui.rcp.gradle

  • (edit) inspectit.ui.rcp/src/main/resources/inspectIT.product

  • (add) platform.gradle

  • (edit) inspectit.root.gradle

  • (edit) dependencies.gradle

  • (edit) inspectit.shared.all/src/main/resources/META-INF/MANIFEST.MF

  • (edit) properties.gradle

Fixed

Assignee

Ivan Senic

Reporter

Patrice Bouillet

Labels

None

Integrator

Patrice Bouillet

Components

Sprint

None

Fix versions

Priority

Low