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 9be0a78 [OPENMEETINGS-2604] extra menu import/export
9be0a78 is described below
commit 9be0a78399a9ef0318f5b1207f456f1d4c5bf7dc
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Sat Jun 19 12:37:17 2021 +0700
[OPENMEETINGS-2604] extra menu import/export
---
.../org/apache/openmeetings/db/bind/Constants.java | 2 +
.../db/entity/basic/Configuration.java | 3 +
.../db/entity/calendar/Appointment.java | 3 +
.../db/entity/calendar/MeetingMember.java | 3 +
.../db/entity/calendar/OmCalendar.java | 3 +
.../openmeetings/db/entity/file/FileItem.java | 3 +
.../openmeetings/db/entity/record/Recording.java | 3 +
.../db/entity/record/RecordingChunk.java | 3 +
.../openmeetings/db/entity/room/ExtraMenu.java | 7 ++
.../apache/openmeetings/db/entity/room/Room.java | 3 +
.../openmeetings/db/entity/room/RoomModerator.java | 3 +
.../openmeetings/db/entity/server/LdapConfig.java | 3 +
.../openmeetings/db/entity/server/OAuthServer.java | 3 +
.../openmeetings/db/entity/server/Sessiondata.java | 3 +
.../openmeetings/db/entity/user/Address.java | 3 +
.../apache/openmeetings/db/entity/user/Group.java | 3 +
.../openmeetings/db/entity/user/GroupUser.java | 3 +
.../apache/openmeetings/db/entity/user/User.java | 3 +
.../apache/openmeetings/backup/BackupExport.java | 12 ++++
.../apache/openmeetings/backup/BackupImport.java | 26 +++++++-
.../web/common/tree/FileTreePanel.java | 6 +-
.../org/apache/openmeetings/backup/TestImport.java | 30 ++++++---
.../openmeetings/backup/TestImportCalendar.java | 7 +-
.../openmeetings/backup/TestImportConfig.java | 7 +-
.../apache/openmeetings/backup/TestImportOld.java | 3 +-
.../apache/openmeetings/backup/TestImportRoom.java | 5 +-
.../apache/openmeetings/backup/TestImportUser.java | 9 +--
.../apache/openmeetings/backup/menu/extraMenus.xml | 75 ++++++++++++++++++++++
28 files changed, 213 insertions(+), 24 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 10c15c1..67f1af6 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
@@ -57,6 +57,8 @@ public class Constants {
public static final String POLL_NODE = "roompoll";
public static final String ROOM_FILE_LIST_NODE = "RoomFiles";
public static final String ROOM_FILE_NODE = "RoomFile";
+ public static final String EXTRA_MENU_LIST_NODE = "ExtraMenus";
+ public static final String EXTRA_MENU_NODE = "ExtraMenu";
private Constants() {
//shoudn't be used
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
index 092b71d..f1a79b1 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
@@ -35,6 +35,8 @@ 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;
@@ -59,6 +61,7 @@ import org.apache.openmeetings.db.entity.user.User;
@Index(name = "key_idx", columnList = "om_key", unique = true)
})
@XmlRootElement(name = CFG_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class Configuration extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
index 28572bd..13cb47e 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
@@ -42,6 +42,8 @@ import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
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.XmlTransient;
@@ -130,6 +132,7 @@ import org.apache.openmeetings.db.entity.user.User;
@NamedQuery(name = "deleteAppointmentsbyCalendar",
query = "UPDATE Appointment a SET a.deleted = true WHERE a.calendar.id
= :calId")
@XmlRootElement(name = APPOINTMENT_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class Appointment extends HistoricalEntity {
private static final long serialVersionUID = 1L;
public static final int REMINDER_NONE_ID = 1;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
index 3185fa3..63a5de1 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
@@ -32,6 +32,8 @@ import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
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.XmlTransient;
@@ -53,6 +55,7 @@ import org.apache.openmeetings.db.entity.user.User;
@NamedQuery(name="getMeetingMemberIdsByAppointment"
, query="SELECT mm.id FROM MeetingMember mm WHERE mm.deleted =
false AND mm.appointment.id = :id")
@XmlRootElement(name = MMEMBER_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class MeetingMember extends HistoricalEntity {
private static final long serialVersionUID = 1L;
@Id
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 c82dabe..0dd1bfc 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
@@ -32,6 +32,8 @@ 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;
@@ -62,6 +64,7 @@ import org.apache.openmeetings.db.entity.user.User;
+ " 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")
@XmlRootElement(name = CALENDAR_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class OmCalendar extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
index 3f0b458..90e84f5 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
@@ -23,6 +23,8 @@ import static
org.apache.openmeetings.db.bind.Constants.FILE_NODE;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.NamedQuery;
+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;
@@ -48,6 +50,7 @@ import org.apache.openmeetings.db.bind.adapter.LongAdapter;
+ "AND f.groupId = :groupId AND f.parentId IS NULL AND f.type
IN :filter "
+ "ORDER BY f.type ASC, f.name")
@XmlRootElement(name = FILE_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class FileItem extends BaseFileItem {
private static final long serialVersionUID = 1L;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
index db18cc5..2253b34 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
@@ -35,6 +35,8 @@ import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
+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;
@@ -98,6 +100,7 @@ import org.apache.openmeetings.db.entity.file.BaseFileItem;
+ " OR r.roomId IN (SELECT rg.room.id FROM RoomGroup rg
WHERE rg.group.id = :groupId)"
+ " ) order by r.inserted ASC")
@XmlRootElement(name = RECORDING_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class Recording extends BaseFileItem {
private static final long serialVersionUID = 1L;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java
index 369534f..5cf2ee3 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java
@@ -32,6 +32,8 @@ 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.XmlTransient;
@@ -60,6 +62,7 @@ import org.apache.openmeetings.db.entity.HistoricalEntity;
@NamedQuery(name = "getScreenChunkByRecording", query = "SELECT c FROM
RecordingChunk c WHERE c.recording.id = :recordingId AND c.type = :screen")
@Table(name = "recording_chunk")
@XmlRootElement(name = "flvrecordingmetadata")
+@XmlAccessorType(XmlAccessType.FIELD)
public class RecordingChunk extends HistoricalEntity {
private static final long serialVersionUID = 1L;
@XmlType(namespace="org.apache.openmeetings.record.chunk")
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
index 609b0b2..ff280f7 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.db.entity.room;
+import static org.apache.openmeetings.db.bind.Constants.EXTRA_MENU_NODE;
+
import java.util.ArrayList;
import java.util.List;
@@ -33,8 +35,11 @@ import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
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.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.openmeetings.db.bind.adapter.LongAdapter;
@@ -48,6 +53,8 @@ import org.apache.openmeetings.db.entity.IDataProviderEntity;
, @NamedQuery(name = "countExtraMenus", query = "SELECT COUNT(m) FROM
ExtraMenu m")
})
@Table(name = "extra_menu")
+@XmlRootElement(name = EXTRA_MENU_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class ExtraMenu implements IDataProviderEntity {
private static final long serialVersionUID = 1L;
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 bd222a8..4e7f986 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
@@ -47,6 +47,8 @@ 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;
@@ -98,6 +100,7 @@ import org.apache.openmeetings.db.entity.user.Group;
@Index(name = "room_name_idx", columnList = "name")
})
@XmlRootElement(name = ROOM_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class Room extends HistoricalEntity {
private static final long serialVersionUID = 1L;
public static final int CONFERENCE_TYPE_ID = 1;
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 310a418..f26fd32 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,6 +28,8 @@ 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.XmlTransient;
@@ -47,6 +49,7 @@ import org.apache.openmeetings.db.entity.user.User;
+ "where c.roomId = :roomId AND c.deleted = false AND c.user.id
= :userId")
@Table(name = "room_moderator")
@XmlRootElement(name = "room_moderator")
+@XmlAccessorType(XmlAccessType.FIELD)
public class RoomModerator extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
index 1ce2585..1e322e5 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
@@ -31,6 +31,8 @@ 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.XmlTransient;
@@ -48,6 +50,7 @@ import org.apache.openmeetings.db.entity.user.User;
@NamedQuery(name="getActiveLdapConfigs", query="SELECT c FROM LdapConfig c
WHERE c.deleted = false AND c.active = :isActive ORDER BY c.id")
@Table(name = "ldapconfig")
@XmlRootElement(name = LDAP_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class LdapConfig extends HistoricalEntity {
private static final long serialVersionUID = 1L;
@Id
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
index d223706..049eba8 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
@@ -37,6 +37,8 @@ import javax.persistence.JoinColumn;
import javax.persistence.MapKeyColumn;
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.XmlAnyElement;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@@ -55,6 +57,7 @@ import org.apache.openmeetings.db.entity.HistoricalEntity;
@NamedQuery(name = "getAllOAuthServers", query = "SELECT s FROM OAuthServer s
WHERE s.deleted = false ORDER BY s.id")
@NamedQuery(name = "countOAuthServers", query = "select count(s) from
OAuthServer s WHERE s.deleted = false")
@XmlRootElement(name = OAUTH_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class OAuthServer extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
index edeb124..9ba80c5 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
@@ -30,6 +30,8 @@ import javax.persistence.Index;
import javax.persistence.Lob;
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.XmlRootElement;
@Entity
@@ -39,6 +41,7 @@ import javax.xml.bind.annotation.XmlRootElement;
@Index(name = "session_id_idx", columnList = "session_id",
unique = true)
})
@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
public class Sessiondata implements Serializable {
private static final long serialVersionUID = 1L;
@Id
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
index b60cec8..4836fed 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
@@ -26,6 +26,8 @@ import javax.persistence.Id;
import javax.persistence.Index;
import javax.persistence.Lob;
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.XmlTransient;
@@ -37,6 +39,7 @@ import org.apache.openmeetings.db.entity.HistoricalEntity;
@Index(name = "email_idx", columnList = "email")
})
@XmlRootElement(name = "address")
+@XmlAccessorType(XmlAccessType.FIELD)
public class Address extends HistoricalEntity {
private static final long serialVersionUID = 1L;
@Id
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
index 95b5d6115..30b0c33 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
@@ -28,6 +28,8 @@ import javax.persistence.Id;
import javax.persistence.Index;
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.XmlTransient;
@@ -52,6 +54,7 @@ import org.apache.openmeetings.db.entity.HistoricalEntity;
@Index(name = "group_name_idx", columnList = "name")
})
@XmlRootElement(name = GROUP_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class Group extends HistoricalEntity {
private static final long serialVersionUID = 1L;
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
index 4f4b7d1..b693ef5 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
@@ -28,6 +28,8 @@ 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.XmlTransient;
@@ -48,6 +50,7 @@ import org.apache.openmeetings.db.entity.HistoricalEntity;
@NamedQuery(name = "getGroupModerators", query = "SELECT gu.user FROM
GroupUser gu WHERE gu.deleted = false AND gu.moderator = true AND gu.group.id
= :id")
@Table(name = "group_user")
@XmlRootElement(name = "user_organisation")
+@XmlAccessorType(XmlAccessType.FIELD)
public class GroupUser extends HistoricalEntity {
private static final long serialVersionUID = 1L;
@Id
diff --git
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
index fb9cb98..33a6386 100644
---
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
+++
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
@@ -57,6 +57,8 @@ import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
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;
@@ -126,6 +128,7 @@ import org.apache.wicket.util.string.Strings;
, @Index(name = "type_idx", columnList = "type")
})
@XmlRootElement(name = USER_NODE)
+@XmlAccessorType(XmlAccessType.FIELD)
public class User extends HistoricalEntity {
private static final long serialVersionUID = 1L;
public static final String DISPLAY_NAME_NA = "N/A";
diff --git
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
index a12f60b..6990b12 100644
---
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
+++
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
@@ -23,6 +23,7 @@ import static
org.apache.openmeetings.db.bind.Constants.CALENDAR_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.CFG_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.CHAT_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.CONTACT_LIST_NODE;
+import static org.apache.openmeetings.db.bind.Constants.EXTRA_MENU_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.FILE_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.GROUP_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.LDAP_LIST_NODE;
@@ -71,6 +72,7 @@ import
org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
import org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
import org.apache.openmeetings.db.dao.file.FileItemDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
+import org.apache.openmeetings.db.dao.room.ExtraMenuDao;
import org.apache.openmeetings.db.dao.room.PollDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.server.LdapConfigDao;
@@ -86,6 +88,7 @@ import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.calendar.OmCalendar;
import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.record.Recording;
+import org.apache.openmeetings.db.entity.room.ExtraMenu;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.room.RoomPoll;
import org.apache.openmeetings.db.entity.server.LdapConfig;
@@ -147,6 +150,8 @@ public class BackupExport {
private GroupDao groupDao;
@Autowired
private RoomDao roomDao;
+ @Autowired
+ private ExtraMenuDao menuDao;
public void performExport(File zip, boolean includeFiles,
ProgressHolder progressHolder) throws Exception {
if (zip.getParentFile() != null &&
!zip.getParentFile().exists()) {
@@ -195,6 +200,8 @@ public class BackupExport {
progressHolder.setProgress(80);
exportChat(zos);
progressHolder.setProgress(85);
+ exportExtraMenus(zos);
+ progressHolder.setProgress(87);
if (includeFiles) {
exportFiles(progressHolder, zos);
@@ -369,6 +376,11 @@ public class BackupExport {
writeList(zos, "chat_messages.xml", CHAT_LIST_NODE, list);
}
+ private void exportExtraMenus(ZipOutputStream zos) throws Exception {
+ List<ExtraMenu> list = menuDao.get(0, Integer.MAX_VALUE);
+ writeList(zos, "extraMenus.xml", EXTRA_MENU_LIST_NODE, list);
+ }
+
/*
* Package private for tests
*/
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 b9906d3..8a66ea9 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
@@ -30,6 +30,8 @@ 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.CONTACT_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.CONTACT_NODE;
+import static org.apache.openmeetings.db.bind.Constants.EXTRA_MENU_LIST_NODE;
+import static org.apache.openmeetings.db.bind.Constants.EXTRA_MENU_NODE;
import static org.apache.openmeetings.db.bind.Constants.FILE_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.FILE_NODE;
import static org.apache.openmeetings.db.bind.Constants.GROUP_LIST_NODE;
@@ -191,6 +193,7 @@ import
org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
import org.apache.openmeetings.db.dao.file.BaseFileItemDao;
import org.apache.openmeetings.db.dao.file.FileItemDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
+import org.apache.openmeetings.db.dao.room.ExtraMenuDao;
import org.apache.openmeetings.db.dao.room.PollDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.server.LdapConfigDao;
@@ -210,6 +213,7 @@ import org.apache.openmeetings.db.entity.file.BaseFileItem;
import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.record.Recording;
import org.apache.openmeetings.db.entity.record.RecordingChunk;
+import org.apache.openmeetings.db.entity.room.ExtraMenu;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.room.RoomFile;
import org.apache.openmeetings.db.entity.room.RoomGroup;
@@ -347,6 +351,8 @@ public class BackupImport {
@Autowired
private GroupDao groupDao;
@Autowired
+ private ExtraMenuDao menuDao;
+ @Autowired
private DocumentConverter docConverter;
private final Map<Long, Long> ldapMap = new HashMap<>();
@@ -446,8 +452,10 @@ public class BackupImport {
progressHolder.setProgress(87);
importRoomFiles(f);
progressHolder.setProgress(92);
+ importExtraMenus(f);
+ progressHolder.setProgress(95);
- log.info("Room files import complete, starting copy of files
and folders");
+ log.info("Extra menus import complete, starting copy of files
and folders");
/*
* ##################### Import real files and folders
*/
@@ -1133,6 +1141,22 @@ public class BackupImport {
}, true);
}
+ void importExtraMenus(File base) throws Exception {
+ log.info("Room files complete, starting extra menus import");
+ Class<ExtraMenu> eClazz = ExtraMenu.class;
+ JAXBContext jc = JAXBContext.newInstance(eClazz);
+ Unmarshaller unmarshaller = jc.createUnmarshaller();
+ unmarshaller.setAdapter(new GroupAdapter(groupDao, groupMap));
+
+ readList(unmarshaller, base, "extraMenus.xml",
EXTRA_MENU_LIST_NODE, EXTRA_MENU_NODE, eClazz, m -> {
+ if (Strings.isEmpty(m.getName()) ||
Strings.isEmpty(m.getLink())) {
+ return;
+ }
+ m.setId(null);
+ menuDao.update(m, null);
+ }, true);
+ }
+
private static <T> void readList(File baseDir, String fileName, String
listNodeName, String nodeName, Class<T> clazz, Consumer<T> consumer) {
readList(baseDir, fileName, listNodeName, nodeName, clazz,
consumer, false);
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
index abf1b7d..8ea79c8 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
@@ -293,7 +293,11 @@ public abstract class FileTreePanel extends Panel {
? fi.getOriginal() :
fi.getFile(ext);
if (f != null && f.exists()) {
dwnldFile = f;
- dwnldName = fi.getName() + "." +
OmFileHelper.getFileExt(f.getName());
+ String fileExt =
OmFileHelper.getFileExt(f.getName());
+ dwnldName = fi.getName();
+ if (!dwnldName.endsWith(fileExt)) {
+ dwnldName += "." + fileExt;
+ }
downloader.initiate(target);
}
}
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 835e19e..249e38b 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
@@ -25,6 +25,7 @@ import java.io.File;
import org.apache.openmeetings.db.dao.basic.ChatDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
+import org.apache.openmeetings.db.dao.room.ExtraMenuDao;
import org.apache.openmeetings.db.dao.server.LdapConfigDao;
import org.apache.openmeetings.db.dao.server.OAuth2Dao;
import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
@@ -34,6 +35,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
class TestImport extends AbstractTestImport {
+ public static final String BACKUP_ROOT =
"org/apache/openmeetings/backup/";
@Autowired
private LdapConfigDao ldapDao;
@Autowired
@@ -44,17 +46,19 @@ class TestImport extends AbstractTestImport {
private RecordingDao recDao;
@Autowired
private PrivateMessageFolderDao msgFolderDao;
+ @Autowired
+ private ExtraMenuDao menuDao;
@Test
void importVersionNE() throws Exception {
- File configs = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/skip/configs.xml").toURI());
+ File configs = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"config/skip/configs.xml").toURI());
BackupVersion ver =
BackupImport.getVersion(configs.getParentFile());
assertEquals(new BackupVersion(), ver);
}
@Test
void importVersion() throws Exception {
- File version = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/version/version.xml").toURI());
+ File version = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"version/version.xml").toURI());
BackupVersion ver =
BackupImport.getVersion(version.getParentFile());
assertEquals(5, ver.getMajor(), "major");
assertEquals(0, ver.getMinor(), "minor");
@@ -63,7 +67,7 @@ class TestImport extends AbstractTestImport {
@Test
void importGroups() throws Exception {
long grpCount = groupDao.count();
- File groups = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/group/organizations.xml").toURI());
+ File groups = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"group/organizations.xml").toURI());
backupImport.importGroups(groups.getParentFile());
assertEquals(grpCount + 1, groupDao.count(), "Group should be
added");
}
@@ -76,7 +80,7 @@ class TestImport extends AbstractTestImport {
cfgDao.update(def, null);
}
long ldapCount = ldapDao.count();
- File ldaps = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/ldap/ldapconfigs.xml").toURI());
+ File ldaps = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"ldap/ldapconfigs.xml").toURI());
Long id = backupImport.importLdap(ldaps.getParentFile());
assertEquals(ldapCount + 1, ldapDao.count(), "Ldap should be
added");
LdapConfig ldap = ldapDao.get(id);
@@ -86,7 +90,7 @@ class TestImport extends AbstractTestImport {
@Test
void importOauths() throws Exception {
long oauthCount = oauthDao.count();
- File oauths = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/oauth/oauth2servers.xml").toURI());
+ File oauths = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"oauth/oauth2servers.xml").toURI());
backupImport.importOauth(oauths.getParentFile());
assertEquals(oauthCount + 2, oauthDao.count(), "OAuth should be
added");
}
@@ -94,7 +98,7 @@ class TestImport extends AbstractTestImport {
@Test
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());
+ File chats = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"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");
}
@@ -102,15 +106,23 @@ class TestImport extends AbstractTestImport {
@Test
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());
+ File chats = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"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
+ void importExtraMenu() throws Exception {
+ long menuCount = menuDao.count();
+ File menus = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"menu/extraMenus.xml").toURI());
+ backupImport.importExtraMenus(menus.getParentFile());
+ assertEquals(menuCount + 3, menuDao.count(), "Extra menus
should be added");
+ }
+
+ @Test
void importRecordings() throws Exception {
long recCount = recDao.get().size();
- File recs = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/file/flvRecordings.xml").toURI());
+ File recs = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"file/flvRecordings.xml").toURI());
backupImport.importRecordings(recs.getParentFile());
assertEquals(recCount + 4, recDao.get().size(), "Recordings
should be added");
}
@@ -118,7 +130,7 @@ class TestImport extends AbstractTestImport {
@Test
void importMsgFolders() throws Exception {
long fldrCount = msgFolderDao.get(0, Integer.MAX_VALUE).size();
- File fldrs = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/msg/privateMessageFolder.xml").toURI());
+ File fldrs = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"msg/privateMessageFolder.xml").toURI());
backupImport.importPrivateMsgFolders(fldrs.getParentFile());
assertEquals(fldrCount + 1, msgFolderDao.get(0,
Integer.MAX_VALUE).size(), "Message folders should be added");
}
diff --git
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java
index ba445a3..46a759a 100644
---
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java
+++
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.backup;
+import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
@@ -36,7 +37,7 @@ class TestImportCalendar extends AbstractTestImport {
@Test
void importCalendars() throws Exception {
long calCount = calendarDao.get().size();
- File cals = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/calendar/calendars.xml").toURI());
+ File cals = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"calendar/calendars.xml").toURI());
backupImport.importCalendars(cals.getParentFile());
assertEquals(calCount + 1, calendarDao.get().size(), "Calendars
should be added");
}
@@ -44,7 +45,7 @@ class TestImportCalendar extends AbstractTestImport {
@Test
void importAppointmentsSkip() throws Exception {
long appCount = appointmentDao.get().size();
- File apps = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/calendar/skip/appointements.xml").toURI());
+ File apps = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"calendar/skip/appointements.xml").toURI());
backupImport.importAppointments(apps.getParentFile());
assertEquals(appCount, appointmentDao.get().size(), "No
Appointments should be added");
}
@@ -52,7 +53,7 @@ class TestImportCalendar extends AbstractTestImport {
@Test
void importAppointments() throws Exception {
long appCount = appointmentDao.get().size();
- File apps = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/calendar/appointements.xml").toURI());
+ File apps = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"calendar/appointements.xml").toURI());
backupImport.importAppointments(apps.getParentFile());
assertEquals(appCount + 2, appointmentDao.get().size(),
"Appointments 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 5f7d1fe..de3c7b3 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
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.backup;
+import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_FRONTEND;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_OAUTH;
import static
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_SOAP;
@@ -34,7 +35,7 @@ class TestImportConfig extends AbstractTestImport {
@Test
void importConfigsNoKeyDeleted() throws Exception {
long configsCount = cfgDao.count();
- File configs = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/skip/configs.xml").toURI());
+ File configs = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"config/skip/configs.xml").toURI());
backupImport.importConfigs(configs.getParentFile());
assertEquals(configsCount, cfgDao.count(), "No records should
be added");
}
@@ -52,7 +53,7 @@ class TestImportConfig extends AbstractTestImport {
cfgNE2.setType(Configuration.Type.BOOL);
}
cfgDao.update(cfgNE2, null, true);
- File configs = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/bool/configs.xml").toURI());
+ File configs = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"config/bool/configs.xml").toURI());
backupImport.importConfigs(configs.getParentFile());
cfgDao.get(CONFIG_REGISTER_FRONTEND, CONFIG_REGISTER_SOAP,
CONFIG_REGISTER_OAUTH, CONFIG_REPLY_TO_ORGANIZER).forEach(cfg -> {
boolean exp =
!cfg.getKey().equals(CONFIG_REPLY_TO_ORGANIZER);
@@ -62,7 +63,7 @@ class TestImportConfig extends AbstractTestImport {
@Test
void importConfigs() throws Exception {
- File configs = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/configs.xml").toURI());
+ File configs = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"config/configs.xml").toURI());
backupImport.importConfigs(configs.getParentFile());
}
}
diff --git
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java
index 2653104..2d80d25 100644
---
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java
+++
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.backup;
+import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@ -99,7 +100,7 @@ class TestImportOld extends AbstractTestImport {
*/
@Test
void importJira2423() throws Exception {
- try (InputStream is =
getClass().getClassLoader().getResourceAsStream("org/apache/openmeetings/backup/jira2423/backup_2423.zip"))
{
+ try (InputStream is =
getClass().getClassLoader().getResourceAsStream(BACKUP_ROOT +
"jira2423/backup_2423.zip")) {
backupImport.performImport(is, new ProgressHolder());
Group grp2 = groupDao.get("group2_jira_2423");
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
index 591088a..e96f0f6 100644
---
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
+++
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.backup;
+import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
@@ -33,7 +34,7 @@ class TestImportRoom extends AbstractTestImport {
@Test
void importRooms() throws Exception {
long roomsCount = roomDao.count();
- File rooms = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/room/rooms.xml").toURI());
+ File rooms = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"room/rooms.xml").toURI());
backupImport.importRooms(rooms.getParentFile());
assertEquals(roomsCount + 1, roomDao.count(), "Room should be
added");
}
@@ -41,7 +42,7 @@ class TestImportRoom extends AbstractTestImport {
@Test
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());
+ File rooms = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"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 a6c479e..57b2023 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
@@ -18,6 +18,7 @@
*/
package org.apache.openmeetings.backup;
+import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -38,7 +39,7 @@ class TestImportUser extends AbstractTestImport {
@Test
void importUserNE() throws Exception {
Assertions.assertThrows(BackupException.class, () -> {
- File configs = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/config/skip/configs.xml").toURI());
+ File configs = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"config/skip/configs.xml").toURI());
backupImport.importUsers(configs.getParentFile());
});
}
@@ -46,7 +47,7 @@ class TestImportUser extends AbstractTestImport {
@Test
void importUsers() throws Exception {
long userCount = userDao.count();
- File users = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/user/users.xml").toURI());
+ File users = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"user/users.xml").toURI());
backupImport.importUsers(users.getParentFile());
assertEquals(userCount + 8, userDao.count(), "Users should be
added");
User ext = userDao.getExternalUser("234", "TheBestCms");
@@ -56,7 +57,7 @@ class TestImportUser extends AbstractTestImport {
@Test
void importNoLoginDeleted() throws Exception {
long userCount = userDao.count();
- File users = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/user/skip/users.xml").toURI());
+ File users = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"user/skip/users.xml").toURI());
backupImport.importUsers(users.getParentFile());
assertEquals(userCount, userDao.count(), "No records should be
added");
}
@@ -69,7 +70,7 @@ class TestImportUser extends AbstractTestImport {
for (LdapConfig cfg : ldapDao.get(0, Integer.MAX_VALUE)) {
ldapDao.delete(cfg, null);
}
- File users = new
File(getClass().getClassLoader().getResource("org/apache/openmeetings/backup/user/ldap/users.xml").toURI());
+ File users = new
File(getClass().getClassLoader().getResource(BACKUP_ROOT +
"user/ldap/users.xml").toURI());
backupImport.cleanup();
backupImport.importLdap(users.getParentFile());
List<LdapConfig> ldapConfigs = ldapDao.get("om_2294_ldap", 0,
100, null);
diff --git
a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/menu/extraMenus.xml
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/menu/extraMenus.xml
new file mode 100644
index 0000000..d3e4656
--- /dev/null
+++
b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/menu/extraMenus.xml
@@ -0,0 +1,75 @@
+<?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
+###############################################
+ -->
+ <!--###############################################
+This File is auto-generated by the Backup Tool
+you should use the BackupPanel to modify or change this file
+see https://openmeetings.apache.org/Upgrade.html for Details
+###############################################
+-->
+<root>
+<ExtraMenus>
+<ExtraMenu>
+ <id>1</id>
+ <name>test</name>
+ <link>unipro.ru</link>
+ <description>Unipro</description>
+ <groups/>
+</ExtraMenu>
+<ExtraMenu>
+ <id>2</id>
+ <name>aasdadasd</name>
+ <link>asdasdasdsad.com</link>
+ <groups>
+ <group>1</group>
+ </groups>
+</ExtraMenu>
+<ExtraMenu>
+ <id>3</id>
+ <name>wwwwww</name>
+ <link>wwwww.ru</link>
+ <description>test group</description>
+ <groups>
+ <group>2</group>
+ </groups>
+</ExtraMenu>
+<ExtraMenu>
+ <id>4</id>
+ <name></name>
+ <link>aaa.com</link>
+ <description>test no name</description>
+</ExtraMenu>
+<ExtraMenu>
+ <id>5</id>
+ <name>bbbbbb</name>
+ <description>test no link</description>
+</ExtraMenu>
+<ExtraMenu>
+ <id>6</id>
+ <description>test no name and link</description>
+</ExtraMenu>
+</ExtraMenus>
+</root>