On Wed, 2015-11-04 at 18:45 +0100, Carsten Ziegeler wrote:
> The current active model for observation event for resources through
> OSGi events is modelled after JCR observation which means that for
> changes to a tree you might only get an event for the root of that
> tree.
> Especially when a whole tree is deleted, you get a single event.
> I assume, the same could in theory be true for adding.

Just to make sure I understand correctly:

- when a tree at /foo is deleted we get a single event which says that
the node at /foo is deleted, but we do not know which children were
removed - we only get a single path
- when a tree at /bar is added, we get a single event but we get all
the date about the resources under /bar, e.g. /bar/one/two/three

Is that correct?

> The question is, whether we want to keep this model for the
> observation
> API we're about to implement. Especially as there are some additional
> things to consider:
> 
> 1. With Oak we could register observation listener which provide the
> information about every node removed/added/changed. So we can send
> out
> detailed events. Other resource provider implementations could simply
> follow that concept.
> 
> 2. We have three events for resources: added/removed/changed but also
> two events for resource providers. Obviously, if a resource provider
> is
> mounted at some path and is unregistered, the whole tree is removed.
> Again, we just send out a single event.
> 
> For 2. we definitely don't want to send out an event for every
> resource
> of that provider as that would be way too expensive.
> 
> For 1. we might start sending out too many events as well and I
> assume
> code is already prepared for that case.
> 
> I think we should keep the optimization (and make this clear in the
> new
> observation API) 

+1

> and we probably should collapse the two special
> resource provider events into resource events: instead of sending out
> a
> resource provider added/removed, we send out a resource
> added/removed.
> Listeners right now usually handle all five events, and we could
> reduce
> this to three events, making everything compacter, nicer and easier
> to
> understand.

I think simplifying the listeners is good, but I wonder whether anyone
actually listens to the resource provider added/removed events. Perhaps
we can have a separate listener for those?

Robert

Reply via email to