On 11/10/2010 09:08 AM, Stefan abageru wrote:
Hi devs !
I thought about adding some changes in Events and Activity Stream.
First of all, I want to remove all the listeners from Activity Stream
and make this class listen to AllEvent, making it capable of cathcing
all events that occur in the wiki (and this way, when adding a new
event, you wouldn't need any modifications to this class in order to
catch it).
+1. Note that this will also require some changes to the
ActivityStreamImpl#onEvent method, since it always assumes that the
"source" parameter holds a XWikiDocument, and the "data" parameter
holds
a XWikiContent, which is not true for many types of events.
Since the implementation needs the context to work properly, for the
moment the fastest solution is to discard all events that don't come
with a context.
Secondly, I would like to modify onEvent function in
the class so that
it uses the simpleClassName of the event occurred in order to log the
event (the eventType would be this simpleClassName...for example
DocumentSavedEvent, AnnotationAddedEvent and so on).
+1.
And thirdly i thought about adding one field in
AbstractFilterableEvent
called /identifier/ and make all events extend directly this class. And
that /identifier/ would be used in a different way by the events
themselves. But it would be used to retrieve infos about that events.
And so, when logging an event, we could use classname + identifier.
For example
AnnotationAddedEvent + "This is my annotation" .
CommentAddedEvent + "This is my comment" or the number of the comment.
+0.5. Note that the identifier should be a real identifier, so I'd say
that the best choice is to use an EntityReference where possible.
ObjectReference for comments and annotations, AttachmentReference for
attachments, DocumentReference for documents.
--
Sergiu Dumitriu
http://purl.org/net/sergiu/