I 'solved' it by restarting the device. I rather don't, as I like
solution where I can upgrade functionality without shutting down.
Basically my structure is as follows:
Bundle A: API
Bundle S: Service (uses and provides some API implementation from A)
Bundle X1..N: Provide functionality for S using the extender pattern,
use and provide some API implementation from A)
I updated A and S. For the X bundles the API change wasn't important,
but for S it was. Somehow S still picked up old-A, while I had
uninstalled old-A (and old-S). I have updated my tooling from 'THE
OSGi plugin' from Gradle to use 'the bnd OSGi plugin'. I noticed that
the old plugin would automatically add A's package as Export-Bundle,
while with bnd's plugin I had to do that myself. Maybe that caused the
problem.
Maurice.
Citeren Neil Bartlett <njbartl...@gmail.com>:
On 4 Nov 2015, at 11:07, Robert Onslow <robert.ons...@gmail.com> wrote:
Delete the directory called felix-cache??
No, in his second email he says that other bundles are still running
that use the old API. So we’re talking about a series of changes
made in a running OSGi Framework, and it wouldn’t be a good idea to
delete the storage directory underneath a running framework.
These changes *should* work. Best guess is that the implementation
bundle ships its own copy of the API bundle.
As a general rule, you should do a refresh after a series of changes
to bundle states (installs, uninstalls or updates). You can do this
simply with the “refresh” command in the Gogo shell. In this
scenario, a refresh would cause all the bundles that import from the
API bundle to stop and revert to INSTALLED state.
Regards,
Neil
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@felix.apache.org
For additional commands, e-mail: users-h...@felix.apache.org