This is driving me mad. I have two bundles A and B. B track the service
offered by A.
However if I call update on A then I get a remove Service notification but
no add Service notification - that is until I issue a refresh command ? is
this a bug?
I have written the same simple code 10 time .. see the results.
I have attached the two bundles and the two eclipse plugin projects (as one
zip) - just in case a Eclipse/OSGi guru like yourself can figure it out?
========================================
C:\eg>java -jar equinox.osgi.jar -console
osgi> ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.0.v20071207
osgi> install file:bundleA_1.0.0.jar
Bundle id is 1
osgi> install file:bundleB_1.0.0.jar
Bundle id is 2
osgi> ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.0.v20071207
1 INSTALLED bundleA_1.0.0
2 INSTALLED bundleB_1.0.0
osgi> start 1
osgi> start 2
addingService
osgi> stop 1
removedService
osgi> start 1
addingService
osgi> update 1
removedService <----- no add !
osgi> stop 2
osgi> start 2
osgi> refresh <- Only get add after refresh
osgi> addingService
osgi>
On 25/01/2008, Neil Bartlett <njbartlett@xxxxxxxxx > wrote:
Hi Mark,
Many thanks for your kind words!
Regarding the service tracker problem... that's not the behaviour I would
expect to see, and I've just put together a small test case which prints a
message in the addingService, removedService and modifiedService methods of
the ServiceTracker. When I update the bundle that registered the service, I
see the following:
osgi> update 5
Removed service
Added service
osgi>
Which seems to be the way it should work. I suggest posting a message to
the equinox-dev mailing list (
https://dev.eclipse.org/mailman/listinfo/equinox-dev) explaining the problem
in detail and including a minimal code sample that reproduces the problem.
Regards,
Neil
On 25 Jan 2008, at 13:42, Mark wrote:
Neil,
First off I have to thank you in a big way, because it was you articles
that got me up and running on OSGI.
I am also glad that you are putting together a book... because I was
thinking about it myself...in practice or in action!, would you like some
help?
..Anyway the reason for this mail...
I was looking at the Listeners Considered Harmful: The "Whiteboard"
Pattern white paper, and I put together a very simple two bundle example (on
Equinox),
Bundle A (offers a service)
Bundle B (consumes service A, using a Service Tracker)
So far so good, and not exactly rocket science.
However this morning I discovered that if you update A - then you must
refresh A in order for B to receive the added service event.
This came as a surprise, go I Googled a while, and came up short. So I was
wondering if you had some words of widom for me on this ?
Kind Regards
Mark
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev