On Dec 20, 2011, at 11:56 AM, Sergiu Dumitriu wrote:
On 12/20/2011 04:24 AM, Vincent Massol wrote:
Hi devs,
Right now the Message Stream feature is split in several places:
* xwiki-platform-messagestream/ for the API
* xwiki-platform-user/xwiki-platform-user-ui for the Network tab of the user profile
(XWikiUserNetworkSheet.xml)
* xwiki-enterprise-ui/, in :
** Activity.xml which contains both the AS and the UI to post user messages
** MessageStreamConfig.xml: the admin page for message stream
My proposal is to have instead:
xwiki-platform-messagestream/
|_ xwiki-platform-messagestream-api/
|_ xwiki-platform-messagestream-ui/
Where xwiki-platform-messagestream-ui/ will contain:
* XWikiUserNetworkSheet.xml as is (moved from
xwiki-platform-user/xwiki-platform-user-ui)
* MessageStreamConfig.xml as is (moved from xwiki-enterprise-ui/)
* Creation of a new page (we need to find a name for it), for example:
Main.MessageStream, which will contain the UI to post user messages and which will be
included from Main.Activity
Here's my +1
If you can think of a better split for Activity.xml please put it forward.
+1 in general.
There are more references to the message stream in the activity macro other than the form
for posting new messages. At the moment it would be hard to have a perfectly clean
separation, so moving out just the form will make only a minor dent in the dependency
between activity and messagestream.
Yep I realized this but that's the simplest I could think of to do right now without
too much work. The next step is indeed to think about extensibility of the AS.
Seen how the AS is written ATM, I think it should be discarded and recoded in Java (for
the logic part). In the current state:
* It's unmaintainable. I've looked at it several times, spending several hours on
it and abandoning every time.
* It's very badly written in term of performance. It does hundreds and thousands of
queries to the DB. It's on the home page thus visible to everyone using xwiki and
it's doing a disservice to us (it takes 6-7 seconds to load on our HSQLDB/Jetty
distribution and a lot more on Oracle)