This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new aad4ad9  [OPENMEETINGS-2177] room import seems to work
aad4ad9 is described below

commit aad4ad938faa736ac6290eeaba3b03ccc1e4404b
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Mar 3 16:58:32 2020 +0700

    [OPENMEETINGS-2177] room import seems to work
---
 .../org/apache/openmeetings/core/remote/KRoom.java |   2 +-
 .../openmeetings/core/remote/KurentoHandler.java   |   6 +-
 .../openmeetings/core/remote/StreamProcessor.java  |  16 +-
 .../core/util/ChatWebSocketHelper.java             |   2 +-
 .../core/remote/TestRoomFlowMocked.java            |   6 +-
 .../org/apache/openmeetings/db/bind/Constants.java |   2 +
 .../db/bind/adapter/RoomElementAdapter.java        |  60 ++++++++
 .../db/bind/adapter/RoomTypeAdapter.java           |  28 ++--
 .../apache/openmeetings/db/dao/room/RoomDao.java   |   8 +-
 .../openmeetings/db/entity/basic/Client.java       |   6 +-
 .../apache/openmeetings/db/entity/room/Room.java   | 162 +++++++++++++--------
 .../openmeetings/db/entity/room/RoomModerator.java |  18 ++-
 .../apache/openmeetings/db/util/AuthLevelUtil.java |  16 +-
 .../openmeetings/db/util/TestAuthLevelUtil.java    |   8 +-
 .../apache/openmeetings/backup/BackupImport.java   |  21 +--
 .../installation/ImportInitvalues.java             |  20 +--
 .../service/calendar/caldav/IcalUtils.java         |   2 +-
 .../openmeetings/web/admin/rooms/RoomForm.java     |   2 +-
 .../openmeetings/web/app/QuickPollManager.java     |   4 +-
 .../apache/openmeetings/web/app/TimerService.java  |   2 +-
 .../apache/openmeetings/web/room/RoomPanel.java    |  66 ++++-----
 .../web/room/activities/ActivitiesPanel.java       |  28 ++--
 .../openmeetings/web/room/menu/ActionsSubMenu.java |  16 +-
 .../openmeetings/web/room/menu/PollsSubMenu.java   |  10 +-
 .../openmeetings/web/room/menu/RoomMenuPanel.java  |   6 +-
 .../web/room/sidebar/RoomClientPanel.java          |   8 +-
 .../openmeetings/web/room/sidebar/RoomSidebar.java |  24 +--
 .../web/room/sidebar/icon/KickIcon.java            |   2 +-
 .../web/room/sidebar/icon/UserSpeaksIcon.java      |   2 +-
 .../room/sidebar/icon/right/AudioRightIcon.java    |   2 +-
 .../sidebar/icon/right/ModeratorRightIcon.java     |   2 +-
 .../sidebar/icon/right/MuteOthersRightIcon.java    |   2 +-
 .../sidebar/icon/right/PresenterRightIcon.java     |   4 +-
 .../sidebar/icon/right/RemoteControlRightIcon.java |   2 +-
 .../web/room/sidebar/icon/right/RoomRightIcon.java |   6 +-
 .../sidebar/icon/right/ScreenShareRightIcon.java   |   2 +-
 .../room/sidebar/icon/right/VideoRightIcon.java    |   2 +-
 .../sidebar/icon/right/WhiteboardRightIcon.java    |   6 +-
 .../openmeetings/web/room/wb/InterviewWbPanel.java |   2 +-
 .../apache/openmeetings/web/room/wb/WbPanel.java   |  18 +--
 .../web/user/calendar/AppointmentDialog.java       |   4 +-
 .../openmeetings/web/user/chat/ChatPanel.java      |   4 +-
 .../apache/openmeetings/AbstractJUnitDefaults.java |   2 +-
 .../org/apache/openmeetings/backup/TestImport.java |  11 ++
 .../calendar/TestAppointmentAddAppointment.java    |   2 +-
 .../apache/openmeetings/db/dao/TestRoomDao.java    |  12 +-
 .../openmeetings/webservice/TestRoomService.java   |  12 +-
 .../openmeetings/webservice/TestWbService.java     |   2 +-
 .../org/apache/openmeetings/backup/room/rooms.xml  |  64 ++++++++
 49 files changed, 443 insertions(+), 271 deletions(-)

diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
index 86f04b3..9da2117 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
@@ -145,7 +145,7 @@ public class KRoom {
                if (recordingStarted.compareAndSet(false, true)) {
                        log.debug("##REC:: recording in room {} is starting 
::", roomId);
                        Room r = c.getRoom();
-                       boolean interview = Room.Type.interview == r.getType();
+                       boolean interview = Room.Type.INTERVIEW == r.getType();
 
                        Date now = new Date();
 
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
index 59954f7..88942db 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
@@ -245,13 +245,13 @@ public class KurentoHandler {
                boolean r = false;
                switch (a) {
                        case AUDIO:
-                               r = c.hasRight(Right.audio);
+                               r = c.hasRight(Right.AUDIO);
                                break;
                        case VIDEO:
-                               r = !room.isAudioOnly() && 
c.hasRight(Right.video);
+                               r = !room.isAudioOnly() && 
c.hasRight(Right.VIDEO);
                                break;
                        case AUDIO_VIDEO:
-                               r = !room.isAudioOnly() && 
c.hasRight(Right.audio) && c.hasRight(Right.video);
+                               r = !room.isAudioOnly() && 
c.hasRight(Right.AUDIO) && c.hasRight(Right.VIDEO);
                                break;
                        default:
                                break;
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
index d6f54aa..d3efd1c 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
@@ -140,7 +140,7 @@ public class StreamProcessor implements IStreamProcessor {
                                osd = c.getScreenStream();
                                if (recordingAllowed(c)) {
                                        Room r = c.getRoom();
-                                       if (Room.Type.interview == r.getType()) 
{
+                                       if (Room.Type.INTERVIEW == r.getType()) 
{
                                                log.warn("This shouldn't be 
called for interview room");
                                                break;
                                        }
@@ -213,10 +213,10 @@ public class StreamProcessor implements IStreamProcessor {
 
                if (!activityAllowed(c, a, c.getRoom())) {
                        if (a == Activity.AUDIO || a == Activity.AUDIO_VIDEO) {
-                               c.allow(Room.Right.audio);
+                               c.allow(Room.Right.AUDIO);
                        }
                        if (!c.getRoom().isAudioOnly() && (a == Activity.VIDEO 
|| a == Activity.AUDIO_VIDEO)) {
-                               c.allow(Room.Right.video);
+                               c.allow(Room.Right.VIDEO);
                        }
                }
                if (activityAllowed(c, a, c.getRoom())) {
@@ -297,7 +297,7 @@ public class StreamProcessor implements IStreamProcessor {
                        if (streams.isEmpty()) {
                                log.info("No more screen streams in the room, 
stopping sharing");
                                room.stopSharing();
-                               if (Room.Type.interview != room.getType() && 
room.isRecording()) {
+                               if (Room.Type.INTERVIEW != room.getType() && 
room.isRecording()) {
                                        log.info("No more screen streams in the 
non-interview room, stopping recording");
                                        room.stopRecording(this, null);
                                }
@@ -320,10 +320,10 @@ public class StreamProcessor implements IStreamProcessor {
                        return false;
                }
                Room r = c.getRoom();
-               return r != null && Room.Type.interview != r.getType()
-                               && !r.isHidden(RoomElement.ScreenSharing)
+               return r != null && Room.Type.INTERVIEW != r.getType()
+                               && !r.isHidden(RoomElement.SCREEN_SHARING)
                                && r.isAllowRecording()
-                               && c.hasRight(Right.share);
+                               && c.hasRight(Right.SHARE);
        }
 
        public boolean screenShareAllowed(Client c) {
@@ -417,7 +417,7 @@ public class StreamProcessor implements IStreamProcessor {
 
        public boolean hasRightsToRecord(Client c) {
                Room r = c.getRoom();
-               return r != null && r.isAllowRecording() && 
c.hasRight(Right.moderator);
+               return r != null && r.isAllowRecording() && 
c.hasRight(Right.MODERATOR);
        }
 
        public boolean recordingAllowed(Client c) {
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
index 532ff32..aad82d3 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
@@ -118,7 +118,7 @@ public class ChatWebSocketHelper extends WebSocketHelper {
                        publish(new WsMessageChat(m, msg));
                }
                sendRoom(m.getToRoom().getId(), msg
-                               , c -> !m.isNeedModeration() || 
(m.isNeedModeration() && c.hasRight(Right.moderator))
+                               , c -> !m.isNeedModeration() || 
(m.isNeedModeration() && c.hasRight(Right.MODERATOR))
                                , (o, c) -> setDates(o, m, c.getUser(), false));
        }
 
diff --git 
a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
 
b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
index 08a4685..986562f 100644
--- 
a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
+++ 
b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
@@ -107,7 +107,7 @@ public class TestRoomFlowMocked extends BaseMockedTest {
                c.getRoom().setId(ROOM_ID);
                c.getRoom().setAllowRecording(true);
                assertFalse(streamProcessor.recordingAllowed(c));
-               c.allow(Room.Right.moderator);
+               c.allow(Room.Right.MODERATOR);
                when(roomDao.get(ROOM_ID)).thenReturn(c.getRoom());
                assertTrue(streamProcessor.recordingAllowed(c));
        }
@@ -128,7 +128,7 @@ public class TestRoomFlowMocked extends BaseMockedTest {
        private Client getClientFull() {
                Client c = getClientWithRoom();
                c.getRoom().setAllowRecording(true);
-               c.allow(Room.Right.moderator);
+               c.allow(Room.Right.MODERATOR);
                return c;
        }
 
@@ -136,7 +136,7 @@ public class TestRoomFlowMocked extends BaseMockedTest {
        public void testWannaRecord2() throws Exception {
                JSONObject msg = new JSONObject(MSG_BASE.toString()).put("id", 
"wannaRecord");
                Client c = getClientFull();
-               c.getRoom().setType(Room.Type.interview);
+               c.getRoom().setType(Room.Type.INTERVIEW);
                when(roomDao.get(ROOM_ID)).thenReturn(c.getRoom());
                handler.onMessage(c, msg);
        }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/Constants.java 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/Constants.java
index 677770b..1b85664 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/Constants.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/Constants.java
@@ -31,4 +31,6 @@ public class Constants {
        public static final String OAUTH_NODE = "OAuthServer";
        public static final String USER_LIST_NODE = "users";
        public static final String USER_NODE = "user";
+       public static final String ROOM_LIST_NODE = "rooms";
+       public static final String ROOM_NODE = "room";
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomElementAdapter.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomElementAdapter.java
new file mode 100644
index 0000000..aec4f01
--- /dev/null
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomElementAdapter.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.db.bind.adapter;
+
+import static org.apache.openmeetings.db.bind.adapter.CDATAAdapter.CDATA_BEGIN;
+import static org.apache.openmeetings.db.bind.adapter.CDATAAdapter.CDATA_END;
+
+import java.util.Locale;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.wicket.util.string.Strings;
+
+public class RoomElementAdapter extends XmlAdapter<String, Room.RoomElement> {
+
+       @Override
+       public String marshal(Room.RoomElement v) throws Exception {
+               return CDATA_BEGIN + v.name().toUpperCase(Locale.ROOT) + 
CDATA_END;
+       }
+
+       @Override
+       public Room.RoomElement unmarshal(String v) throws Exception {
+               if ("TopBar".equals(v)) {
+                       return Room.RoomElement.TOP_BAR;
+               }
+               if ("ActionMenu".equals(v)) {
+                       return Room.RoomElement.ACTION_MENU;
+               }
+               if ("PollMenu".equals(v)) {
+                       return Room.RoomElement.POLL_MENU;
+               }
+               if ("ScreenSharing".equals(v)) {
+                       return Room.RoomElement.SCREEN_SHARING;
+               }
+               if ("MicrophoneStatus".equals(v)) {
+                       return Room.RoomElement.MICROPHONE_STATUS;
+               }
+               if ("UserCount".equals(v)) {
+                       return Room.RoomElement.USER_COUNT;
+               }
+               return Strings.isEmpty(v) ? null : 
Room.RoomElement.valueOf(v.toUpperCase(Locale.ROOT));
+       }
+}
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomTypeAdapter.java
similarity index 55%
copy from 
openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java
copy to 
openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomTypeAdapter.java
index 2b68dac..f37cbd4 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomTypeAdapter.java
@@ -16,28 +16,26 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.web.room.sidebar.icon.right;
+package org.apache.openmeetings.db.bind.adapter;
 
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.room.Room.Right;
-import org.apache.openmeetings.db.entity.room.Room.RoomElement;
+import static org.apache.commons.lang3.math.NumberUtils.toInt;
+import static org.apache.openmeetings.db.bind.adapter.CDATAAdapter.CDATA_BEGIN;
+import static org.apache.openmeetings.db.bind.adapter.CDATAAdapter.CDATA_END;
 
-public class PresenterRightIcon extends RoomRightIcon {
-       private static final long serialVersionUID = 1L;
+import javax.xml.bind.annotation.adapters.XmlAdapter;
 
-       public PresenterRightIcon(String id, String uid) {
-               super(id, uid, Right.presenter);
-               mainCssClass = "right presenter bumper ";
-       }
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.wicket.util.string.Strings;
+
+public class RoomTypeAdapter extends XmlAdapter<String, Room.Type> {
 
        @Override
-       protected String getTitle() {
-               return getString(String.format("ulist.right.presenter.%s", 
isSelf() ? "request" : (hasRight() ? "revoke" : "grant")));
+       public String marshal(Room.Type v) throws Exception {
+               return CDATA_BEGIN + v.getId() + CDATA_END;
        }
 
        @Override
-       protected boolean visible() {
-               Room r = getRoom();
-               return Room.Type.interview != r.getType() && 
!r.isHidden(RoomElement.Whiteboard) && super.visible();
+       public Room.Type unmarshal(String v) throws Exception {
+               return Strings.isEmpty(v) ? null : Room.Type.get(toInt(v));
        }
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
index f8a7353..9d415d4 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
@@ -235,11 +235,11 @@ public class RoomDao implements 
IGroupAdminDataProviderDao<Room> {
                        room.setName(name);
                        room.setType(type);
                        room.setComment("My Rooms of ownerId " + ownerId);
-                       room.setCapacity(Room.Type.conference == type ? 25L : 
120L);
+                       room.setCapacity(Room.Type.CONFERENCE == type ? 25L : 
120L);
                        room.setAllowUserQuestions(true);
                        room.setOwnerId(ownerId);
                        room.setAllowRecording(true);
-                       room.hide(RoomElement.MicrophoneStatus);
+                       room.hide(RoomElement.MICROPHONE_STATUS);
 
                        room = update(room, ownerId);
                        if (room.getId() != null) {
@@ -296,8 +296,8 @@ public class RoomDao implements 
IGroupAdminDataProviderDao<Room> {
 
        public List<Room> getMyRooms(Long userId, String confLbl, String 
restrLbl) {
                List<Room> result = new ArrayList<>();
-               result.add(getUserRoom(userId, Room.Type.conference, confLbl));
-               result.add(getUserRoom(userId, Room.Type.presentation, 
restrLbl));
+               result.add(getUserRoom(userId, Room.Type.CONFERENCE, confLbl));
+               result.add(getUserRoom(userId, Room.Type.PRESENTATION, 
restrLbl));
                result.addAll(getAppointedRoomsByUser(userId));
                return result;
        }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index 36bfe1c..c2302ef 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -133,10 +133,10 @@ public class Client implements IDataProviderEntity, 
IWsClient {
        }
 
        public boolean hasRight(Right right) {
-               if (Right.superModerator == right) {
+               if (Right.SUPER_MODERATOR == right) {
                        return rights.contains(right);
                }
-               return rights.contains(Right.superModerator) || 
rights.contains(Right.moderator) || rights.contains(right);
+               return rights.contains(Right.SUPER_MODERATOR) || 
rights.contains(Right.MODERATOR) || rights.contains(right);
        }
 
        public Client allow(Right... inRights) {
@@ -470,7 +470,7 @@ public class Client implements IDataProviderEntity, 
IWsClient {
                                this.swidth = 800;
                                this.sheight = 600;
                        } else if (StreamType.WEBCAM == type) {
-                               boolean interview = room != null && 
Room.Type.interview == room.getType();
+                               boolean interview = room != null && 
Room.Type.INTERVIEW == room.getType();
                                this.swidth = interview ? 320 : width;
                                this.sheight = interview ? 260 : height;
                        }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
index fcd6297..13bb53b 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.db.entity.room;
 
+import static org.apache.openmeetings.db.bind.Constants.ROOM_NODE;
+
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -42,21 +44,26 @@ import javax.persistence.NamedQuery;
 import javax.persistence.OneToMany;
 import javax.persistence.Table;
 import javax.persistence.Transient;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.ElementDependent;
 import org.apache.openjpa.persistence.FetchAttribute;
 import org.apache.openjpa.persistence.FetchGroup;
 import org.apache.openjpa.persistence.FetchGroups;
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
+import org.apache.openmeetings.db.bind.adapter.CDATAAdapter;
+import org.apache.openmeetings.db.bind.adapter.IntAdapter;
+import org.apache.openmeetings.db.bind.adapter.LongAdapter;
+import org.apache.openmeetings.db.bind.adapter.RoomElementAdapter;
+import org.apache.openmeetings.db.bind.adapter.RoomTypeAdapter;
 import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.user.Group;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.ElementList;
-import org.simpleframework.xml.Root;
 
 @Entity
 @FetchGroups({
@@ -85,9 +92,7 @@ import org.simpleframework.xml.Root;
 @Table(name = "room", indexes = {
                @Index(name = "room_name_idx", columnList = "name")
 })
-@Root(name = "room")
-@XmlRootElement
-@XmlAccessorType(XmlAccessType.FIELD)
+@XmlRootElement(name = ROOM_NODE)
 public class Room extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        public static final int CONFERENCE_TYPE_ID = 1;
@@ -96,36 +101,36 @@ public class Room extends HistoricalEntity {
 
        @XmlType(namespace="org.apache.openmeetings.room.right")
        public enum Right {
-               superModerator
-               , moderator
-               , presenter
-               , whiteBoard
-               , share
-               , remoteControl
-               , audio
-               , video
-               , muteOthers
+               SUPER_MODERATOR
+               , MODERATOR
+               , PRESENTER
+               , WHITEBOARD
+               , SHARE
+               , REMOTE_CONTROL
+               , AUDIO
+               , VIDEO
+               , MUTE_OTHERS
        }
 
        @XmlType(namespace="org.apache.openmeetings.room.element")
        public enum RoomElement {
-               TopBar
-               , Chat
-               , Activities
-               , Files
-               , ActionMenu
-               , PollMenu
-               , ScreenSharing
-               , Whiteboard
-               , MicrophoneStatus
-               , UserCount
+               TOP_BAR
+               , CHAT
+               , ACTIVITIES
+               , FILES
+               , ACTION_MENU
+               , POLL_MENU
+               , SCREEN_SHARING
+               , WHITEBOARD
+               , MICROPHONE_STATUS
+               , USER_COUNT
        }
 
        @XmlType(namespace="org.apache.openmeetings.room.type")
        public enum Type {
-               conference(CONFERENCE_TYPE_ID)
-               , presentation(PRESENTATION_TYPE_ID)
-               , interview(INTERVIEW_TYPE_ID);
+               CONFERENCE(CONFERENCE_TYPE_ID)
+               , PRESENTATION(PRESENTATION_TYPE_ID)
+               , INTERVIEW(INTERVIEW_TYPE_ID);
                //, custom(5)
                private int id;
 
@@ -146,13 +151,13 @@ public class Room extends HistoricalEntity {
                }
 
                public static Type get(int type) {
-                       Type rt = Type.conference;
+                       Type rt = Type.CONFERENCE;
                        switch (type) {
                                case PRESENTATION_TYPE_ID:
-                                       rt = Type.presentation;
+                                       rt = Type.PRESENTATION;
                                        break;
                                case INTERVIEW_TYPE_ID:
-                                       rt = Type.interview;
+                                       rt = Type.INTERVIEW;
                                        break;
                                default:
                                        //no-op
@@ -164,41 +169,50 @@ public class Room extends HistoricalEntity {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
-       @Element(data = true, required = false, name = "rooms_id")
+       @XmlElement(name = "rooms_id", required = false)
+       @XmlJavaTypeAdapter(LongAdapter.class)
        private Long id;
 
        @Column(name = "name")
-       @Element(data = true, required=false)
+       @XmlElement(name = "name", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String name;
 
        @Lob
        @Column(name = "comment")
-       @Element(data = true, required = false)
+       @XmlElement(name = "comment", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String comment;
 
        @Column(name = "type")
        @Enumerated(EnumType.STRING)
-       @Element(name = "roomtypeId", data = true, required = false)
-       private Type type = Type.conference;
+       @XmlElement(name = "roomtypeId", required = false)
+       @XmlJavaTypeAdapter(RoomTypeAdapter.class)
+       private Type type = Type.CONFERENCE;
 
        @Column(name = "ispublic", nullable = false)
-       @Element(name = "ispublic", data = true, required = false)
+       @XmlElement(name = "ispublic", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean ispublic;
 
        @Column(name = "capacity")
-       @Element(name = "numberOfPartizipants", data = true, required = false)
+       @XmlElement(name = "numberOfPartizipants", required = false)
+       @XmlJavaTypeAdapter(value = LongAdapter.class, type = long.class)
        private long capacity = 4L;
 
        @Column(name = "appointment", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "appointment", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean appointment;
 
        // Vars to simulate external Room
        @Column(name = "external_id")
-       @Element(data = true, required = false)
+       @XmlElement(name = "externalId", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String externalId;
 
-       @Element(data = true, required = false)
+       @XmlElement(name = "externalType", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        @Deprecated(since = "5.0")
        @Transient
        /**
@@ -207,54 +221,66 @@ public class Room extends HistoricalEntity {
        private String externalType;
 
        @Column(name = "demo_room", nullable = false)
-       @Element(name = "isDemoRoom", data = true, required = false)
+       @XmlElement(name = "isDemoRoom", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean demoRoom;
 
        @Column(name = "demo_time")
-       @Element(data = true, required = false)
+       @XmlElement(name = "demoTime", required = false)
+       @XmlJavaTypeAdapter(IntAdapter.class)
        private Integer demoTime; // In Seconds
 
        // If this is true noone can automatically get additional rights
        @Column(name = "moderated", nullable = false)
-       @Element(name="isModeratedRoom", data = true, required = false)
+       @XmlElement(name = "isModeratedRoom", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean moderated;
 
        // If this is true all participants of a meeting have to wait for the
        // moderator to come into the room
        @Column(name = "wait_moderator", nullable = false)
-       @Element(name="waitModerator", data = true, required = false)
+       @XmlElement(name = "waitModerator", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean waitModerator;
 
        @Column(name = "allow_user_questions", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "allowUserQuestions", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean allowUserQuestions;
 
        @Column(name = "audio_only", nullable = false)
-       @Element(name = "isAudioOnly", data = true, required = false)
+       @XmlElement(name = "isAudioOnly", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean audioOnly;
 
        @Column(name = "closed", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "closed", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean closed;
 
        @Column(name = "redirect_url")
-       @Element(data = true, required = false)
+       @XmlElement(name = "redirectURL", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String redirectURL;
 
        @Column(name = "owner_id")
-       @Element(name = "ownerid", data = true, required = false)
+       @XmlElement(name = "ownerid", required = false)
+       @XmlJavaTypeAdapter(LongAdapter.class)
        private Long ownerId; // Those are the rooms from the myrooms section
 
        @Column(name = "wait_for_recording", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "waitRecording", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean waitRecording; // Show warning that user has to start 
recording
 
        @Column(name = "allow_recording", nullable = false)
-       @Element(name = "allowRecording", data = true, required = false)
+       @XmlElement(name = "allowRecording", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean allowRecording = true; // Show or show not the 
recording option in a conference room
 
        @Column(name = "chat_moderated", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "chatModerated", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean chatModerated;
 
        /**
@@ -264,45 +290,53 @@ public class Room extends HistoricalEntity {
        @Column(name = "hide_element")
        @CollectionTable(name = "room_hide_element", joinColumns = 
@JoinColumn(name = "room_id"))
        @Enumerated(EnumType.STRING)
-       @ElementList(name="hide_element", data = true, required = false)
+       @XmlElementWrapper(name = "hide_element", required = false)
+       @XmlElement(name = "roomElement")
+       @XmlJavaTypeAdapter(RoomElementAdapter.class)
        private Set<RoomElement> hiddenElements = new HashSet<>();
 
        @Column(name = "chat_opened", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "chatOpened", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean chatOpened;
 
        @Column(name = "files_opened", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "filesOpened", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean filesOpened;
 
        @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
        @JoinColumn(name = "roomId")
        @ForeignKey(enabled = true)
-       @ElementList(name = "room_moderators", required = false)
+       @XmlElementWrapper(name = "room_moderators", required = false)
+       @XmlElement(name = "room_moderator", required = false)
        private List<RoomModerator> moderators = new ArrayList<>();
 
        @Column(name = "sip_enabled", nullable = false)
-       @Element(data = true, required = false)
+       @XmlElement(name = "sipEnabled", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean sipEnabled;
 
        @Column(name = "confno")
-       @Element(data = true, required = false)
+       @XmlElement(name = "confno", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String confno;
 
        @Column(name = "pin")
-       @Element(data = true, required = false)
+       @XmlElement(name = "pin", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String pin;
 
        @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
        @JoinColumn(name = "room_id", insertable = true, updatable = true)
        @ElementDependent
-       @org.simpleframework.xml.Transient
+       @XmlTransient
        private List<RoomGroup> groups = new ArrayList<>();
 
        @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
        @JoinColumn(name = "room_id", insertable = true, updatable = true, 
nullable = false)
        @ElementDependent
-       @org.simpleframework.xml.Transient
+       @XmlTransient
        private List<RoomFile> files = new ArrayList<>();
 
        public String getComment() {
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
index 2b8c79a..310a418 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
@@ -28,12 +28,16 @@ import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
+import org.apache.openmeetings.db.bind.adapter.UserAdapter;
 import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.user.User;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.Root;
 
 @Entity
 @NamedQuery(name = "getRoomModeratorById", query = "select c from 
RoomModerator as c where c.id = :id")
@@ -42,26 +46,30 @@ import org.simpleframework.xml.Root;
 @NamedQuery(name = "getRoomModeratorByUserAndRoomId", query = "select c from 
RoomModerator as c "
                + "where c.roomId = :roomId AND c.deleted = false AND c.user.id 
= :userId")
 @Table(name = "room_moderator")
-@Root(name = "room_moderator")
+@XmlRootElement(name = "room_moderator")
 public class RoomModerator extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
+       @XmlTransient
        private Long id;
 
        @Column(name = "roomId")
+       @XmlTransient
        private Long roomId;
 
        @Column(name = "is_supermoderator", nullable = false)
-       @Element(name = "is_supermoderator", data = true)
+       @XmlElement(name = "is_supermoderator", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean superModerator;
 
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "user_id")
        @ForeignKey(enabled = true)
-       @Element(name = "user_id", data = true, required = false)
+       @XmlElement(name = "user_id", required = false)
+       @XmlJavaTypeAdapter(UserAdapter.class)
        private User user;
 
        @Override
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
index ac1f729..076da63 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/AuthLevelUtil.java
@@ -52,20 +52,20 @@ public class AuthLevelUtil {
                }
                if (hasAdminLevel(u.getRights())) {
                        //admin user get superModerator level, no-one can kick 
him/her
-                       result.add(Room.Right.superModerator);
+                       result.add(Room.Right.SUPER_MODERATOR);
                } else if (r.isAppointment() && a != null && 
u.getId().equals(a.getOwner().getId())) {
                        // appointment owner is super moderator
-                       result.add(Room.Right.superModerator);
+                       result.add(Room.Right.SUPER_MODERATOR);
                }
                if (result.isEmpty()) {
                        if (!r.isModerated() && 1 == userCount) {
                                //room is not moderated, first user is 
moderator!
-                               result.add(Room.Right.moderator);
+                               result.add(Room.Right.MODERATOR);
                        }
                        //performing loop here to set possible 'superModerator' 
right
                        for (RoomModerator rm : r.getModerators()) {
                                if (u.getId().equals(rm.getUser().getId())) {
-                                       result.add(rm.isSuperModerator() ? 
Room.Right.superModerator : Room.Right.moderator);
+                                       result.add(rm.isSuperModerator() ? 
Room.Right.SUPER_MODERATOR : Room.Right.MODERATOR);
                                        break;
                                }
                        }
@@ -74,7 +74,7 @@ public class AuthLevelUtil {
                                for (RoomGroup rg : r.getGroups()) {
                                        for (GroupUser gu : u.getGroupUsers()) {
                                                if 
(gu.getGroup().getId().equals(rg.getGroup().getId()) && gu.isModerator()) {
-                                                       
result.add(Room.Right.moderator);
+                                                       
result.add(Room.Right.MODERATOR);
                                                        break;
                                                }
                                        }
@@ -84,9 +84,9 @@ public class AuthLevelUtil {
                                }
                        }
                }
-               if (Room.Type.conference == r.getType() && 
!result.contains(Room.Right.superModerator) && 
!result.contains(Room.Right.moderator) && !result.contains(Room.Right.video)) {
-                       result.add(Room.Right.audio);
-                       result.add(Room.Right.video);
+               if (Room.Type.CONFERENCE == r.getType() && 
!result.contains(Room.Right.SUPER_MODERATOR) && 
!result.contains(Room.Right.MODERATOR) && !result.contains(Room.Right.VIDEO)) {
+                       result.add(Room.Right.AUDIO);
+                       result.add(Room.Right.VIDEO);
                }
                return result;
        }
diff --git 
a/openmeetings-db/src/test/java/org/apache/openmeetings/db/util/TestAuthLevelUtil.java
 
b/openmeetings-db/src/test/java/org/apache/openmeetings/db/util/TestAuthLevelUtil.java
index f955aae..f47f8a3 100644
--- 
a/openmeetings-db/src/test/java/org/apache/openmeetings/db/util/TestAuthLevelUtil.java
+++ 
b/openmeetings-db/src/test/java/org/apache/openmeetings/db/util/TestAuthLevelUtil.java
@@ -43,7 +43,7 @@ public class TestAuthLevelUtil {
                u.setRights(new HashSet<>(Arrays.asList(User.Right.ADMIN)));
                Set<Room.Right> rights = getRoomRight(u, new Room(), null, 0);
                assertEquals(1, rights.size(), "Result should NOT be empty");
-               assertTrue(rights.contains(Room.Right.superModerator), "Result 
should be super moderator");
+               assertTrue(rights.contains(Room.Right.SUPER_MODERATOR), "Result 
should be super moderator");
        }
 
        @Test
@@ -57,7 +57,7 @@ public class TestAuthLevelUtil {
                a.getOwner().setId(666L);
                Set<Room.Right> rights = getRoomRight(u, r, a, 0);
                assertEquals(1, rights.size(), "Result should NOT be empty");
-               assertTrue(rights.contains(Room.Right.superModerator), "Result 
should be super moderator");
+               assertTrue(rights.contains(Room.Right.SUPER_MODERATOR), "Result 
should be super moderator");
        }
 
        @Test
@@ -66,7 +66,7 @@ public class TestAuthLevelUtil {
                Room r = new Room();
                Set<Room.Right> rights = getRoomRight(u, r, null, 0);
                assertEquals(2, rights.size(), "Result should NOT be empty");
-               assertTrue(rights.contains(Room.Right.audio), "Result should 
contains audio");
-               assertTrue(rights.contains(Room.Right.video), "Result should 
contains video");
+               assertTrue(rights.contains(Room.Right.AUDIO), "Result should 
contains audio");
+               assertTrue(rights.contains(Room.Right.VIDEO), "Result should 
contains video");
        }
 }
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index 205baa8..84d7f43 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@ -25,6 +25,8 @@ import static 
org.apache.openmeetings.db.bind.Constants.GROUP_LIST_NODE;
 import static org.apache.openmeetings.db.bind.Constants.GROUP_NODE;
 import static org.apache.openmeetings.db.bind.Constants.OAUTH_LIST_NODE;
 import static org.apache.openmeetings.db.bind.Constants.OAUTH_NODE;
+import static org.apache.openmeetings.db.bind.Constants.ROOM_LIST_NODE;
+import static org.apache.openmeetings.db.bind.Constants.ROOM_NODE;
 import static org.apache.openmeetings.db.bind.Constants.USER_LIST_NODE;
 import static org.apache.openmeetings.db.bind.Constants.USER_NODE;
 import static org.apache.openmeetings.db.bind.Constants.VERSION_LIST_NODE;
@@ -150,7 +152,6 @@ import 
org.apache.openmeetings.backup.converter.OmCalendarConverter;
 import org.apache.openmeetings.backup.converter.PollTypeConverter;
 import org.apache.openmeetings.backup.converter.RecordingStatusConverter;
 import org.apache.openmeetings.backup.converter.RoomConverter;
-import org.apache.openmeetings.backup.converter.RoomTypeConverter;
 import org.apache.openmeetings.backup.converter.UserConverter;
 import org.apache.openmeetings.backup.converter.WbConverter;
 import org.apache.openmeetings.core.converter.DocumentConverter;
@@ -652,19 +653,13 @@ public class BackupImport {
        /*
         * ##################### Import Rooms
         */
-       private void importRooms(File base) throws Exception {
+       void importRooms(File base) throws Exception {
                log.info("Users import complete, starting room import");
-               Registry registry = new Registry();
-               Strategy strategy = new RegistryStrategy(registry);
-               RegistryMatcher matcher = new RegistryMatcher();
-               Serializer ser = new Persister(strategy, matcher);
-
-               matcher.bind(Long.class, LongTransform.class);
-               matcher.bind(Integer.class, IntegerTransform.class);
-               registry.bind(User.class, new UserConverter(userDao, userMap));
-               registry.bind(Room.Type.class, RoomTypeConverter.class);
-               registry.bind(Date.class, DateConverter.class);
-               readList(null, base, "rooms.xml", "rooms", "room", Room.class, 
r -> {
+               Class<Room> eClazz = Room.class;
+               JAXBContext jc = JAXBContext.newInstance(eClazz);
+               Unmarshaller unmarshaller = jc.createUnmarshaller();
+               unmarshaller.setAdapter(new UserAdapter(userDao, userMap));
+               readList(unmarshaller, base, "rooms.xml", ROOM_LIST_NODE, 
ROOM_NODE, eClazz, r -> {
                        Long roomId = r.getId();
 
                        // We need to reset ids as openJPA reject to store them 
otherwise
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 29ccf54..698c962 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -381,7 +381,7 @@ public class ImportInitvalues {
                r.setDemoRoom(false);
                r.setDemoTime(null);
 
-               r.hide(RoomElement.MicrophoneStatus);
+               r.hide(RoomElement.MICROPHONE_STATUS);
                r.setModerated(false);
 
                r.setDeleted(false);
@@ -403,22 +403,22 @@ public class ImportInitvalues {
 
        public void loadDefaultRooms(boolean createRooms, long langId) {
                if (createRooms) {
-                       
createRoom(LabelDao.getString("install.room.public.interview", langId), 
Type.interview, 16L, true, null);
-                       
createRoom(LabelDao.getString("install.room.public.conference", langId), 
Type.conference, 32L, true, null);
-                       Room r = 
createRoom(LabelDao.getString("install.room.public.video.only", langId), 
Type.conference, 32L, true, null);
-                       r.hide(RoomElement.Whiteboard);
+                       
createRoom(LabelDao.getString("install.room.public.interview", langId), 
Type.INTERVIEW, 16L, true, null);
+                       
createRoom(LabelDao.getString("install.room.public.conference", langId), 
Type.CONFERENCE, 32L, true, null);
+                       Room r = 
createRoom(LabelDao.getString("install.room.public.video.only", langId), 
Type.CONFERENCE, 32L, true, null);
+                       r.hide(RoomElement.WHITEBOARD);
                        roomDao.update(r, null);
-                       
createRoom(LabelDao.getString("install.room.public.video.wb", langId), 
Type.conference, 32L, true, null);
-                       
createRoom(LabelDao.getString("install.room.public.presentation", langId), 
Type.presentation, 100L, true, null);
-                       r = 
createRoom(LabelDao.getString("install.room.presentation.micro", langId), 
Type.presentation, 100L, true, null);
+                       
createRoom(LabelDao.getString("install.room.public.video.wb", langId), 
Type.CONFERENCE, 32L, true, null);
+                       
createRoom(LabelDao.getString("install.room.public.presentation", langId), 
Type.PRESENTATION, 100L, true, null);
+                       r = 
createRoom(LabelDao.getString("install.room.presentation.micro", langId), 
Type.PRESENTATION, 100L, true, null);
                        r.getHiddenElements().clear();
                        roomDao.update(r, null);
 
-                       r = 
createRoom(LabelDao.getString("install.room.conference.micro", langId), 
Type.conference, 32L, true, null);
+                       r = 
createRoom(LabelDao.getString("install.room.conference.micro", langId), 
Type.CONFERENCE, 32L, true, null);
                        r.getHiddenElements().clear();
                        roomDao.update(r, null);
 
-                       
createRoom(LabelDao.getString("install.room.private.conference", langId), 
Type.conference, 32L, false, 1L);
+                       
createRoom(LabelDao.getString("install.room.private.conference", langId), 
Type.CONFERENCE, 32L, false, 1L);
                }
        }
 
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index badd0a9..14b3b84 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
@@ -286,7 +286,7 @@ public class IcalUtils {
                Room r = new Room();
                r.setAppointment(true);
                if (r.getType() == null) {
-                       r.setType(Room.Type.conference);
+                       r.setType(Room.Type.CONFERENCE);
                }
                return r;
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
index db27b57..a830799 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
@@ -455,7 +455,7 @@ public class RoomForm extends AdminBaseForm<Room> {
 
        private static Room newRoom() {
                Room r = new Room();
-               r.hide(RoomElement.MicrophoneStatus);
+               r.hide(RoomElement.MICROPHONE_STATUS);
                return r;
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java
index c4f3ff1..09767ed 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/QuickPollManager.java
@@ -52,7 +52,7 @@ public class QuickPollManager {
 
        public void start(Client c) {
                Long roomId = c.getRoomId();
-               if (!c.hasRight(Room.Right.presenter) || isStarted(roomId)) {
+               if (!c.hasRight(Room.Right.PRESENTER) || isStarted(roomId)) {
                        return;
                }
                log.debug("Starting quick poll, room: {}", roomId);
@@ -80,7 +80,7 @@ public class QuickPollManager {
 
        public void close(Client c) {
                Long roomId = c.getRoomId();
-               if (!c.hasRight(Room.Right.presenter) || !isStarted(roomId)) {
+               if (!c.hasRight(Room.Right.PRESENTER) || !isStarted(roomId)) {
                        return;
                }
                map().remove(roomId);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
index d31fa1f..f292839 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
@@ -62,7 +62,7 @@ public class TimerService {
                                        if (cm.listByRoom(roomId).isEmpty()) {
                                                modCheckMap.remove(roomId);
                                        } else {
-                                               WebSocketHelper.sendRoom(new 
TextRoomMessage(roomId, sysUser, RoomMessage.Type.moderatorInRoom, "" + 
!cm.listByRoom(roomId, c -> c.hasRight(Right.moderator)).isEmpty()));
+                                               WebSocketHelper.sendRoom(new 
TextRoomMessage(roomId, sysUser, RoomMessage.Type.moderatorInRoom, "" + 
!cm.listByRoom(roomId, c -> c.hasRight(Right.MODERATOR)).isEmpty()));
                                                doModCheck(roomId);
                                        }
                                        return null;
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index d52415d..e061473 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -151,7 +151,7 @@ public class RoomPanel extends BasePanel {
                                        .put("interview", interview)
                                        .put("audioOnly", r.isAudioOnly())
                                        .put("questions", 
r.isAllowUserQuestions())
-                                       .put("showMicStatus", 
!r.getHiddenElements().contains(RoomElement.MicrophoneStatus));
+                                       .put("showMicStatus", 
!r.getHiddenElements().contains(RoomElement.MICROPHONE_STATUS));
                        if (!Strings.isEmpty(r.getRedirectURL()) && 
(ws.getSoapLogin() != null || ws.getInvitation() != null)) {
                                options.put("reloadUrl", r.getRedirectURL());
                        }
@@ -166,9 +166,9 @@ public class RoomPanel extends BasePanel {
                        if (r.isFilesOpened()) {
                                sidebar.setFilesActive(target);
                        }
-                       if (Room.Type.presentation != r.getType()) {
-                               List<Client> mods = cm.listByRoom(r.getId(), c 
-> c.hasRight(Room.Right.moderator));
-                               log.debug("RoomPanel::roomEnter, mods IS EMPTY 
? {}, is MOD ? {}", mods.isEmpty(), _c.hasRight(Room.Right.moderator));
+                       if (Room.Type.PRESENTATION != r.getType()) {
+                               List<Client> mods = cm.listByRoom(r.getId(), c 
-> c.hasRight(Room.Right.MODERATOR));
+                               log.debug("RoomPanel::roomEnter, mods IS EMPTY 
? {}, is MOD ? {}", mods.isEmpty(), _c.hasRight(Room.Right.MODERATOR));
                                if (mods.isEmpty()) {
                                        showIdeaAlert(target, 
getString(r.isModerated() ? "641" : "498"));
                                }
@@ -261,7 +261,7 @@ public class RoomPanel extends BasePanel {
        public RoomPanel(String id, Room r) {
                super(id);
                this.r = r;
-               this.interview = Room.Type.interview == r.getType();
+               this.interview = Room.Type.INTERVIEW == r.getType();
                this.wb = interview ? new InterviewWbPanel("whiteboard", this) 
: new WbPanel("whiteboard", this);
        }
 
@@ -391,19 +391,19 @@ public class RoomPanel extends BasePanel {
                        final int count = cm.addToRoom(c.setRoom(getRoom()));
                        SOAPLogin soap = WebSession.get().getSoapLogin();
                        if (soap != null && soap.isModerator()) {
-                               c.allow(Right.superModerator);
+                               c.allow(Right.SUPER_MODERATOR);
                                cm.update(c);
                        } else {
                                Set<Right> rr = 
AuthLevelUtil.getRoomRight(c.getUser(), r, r.isAppointment() ? 
apptDao.getByRoom(r.getId()) : null, count);
                                if (!rr.isEmpty()) {
                                        c.allow(rr);
                                        cm.update(c);
-                                       log.info("Setting rights for client:: 
{} -> {}", rr, c.hasRight(Right.moderator));
+                                       log.info("Setting rights for client:: 
{} -> {}", rr, c.hasRight(Right.MODERATOR));
                                }
                        }
                        if (r.isModerated() && r.isWaitModerator()
-                                       && !c.hasRight(Right.moderator)
-                                       && cm.listByRoom(r.getId(), cl -> 
cl.hasRight(Right.moderator)).isEmpty())
+                                       && !c.hasRight(Right.MODERATOR)
+                                       && cm.listByRoom(r.getId(), cl -> 
cl.hasRight(Right.MODERATOR)).isEmpty())
                        {
                                room.setVisible(false);
                                createWaitModerator(true);
@@ -513,7 +513,7 @@ public class RoomPanel extends BasePanel {
                                                
sidebar.removeActivity(((TextRoomMessage)m).getText(), handler);
                                                break;
                                        case haveQuestion:
-                                               if 
(_c.hasRight(Room.Right.moderator) || getUserId().equals(m.getUserId())) {
+                                               if 
(_c.hasRight(Room.Right.MODERATOR) || getUserId().equals(m.getUserId())) {
                                                        sidebar.addActivity(new 
Activity((TextRoomMessage)m, Activity.Type.haveQuestion), handler);
                                                }
                                                break;
@@ -562,19 +562,19 @@ public class RoomPanel extends BasePanel {
                                                menu.update(handler);
                                                break;
                                        case wbReload:
-                                               if (Room.Type.interview != 
r.getType()) {
+                                               if (Room.Type.INTERVIEW != 
r.getType()) {
                                                        wb.reloadWb(handler);
                                                }
                                                break;
                                        case moderatorInRoom: {
                                                if (!r.isModerated() || 
!r.isWaitModerator()) {
                                                        log.warn("Something 
weird: `moderatorInRoom` in wrong room {}", r);
-                                               } else if 
(!_c.hasRight(Room.Right.moderator)) {
+                                               } else if 
(!_c.hasRight(Room.Right.MODERATOR)) {
                                                        boolean moderInRoom = 
Boolean.TRUE.equals(Boolean.valueOf(((TextRoomMessage)m).getText()));
                                                        log.warn("!! 
moderatorInRoom: {}", moderInRoom);
                                                        if (room.isVisible() != 
moderInRoom) {
                                                                
handler.add(room.setVisible(moderInRoom));
-                                                               
getMainPanel().getChat().toggle(handler, moderInRoom && 
!r.isHidden(RoomElement.Chat));
+                                                               
getMainPanel().getChat().toggle(handler, moderInRoom && 
!r.isHidden(RoomElement.CHAT));
                                                                if 
(room.isVisible()) {
                                                                        
handler.appendJavaScript(roomEnter.getCallbackScript());
                                                                        
handler.add(waitModerator.setVisible(false));
@@ -597,7 +597,7 @@ public class RoomPanel extends BasePanel {
 
        private void updateInterviewRecordingButtons(IPartialPageRequestHandler 
handler) {
                Client _c = getClient();
-               if (interview && _c.hasRight(Right.moderator)) {
+               if (interview && _c.hasRight(Right.MODERATOR)) {
                        if (streamProcessor.isRecording(r.getId())) {
                                handler.appendJavaScript("if (typeof(WbArea) 
=== 'object') {WbArea.setRecStarted(true);}");
                        } else if 
(streamProcessor.recordingAllowed(getClient())) {
@@ -618,7 +618,7 @@ public class RoomPanel extends BasePanel {
        }
 
        public static boolean isModerator(ClientManager cm, long userId, long 
roomId) {
-               return hasRight(cm, userId, roomId, Right.moderator);
+               return hasRight(cm, userId, roomId, Right.MODERATOR);
        }
 
        public static boolean hasRight(ClientManager cm, long userId, long 
roomId, Right r) {
@@ -635,7 +635,7 @@ public class RoomPanel extends BasePanel {
                getBasePage().getHeader().setVisible(false);
                getMainPanel().getTopControls().setVisible(false);
                Component loader = getBasePage().getLoader().setVisible(false);
-               if (r.isHidden(RoomElement.Chat) || !isVisible()) {
+               if (r.isHidden(RoomElement.CHAT) || !isVisible()) {
                        getMainPanel().getChat().toggle(handler, false);
                }
                if (handler != null) {
@@ -648,7 +648,7 @@ public class RoomPanel extends BasePanel {
        }
 
        public void show(IPartialPageRequestHandler handler) {
-               getMainPanel().getChat().toggle(handler, 
!r.isHidden(RoomElement.Chat));
+               getMainPanel().getChat().toggle(handler, 
!r.isHidden(RoomElement.CHAT));
                handler.add(this.setVisible(true));
                handler.appendJavaScript("Room.load();");
        }
@@ -659,7 +659,7 @@ public class RoomPanel extends BasePanel {
                        ((EventDetailDialog)eventDetail).close(handler);
                }
                handler.add(getBasePage().getHeader().setVisible(true), 
getMainPanel().getTopControls().setVisible(true));
-               if (r.isHidden(RoomElement.Chat)) {
+               if (r.isHidden(RoomElement.CHAT)) {
                        getMainPanel().getChat().toggle(handler, true);
                }
                handler.appendJavaScript("if (typeof(Room) !== 'undefined') { 
Room.unload(); }");
@@ -679,7 +679,7 @@ public class RoomPanel extends BasePanel {
 
        public void requestRight(Right right, IPartialPageRequestHandler 
handler) {
                RoomMessage.Type reqType = null;
-               List<Client> mods = cm.listByRoom(r.getId(), c -> 
c.hasRight(Room.Right.moderator));
+               List<Client> mods = cm.listByRoom(r.getId(), c -> 
c.hasRight(Room.Right.MODERATOR));
                if (mods.isEmpty()) {
                        if (r.isModerated()) {
                                showIdeaAlert(handler, getString("696"));
@@ -691,28 +691,28 @@ public class RoomPanel extends BasePanel {
                }
                // ask
                switch (right) {
-                       case moderator:
+                       case MODERATOR:
                                reqType = Type.requestRightModerator;
                                break;
-                       case presenter:
+                       case PRESENTER:
                                reqType = Type.requestRightPresenter;
                                break;
-                       case whiteBoard:
+                       case WHITEBOARD:
                                reqType = Type.requestRightWb;
                                break;
-                       case share:
+                       case SHARE:
                                reqType = Type.requestRightWb;
                                break;
-                       case audio:
+                       case AUDIO:
                                reqType = Type.requestRightA;
                                break;
-                       case muteOthers:
+                       case MUTE_OTHERS:
                                reqType = Type.requestRightMuteOthers;
                                break;
-                       case remoteControl:
+                       case REMOTE_CONTROL:
                                reqType = Type.requestRightRemote;
                                break;
-                       case video:
+                       case VIDEO:
                                reqType = Type.requestRightAv;
                                break;
                        default:
@@ -731,10 +731,10 @@ public class RoomPanel extends BasePanel {
                for (Right right : rights) {
                        client.deny(right);
                }
-               if (client.hasActivity(Client.Activity.AUDIO) && 
!client.hasRight(Right.audio)) {
+               if (client.hasActivity(Client.Activity.AUDIO) && 
!client.hasRight(Right.AUDIO)) {
                        client.remove(Client.Activity.AUDIO);
                }
-               if (client.hasActivity(Client.Activity.VIDEO) && 
!client.hasRight(Right.video)) {
+               if (client.hasActivity(Client.Activity.VIDEO) && 
!client.hasRight(Right.VIDEO)) {
                        client.remove(Client.Activity.VIDEO);
                }
                rightsUpdated(client);
@@ -812,16 +812,16 @@ public class RoomPanel extends BasePanel {
        @Override
        protected String getCssClass() {
                String clazz = "room " + r.getType().name();
-               if (r.isHidden(RoomElement.TopBar)) {
+               if (r.isHidden(RoomElement.TOP_BAR)) {
                        clazz += " no-menu";
                }
-               if (r.isHidden(RoomElement.Activities)) {
+               if (r.isHidden(RoomElement.ACTIVITIES)) {
                        clazz += " no-activities";
                }
-               if (r.isHidden(RoomElement.Chat)) {
+               if (r.isHidden(RoomElement.CHAT)) {
                        clazz += " no-chat";
                }
-               if (!r.isHidden(RoomElement.MicrophoneStatus)) {
+               if (!r.isHidden(RoomElement.MICROPHONE_STATUS)) {
                        clazz += " mic-status";
                }
                return clazz;
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index 184910d..0a15dc1 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -91,45 +91,45 @@ public class ActivitiesPanel extends Panel {
                                                remove(target, id);
                                                break;
                                        case decline:
-                                               if 
(room.getClient().hasRight(Right.moderator)) {
+                                               if 
(room.getClient().hasRight(Right.MODERATOR)) {
                                                        
sendRoom(getRemoveMsg(id));
                                                }
                                                break;
                                        case accept:
                                                Client client = 
cm.get(a.getUid());
-                                               if 
(room.getClient().hasRight(Right.moderator) && client != null && 
client.getRoom() != null && roomId == client.getRoom().getId()) {
+                                               if 
(room.getClient().hasRight(Right.MODERATOR) && client != null && 
client.getRoom() != null && roomId == client.getRoom().getId()) {
                                                        switch (a.getType()) {
                                                                case 
reqRightModerator:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.moderator);
+                                                                       
room.allowRight(client, Right.MODERATOR);
                                                                        break;
                                                                case reqRightAv:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.audio, Right.video);
+                                                                       
room.allowRight(client, Right.AUDIO, Right.VIDEO);
                                                                        break;
                                                                case 
reqRightPresenter:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.presenter);
+                                                                       
room.allowRight(client, Right.PRESENTER);
                                                                        break;
                                                                case reqRightWb:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.whiteBoard);
+                                                                       
room.allowRight(client, Right.WHITEBOARD);
                                                                        break;
                                                                case 
reqRightShare:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.share);
+                                                                       
room.allowRight(client, Right.SHARE);
                                                                        break;
                                                                case 
reqRightRemote:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.remoteControl);
+                                                                       
room.allowRight(client, Right.REMOTE_CONTROL);
                                                                        break;
                                                                case reqRightA:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.audio);
+                                                                       
room.allowRight(client, Right.AUDIO);
                                                                        break;
                                                                case 
reqRightMuteOthers:
                                                                        
sendRoom(getRemoveMsg(id));
-                                                                       
room.allowRight(client, Right.muteOthers);
+                                                                       
room.allowRight(client, Right.MUTE_OTHERS);
                                                                        break;
                                                                default:
                                                                        break;
@@ -154,14 +154,14 @@ public class ActivitiesPanel extends Panel {
        public ActivitiesPanel(String id, RoomPanel room) {
                super(id);
                this.room = room;
-               setVisible(!room.getRoom().isHidden(RoomElement.Activities));
+               setVisible(!room.getRoom().isHidden(RoomElement.ACTIVITIES));
                setOutputMarkupPlaceholderTag(true);
                setMarkupId(id);
                add(action);
        }
 
        private boolean shouldSkip(final boolean self, final Activity a) {
-               return !self && a.getType().isAction() && 
!room.getClient().hasRight(Right.moderator);
+               return !self && a.getType().isAction() && 
!room.getClient().hasRight(Right.MODERATOR);
        }
 
        public void add(Activity a, IPartialPageRequestHandler handler) {
@@ -234,8 +234,8 @@ public class ActivitiesPanel extends Panel {
                        case reqRightA:
                        case reqRightAv:
                        case reqRightMuteOthers:
-                               aobj.put("accept", 
room.getClient().hasRight(Right.moderator));
-                               aobj.put("decline", 
room.getClient().hasRight(Right.moderator));
+                               aobj.put("accept", 
room.getClient().hasRight(Right.MODERATOR));
+                               aobj.put("decline", 
room.getClient().hasRight(Right.MODERATOR));
                                break;
                        case haveQuestion:
                                aobj.put("find", !self);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
index 28e8bdb..5e225c9 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
@@ -59,7 +59,7 @@ public class ActionsSubMenu implements Serializable {
                Injector.get().inject(this);
                this.room = room;
                this.mp = mp;
-               visible = !room.getRoom().isHidden(RoomElement.ActionMenu);
+               visible = !room.getRoom().isHidden(RoomElement.ACTION_MENU);
        }
 
        public void init() {
@@ -90,7 +90,7 @@ public class ActionsSubMenu implements Serializable {
 
                        @Override
                        public void onClick(AjaxRequestTarget target) {
-                               room.requestRight(Room.Right.moderator, target);
+                               room.requestRight(Room.Right.MODERATOR, target);
                        }
                };
                applyWbMenuItem = new RoomMenuItem(mp.getString("785"), 
mp.getString("1492"), false) {
@@ -98,7 +98,7 @@ public class ActionsSubMenu implements Serializable {
 
                        @Override
                        public void onClick(AjaxRequestTarget target) {
-                               room.requestRight(Room.Right.whiteBoard, 
target);
+                               room.requestRight(Room.Right.WHITEBOARD, 
target);
                        }
                };
                applyAvMenuItem = new RoomMenuItem(mp.getString("786"), 
mp.getString("1482"), false) {
@@ -106,7 +106,7 @@ public class ActionsSubMenu implements Serializable {
 
                        @Override
                        public void onClick(AjaxRequestTarget target) {
-                               room.requestRight(Room.Right.video, target);
+                               room.requestRight(Room.Right.VIDEO, target);
                        }
                };
                sipDialerMenuItem = new RoomMenuItem(mp.getString("1447"), 
mp.getString("1488"), false) {
@@ -151,7 +151,7 @@ public class ActionsSubMenu implements Serializable {
                        .add(applyWbMenuItem)
                        .add(applyAvMenuItem)
                        .add(sipDialerMenuItem);
-               if (Room.Type.interview != room.getRoom().getType()) {
+               if (Room.Type.INTERVIEW != room.getRoom().getType()) {
                        actionsMenu
                                .add(downloadPngMenuItem)
                                .add(downloadPdfMenuItem)
@@ -165,7 +165,7 @@ public class ActionsSubMenu implements Serializable {
                        return;
                }
                final Room r = room.getRoom();
-               boolean isInterview = Room.Type.interview == r.getType();
+               boolean isInterview = Room.Type.INTERVIEW == r.getType();
                downloadPngMenuItem.setVisible(!isInterview);
                downloadPdfMenuItem.setVisible(!isInterview);
                actionsMenu.setVisible(moder || r.isAllowUserQuestions());
@@ -173,8 +173,8 @@ public class ActionsSubMenu implements Serializable {
                boolean shareVisible = room.screenShareAllowed();
                shareMenuItem.setVisible(shareVisible);
                applyModerMenuItem.setVisible(!moder);
-               
applyWbMenuItem.setVisible(!room.getClient().hasRight(Room.Right.whiteBoard));
-               
applyAvMenuItem.setVisible(!room.getClient().hasRight(Room.Right.audio) || 
!room.getClient().hasRight(Room.Right.video));
+               
applyWbMenuItem.setVisible(!room.getClient().hasRight(Room.Right.WHITEBOARD));
+               
applyAvMenuItem.setVisible(!room.getClient().hasRight(Room.Right.AUDIO) || 
!room.getClient().hasRight(Room.Right.VIDEO));
                sipDialerMenuItem.setVisible(r.isSipEnabled() && 
isSipEnabled());
                resetWb.setVisible(moder);
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
index 6193708..1387abf 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
@@ -69,7 +69,7 @@ public class PollsSubMenu implements Serializable {
                @Override
                protected void respond(AjaxRequestTarget target) {
                        try {
-                               if 
(room.getRoom().isHidden(RoomElement.PollMenu)) {
+                               if 
(room.getRoom().isHidden(RoomElement.POLL_MENU)) {
                                        return;
                                }
                                String action = 
mp.getRequest().getRequestParameters().getParameterValue(PARAM_ACTION).toString();
@@ -100,7 +100,7 @@ public class PollsSubMenu implements Serializable {
                mp.add(createPoll = new CreatePollDialog("createPoll", 
room.getRoom().getId()));
                mp.add(vote = new VoteDialog("vote"));
                mp.add(pollResults = new PollResultsDialog("pollResults", 
createPoll, room.getRoom().getId()));
-               visible = !room.getRoom().isHidden(RoomElement.PollMenu);
+               visible = !room.getRoom().isHidden(RoomElement.POLL_MENU);
        }
 
        public void init() {
@@ -139,7 +139,7 @@ public class PollsSubMenu implements Serializable {
 
                        @Override
                        public void onClick(AjaxRequestTarget target) {
-                               pollResults.updateModel(target, 
room.getClient().hasRight(Room.Right.moderator));
+                               pollResults.updateModel(target, 
room.getClient().hasRight(Room.Right.MODERATOR));
                                pollResults.show(target);
                        }
                };
@@ -161,7 +161,7 @@ public class PollsSubMenu implements Serializable {
                }
                boolean pollExists = pollDao.hasPoll(r.getId());
                pollsMenu.setVisible(moder || r.isAllowUserQuestions());
-               
pollQuickMenuItem.setVisible(room.getClient().hasRight(Room.Right.presenter) && 
!qpollManager.isStarted(r.getId()));
+               
pollQuickMenuItem.setVisible(room.getClient().hasRight(Room.Right.PRESENTER) && 
!qpollManager.isStarted(r.getId()));
                pollCreateMenuItem.setVisible(moder);
                pollVoteMenuItem.setVisible(pollExists && notExternalUser && 
pollDao.notVoted(r.getId(), getUserId()));
                pollResultMenuItem.setVisible(pollExists || 
!pollDao.getArchived(r.getId()).isEmpty());
@@ -178,7 +178,7 @@ public class PollsSubMenu implements Serializable {
                        vote.show(handler);
                }
                if (pollResults.isOpened()) {
-                       pollResults.updateModel(handler, 
room.getClient().hasRight(Room.Right.moderator));
+                       pollResults.updateModel(handler, 
room.getClient().hasRight(Room.Right.MODERATOR));
                }
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index ffabe89..56202cf 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -118,7 +118,7 @@ public class RoomMenuPanel extends Panel {
                setOutputMarkupPlaceholderTag(true);
                this.room = room;
                Room r = room.getRoom();
-               setVisible(!r.isHidden(RoomElement.TopBar));
+               setVisible(!r.isHidden(RoomElement.TOP_BAR));
                add((roomName = new Label("roomName", 
r.getName())).setOutputMarkupPlaceholderTag(true).setOutputMarkupId(true));
                String tag = getGroup().getTag();
                add(logo, new Label("tag", 
tag).setVisible(!Strings.isEmpty(tag)));
@@ -208,12 +208,12 @@ public class RoomMenuPanel extends Panel {
                        return;
                }
                Room r = room.getRoom();
-               boolean isInterview = Room.Type.interview == r.getType();
+               boolean isInterview = Room.Type.INTERVIEW == r.getType();
                User u = room.getClient().getUser();
                boolean notExternalUser = u.getType() != User.Type.CONTACT;
                exitMenuItem.setVisible(notExternalUser);
                filesMenu.setVisible(!isInterview && 
room.getSidebar().isShowFiles());
-               boolean moder = room.getClient().hasRight(Room.Right.moderator);
+               boolean moder = room.getClient().hasRight(Room.Right.MODERATOR);
                actionsSubMenu.update(moder, notExternalUser);
                pollsSubMenu.update(moder, notExternalUser, r);
                menuPanel.update(handler);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
index ed404e8..7b909b9 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomClientPanel.java
@@ -56,8 +56,8 @@ public class RoomClientPanel extends Panel {
                item.add(AttributeModifier.replace(ATTR_TITLE, name));
                WebMarkupContainer actions = new WebMarkupContainer("actions");
                actions.add(new KickIcon("kick", uid));
-               actions.add(new 
WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.Chat)
 && !getUserId().equals(c.getUserId())));
-               actions.setVisible(room.getClient().hasRight(Right.moderator));
+               actions.add(new 
WebMarkupContainer("privateChat").setVisible(!room.getRoom().isHidden(RoomElement.CHAT)
 && !getUserId().equals(c.getUserId())));
+               actions.setVisible(room.getClient().hasRight(Right.MODERATOR));
                if (c.getUid().equals(room.getClient().getUid())) {
                        actions.add(new SelfIconsPanel("icons", uid, false));
                        item.add(AttributeModifier.append(ATTR_CLASS, 
"current"));
@@ -72,10 +72,10 @@ public class RoomClientPanel extends Panel {
                super.onInitialize();
                Client c = (Client)getDefaultModelObject();
                String status, statusTitle;
-               if (c.hasRight(Right.moderator)) {
+               if (c.hasRight(Right.MODERATOR)) {
                        status = "status-mod";
                        statusTitle = "679";
-               } else if (c.hasRight(Right.whiteBoard) || 
c.hasRight(Right.presenter)) {
+               } else if (c.hasRight(Right.WHITEBOARD) || 
c.hasRight(Right.PRESENTER)) {
                        status = "status-wb";
                        statusTitle = "678";
                } else {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 550b5dd..9de0b08 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -93,15 +93,15 @@ public class RoomSidebar extends Panel {
                protected List<Client> load() {
                        Client self = room.getClient();
                        List<Client> list;
-                       if (!self.hasRight(Room.Right.moderator) && 
room.getRoom().isHidden(RoomElement.UserCount)) {
+                       if (!self.hasRight(Room.Right.MODERATOR) && 
room.getRoom().isHidden(RoomElement.USER_COUNT)) {
                                list = Arrays.asList(self);
                        } else {
                                list = cm.listByRoom(room.getRoom().getId());
                                list.sort(Comparator.<Client, 
Integer>comparing(c -> {
-                                                       if 
(c.hasRight(Room.Right.moderator)) {
+                                                       if 
(c.hasRight(Room.Right.MODERATOR)) {
                                                                return 0;
                                                        }
-                                                       if 
(c.hasRight(Room.Right.presenter)) {
+                                                       if 
(c.hasRight(Room.Right.PRESENTER)) {
                                                                return 1;
                                                        }
                                                        return 5;
@@ -131,7 +131,7 @@ public class RoomSidebar extends Panel {
                                cp.setSettings(new 
JSONObject(s.toString())).update(c);
                                if (!avInited) {
                                        avInited = true;
-                                       if (Room.Type.conference == 
room.getRoom().getType()) {
+                                       if (Room.Type.CONFERENCE == 
room.getRoom().getType()) {
                                                
streamProcessor.toggleActivity(c, Client.Activity.AUDIO_VIDEO);
                                        }
                                }
@@ -194,7 +194,7 @@ public class RoomSidebar extends Panel {
                if (room.isInterview()) {
                        return;
                }
-               showFiles = !room.getRoom().isHidden(RoomElement.Files) && 
room.getClient().hasRight(Right.presenter);
+               showFiles = !room.getRoom().isHidden(RoomElement.FILES) && 
room.getClient().hasRight(Right.PRESENTER);
                roomFiles.setReadOnly(!showFiles, handler);
        }
 
@@ -244,18 +244,18 @@ public class RoomSidebar extends Panel {
                        Action a = Action.valueOf(o.getString(PARAM_ACTION));
                        switch (a) {
                                case kick:
-                                       if (self.hasRight(Right.moderator)) {
+                                       if (self.hasRight(Right.MODERATOR)) {
                                                kickedClient = cm.get(uid);
                                                if (kickedClient == null) {
                                                        return;
                                                }
-                                               if 
(!kickedClient.hasRight(Right.superModerator) && 
!self.getUid().equals(kickedClient.getUid())) {
+                                               if 
(!kickedClient.hasRight(Right.SUPER_MODERATOR) && 
!self.getUid().equals(kickedClient.getUid())) {
                                                        
confirmKick.show(handler);
                                                }
                                        }
                                        break;
                                case muteOthers:
-                                       if 
(room.getClient().hasRight(Right.muteOthers)) {
+                                       if 
(room.getClient().hasRight(Right.MUTE_OTHERS)) {
                                                WebSocketHelper.sendRoom(new 
TextRoomMessage(room.getRoom().getId(), self, RoomMessage.Type.muteOthers, 
uid));
                                        }
                                        break;
@@ -265,7 +265,7 @@ public class RoomSidebar extends Panel {
                                        if (c == null || 
!c.hasActivity(Client.Activity.AUDIO)) {
                                                return;
                                        }
-                                       if (self.hasRight(Right.moderator) || 
self.getUid().equals(c.getUid())) {
+                                       if (self.hasRight(Right.MODERATOR) || 
self.getUid().equals(c.getUid())) {
                                                WebSocketHelper.sendRoom(new 
TextRoomMessage(room.getRoom().getId(), self, RoomMessage.Type.mute
                                                                , new 
JSONObject()
                                                                                
.put("sid", self.getSid())
@@ -287,7 +287,7 @@ public class RoomSidebar extends Panel {
        private void toggleRight(IPartialPageRequestHandler handler, Client 
self, String uid, JSONObject o) {
                try {
                        Right right = Right.valueOf(o.getString(PARAM_RIGHT));
-                       if (self.hasRight(Right.moderator)) {
+                       if (self.hasRight(Right.MODERATOR)) {
                                Client client = cm.get(uid);
                                if (client == null) {
                                        return;
@@ -295,8 +295,8 @@ public class RoomSidebar extends Panel {
                                if (client.hasRight(right)) {
                                        room.denyRight(client, right);
                                } else {
-                                       if (Right.video == right) {
-                                               room.allowRight(client, 
Right.audio, right);
+                                       if (Right.VIDEO == right) {
+                                               room.allowRight(client, 
Right.AUDIO, right);
                                        } else {
                                                room.allowRight(client, right);
                                        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
index b11ca55..701afb7 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/KickIcon.java
@@ -37,7 +37,7 @@ public class KickIcon extends ClientIcon {
 
        @Override
        protected boolean isClickable() {
-               return !isSelf() && roomHasRight(Right.moderator) && 
!hasRight(Right.superModerator);
+               return !isSelf() && roomHasRight(Right.MODERATOR) && 
!hasRight(Right.SUPER_MODERATOR);
        }
 
        @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java
index 0acfd0f..f215610 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/UserSpeaksIcon.java
@@ -32,7 +32,7 @@ public class UserSpeaksIcon extends ClientIcon {
 
        private boolean isActive() {
                Client c = getClient();
-               return c != null && (c.hasActivity(Activity.AUDIO) && 
roomHasRight(Room.Right.muteOthers));
+               return c != null && (c.hasActivity(Activity.AUDIO) && 
roomHasRight(Room.Right.MUTE_OTHERS));
        }
 
        @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
index e51806e..8413e3f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/AudioRightIcon.java
@@ -24,7 +24,7 @@ public class AudioRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public AudioRightIcon(String id, String uid) {
-               super(id, uid, Right.audio);
+               super(id, uid, Right.AUDIO);
                mainCssClass = "right audio bumper ";
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
index ca57206..1dba2cf 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ModeratorRightIcon.java
@@ -24,7 +24,7 @@ public class ModeratorRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public ModeratorRightIcon(String id, String uid) {
-               super(id, uid, Right.moderator);
+               super(id, uid, Right.MODERATOR);
                mainCssClass = "right moderator bumper ";
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
index e05e45b..3d4695b 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/MuteOthersRightIcon.java
@@ -24,7 +24,7 @@ public class MuteOthersRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public MuteOthersRightIcon(String id, String uid) {
-               super(id, uid, Right.muteOthers);
+               super(id, uid, Right.MUTE_OTHERS);
                mainCssClass = "mute-others ";
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java
index 2b68dac..6171af3 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/PresenterRightIcon.java
@@ -26,7 +26,7 @@ public class PresenterRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public PresenterRightIcon(String id, String uid) {
-               super(id, uid, Right.presenter);
+               super(id, uid, Right.PRESENTER);
                mainCssClass = "right presenter bumper ";
        }
 
@@ -38,6 +38,6 @@ public class PresenterRightIcon extends RoomRightIcon {
        @Override
        protected boolean visible() {
                Room r = getRoom();
-               return Room.Type.interview != r.getType() && 
!r.isHidden(RoomElement.Whiteboard) && super.visible();
+               return Room.Type.INTERVIEW != r.getType() && 
!r.isHidden(RoomElement.WHITEBOARD) && super.visible();
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
index dbbacad..2f8a126 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RemoteControlRightIcon.java
@@ -24,7 +24,7 @@ public class RemoteControlRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public RemoteControlRightIcon(String id, String uid) {
-               super(id, uid, Right.remoteControl);
+               super(id, uid, Right.REMOTE_CONTROL);
                mainCssClass = "right remote-control bumper ";
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
index 04cd139..e17e66e 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/RoomRightIcon.java
@@ -34,7 +34,7 @@ public abstract class RoomRightIcon extends ClientIcon {
 
        @Override
        protected boolean isClickable() {
-               return (isSelf() && !hasRight()) || !isSelf() && 
roomHasRight(Right.moderator);
+               return (isSelf() && !hasRight()) || !isSelf() && 
roomHasRight(Right.MODERATOR);
        }
 
        protected boolean hasRight() {
@@ -48,9 +48,9 @@ public abstract class RoomRightIcon extends ClientIcon {
        }
 
        protected boolean visible() {
-               return !hasRight(Right.superModerator) && (
+               return !hasRight(Right.SUPER_MODERATOR) && (
                                (isSelf() && !hasRight() && 
getRoom().isAllowUserQuestions())
-                               || (!isSelf() && roomHasRight(Right.moderator))
+                               || (!isSelf() && roomHasRight(Right.MODERATOR))
                        );
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
index f212ca9..c2f49ff 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/ScreenShareRightIcon.java
@@ -24,7 +24,7 @@ public class ScreenShareRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public ScreenShareRightIcon(String id, String uid) {
-               super(id, uid, Right.share);
+               super(id, uid, Right.SHARE);
                mainCssClass = "right screen-share ";
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
index 4fe7049..1b9b10b 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/VideoRightIcon.java
@@ -24,7 +24,7 @@ public class VideoRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public VideoRightIcon(String id, String uid) {
-               super(id, uid, Right.video);
+               super(id, uid, Right.VIDEO);
                mainCssClass = "right camera ";
        }
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
index 6fc1977..a66bae1 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/right/WhiteboardRightIcon.java
@@ -27,7 +27,7 @@ public class WhiteboardRightIcon extends RoomRightIcon {
        private static final long serialVersionUID = 1L;
 
        public WhiteboardRightIcon(String id, String uid) {
-               super(id, uid, Right.whiteBoard);
+               super(id, uid, Right.WHITEBOARD);
                mainCssClass = "right wb bumper ";
        }
 
@@ -39,12 +39,12 @@ public class WhiteboardRightIcon extends RoomRightIcon {
        @Override
        protected boolean hasRight() {
                final Client c = getClient();
-               return c != null && (c.hasRight(Right.presenter) || 
c.hasRight(right));
+               return c != null && (c.hasRight(Right.PRESENTER) || 
c.hasRight(right));
        }
 
        @Override
        protected boolean visible() {
                Room r = getRoom();
-               return Room.Type.interview != r.getType() && 
!r.isHidden(RoomElement.Whiteboard) && super.visible();
+               return Room.Type.INTERVIEW != r.getType() && 
!r.isHidden(RoomElement.WHITEBOARD) && super.visible();
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
index a4bcc22..550c3c5 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
@@ -44,7 +44,7 @@ public class InterviewWbPanel extends AbstractWbPanel {
 
        @Override
        protected String getRole() {
-               return rp.getClient().hasRight(Right.moderator) ? 
Right.moderator.name() : ROLE_NONE;
+               return rp.getClient().hasRight(Right.MODERATOR) ? 
Right.MODERATOR.name() : ROLE_NONE;
        }
 
        @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
index 3d423cc..6b25e65 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
@@ -152,7 +152,7 @@ public class WbPanel extends AbstractWbPanel {
        public WbPanel(String id, RoomPanel rp) {
                super(id, rp);
                this.roomId = rp.getRoom().getId();
-               if (rp.getRoom().isHidden(RoomElement.Whiteboard)) {
+               if (rp.getRoom().isHidden(RoomElement.WHITEBOARD)) {
                        setVisible(false);
                } else {
                        add(new ListView<>("clipart"
@@ -219,9 +219,9 @@ public class WbPanel extends AbstractWbPanel {
                                break;
                        case downloadPdf:
                        {
-                               boolean moder = 
c.hasRight(Room.Right.moderator);
+                               boolean moder = 
c.hasRight(Room.Right.MODERATOR);
                                Room r = rp.getRoom();
-                               if ((moder && 
!r.isHidden(RoomElement.ActionMenu)) || (!moder && r.isAllowUserQuestions())) {
+                               if ((moder && 
!r.isHidden(RoomElement.ACTION_MENU)) || (!moder && r.isAllowUserQuestions())) {
                                        try (PDDocument doc = new PDDocument()) 
{
                                                JSONArray arr = 
obj.getJSONArray("slides");
                                                for (int i = 0; i < 
arr.length(); ++i) {
@@ -276,7 +276,7 @@ public class WbPanel extends AbstractWbPanel {
                }
 
                //presenter-right
-               if (c.hasRight(Right.presenter)) {
+               if (c.hasRight(Right.PRESENTER)) {
                        switch (a) {
                                case createWb:
                                {
@@ -342,7 +342,7 @@ public class WbPanel extends AbstractWbPanel {
                        }
                }
                //wb-right
-               if (c.hasRight(Right.presenter) || 
c.hasRight(Right.whiteBoard)) {
+               if (c.hasRight(Right.PRESENTER) || 
c.hasRight(Right.WHITEBOARD)) {
                        switch (a) {
                                case createObj:
                                {
@@ -469,10 +469,10 @@ public class WbPanel extends AbstractWbPanel {
        @Override
        protected String getRole() {
                String role = ROLE_NONE;
-               if (rp.getClient().hasRight(Right.presenter)) {
-                       role = Right.presenter.name();
-               } else if (rp.getClient().hasRight(Right.whiteBoard)) {
-                       role = Right.whiteBoard.name();
+               if (rp.getClient().hasRight(Right.PRESENTER)) {
+                       role = Right.PRESENTER.name();
+               } else if (rp.getClient().hasRight(Right.WHITEBOARD)) {
+                       role = Right.WHITEBOARD.name();
                }
                return role;
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
index 147950a..b7445ac 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
@@ -497,9 +497,9 @@ public class AppointmentDialog extends Modal<Appointment> {
        public static Room createAppRoom() {
                Room r = new Room();
                r.setAppointment(true);
-               r.hide(RoomElement.MicrophoneStatus);
+               r.hide(RoomElement.MICROPHONE_STATUS);
                if (r.getType() == null) {
-                       r.setType(Room.Type.conference);
+                       r.setType(Room.Type.CONFERENCE);
                }
                return r;
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
index 43f1e89..58b042b 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatPanel.java
@@ -42,7 +42,7 @@ public class ChatPanel extends Panel {
        }
 
        public void roomEnter(Room r, IPartialPageRequestHandler handler) {
-               if (r.isHidden(RoomElement.Chat)) {
+               if (r.isHidden(RoomElement.CHAT)) {
                        toggle(handler, false);
                        return;
                }
@@ -59,7 +59,7 @@ public class ChatPanel extends Panel {
        }
 
        public void roomExit(Room r, IPartialPageRequestHandler handler) {
-               if (r.isHidden(RoomElement.Chat)) {
+               if (r.isHidden(RoomElement.CHAT)) {
                        return;
                }
                handler.appendJavaScript(String.format("if (typeof(Chat) === 
'object') { Chat.removeTab('%1$s%2$d'); }", ID_ROOM_PREFIX, r.getId()));
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
index ef9d881..31248ad 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractJUnitDefaults.java
@@ -135,7 +135,7 @@ public abstract class AbstractJUnitDefaults extends 
AbstractSpringTest {
 
                if (r == null) {
                        r = new Room();
-                       r.setType(Room.Type.conference);
+                       r.setType(Room.Type.CONFERENCE);
                        r.setAppointment(true);
                }
                ap.setRoom(r);
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java
index 203189b..d01d50d 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java
@@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.File;
 
+import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
 import org.apache.openmeetings.db.entity.basic.Configuration;
@@ -35,6 +36,8 @@ public class TestImport extends AbstractTestImport {
        private LdapConfigDao ldapDao;
        @Autowired
        private OAuth2Dao oauthDao;
+       @Autowired
+       private RoomDao roomDao;
 
        @Test
        public void importVersionNE() throws Exception {
@@ -81,4 +84,12 @@ public class TestImport extends AbstractTestImport {
                backupImport.importOauth(oauths.getParentFile());
                assertEquals(oauthCount + 2, oauthDao.count(), "OAuth should be 
added");
        }
+
+       @Test
+       public void importRooms() throws Exception {
+               long roomsCount = roomDao.count();
+               File rooms = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/room/rooms.xml").toURI());
+               backupImport.importRooms(rooms.getParentFile());
+               assertEquals(roomsCount + 1, roomDao.count(), "Room should be 
added");
+       }
 }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
index a100782..53f41ec 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
@@ -156,7 +156,7 @@ public class TestAppointmentAddAppointment extends 
AbstractWicketTester {
                a.setOwner(owner);
                a.setRoom(new Room());
                a.getRoom().setAppointment(true);
-               a.getRoom().setType(Room.Type.conference);
+               a.getRoom().setType(Room.Type.CONFERENCE);
                for (int i = 0; i < 3; ++i) {
                        MeetingMember mm = new MeetingMember();
                        mm.setUser(getContact(randomUUID().toString(), 
owner.getId()));
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
index 981945f..1553a83 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
@@ -45,22 +45,22 @@ public class TestRoomDao extends AbstractJUnitDefaults {
        public void testMicStatusHidden() throws Exception {
                Room r = roomDao.get(1);
                assertNotNull(r, "Room must exist");
-               assertTrue(r.isHidden(RoomElement.MicrophoneStatus), "Default 
interview room should have mic status hidden");
+               assertTrue(r.isHidden(RoomElement.MICROPHONE_STATUS), "Default 
interview room should have mic status hidden");
                r = roomDao.get(5);
                assertNotNull(r, "Room must exist");
-               assertTrue(r.isHidden(RoomElement.MicrophoneStatus), "Default 
presentation room should have mic status hidden");
+               assertTrue(r.isHidden(RoomElement.MICROPHONE_STATUS), "Default 
presentation room should have mic status hidden");
                r = roomDao.get(6);
                assertNotNull(r, "Room must exist");
-               assertFalse(r.isHidden(RoomElement.MicrophoneStatus), "Default 
Mic room should have mic status visible");
+               assertFalse(r.isHidden(RoomElement.MICROPHONE_STATUS), "Default 
Mic room should have mic status visible");
 
                User u = createUser(); //creating new User here
-               r = roomDao.getUserRoom(u.getId(), Room.Type.presentation, 
"bla");
+               r = roomDao.getUserRoom(u.getId(), Room.Type.PRESENTATION, 
"bla");
                assertNotNull(r, "Room must exist");
-               boolean hidden = r.isHidden(RoomElement.MicrophoneStatus);
+               boolean hidden = r.isHidden(RoomElement.MICROPHONE_STATUS);
                if (!hidden && log.isDebugEnabled()) {
                        log.debug("Invalid personal room found -> User: {}, 
Room: {} ... deleted ? {}", u, r, r.isDeleted());
                }
-               assertEquals(Room.Type.presentation, r.getType(), "User 
presentation room should be created");
+               assertEquals(Room.Type.PRESENTATION, r.getType(), "User 
presentation room should be created");
                assertTrue(hidden, "User presentation room should have mic 
status hidden");
        }
 
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java
index 4d7272e..3cb09d3 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRoomService.java
@@ -47,7 +47,7 @@ public class TestRoomService extends AbstractWebServiceTest {
        public void testExternal() {
                ServiceResult sr = login();
                String extId = randomUUID().toString();
-               Room.Type type = Room.Type.presentation;
+               Room.Type type = Room.Type.PRESENTATION;
                String name = "Unit Test Ext Room";
                String comment = "Unit Test Ext Room Comments";
                RoomDTO r = new RoomDTO();
@@ -62,7 +62,7 @@ public class TestRoomService extends AbstractWebServiceTest {
                assertNotNull(room, "Valid room should be returned");
                assertNotNull(room.getId(), "Room ID should be not empty");
 
-               RoomDTO room1 = 
getClient(getRoomUrl()).path(String.format("/%s/%s/%s", Room.Type.presentation, 
UNIT_TEST_EXT_TYPE, extId))
+               RoomDTO room1 = 
getClient(getRoomUrl()).path(String.format("/%s/%s/%s", Room.Type.PRESENTATION, 
UNIT_TEST_EXT_TYPE, extId))
                                .query("sid", sr.getMessage())
                                .get(RoomDTO.class);
                assertNotNull(room1, "Valid room should be returned");
@@ -72,7 +72,7 @@ public class TestRoomService extends AbstractWebServiceTest {
        @Test
        public void testCreate1() {
                String extId = randomUUID().toString();
-               Room.Type type = Room.Type.presentation;
+               Room.Type type = Room.Type.PRESENTATION;
                String name = "Unit Test Ext Room1";
                String comment = "Unit Test Ext Room Comments1";
                RoomDTO r = new RoomDTO();
@@ -88,7 +88,7 @@ public class TestRoomService extends AbstractWebServiceTest {
 
        @Test
        public void testCreate2() {
-               Room.Type type = Room.Type.presentation;
+               Room.Type type = Room.Type.PRESENTATION;
                String name = "Unit Test Ext Room2";
                String comment = "Unit Test Ext Room Comments2";
                RoomDTO r = new RoomDTO();
@@ -102,7 +102,7 @@ public class TestRoomService extends AbstractWebServiceTest 
{
 
        @Test
        public void testCreateWithFiles1() {
-               Room.Type type = Room.Type.presentation;
+               Room.Type type = Room.Type.PRESENTATION;
                String name = "Unit Test Ext Room3";
                String comment = "Unit Test Ext Room Comments3";
                RoomDTO r = new RoomDTO();
@@ -123,7 +123,7 @@ public class TestRoomService extends AbstractWebServiceTest 
{
                //lets create real file
                CallResult<FileItemDTO> fileCall = 
createVerifiedFile(getDefaultProfilePicture(), "img.png", 
BaseFileItem.Type.Image);
 
-               Room.Type type = Room.Type.presentation;
+               Room.Type type = Room.Type.PRESENTATION;
                String name = "Unit Test Ext Room4";
                String comment = "Unit Test Ext Room Comments4";
                RoomDTO r = new RoomDTO();
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestWbService.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestWbService.java
index 7c0e105..42ffd33 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestWbService.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestWbService.java
@@ -38,7 +38,7 @@ public class TestWbService extends AbstractWebServiceTest {
 
        private static RoomDTO createTestRoom(final String sid) {
                String extId = randomUUID().toString();
-               Room.Type type = Room.Type.presentation;
+               Room.Type type = Room.Type.PRESENTATION;
                String name = "Unit Test Ext Room1";
                String comment = "Unit Test Ext Room Comments1";
                RoomDTO r = new RoomDTO();
diff --git 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/room/rooms.xml
 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/room/rooms.xml
new file mode 100644
index 0000000..0f2ec71
--- /dev/null
+++ 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/room/rooms.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+
+-->
+<!-- ###############################################
+This File is auto-generated by the Backup Tool 
+you should use the BackupPanel to modify or change this file 
+see http://openmeetings.apache.org/Upgrade.html for Details 
+###############################################
+ --><root>
+   <rooms>
+      <room>
+         <rooms_id><![CDATA[1]]></rooms_id>
+         <name><![CDATA[public Interview Room]]></name>
+         <roomtypeId><![CDATA[4]]></roomtypeId>
+         <deleted><![CDATA[false]]></deleted>
+         <ispublic><![CDATA[true]]></ispublic>
+         <numberOfPartizipants><![CDATA[2]]></numberOfPartizipants>
+         <appointment><![CDATA[false]]></appointment>
+         <isDemoRoom><![CDATA[false]]></isDemoRoom>
+         <isModeratedRoom><![CDATA[false]]></isModeratedRoom>
+         <allowUserQuestions><![CDATA[true]]></allowUserQuestions>
+         <isAudioOnly><![CDATA[false]]></isAudioOnly>
+         <allowFontStyles><![CDATA[true]]></allowFontStyles>
+         <isClosed><![CDATA[false]]></isClosed>
+         <waitForRecording><![CDATA[false]]></waitForRecording>
+         <allowRecording><![CDATA[true]]></allowRecording>
+         <chatModerated><![CDATA[false]]></chatModerated>
+         <chatOpened><![CDATA[false]]></chatOpened>
+         <filesOpened><![CDATA[false]]></filesOpened>
+         <autoVideoSelect><![CDATA[false]]></autoVideoSelect>
+         <room_moderators 
class="org.apache.openjpa.util.java$util$ArrayList$proxy">
+            <room_moderator>
+               <is_supermoderator><![CDATA[false]]></is_supermoderator>
+               <user_id><![CDATA[1725]]></user_id>
+            </room_moderator>
+            <room_moderator>
+               <is_supermoderator><![CDATA[false]]></is_supermoderator>
+               <user_id><![CDATA[1]]></user_id>
+            </room_moderator>
+         </room_moderators>
+         <sipEnabled><![CDATA[false]]></sipEnabled>
+         <hide_element class="org.apache.openjpa.util.java$util$HashSet$proxy">
+            <roomElement><![CDATA[MicrophoneStatus]]></roomElement>
+         </hide_element>
+      </room>
+   </rooms>
+</root>

Reply via email to