Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Efxclipse/BndtoolsSupport
Contents
Bndtools Support
This page is used to collect information about how to support bndtools.
Contributions are welcome ;-)
This is our root bug for the support: Bug 414418
Build system
runtime repository
bndtools uses repositories to access bundles (similar to pde's target platform). It seems that bnd has no p2 repository plugin, so we need to provide a bnd compatible repository to access the efxclipse runtime
for now we use the maven-bundle-plugin to create a repository.xml index file within our p2 page.
The documentation of the plugin claims that it is an OBR index.
Our nightly update site already contains the index: nightly repository.xml
Should we use an R5 index instead? I have not yet found a maven plugin to generate R5.
tooling
wizards
we need some new project wizards to create
- e4fx bnd project
- fx bnd project
- bnd cnf project
automatic classpath management
in pde we add some dependencies automatically to the classpath.
How do we solve this for bndtools?
launching
bndtools comes with its own launcher. It uses .bndrun files to describe the osgi setup to be launched. we need to generate a default .bndrun file, so that users can instantly start their applications.
Issues
resolver issue with org.eclipse.osgi from our own repo
Our runtime repository provides everything needed to launch an e4fx application. However if bndtools tries to resolve with our bundled equinox implementation it always fails.
Unable to resolve <<INITIAL>> version=null: missing requirement Require[osgi.identity]{}{filter=(osgi.identity=dummy)} [caused by: Unable to resolve dummy version=0.0.0: missing requirement Require[osgi.wiring.package]{}{filter=(osgi.wiring.package=javafx.application)} [caused by: Unable to resolve org.eclipse.fx.javafx version=2.2.0.201411100602: missing requirement Require[osgi.ee]{}{filter=(|(osgi.ee=JavaSE-1.7))}]]
If it uses org.eclipse.osgi from bundlehub it succeds. Both are the same version.. I suspect the index to be at fault...
developing e4fx applications with bndtools
Issues
bnd development cycle and e4
bndtools rebuilds on every change the resulting bundle and updates it in the running osgi container. It seems that the e4 platform cannot handle dynamic changes correctly and the application will somehow fail afterwards.