void add(@Nonnull final MUCRoom room)
    {
        final Lock lock = ROOM_CACHE.getLock(room.getName());
        lock.lock();
        try {
            Log.trace("Adding room '{}' of service '{}'", room.getName(), serviceName);
            final MUCRoom oldValue = ROOM_CACHE.put(room.getName(), room);
            localRooms.put(room.getName(), room);
            updateNonPersistentRoomStat(oldValue, room);
        } finally {
            lock.unlock();
        }

        GroupEventDispatcher.addListener(room); // TODO this event listener is added only in the node where the room is created. Does this mean that events are not propagated in a cluster?
        UserEventDispatcher.addListener(room);
    }
Adds a room instance to this manager.

@param room The room to be added.
xmppserver/src/main/java/org/jivesoftware/openfire/muc/spi/LocalMUCRoomManager.java