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 82e94d4  [OPENMEETINGS-2177] more work on import
82e94d4 is described below

commit 82e94d4b0163df1e9c5a57c639dd5ac702d9e4b7
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Mar 3 21:48:07 2020 +0700

    [OPENMEETINGS-2177] more work on import
---
 .../org/apache/openmeetings/db/bind/Constants.java |  6 ++
 .../{UserAdapter.java => EntityAdapter.java}       | 26 ++++-----
 .../openmeetings/db/bind/adapter/GroupAdapter.java | 33 ++---------
 .../openmeetings/db/bind/adapter/RoomAdapter.java  | 39 +++++++++++++
 .../openmeetings/db/bind/adapter/UserAdapter.java  | 33 ++---------
 .../openmeetings/db/entity/basic/ChatMessage.java  | 44 +++++++++++----
 .../db/entity/calendar/OmCalendar.java             | 29 +++++++---
 .../openmeetings/db/entity/room/RoomGroup.java     | 22 ++++++--
 .../apache/openmeetings/backup/BackupImport.java   | 65 +++++++++++-----------
 .../org/apache/openmeetings/backup/TestImport.java | 35 +++++++++---
 .../openmeetings/backup/TestImportConfig.java      |  2 +-
 .../apache/openmeetings/backup/TestImportRoom.java | 47 ++++++++++++++++
 .../apache/openmeetings/backup/TestImportUser.java |  4 +-
 .../openmeetings/backup/calendar/calendars.xml     | 33 +++++++++++
 .../openmeetings/backup/chat/chat_messages.xml     | 52 +++++++++++++++++
 .../backup/chat/skip/chat_messages.xml             | 58 +++++++++++++++++++
 .../config/{nokey_deleted => skip}/configs.xml     |  0
 .../configs.xml => room/rooms_organisation.xml}    | 35 ++++++------
 .../user/{nologin_deleted => skip}/users.xml       |  0
 19 files changed, 412 insertions(+), 151 deletions(-)

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 1b85664..76f0e8f 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
@@ -33,4 +33,10 @@ public class Constants {
        public static final String USER_NODE = "user";
        public static final String ROOM_LIST_NODE = "rooms";
        public static final String ROOM_NODE = "room";
+       public static final String ROOM_GRP_LIST_NODE = "room_organisations";
+       public static final String ROOM_GRP_NODE = "room_organisation";
+       public static final String CHAT_LIST_NODE = "chat_messages";
+       public static final String CHAT_NODE = "ChatMessage";
+       public static final String CALENDAR_LIST_NODE = "calendars";
+       public static final String CALENDAR_NODE = "calendar";
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserAdapter.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/EntityAdapter.java
similarity index 71%
copy from 
openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserAdapter.java
copy to 
openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/EntityAdapter.java
index 6c09170..7c3bc1c 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserAdapter.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/EntityAdapter.java
@@ -26,35 +26,35 @@ import java.util.Map;
 
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.user.User;
-import org.springframework.beans.factory.annotation.Configurable;
+import org.apache.openmeetings.db.dao.IDataProviderDao;
+import org.apache.openmeetings.db.entity.IDataProviderEntity;
 
-@Configurable
-public class UserAdapter extends XmlAdapter<String, User> {
-       private final UserDao userDao;
+public abstract class EntityAdapter<E extends IDataProviderEntity> extends 
XmlAdapter<String, E> {
+       private final IDataProviderDao<E> dao;
        private final Map<Long, Long> idMap;
 
-       public UserAdapter() {
+       public EntityAdapter() {
                this(null, null);
        }
 
-       public UserAdapter(UserDao userDao, Map<Long, Long> idMap) {
-               this.userDao = userDao;
+       public EntityAdapter(IDataProviderDao<E> dao, Map<Long, Long> idMap) {
+               this.dao = dao;
                this.idMap = idMap;
        }
 
        @Override
-       public String marshal(User v) throws Exception {
+       public String marshal(E v) throws Exception {
                return CDATA_BEGIN + v.getId() + CDATA_END;
        }
 
        @Override
-       public User unmarshal(String v) throws Exception {
+       public E unmarshal(String v) throws Exception {
                long oldId = toLong(v);
                Long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : 
oldId;
 
-               User u = userDao.get(newId);
-               return u == null ? new User() : u;
+               E r = dao.get(newId);
+               return r == null ? newEntity() : r;
        }
+
+       protected abstract E newEntity();
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/GroupAdapter.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/GroupAdapter.java
index 9185407..9c8823c 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/GroupAdapter.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/GroupAdapter.java
@@ -18,43 +18,22 @@
  */
 package org.apache.openmeetings.db.bind.adapter;
 
-import static org.apache.commons.lang3.math.NumberUtils.toLong;
-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.Map;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
-
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.entity.user.Group;
-import org.springframework.beans.factory.annotation.Configurable;
-
-@Configurable
-public class GroupAdapter extends XmlAdapter<String, Group> {
-       private final GroupDao groupDao;
-       private final Map<Long, Long> idMap;
 
+public class GroupAdapter extends EntityAdapter<Group> {
        public GroupAdapter() {
-               this(null, null);
+               super();
        }
 
-       public GroupAdapter(GroupDao groupDao, Map<Long, Long> idMap) {
-               this.groupDao = groupDao;
-               this.idMap = idMap;
+       public GroupAdapter(GroupDao dao, Map<Long, Long> idMap) {
+               super(dao, idMap);
        }
 
        @Override
-       public String marshal(Group v) throws Exception {
-               return CDATA_BEGIN + v.getId() + CDATA_END;
-       }
-
-       @Override
-       public Group unmarshal(String v) throws Exception {
-               long oldId = toLong(v);
-               Long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : 
oldId;
-
-               Group g = groupDao.get(newId);
-               return g == null ? new Group() : g;
+       protected Group newEntity() {
+               return new Group();
        }
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomAdapter.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomAdapter.java
new file mode 100644
index 0000000..2b06c6a
--- /dev/null
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomAdapter.java
@@ -0,0 +1,39 @@
+/*
+ * 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 java.util.Map;
+
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.entity.room.Room;
+
+public class RoomAdapter extends EntityAdapter<Room> {
+       public RoomAdapter() {
+               super();
+       }
+
+       public RoomAdapter(RoomDao dao, Map<Long, Long> idMap) {
+               super(dao, idMap);
+       }
+
+       @Override
+       protected Room newEntity() {
+               return new Room();
+       }
+}
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserAdapter.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserAdapter.java
index 6c09170..66fa5d2 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserAdapter.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserAdapter.java
@@ -18,43 +18,22 @@
  */
 package org.apache.openmeetings.db.bind.adapter;
 
-import static org.apache.commons.lang3.math.NumberUtils.toLong;
-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.Map;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
-
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
-import org.springframework.beans.factory.annotation.Configurable;
-
-@Configurable
-public class UserAdapter extends XmlAdapter<String, User> {
-       private final UserDao userDao;
-       private final Map<Long, Long> idMap;
 
+public class UserAdapter extends EntityAdapter<User> {
        public UserAdapter() {
-               this(null, null);
+               super();
        }
 
-       public UserAdapter(UserDao userDao, Map<Long, Long> idMap) {
-               this.userDao = userDao;
-               this.idMap = idMap;
+       public UserAdapter(UserDao dao, Map<Long, Long> idMap) {
+               super(dao, idMap);
        }
 
        @Override
-       public String marshal(User v) throws Exception {
-               return CDATA_BEGIN + v.getId() + CDATA_END;
-       }
-
-       @Override
-       public User unmarshal(String v) throws Exception {
-               long oldId = toLong(v);
-               Long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : 
oldId;
-
-               User u = userDao.get(newId);
-               return u == null ? new User() : u;
+       protected User newEntity() {
+               return new User();
        }
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
index db801d0..7a20d0b 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.db.entity.basic;
 
+import static org.apache.openmeetings.db.bind.Constants.CHAT_NODE;
+
 import java.util.Date;
 
 import javax.persistence.Column;
@@ -32,13 +34,22 @@ import javax.persistence.Lob;
 import javax.persistence.ManyToOne;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+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.CDATAAdapter;
+import org.apache.openmeetings.db.bind.adapter.DateAdapter;
+import org.apache.openmeetings.db.bind.adapter.LongAdapter;
+import org.apache.openmeetings.db.bind.adapter.RoomAdapter;
+import org.apache.openmeetings.db.bind.adapter.UserAdapter;
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
-import org.simpleframework.xml.Element;
-import org.simpleframework.xml.Root;
 
 @Entity
 @NamedQuery(name = "getChatMessageById", query = "SELECT c FROM ChatMessage c 
WHERE c.id = :id")
@@ -60,7 +71,8 @@ import org.simpleframework.xml.Root;
 @NamedQuery(name = "deleteChatUser", query = "DELETE FROM ChatMessage c WHERE 
c.toRoom IS NULL AND c.toUser.id = :userId")
 @NamedQuery(name = "purgeChatUserName", query = "UPDATE ChatMessage c SET 
c.fromName = :purged WHERE c.fromUser.id = :userId")
 @Table(name = "chat")
-@Root(name = "ChatMessage")
+@XmlRootElement(name = CHAT_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
 public class ChatMessage implements IDataProviderEntity {
        private static final long serialVersionUID = 1L;
 
@@ -72,47 +84,55 @@ public class ChatMessage implements IDataProviderEntity {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
-       @Element(name = "id", data = true)
+       @XmlElement(name = "id", required = false)
+       @XmlJavaTypeAdapter(LongAdapter.class)
        private Long id;
 
        @ManyToOne
        @JoinColumn(name = "from_user_id")
-       @Element(name = "fromUserId", data = true, required = false)
        @ForeignKey(enabled = true)
+       @XmlElement(name = "fromUserId", required = false)
+       @XmlJavaTypeAdapter(UserAdapter.class)
        private User fromUser;
 
        @ManyToOne
        @JoinColumn(name = "to_room_id")
-       @Element(name = "toRoomId", data = true, required = false)
        @ForeignKey(enabled = true)
+       @XmlElement(name = "toRoomId", required = false)
+       @XmlJavaTypeAdapter(RoomAdapter.class)
        private Room toRoom;
 
        @ManyToOne
        @JoinColumn(name = "to_user_id")
-       @Element(name = "toUserId", data = true, required = false)
        @ForeignKey(enabled = true)
+       @XmlElement(name = "toUserId", required = false)
+       @XmlJavaTypeAdapter(UserAdapter.class)
        private User toUser;
 
        @Column(name = "message")
        @Lob
-       @Element(name = "message", data = true, required = false)
+       @XmlElement(name = "message", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String message;
 
        @Column(name = "sent")
-       @Element(name = "sent", data = true, required = false)
+       @XmlElement(name = "sent", required = false)
+       @XmlJavaTypeAdapter(DateAdapter.class)
        private Date sent;
 
        @Column(name = "need_moderation", nullable = false)
-       @Element(name = "needModeration", data = true, required = false)
+       @XmlElement(name = "needModeration", required = false)
+       @XmlJavaTypeAdapter(value = BooleanAdapter.class, type = boolean.class)
        private boolean needModeration;
 
        @Column(name = "from_name")
-       @Element(name = "from_name", data = true, required = false)
+       @XmlElement(name = "from_name", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String fromName; // this is required for users with no 
first/last name specified
 
        @Column(name = "status")
-       @Element(data = true, required = false)
        @Enumerated(EnumType.STRING)
+       @XmlElement(name = "status", required = false)
        private Status status;
 
        @Override
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
index f51d767..dc6f7a2 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.db.entity.calendar;
 
+import static org.apache.openmeetings.db.bind.Constants.CALENDAR_NODE;
+
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
@@ -30,12 +32,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.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.bind.adapter.CDATAAdapter;
+import org.apache.openmeetings.db.bind.adapter.LongAdapter;
+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
 @Table(name = "om_calendar")
@@ -56,7 +62,7 @@ import org.simpleframework.xml.Root;
                + "     )"
                + "     AND a.owner.id = :userId AND a.calendar.id = :calId  ")
 @NamedQuery(name = "getCalendarbyId", query = "SELECT c FROM OmCalendar c 
WHERE c.deleted = false AND c.id = :calId")
-@Root(name = "calendar")
+@XmlRootElement(name = CALENDAR_NODE)
 public class OmCalendar extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
@@ -67,32 +73,37 @@ public class OmCalendar extends HistoricalEntity {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
-       @Element(name = "id", data = true)
+       @XmlElement(name = "id", required = false)
+       @XmlJavaTypeAdapter(LongAdapter.class)
        private Long id;
 
        @Column(name = "title")
-       @Element(name = "title", data = true, required = false)
+       @XmlElement(name = "title", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String title;
 
        // Can Also act as the Google Calendar ID for Google Calendars
        @Column(name = "href")
-       @Element(name = "href", data = true)
+       @XmlElement(name = "href", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String href;
 
        // Can also act as the Google API Key for Google Calendars. Note, not 
always needed.
        @Column(name = "sync_token")
-       @Element(name = "token", data = true, required = false)
+       @XmlElement(name = "token", required = false)
+       @XmlJavaTypeAdapter(CDATAAdapter.class)
        private String token;
 
        @Column(name = "sync_type")
        @Enumerated(EnumType.STRING)
-       @Element(name = "syncType", data = true)
+       @XmlElement(name = "syncType")
        private SyncType syncType = SyncType.NONE;
 
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "user_id", nullable = true)
        @ForeignKey(enabled = true)
-       @Element(name = "ownerId", data = true, required = false)
+       @XmlElement(name = "ownerId", required = false)
+       @XmlJavaTypeAdapter(UserAdapter.class)
        private User owner;
 
        // Getters + Setters
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
index 4717e60..6a919f5 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.db.entity.room;
 
+import static org.apache.openmeetings.db.bind.Constants.ROOM_GRP_NODE;
+
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -28,35 +30,47 @@ import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.bind.adapter.GroupAdapter;
+import org.apache.openmeetings.db.bind.adapter.LongAdapter;
+import org.apache.openmeetings.db.bind.adapter.RoomAdapter;
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
 import org.apache.openmeetings.db.entity.user.Group;
-import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
 @Entity
 @NamedQuery(name = "getAllRoomGroups", query = "SELECT rg FROM RoomGroup rg 
ORDER BY rg.id")
 @Table(name = "room_group")
 @Root(name="room_organisation")
+@XmlRootElement(name = ROOM_GRP_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
 public class RoomGroup implements IDataProviderEntity {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
-       @Element(data = true, name = "rooms_organisation_id")
+       @XmlElement(name = "rooms_organisation_id", required = false)
+       @XmlJavaTypeAdapter(LongAdapter.class)
        private Long id;
 
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "room_id", nullable = true)
        @ForeignKey(enabled = true)
-       @Element(name="rooms_id", data = true, required = false)
+       @XmlElement(name = "rooms_id", required = false)
+       @XmlJavaTypeAdapter(RoomAdapter.class)
        private Room room;
 
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "group_id", nullable = true)
        @ForeignKey(enabled = true)
-       @Element(name = "organisation_id", data = true, required = false)
+       @XmlElement(name = "organisation_id", required = false)
+       @XmlJavaTypeAdapter(GroupAdapter.class)
        private Group group;
 
        public RoomGroup() {
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 84d7f43..ab0df5f 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
@@ -19,12 +19,18 @@
 package org.apache.openmeetings.backup;
 
 import static java.util.UUID.randomUUID;
+import static org.apache.openmeetings.db.bind.Constants.CALENDAR_LIST_NODE;
+import static org.apache.openmeetings.db.bind.Constants.CALENDAR_NODE;
 import static org.apache.openmeetings.db.bind.Constants.CFG_LIST_NODE;
 import static org.apache.openmeetings.db.bind.Constants.CFG_NODE;
+import static org.apache.openmeetings.db.bind.Constants.CHAT_LIST_NODE;
+import static org.apache.openmeetings.db.bind.Constants.CHAT_NODE;
 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_GRP_LIST_NODE;
+import static org.apache.openmeetings.db.bind.Constants.ROOM_GRP_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;
@@ -147,7 +153,6 @@ import 
org.apache.openmeetings.backup.converter.AppointmentConverter;
 import 
org.apache.openmeetings.backup.converter.AppointmentReminderTypeConverter;
 import org.apache.openmeetings.backup.converter.BaseFileItemConverter;
 import org.apache.openmeetings.backup.converter.DateConverter;
-import org.apache.openmeetings.backup.converter.GroupConverter;
 import org.apache.openmeetings.backup.converter.OmCalendarConverter;
 import org.apache.openmeetings.backup.converter.PollTypeConverter;
 import org.apache.openmeetings.backup.converter.RecordingStatusConverter;
@@ -156,6 +161,7 @@ import 
org.apache.openmeetings.backup.converter.UserConverter;
 import org.apache.openmeetings.backup.converter.WbConverter;
 import org.apache.openmeetings.core.converter.DocumentConverter;
 import org.apache.openmeetings.db.bind.adapter.GroupAdapter;
+import org.apache.openmeetings.db.bind.adapter.RoomAdapter;
 import org.apache.openmeetings.db.bind.adapter.UserAdapter;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
@@ -680,26 +686,25 @@ public class BackupImport {
        /*
         * ##################### Import Room Groups
         */
-       private void importRoomGroups(File base) throws Exception {
+       void importRoomGroups(File base) throws Exception {
                log.info("Room import complete, starting room groups import");
-               Registry registry = new Registry();
-               Strategy strategy = new RegistryStrategy(registry);
-               Serializer serializer = new Persister(strategy);
-
-               registry.bind(Group.class, new GroupConverter(groupDao, 
groupMap));
-               registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
+               Class<RoomGroup> eClazz = RoomGroup.class;
+               JAXBContext jc = JAXBContext.newInstance(eClazz);
+               Unmarshaller unmarshaller = jc.createUnmarshaller();
+               unmarshaller.setAdapter(new RoomAdapter(roomDao, roomMap));
+               unmarshaller.setAdapter(new GroupAdapter(groupDao, groupMap));
 
-               readList(null, base, "rooms_organisation.xml", 
"room_organisations", "room_organisation", RoomGroup.class, ro -> {
-                       Room r = roomDao.get(ro.getRoom().getId());
-                       if (r == null || ro.getGroup() == null || 
ro.getGroup().getId() == null) {
+               readList(unmarshaller, base, "rooms_organisation.xml", 
ROOM_GRP_LIST_NODE, ROOM_GRP_NODE, eClazz, rg -> {
+                       Room r = roomDao.get(rg.getRoom().getId());
+                       if (r == null || rg.getGroup().getId() == null) {
                                return;
                        }
                        if (r.getGroups() == null) {
                                r.setGroups(new ArrayList<>());
                        }
-                       ro.setId(null);
-                       ro.setRoom(r);
-                       r.getGroups().add(ro);
+                       rg.setId(null);
+                       rg.setRoom(r);
+                       r.getGroups().add(rg);
                        roomDao.update(r, null);
                });
        }
@@ -707,20 +712,16 @@ public class BackupImport {
        /*
         * ##################### Import Chat messages
         */
-       private void importChat(File base) throws Exception {
+       void importChat(File base) throws Exception {
                log.info("Room groups import complete, starting chat messages 
import");
-               Registry registry = new Registry();
-               Strategy strategy = new RegistryStrategy(registry);
-               Serializer serializer = new Persister(strategy);
-
-               registry.bind(User.class, new UserConverter(userDao, userMap));
-               registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
-               registry.bind(Date.class, DateConverter.class);
-
-               readList(null, base, "chat_messages.xml", "chat_messages", 
"chat_message", ChatMessage.class, m -> {
+               Class<ChatMessage> eClazz = ChatMessage.class;
+               JAXBContext jc = JAXBContext.newInstance(eClazz);
+               Unmarshaller unmarshaller = jc.createUnmarshaller();
+               unmarshaller.setAdapter(new UserAdapter(userDao, userMap));
+               unmarshaller.setAdapter(new RoomAdapter(roomDao, roomMap));
+               readList(unmarshaller, base, "chat_messages.xml", 
CHAT_LIST_NODE, CHAT_NODE, eClazz, m -> {
                        m.setId(null);
-                       if (m.getFromUser() == null
-                                       || m.getFromUser().getId() == null
+                       if (m.getFromUser() == null || m.getFromUser().getId() 
== null
                                        || (m.getToRoom() != null && 
m.getToRoom().getId() == null)
                                        || (m.getToUser() != null && 
m.getToUser().getId() == null))
                        {
@@ -733,13 +734,13 @@ public class BackupImport {
        /*
         * ##################### Import Calendars
         */
-       private void importCalendars(File base) throws Exception {
+       void importCalendars(File base) throws Exception {
                log.info("Chat messages import complete, starting calendar 
import");
-               Registry registry = new Registry();
-               Strategy strategy = new RegistryStrategy(registry);
-               Serializer serializer = new Persister(strategy);
-               registry.bind(User.class, new UserConverter(userDao, userMap));
-               readList(null, base, "calendars.xml", "calendars", "calendar", 
OmCalendar.class, c -> {
+               Class<OmCalendar> eClazz = OmCalendar.class;
+               JAXBContext jc = JAXBContext.newInstance(eClazz);
+               Unmarshaller unmarshaller = jc.createUnmarshaller();
+               unmarshaller.setAdapter(new UserAdapter(userDao, userMap));
+               readList(unmarshaller, base, "calendars.xml", 
CALENDAR_LIST_NODE, CALENDAR_NODE, eClazz, c -> {
                        Long id = c.getId();
                        c.setId(null);
                        c = calendarDao.update(c);
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 d01d50d..561a81a 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,7 +23,8 @@ 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.basic.ChatDao;
+import org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
 import org.apache.openmeetings.db.entity.basic.Configuration;
@@ -37,11 +38,13 @@ public class TestImport extends AbstractTestImport {
        @Autowired
        private OAuth2Dao oauthDao;
        @Autowired
-       private RoomDao roomDao;
+       private ChatDao chatDao;
+       @Autowired
+       private OmCalendarDao calendarDao;
 
        @Test
        public void importVersionNE() throws Exception {
-               File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/nokey_deleted/configs.xml").toURI());
+               File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/skip/configs.xml").toURI());
                BackupVersion ver = 
BackupImport.getVersion(configs.getParentFile());
                assertEquals(new BackupVersion(), ver);
        }
@@ -86,10 +89,26 @@ public class TestImport extends AbstractTestImport {
        }
 
        @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");
+       public void importChatSkip() throws Exception {
+               long chatCount = chatDao.get(0, Integer.MAX_VALUE).size();
+               File chats = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/chat/skip/chat_messages.xml").toURI());
+               backupImport.importChat(chats.getParentFile());
+               assertEquals(chatCount, chatDao.get(0, 
Integer.MAX_VALUE).size(), "No Chat messages should be added");
+       }
+
+       @Test
+       public void importChat() throws Exception {
+               long chatCount = chatDao.get(0, Integer.MAX_VALUE).size();
+               File chats = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/chat/chat_messages.xml").toURI());
+               backupImport.importChat(chats.getParentFile());
+               assertEquals(chatCount + 3, chatDao.get(0, 
Integer.MAX_VALUE).size(), "Chat messages should be added");
+       }
+
+       @Test
+       public void importCalendars() throws Exception {
+               long calCount = calendarDao.get().size();
+               File cals = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/calendar/calendars.xml").toURI());
+               backupImport.importCalendars(cals.getParentFile());
+               assertEquals(calCount + 1, calendarDao.get().size(), "Calendars 
should be added");
        }
 }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportConfig.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportConfig.java
index 2bf85c2..87e2554 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportConfig.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportConfig.java
@@ -34,7 +34,7 @@ public class TestImportConfig extends AbstractTestImport {
        @Test
        public void importConfigsNoKeyDeleted() throws Exception {
                long configsCount = cfgDao.count();
-               File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/nokey_deleted/configs.xml").toURI());
+               File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/skip/configs.xml").toURI());
                backupImport.importConfigs(configs.getParentFile());
                assertEquals(configsCount, cfgDao.count(), "No records should 
be added");
        }
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
new file mode 100644
index 0000000..4882a14
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
@@ -0,0 +1,47 @@
+/*
+ * 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.backup;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.io.File;
+
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestImportRoom extends AbstractTestImport {
+       @Autowired
+       private RoomDao roomDao;
+
+       @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");
+       }
+
+       @Test
+       public void importRoomGroups() throws Exception {
+               //TODO need to check it somehow
+               File rooms = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/room/rooms.xml").toURI());
+               backupImport.importRoomGroups(rooms.getParentFile());
+       }
+}
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java
index 001caa7..0709af4 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java
@@ -29,7 +29,7 @@ public class TestImportUser extends AbstractTestImport {
        @Test
        public void importUserNE() throws Exception {
                Assertions.assertThrows(BackupException.class, () -> {
-                       File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/nokey_deleted/configs.xml").toURI());
+                       File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/skip/configs.xml").toURI());
                        backupImport.importUsers(configs.getParentFile());
                });
        }
@@ -45,7 +45,7 @@ public class TestImportUser extends AbstractTestImport {
        @Test
        public void importNoLoginDeleted() throws Exception {
                long userCount = userDao.count();
-               File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/user/nologin_deleted/users.xml").toURI());
+               File configs = new 
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/user/skip/users.xml").toURI());
                backupImport.importUsers(configs.getParentFile());
                assertEquals(userCount, userDao.count(), "No records should be 
added");
        }
diff --git 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/calendar/calendars.xml
 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/calendar/calendars.xml
new file mode 100644
index 0000000..57f570b
--- /dev/null
+++ 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/calendar/calendars.xml
@@ -0,0 +1,33 @@
+<?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>
+   <calendars>
+      <calendar>
+         <title>test</title>
+         <created class="org.apache.openjpa.util.java$util$Date$proxy"/>
+      </calendar>
+   </calendars>
+</root>
diff --git 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/chat/chat_messages.xml
 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/chat/chat_messages.xml
new file mode 100644
index 0000000..5521dbe
--- /dev/null
+++ 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/chat/chat_messages.xml
@@ -0,0 +1,52 @@
+<?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>
+   <chat_messages>
+      <ChatMessage>
+         <id><![CDATA[1]]></id>
+         <fromUserId><![CDATA[1]]></fromUserId>
+         <message><![CDATA[hi all<br>]]></message>
+         <sent class="java.util.Date"><![CDATA[1502679447497]]></sent>
+         <needModeration><![CDATA[false]]></needModeration>
+      </ChatMessage>
+      <ChatMessage>
+         <id><![CDATA[3]]></id>
+         <fromUserId><![CDATA[1]]></fromUserId>
+         <message><![CDATA[hi all<br>]]></message>
+         <sent class="java.util.Date"><![CDATA[1502679447497]]></sent>
+         <toRoomId>5</toRoomId>
+         <needModeration><![CDATA[false]]></needModeration>
+      </ChatMessage>
+      <ChatMessage>
+         <id><![CDATA[2]]></id>
+         <fromUserId><![CDATA[1]]></fromUserId>
+         <message><![CDATA[hello :-)]]></message>
+         <sent class="java.util.Date"><![CDATA[1502681802060]]></sent>
+         <toUserId>1</toUserId>
+         <needModeration><![CDATA[false]]></needModeration>
+      </ChatMessage>
+   </chat_messages>
+</root>
diff --git 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/chat/skip/chat_messages.xml
 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/chat/skip/chat_messages.xml
new file mode 100644
index 0000000..8f27825
--- /dev/null
+++ 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/chat/skip/chat_messages.xml
@@ -0,0 +1,58 @@
+<?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>
+   <chat_messages>
+      <ChatMessage>
+         <id><![CDATA[1]]></id>
+         <message><![CDATA[hi all<br>]]></message>
+         <sent class="java.util.Date"><![CDATA[1502679447497]]></sent>
+         <needModeration><![CDATA[false]]></needModeration>
+      </ChatMessage>
+      <ChatMessage>
+         <id><![CDATA[2]]></id>
+         <fromUserId><![CDATA[-101]]></fromUserId>
+         <message><![CDATA[hello :-)]]></message>
+         <sent class="java.util.Date"><![CDATA[1502681802060]]></sent>
+         <needModeration><![CDATA[false]]></needModeration>
+      </ChatMessage>
+      <ChatMessage>
+         <id><![CDATA[3]]></id>
+         <fromUserId><![CDATA[1]]></fromUserId>
+         <message><![CDATA[hi all<br>]]></message>
+         <sent class="java.util.Date"><![CDATA[1502679447497]]></sent>
+         <toRoomId>-666</toRoomId>
+         <needModeration><![CDATA[false]]></needModeration>
+      </ChatMessage>
+      <ChatMessage>
+         <id><![CDATA[2]]></id>
+         <fromUserId><![CDATA[1]]></fromUserId>
+         <message><![CDATA[hello :-)]]></message>
+         <sent class="java.util.Date"><![CDATA[1502681802060]]></sent>
+         <toUserId>-666</toUserId>
+         <needModeration><![CDATA[false]]></needModeration>
+      </ChatMessage>
+   </chat_messages>
+</root>
diff --git 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/nokey_deleted/configs.xml
 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/skip/configs.xml
similarity index 100%
copy from 
openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/nokey_deleted/configs.xml
copy to 
openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/skip/configs.xml
diff --git 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/nokey_deleted/configs.xml
 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/room/rooms_organisation.xml
similarity index 50%
rename from 
openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/nokey_deleted/configs.xml
rename to 
openmeetings-web/src/test/resources/org/apache/openmeetings/backup/room/rooms_organisation.xml
index acc38fa..2170f52 100644
--- 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/nokey_deleted/configs.xml
+++ 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/room/rooms_organisation.xml
@@ -24,21 +24,24 @@ you should use the BackupPanel to modify or change this file
 see http://openmeetings.apache.org/Upgrade.html for Details 
 ###############################################
  --><root>
-   <configs>
-      <config>
-         <id><![CDATA[1]]></id>
-         
<value><![CDATA[org.apache.openmeetings.util.crypt.SHA256Implementation]]></value>
-         <created class="java.util.Date"><![CDATA[1502426201301]]></created>
-         <comment><![CDATA[This Class is used for Authentification-Crypting. 
Be carefull what you do here! If you change it while running previous Pass of 
users will not be workign anymore! for more Information see 
http://openmeetings.apache.org/CustomCryptMechanism.html]]></comment>
+   <room_organisations>
+      <room_organisation>
+         <rooms_organisation_id><![CDATA[1]]></rooms_organisation_id>
+         <rooms_id><![CDATA[666]]></rooms_id>
+         <organisation_id><![CDATA[1]]></organisation_id>
          <deleted><![CDATA[false]]></deleted>
-      </config>
-      <config>
-         <id><![CDATA[1]]></id>
-         <key><![CDATA[deleted_test]]></key>
-         
<value><![CDATA[org.apache.openmeetings.util.crypt.SHA256Implementation]]></value>
-         <created class="java.util.Date"><![CDATA[1502426201301]]></created>
-         <comment><![CDATA[This Class is used for Authentification-Crypting. 
Be carefull what you do here! If you change it while running previous Pass of 
users will not be workign anymore! for more Information see 
http://openmeetings.apache.org/CustomCryptMechanism.html]]></comment>
-         <deleted><![CDATA[true]]></deleted>
-      </config>
-   </configs>
+      </room_organisation>
+      <room_organisation>
+         <rooms_organisation_id><![CDATA[2]]></rooms_organisation_id>
+         <rooms_id><![CDATA[8]]></rooms_id>
+         <organisation_id><![CDATA[666]]></organisation_id>
+         <deleted><![CDATA[false]]></deleted>
+      </room_organisation>
+      <room_organisation>
+         <rooms_organisation_id><![CDATA[3]]></rooms_organisation_id>
+         <rooms_id><![CDATA[8]]></rooms_id>
+         <organisation_id><![CDATA[1]]></organisation_id>
+         <deleted><![CDATA[false]]></deleted>
+      </room_organisation>
+   </room_organisations>
 </root>
diff --git 
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/user/nologin_deleted/users.xml
 
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/user/skip/users.xml
similarity index 100%
rename from 
openmeetings-web/src/test/resources/org/apache/openmeetings/backup/user/nologin_deleted/users.xml
rename to 
openmeetings-web/src/test/resources/org/apache/openmeetings/backup/user/skip/users.xml

Reply via email to