On 11/4/15 06:52 , i...@cuhka.com wrote:
I 'solved' it by restarting the device. I rather don't, as I like
solution where I can upgrade functionality without shutting down.
You don't need to shut down, you just need to refresh the framework. If
you update A and S, the old version of A is still hanging around because
X1 is using it. So, you have your framework state in somewhat of an "in
between" stage. Refreshing things gets everything back in shape. There
are very few rare instances where you would not want to refresh after an
update or an uninstall...99% of the time, you should refresh after
either of those operations.
-> richard
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
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@felix.apache.org
For additional commands, e-mail: users-h...@felix.apache.org