Activity Stream Refactoring 6.2 Extensibility
Description
Event types
Both on the UI side and on the backend side, the AS module lacks extensibility. Currently, if we want to add a new type of event, we need to alter and rebuild the backend and UI code to store and display it.
A relatively good example of this is the MessageStream component that provides messages based on AS events. It was not trivial to integrate it into AS and a lot of rewriting and inter-whiring was required.
Event parameters
Additionally to extending new event types, we also need to handle the variable structure of events. Currently, we only support 5 parameters for events through the fields param1...param5. This is not flexible enough for some cases and we should support either:
- a named map of parameters or
- at least an unbounded list of parameters
see XWIKI-7554.
Event displayers
Finally, we need to allow new events to render themselves in a custom way, should they need it. The default rendering should be generic, but any particular extra UI should be handled by the application that issues the new events.
Eduard Moraru