History Support in Multi-User Chant

Hi. First of all I want to mention how impressed/appreciative I am of the level of documentation within the code … at least for the MUC code which is all I have looked at. The class hierarchy and general design also seems great.

Within some internal usage scenarios, it is important for full history to be supported within persistent MUC rooms. Currently there is some history supported, but it only persists as long as there are users in the room … ie when the last user exits a room, Messenger (I think) must release the MUCRoomImpl instance associated for the room, which causes the memory-based history for the room to also be released. If the room is activated again …say because a user enters it, and new MUCRoomImpl is properly instantiated along with its MUCRoomHistory/MUCHistoryStrategy, but all previous history is long.

This is a known issue in Messenger, and has been posted as a bug and something to be addressed in a future release. The bug stated that history needs to be preserved in a database table in order to persist.

My main reason for posting this query is whether the current MUCConversationLog table, could be used as a persistent history. Of course, this table is only written to if the room was configured to ‘‘log’’, but otherwise it looked to me like it had the kind of info needed to persist history.

I modified a few classes (2.0.1) such that when a MUCRoomImpl is instantiated and populated from the database (via the MUCPersistenceManager), the MUCConversation log records for the room are also read in and fed to the MUCRoomHistory object. This seemed to work … of course I’'m new to Jabbber/IM and there are probably a lot of nuances that I have not captured for the history.

But I wanted to ask whether what I did has serious drawbacks, while I wait for persistent history to be supported?

Hey Prashant,

Hi. First of all I want to mention how

impressed/appreciative I am of the level of

documentation within the code … at least for the MUC

code which is all I have looked at. The class

hierarchy and general design also seems great.

:). Cool you liked the documentation within the code.

I modified a few classes (2.0.1) such that when a

MUCRoomImpl is instantiated and populated from the

database (via the MUCPersistenceManager), the

MUCConversation log records for the room are also

read in and fed to the MUCRoomHistory object. This

seemed to work … of course I’'m new to Jabbber/IM and

there are probably a lot of nuances that I have not

captured for the history.

We have already implemented persistency of rooms history. As you can see in url=http://www.jivesoftware.org/issues/browse/JM-40 this Jira issue[/url] it will be available in the next release. The approach we used is similar to the one you mentioned. As you realized only rooms that are logging their conversations will be able to have their history in the database too.

Regards,

– Gato

Great, thanks. Probably not the appropriate place to ask this, but when is the next release that will incorporate this feature?

We plan to release 2.1.0 Beta this week. Depending on how well that goes, the official release will follow soon after.

Regards,

Matt