Florent Guillaume wrote:
On 16 Oct 2006, at 15:37, Jean-Marc Orliaguet wrote:
Florent Guillaume wrote:
On 16 Oct 2006, at 14:15, Florent Guillaume wrote:
The whiteboard pattern for events and dependencies is defined here:
http://www.osgi.org/documents/osgi_technology/whiteboard.pdf
Apparently the traditional Java pattern for synchronous event
subscription (used for extension) is of having each subscriber for
a given kind of event register with the event source -- the event
source maintains a list of people interested in it. This pattern
doesn't scale well, as the paper above explains, and has many
disadvantages (debugging, event observing, additionnal classes
needed, vector allocation, etc).
The Zope event model of having a registry between the event source
and the event listener is much better, and that's roughly what OSGi
calls the "whiteboard" pattern. In the Zope case the registry is
the adapter registry, in OSGi the bundle registry is used.
I mean, the service registry, of course.
Some people much prefer the whiteboard pattern over Eclipse
extension point:
http://www.mail-archive.com/[email protected]/msg00091.html
My question is: how does this compare to what we use in NXRuntime?
What's our pattern?
Florent
I think that's more or less what I have in:
http://svn.nuxeo.org/trac/nuxeo/browser/NXThemes/NXThemesCore/trunk/src/org/nuxeo/theme/events
EventManager.java is the event registry, event types are stored in a
central type registry.
all event listeners (handlers) have an event type, and the event type
is used as a key to look up events by type.
event sources call a Manager.notify(context) by passing an event
context (with the event source and the event target), and the event
manager finds listeners and call handle(context) on them
but that's more or less the way it was implemented in CPS3 already,
with a central registry?
What the paper advocates is to reuse the OSGi registry itself as the
central registry for this kind of thing.
It's able to do matching on arbitrary properties to find the
service/component to use.
OK, so it's both the pattern and the implementation that are proposed in
the article, maybe that's because it's designed for java-based devices,
and OSGi is a common denominator for the devices.
It's very possible you won't like it because it reminds you too much
of the central Zope 3 adapter registry :) But I'm sure this has
advantages.
Florent
or the win32 registry? :-)
/JM
_______________________________________________
ECM mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm