I was inspecting the MUC classes in the OF project and noticed some things that are different from XEP-0045 and some things that would be nice to be implemented.
1. Delayed messages
Accordingly to the section 7.2.14 Discussion History, "The 'from' attribute MUST be set to the JID of the room itself" (from attribute of <delay> tag).
However, in the MUCRoomHistory class, the 'from' attribute is set with the user JID (if the room.canAnyoneDiscoverJID() then from={real user JID} else from={muc user JID}).
An example from this section is
<message
from='coven@chat.shakespeare.lit/firstwitch'
id='162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2'
to='hecate@shakespeare.lit/broom'
type='groupchat'>
<body>Thrice the brinded cat hath mew'd.</body>
<delayxmlns='urn:xmpp:delay'
from='coven@chat.shakespeare.lit'
stamp='2002-10-13T23:58:37Z'/>
</message>
Futhermore, if the room.canAnyoneDiscoverJID(), in other words, "If the room is non-anonymous, the service MAY include an Extended Stanza Addressing (XEP-0033) [16] element that notes the original full JID of the sender by means of the "ofrom" address type:"
<message
from='coven@chat.shakespeare.lit/firstwitch'
id='162BEBB1-F6DB-4D9A-9BD8-CFDCC801A0B2'
to='hecate@shakespeare.lit/broom'
type='groupchat'>
<body>Thrice the brinded cat hath mew'd.</body>
<delayxmlns='urn:xmpp:delay'
from='coven@chat.shakespeare.lit'
stamp='2002-10-13T23:58:37Z'/>
<addressesxmlns='http://jabber.org/protocol/address'>
<addresstype='ofrom'jid='crone1@shakespeare.lit/desktop'/>
</addresses>
</message>
2. Notification of Configuration Changes
If the user changes the room configuration, the occupants are not notified about that.
In the XEP-0045 section 10.2.1 Notification of Configuration Changes, we have "A room MUST send notification to all occupants when the room configuration changes in a way that has an impact on the privacy or security profile of the room."
It should be implemented in the IQOwnerHandler.processConfigurationForm() method, returning messages with one of these status: 170, 171, 172, 173 or 104.
I'm implementing these issues. ASAP I will submit in my fork branch.