Dear all,
I pray you are well.
I hope this is the right group to post this to - please forgive me if not and I'll post it to the bndtools-users group.
I have started hacking on bndtools/bnd with the eventual goal of adding a new feature. I have managed to successfully build the workspace and launch the target Eclipse with Bnd/Bndtools installed; however I'm having trouble getting bnd/bndtools to consistently recognise my changes.
At the moment I haven't changed much - mostly adding a bunch of System.err.println()s around the place so I can figure out the execution flow. However, I've noticed that Bndtools doesn't always pick up the changes in the target platform. It seems that no amount of force-cleaning the workspace (either in the main Bnd workspace, or else in the test workspace loaded by the target environment).
For example, I added some println()'s and modified some of the trace() statements in the activator for the biz.aQute.junit bundle. I can see these changes take effect when I run some JUnit tests in the target environment. However, when I later edit some of these trace messages it becomes apparent that the later changes haven't been recognised.
I think that at least part of this has something to do with bundles being cached in cnf/cache/bnd-cache. However, my workaround for this is a little laborious - I have to delete the subdirectories of bnd-cache, then exit the target platform, and then restart it again (if I don't restart it, I get a classloading error when it can't find the deleted bundles).
A couple of thoughts here for possibilities:
1. Given that you guys are doing dev on Bnd/Bndtools all the time, and presumably using this workflow successfully to develop/test bnd/bndtools, there is an easy way around it that I'm not aware of.
2. There is a peculiarity of how it works on Windows 10 which doesn't manifest on Linux that is preventing these bundles from being automatically updated.
I'm also curious (and possibly related to the above) - how does Eclipse actually find the bnd bundles at runtime? I noticed that they are not in the set of bundles installed into Equinox in the test environment, nor are they included in the bndtools .bndrun files, yet somehow the target environment seems to be able to find them? Is this Bnd/Bndtools doing some magic behind the scenes to automatically download these bundles from somewhere?
Any thoughts/comments/tips appreciated.
Blessings,
Fr Jeremy Krieg