Repository: openmeetings
Updated Branches:
  refs/heads/master 76abbfa78 -> 9774beaf5


[OPENMEETINGS-1714] more issues are fixed


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/9774beaf
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/9774beaf
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/9774beaf

Branch: refs/heads/master
Commit: 9774beaf5e742008361516ee8996c691563166ed
Parents: 76abbfa
Author: Maxim Solodovnik <[email protected]>
Authored: Fri Sep 29 16:57:14 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Fri Sep 29 16:57:14 2017 +0700

----------------------------------------------------------------------
 .../backup/AppointmentConverter.java            |   4 +-
 .../AppointmentReminderTypeConverter.java       |   4 +-
 .../openmeetings/backup/BackupExport.java       | 520 ++++++------
 .../openmeetings/backup/BackupImport.java       | 834 ++++++++++---------
 .../backup/BaseFileItemConverter.java           |   4 +-
 .../openmeetings/backup/GroupConverter.java     |   4 +-
 .../openmeetings/backup/InlineConverter.java    |   2 +-
 .../backup/OmCalendarConverter.java             |   4 +-
 .../apache/openmeetings/backup/OmConverter.java |   2 +-
 .../openmeetings/backup/PollTypeConverter.java  |   4 +-
 .../backup/RecordingStatusConverter.java        |   2 +-
 .../openmeetings/backup/RoomConverter.java      |   4 +-
 .../openmeetings/backup/RoomTypeConverter.java  |   4 +-
 .../backup/SalutationConverter.java             |   4 +-
 .../openmeetings/backup/UserConverter.java      |   4 +-
 .../web/room/sidebar/icon/SettingsIcon.java     |   2 +-
 .../web/user/profile/ChangePasswordDialog.java  |   2 +-
 .../web/user/profile/ProfileForm.java           |   2 +-
 18 files changed, 736 insertions(+), 670 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
index c219331..6f1e0ac 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentConverter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getLong;
+
 import java.util.Map;
 
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
@@ -25,7 +27,7 @@ import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class AppointmentConverter extends OmConverter<Appointment> {
+public class AppointmentConverter implements OmConverter<Appointment> {
        private AppointmentDao appointmentDao;
        private Map<Long, Long> idMap;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
index f55d7fe..99f09ed 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/AppointmentReminderTypeConverter.java
@@ -18,11 +18,13 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getInt;
+
 import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class AppointmentReminderTypeConverter extends OmConverter<Reminder> {
+public class AppointmentReminderTypeConverter implements OmConverter<Reminder> 
{
        public AppointmentReminderTypeConverter() {
                //default constructor is for export
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
----------------------------------------------------------------------
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 8b716fa..1d310e3 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
@@ -149,274 +149,315 @@ public class BackupExport {
                         */
                        writeList(ser, zos, "organizations.xml", 
"organisations", groupDao.get(0, Integer.MAX_VALUE));
                        progressHolder.setProgress(5);
-                       /*
-                        * ##################### Backup Users
-                        */
-                       exportUsers(zos, userDao.getAllBackupUsers());
-                       progressHolder.setProgress(10);
 
-                       /*
-                        * ##################### Backup Room
-                        */
-                       {
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
+                       exportUsers(zos, progressHolder);
+                       exportRoom(zos, progressHolder);
+                       exportRoomGroup(zos, progressHolder);
+                       exportRoomFile(zos, progressHolder);
+                       exportCalendar(zos, progressHolder);
+                       exportAppointment(zos, progressHolder);
+                       exportMeetingMember(zos, progressHolder);
+                       exportLdap(zos, progressHolder, ser);
+                       exportOauth(zos, progressHolder, ser);
+                       exportPrivateMsg(zos, progressHolder);
+                       exportPrivateMsgFolder(zos, progressHolder, ser);
+                       exportContacts(zos, progressHolder);
+                       exportFile(zos, progressHolder);
+                       exportRecording(zos, progressHolder);
+                       exportPoll(zos, progressHolder);
+                       exportConfig(zos, progressHolder);
+                       exportChat(zos, progressHolder);
 
-                               registry.bind(User.class, UserConverter.class);
-                               registry.bind(Room.Type.class, 
RoomTypeConverter.class);
+                       if (includeFiles) {
+                               //##################### Backup Room Files
+                               for (File file : 
OmFileHelper.getUploadDir().listFiles()) {
+                                       if (file.isDirectory()) {
+                                               String fName = file.getName();
+                                               if (!IMPORT_DIR.equals(fName) 
&& !BACKUP_DIR.equals(fName)) {
+                                                       log.debug("### " + 
file.getName());
+                                                       
writeZipDir(BCKP_ROOM_FILES, file.getParentFile().toURI(), file, zos);
+                                               }
+                                       }
+                               }
 
-                               writeList(serializer, zos, "rooms.xml", 
"rooms", roomDao.get());
-                               progressHolder.setProgress(15);
+                               //##################### Backup Recording Files
+                               File recDir = 
OmFileHelper.getStreamsHibernateDir();
+                               writeZipDir(BCKP_RECORD_FILES, recDir.toURI(), 
recDir, zos);
+                               progressHolder.setProgress(90);
                        }
+               }
+               progressHolder.setProgress(100);
+               log.debug("---Done");
+       }
 
-                       /*
-                        * ##################### Backup Room Groups
-                        */
-                       {
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
+       /*
+        * ##################### Backup Users
+        */
+       private void exportUsers(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer ser = new Persister(strategy);
 
-                               registry.bind(Group.class, 
GroupConverter.class);
-                               registry.bind(Room.class, RoomConverter.class);
+               registry.bind(Group.class, GroupConverter.class);
+               registry.bind(Salutation.class, SalutationConverter.class);
+               List<User> list = userDao.getAllBackupUsers();
+               if (list != null && !list.isEmpty()) {
+                       Class<?> dateClass = list.get(0).getRegdate() != null ? 
list.get(0).getRegdate().getClass() : list.get(0).getInserted().getClass();
+                       registry.bind(dateClass, DateConverter.class);
+               }
 
-                               writeList(serializer, zos, 
"rooms_organisation.xml", "room_organisations", roomGroupDao.get());
-                               progressHolder.setProgress(17);
-                       }
+               writeList(ser, zos, "users.xml", "users", list);
+               progressHolder.setProgress(10);
+       }
 
-                       /*
-                        * ##################### Backup Room Files
-                        */
-                       {
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
+       /*
+        * ##################### Backup Room
+        */
+       private void exportRoom(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                               registry.bind(FileItem.class, 
BaseFileItemConverter.class);
-                               registry.bind(Recording.class, 
BaseFileItemConverter.class);
+               registry.bind(User.class, UserConverter.class);
+               registry.bind(Room.Type.class, RoomTypeConverter.class);
 
-                               writeList(serializer, zos, "roomFiles.xml", 
"RoomFiles", roomDao.getFiles());
-                               progressHolder.setProgress(17);
-                       }
+               writeList(serializer, zos, "rooms.xml", "rooms", roomDao.get());
+               progressHolder.setProgress(15);
+       }
 
-                       /*
-                        * ##################### Backup Calendars
-                        */
-                       {
-                               List<OmCalendar> list = calendarDao.get();
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
-                               registry.bind(User.class, UserConverter.class);
-
-                               writeList(serializer, zos, "calendars.xml", 
"calendars", list);
-                               progressHolder.setProgress(22);
-                       }
-                       /*
-                        * ##################### Backup Appointments
-                        */
-                       {
-                               List<Appointment> list = appointmentDao.get();
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
-
-                               registry.bind(User.class, UserConverter.class);
-                               registry.bind(Appointment.Reminder.class, 
AppointmentReminderTypeConverter.class);
-                               registry.bind(Room.class, RoomConverter.class);
-                               if (list != null && !list.isEmpty()) {
-                                       for (Appointment a : list) {
-                                               if (a.getStart() != null) {
-                                                       
registry.bind(a.getStart().getClass(), DateConverter.class);
-                                                       break;
-                                               } else if (a.getInserted() != 
null) {
-                                                       
registry.bind(a.getInserted().getClass(), DateConverter.class);
-                                                       break;
-                                               }
-                                       }
-                               }
+       /*
+        * ##################### Backup Room Groups
+        */
+       private void exportRoomGroup(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                               writeList(serializer, zos, "appointements.xml", 
"appointments", list);
-                               progressHolder.setProgress(25);
-                       }
+               registry.bind(Group.class, GroupConverter.class);
+               registry.bind(Room.class, RoomConverter.class);
 
-                       /*
-                        * ##################### Backup Meeting Members
-                        */
-                       {
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
+               writeList(serializer, zos, "rooms_organisation.xml", 
"room_organisations", roomGroupDao.get());
+               progressHolder.setProgress(17);
+       }
 
-                               registry.bind(User.class, UserConverter.class);
-                               registry.bind(Appointment.class, 
AppointmentConverter.class);
+       /*
+        * ##################### Backup Room Files
+        */
+       private void exportRoomFile(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                               writeList(serializer, zos, "meetingmembers.xml",
-                                               "meetingmembers", 
meetingMemberDao.getMeetingMembers());
-                               progressHolder.setProgress(30);
-                       }
+               registry.bind(FileItem.class, BaseFileItemConverter.class);
+               registry.bind(Recording.class, BaseFileItemConverter.class);
 
-                       /*
-                        * ##################### LDAP Configs
-                        */
-                       List<LdapConfig> ldapList = ldapConfigDao.get();
-                       if (!ldapList.isEmpty()) {
-                               ldapList.remove(0);
-                       }
-                       writeList(ser, zos, "ldapconfigs.xml", "ldapconfigs", 
ldapList);
-                       progressHolder.setProgress(35);
+               writeList(serializer, zos, "roomFiles.xml", "RoomFiles", 
roomDao.getFiles());
+               progressHolder.setProgress(17);
+       }
 
-                       /*
-                        * ##################### OAuth2 servers
-                        */
-                       writeList(ser, zos, "oauth2servers.xml", 
"oauth2servers", auth2Dao.get(0, Integer.MAX_VALUE));
-                       progressHolder.setProgress(45);
+       /*
+        * ##################### Backup Calendars
+        */
+       private void exportCalendar(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<OmCalendar> list = calendarDao.get();
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
+               registry.bind(User.class, UserConverter.class);
 
-                       /*
-                        * ##################### Private Messages
-                        */
-                       {
-                               List<PrivateMessage> list = 
privateMessageDao.get(0, Integer.MAX_VALUE);
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
-
-                               registry.bind(User.class, UserConverter.class);
-                               registry.bind(Room.class, RoomConverter.class);
-                               if (list != null && !list.isEmpty()) {
-                                       
registry.bind(list.get(0).getInserted().getClass(), DateConverter.class);
-                               }
+               writeList(serializer, zos, "calendars.xml", "calendars", list);
+               progressHolder.setProgress(22);
+       }
 
-                               writeList(serializer, zos, 
"privateMessages.xml",
-                                               "privatemessages", list);
-                               progressHolder.setProgress(50);
+       /*
+        * ##################### Backup Appointments
+        */
+       private void exportAppointment(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<Appointment> list = appointmentDao.get();
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
+
+               registry.bind(User.class, UserConverter.class);
+               registry.bind(Appointment.Reminder.class, 
AppointmentReminderTypeConverter.class);
+               registry.bind(Room.class, RoomConverter.class);
+               if (list != null && !list.isEmpty()) {
+                       for (Appointment a : list) {
+                               if (a.getStart() != null) {
+                                       registry.bind(a.getStart().getClass(), 
DateConverter.class);
+                                       break;
+                               } else if (a.getInserted() != null) {
+                                       
registry.bind(a.getInserted().getClass(), DateConverter.class);
+                                       break;
+                               }
                        }
+               }
 
-                       /*
-                        * ##################### Private Message Folders
-                        */
-                       writeList(ser, zos, "privateMessageFolder.xml",
-                                       "privatemessagefolders", 
privateMessageFolderDao.get(0, Integer.MAX_VALUE));
-                       progressHolder.setProgress(55);
+               writeList(serializer, zos, "appointements.xml", "appointments", 
list);
+               progressHolder.setProgress(25);
+       }
 
-                       /*
-                        * ##################### User Contacts
-                        */
-                       {
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
+       /*
+        * ##################### Backup Meeting Members
+        */
+       private void exportMeetingMember(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                               registry.bind(User.class, UserConverter.class);
+               registry.bind(User.class, UserConverter.class);
+               registry.bind(Appointment.class, AppointmentConverter.class);
 
-                               writeList(serializer, zos, "userContacts.xml", 
"usercontacts", userContactDao.get());
-                               progressHolder.setProgress(60);
-                       }
+               writeList(serializer, zos, "meetingmembers.xml",
+                               "meetingmembers", 
meetingMemberDao.getMeetingMembers());
+               progressHolder.setProgress(30);
+       }
 
-                       /*
-                        * ##################### File-Explorer
-                        */
-                       {
-                               List<FileItem> list = fileItemDao.get();
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
-
-                               if (list != null && !list.isEmpty()) {
-                                       
registry.bind(list.get(0).getInserted().getClass(), DateConverter.class);
-                               }
+       /*
+        * ##################### LDAP Configs
+        */
+       private void exportLdap(ZipOutputStream zos, ProgressHolder 
progressHolder, Serializer ser) throws Exception {
+               List<LdapConfig> ldapList = ldapConfigDao.get();
+               if (!ldapList.isEmpty()) {
+                       ldapList.remove(0);
+               }
+               writeList(ser, zos, "ldapconfigs.xml", "ldapconfigs", ldapList);
+               progressHolder.setProgress(35);
+       }
 
-                               writeList(serializer, zos, 
"fileExplorerItems.xml", "fileExplorerItems", list);
-                               progressHolder.setProgress(65);
-                       }
+       /*
+        * ##################### OAuth2 servers
+        */
+       private void exportOauth(ZipOutputStream zos, ProgressHolder 
progressHolder, Serializer ser) throws Exception {
+               writeList(ser, zos, "oauth2servers.xml", "oauth2servers", 
auth2Dao.get(0, Integer.MAX_VALUE));
+               progressHolder.setProgress(45);
+       }
 
-                       /*
-                        * ##################### Recordings
-                        */
-                       {
-                               List<Recording> list = recordingDao.get();
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
-
-                               if (list != null && !list.isEmpty()) {
-                                       
registry.bind(list.get(0).getInserted().getClass(), DateConverter.class);
-                               }
+       /*
+        * ##################### Private Messages
+        */
+       private void exportPrivateMsg(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<PrivateMessage> list = privateMessageDao.get(0, 
Integer.MAX_VALUE);
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                               writeList(serializer, zos, "flvRecordings.xml", 
"flvrecordings", list);
-                               progressHolder.setProgress(70);
-                       }
+               registry.bind(User.class, UserConverter.class);
+               registry.bind(Room.class, RoomConverter.class);
+               if (list != null && !list.isEmpty()) {
+                       registry.bind(list.get(0).getInserted().getClass(), 
DateConverter.class);
+               }
 
-                       /*
-                        * ##################### Polls
-                        */
-                       {
-                               List<RoomPoll> list = pollManager.get();
-                               Registry registry = new Registry();
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
-
-                               registry.bind(User.class, UserConverter.class);
-                               registry.bind(Room.class, RoomConverter.class);
-                               registry.bind(RoomPoll.Type.class, 
PollTypeConverter.class);
-                               if (list != null && !list.isEmpty()) {
-                                       
registry.bind(list.get(0).getCreated().getClass(), DateConverter.class);
-                               }
+               writeList(serializer, zos, "privateMessages.xml",
+                               "privatemessages", list);
+               progressHolder.setProgress(50);
+       }
 
-                               writeList(serializer, zos, "roompolls.xml", 
"roompolls", list);
-                               progressHolder.setProgress(75);
-                       }
+       /*
+        * ##################### Private Message Folders
+        */
+       private void exportPrivateMsgFolder(ZipOutputStream zos, ProgressHolder 
progressHolder, Serializer ser) throws Exception {
+               writeList(ser, zos, "privateMessageFolder.xml",
+                               "privatemessagefolders", 
privateMessageFolderDao.get(0, Integer.MAX_VALUE));
+               progressHolder.setProgress(55);
+       }
 
-                       /*
-                        * ##################### Config
-                        */
-                       {
-                               List<Configuration> list = 
configurationDao.get(0, Integer.MAX_VALUE);
-                               Serializer serializer = 
getConfigSerializer(list);
+       /*
+        * ##################### User Contacts
+        */
+       private void exportContacts(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                               writeList(serializer, zos, "configs.xml", 
"configs", list);
-                               progressHolder.setProgress(80);
-                       }
+               registry.bind(User.class, UserConverter.class);
 
-                       /*
-                        * ##################### Chat
-                        */
-                       {
-                               List<ChatMessage> list = chatDao.get(0, 
Integer.MAX_VALUE);
-                               Registry registry = new Registry();
-                               registry.bind(User.class, UserConverter.class);
-                               registry.bind(Room.class, RoomConverter.class);
-                               Strategy strategy = new 
RegistryStrategy(registry);
-                               Serializer serializer = new Persister(strategy);
-
-                               if (list != null && !list.isEmpty()) {
-                                       
registry.bind(list.get(0).getSent().getClass(), DateConverter.class);
-                               }
+               writeList(serializer, zos, "userContacts.xml", "usercontacts", 
userContactDao.get());
+               progressHolder.setProgress(60);
+       }
 
-                               writeList(serializer, zos, "chat_messages.xml", 
"chat_messages", list);
-                               progressHolder.setProgress(85);
-                       }
-                       if (includeFiles) {
-                               //##################### Backup Room Files
-                               for (File file : 
OmFileHelper.getUploadDir().listFiles()) {
-                                       if (file.isDirectory()) {
-                                               String fName = file.getName();
-                                               if (!IMPORT_DIR.equals(fName) 
&& !BACKUP_DIR.equals(fName)) {
-                                                       log.debug("### " + 
file.getName());
-                                                       
writeZipDir(BCKP_ROOM_FILES, file.getParentFile().toURI(), file, zos);
-                                               }
-                                       }
-                               }
+       /*
+        * ##################### File-Explorer
+        */
+       private void exportFile(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<FileItem> list = fileItemDao.get();
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                               //##################### Backup Recording Files
-                               File recDir = 
OmFileHelper.getStreamsHibernateDir();
-                               writeZipDir(BCKP_RECORD_FILES, recDir.toURI(), 
recDir, zos);
-                               progressHolder.setProgress(90);
-                       }
+               if (list != null && !list.isEmpty()) {
+                       registry.bind(list.get(0).getInserted().getClass(), 
DateConverter.class);
                }
-               progressHolder.setProgress(100);
-               log.debug("---Done");
+
+               writeList(serializer, zos, "fileExplorerItems.xml", 
"fileExplorerItems", list);
+               progressHolder.setProgress(65);
+       }
+
+       /*
+        * ##################### Recordings
+        */
+       private void exportRecording(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<Recording> list = recordingDao.get();
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
+
+               if (list != null && !list.isEmpty()) {
+                       registry.bind(list.get(0).getInserted().getClass(), 
DateConverter.class);
+               }
+
+               writeList(serializer, zos, "flvRecordings.xml", 
"flvrecordings", list);
+               progressHolder.setProgress(70);
+       }
+
+       /*
+        * ##################### Polls
+        */
+       private void exportPoll(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<RoomPoll> list = pollManager.get();
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
+
+               registry.bind(User.class, UserConverter.class);
+               registry.bind(Room.class, RoomConverter.class);
+               registry.bind(RoomPoll.Type.class, PollTypeConverter.class);
+               if (list != null && !list.isEmpty()) {
+                       registry.bind(list.get(0).getCreated().getClass(), 
DateConverter.class);
+               }
+
+               writeList(serializer, zos, "roompolls.xml", "roompolls", list);
+               progressHolder.setProgress(75);
+       }
+
+       /*
+        * ##################### Config
+        */
+       private void exportConfig(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<Configuration> list = configurationDao.get(0, 
Integer.MAX_VALUE);
+               Serializer serializer = getConfigSerializer(list);
+
+               writeList(serializer, zos, "configs.xml", "configs", list);
+               progressHolder.setProgress(80);
+       }
+
+       /*
+        * ##################### Chat
+        */
+       private void exportChat(ZipOutputStream zos, ProgressHolder 
progressHolder) throws Exception {
+               List<ChatMessage> list = chatDao.get(0, Integer.MAX_VALUE);
+               Registry registry = new Registry();
+               registry.bind(User.class, UserConverter.class);
+               registry.bind(Room.class, RoomConverter.class);
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
+
+               if (list != null && !list.isEmpty()) {
+                       registry.bind(list.get(0).getSent().getClass(), 
DateConverter.class);
+               }
+
+               writeList(serializer, zos, "chat_messages.xml", 
"chat_messages", list);
+               progressHolder.setProgress(85);
        }
 
        private static Serializer getConfigSerializer(List<Configuration> list) 
throws Exception {
@@ -464,21 +505,6 @@ public class BackupExport {
                root.commit();
        }
 
-       public void exportUsers(ZipOutputStream zos, List<User> list) throws 
Exception {
-               Registry registry = new Registry();
-               Strategy strategy = new RegistryStrategy(registry);
-               Serializer ser = new Persister(strategy);
-
-               registry.bind(Group.class, GroupConverter.class);
-               registry.bind(Salutation.class, SalutationConverter.class);
-               if (list != null && !list.isEmpty()) {
-                       Class<?> dateClass = list.get(0).getRegdate() != null ? 
list.get(0).getRegdate().getClass() : list.get(0).getInserted().getClass();
-                       registry.bind(dateClass, DateConverter.class);
-               }
-
-               writeList(ser, zos, "users.xml", "users", list);
-       }
-
        private void writeZipDir(String prefix, URI base, File dir, 
ZipOutputStream zos) throws IOException {
                for (File file : dir.listFiles()) {
                        if (file.isDirectory()) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
----------------------------------------------------------------------
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 6f395d4..43f26dd 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
@@ -377,513 +377,533 @@ public class BackupImport {
                messageFolderMap.put(TRASH_FOLDER_ID, TRASH_FOLDER_ID);
 
                File f = unzip(is);
+               importConfigs(f);
+               Serializer simpleSerializer = new Persister();
+               importGroups(f, simpleSerializer);
+               Long defaultLdapId = importLdap(f, simpleSerializer);
+               importOauth(f, simpleSerializer);
+               importUsers(f, defaultLdapId);
+               importRooms(f);
+               importRoomGroups(f);
+               importChat(f);
+               importCalendars(f);
+               importAppointments(f);
+               importMeetingMembers(f);
+               importRecordings(f);
+               importPrivateMsgFolders(f, simpleSerializer);
+               importContacts(f);
+               importPrivateMsgs(f);
+               importFiles(f);
+               importPolls(f);
+               importRoomFiles(f);
 
+               log.info("Room files import complete, starting copy of files 
and folders");
                /*
-                * ##################### Import Configs
+                * ##################### Import real files and folders
                 */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       RegistryMatcher matcher = new RegistryMatcher(); //TODO 
need to be removed in the later versions
-                       Serializer serializer = new Persister(strategy, 
matcher);
+               importFolders(f);
 
-                       matcher.bind(Long.class, LongTransform.class);
-                       registry.bind(Date.class, DateConverter.class);
-                       registry.bind(User.class, new UserConverter(userDao, 
userMap));
+               log.info("File explorer item import complete, clearing temp 
files");
 
-                       List<Configuration> list = readList(serializer, f, 
"configs.xml", "configs", Configuration.class, true);
-                       for (Configuration c : list) {
-                               if (c.getKey() == null || c.isDeleted()) {
-                                       continue;
-                               }
-                               String newKey = 
outdatedConfigKeys.get(c.getKey());
-                               if (newKey != null) {
-                                       c.setKey(newKey);
-                               }
-                               Configuration.Type type = 
configTypes.get(c.getKey());
-                               if (type != null) {
-                                       c.setType(type);
-                                       if (Configuration.Type.bool == type) {
-                                               if ("1".equals(c.getValue()) || 
"yes".equals(c.getValue()) || "true".equals(c.getValue())) {
-                                                       c.setValue("true");
-                                               } else {
-                                                       c.setValue("false");
-                                               }
+               FileUtils.deleteDirectory(f);
+       }
+
+       /*
+        * ##################### Import Configs
+        */
+       private void importConfigs(File f) throws Exception {
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               RegistryMatcher matcher = new RegistryMatcher(); //TODO need to 
be removed in the later versions
+               Serializer serializer = new Persister(strategy, matcher);
+
+               matcher.bind(Long.class, LongTransform.class);
+               registry.bind(Date.class, DateConverter.class);
+               registry.bind(User.class, new UserConverter(userDao, userMap));
+
+               List<Configuration> list = readList(serializer, f, 
"configs.xml", "configs", Configuration.class, true);
+               for (Configuration c : list) {
+                       if (c.getKey() == null || c.isDeleted()) {
+                               continue;
+                       }
+                       String newKey = outdatedConfigKeys.get(c.getKey());
+                       if (newKey != null) {
+                               c.setKey(newKey);
+                       }
+                       Configuration.Type type = configTypes.get(c.getKey());
+                       if (type != null) {
+                               c.setType(type);
+                               if (Configuration.Type.bool == type) {
+                                       if ("1".equals(c.getValue()) || 
"yes".equals(c.getValue()) || "true".equals(c.getValue())) {
+                                               c.setValue("true");
+                                       } else {
+                                               c.setValue("false");
                                        }
                                }
-                               Configuration cfg = cfgDao.forceGet(c.getKey());
-                               if (cfg != null && !cfg.isDeleted()) {
-                                       log.warn("Non deleted configuration 
with same key is found! old value: {}, new value: {}", cfg.getValue(), 
c.getValue());
-                               }
-                               c.setId(cfg == null ? null : cfg.getId());
-                               if (c.getUser() != null && c.getUser().getId() 
== null) {
-                                       c.setUser(null);
-                               }
-                               if (CONFIG_CRYPT.equals(c.getKey())) {
-                                       try {
-                                               Class<?> clazz = 
Class.forName(c.getValue());
-                                               clazz.newInstance();
-                                       } catch (Exception e) {
-                                               log.warn("Not existing Crypt 
class found {}, replacing with SCryptImplementation", c.getValue());
-                                               
c.setValue(SCryptImplementation.class.getCanonicalName());
-                                       }
+                       }
+                       Configuration cfg = cfgDao.forceGet(c.getKey());
+                       if (cfg != null && !cfg.isDeleted()) {
+                               log.warn("Non deleted configuration with same 
key is found! old value: {}, new value: {}", cfg.getValue(), c.getValue());
+                       }
+                       c.setId(cfg == null ? null : cfg.getId());
+                       if (c.getUser() != null && c.getUser().getId() == null) 
{
+                               c.setUser(null);
+                       }
+                       if (CONFIG_CRYPT.equals(c.getKey())) {
+                               try {
+                                       Class<?> clazz = 
Class.forName(c.getValue());
+                                       clazz.newInstance();
+                               } catch (Exception e) {
+                                       log.warn("Not existing Crypt class 
found {}, replacing with SCryptImplementation", c.getValue());
+                                       
c.setValue(SCryptImplementation.class.getCanonicalName());
                                }
-                               cfgDao.update(c, null);
                        }
+                       cfgDao.update(c, null);
                }
+       }
 
+       /*
+        * ##################### Import Groups
+        */
+       private void importGroups(File f, Serializer simpleSerializer) throws 
Exception {
                log.info("Configs import complete, starting group import");
-               /*
-                * ##################### Import Groups
-                */
-               Serializer simpleSerializer = new Persister();
-               {
-                       List<Group> list = readList(simpleSerializer, f, 
"organizations.xml", "organisations", Group.class);
-                       for (Group o : list) {
-                               Long oldId = o.getId();
-                               o.setId(null);
-                               o = groupDao.update(o, null);
-                               groupMap.put(oldId, o.getId());
-                       }
+               List<Group> list = readList(simpleSerializer, f, 
"organizations.xml", "organisations", Group.class);
+               for (Group o : list) {
+                       Long oldId = o.getId();
+                       o.setId(null);
+                       o = groupDao.update(o, null);
+                       groupMap.put(oldId, o.getId());
                }
+       }
 
+       /*
+        * ##################### Import LDAP Configs
+        */
+       private Long importLdap(File f, Serializer simpleSerializer) throws 
Exception {
                log.info("Groups import complete, starting LDAP config import");
-               /*
-                * ##################### Import LDAP Configs
-                */
                Long defaultLdapId = cfgDao.getLong(CONFIG_DEFAULT_LDAP_ID, 
null);
-               {
-                       List<LdapConfig> list = readList(simpleSerializer, f, 
"ldapconfigs.xml", "ldapconfigs", LdapConfig.class, true);
-                       for (LdapConfig c : list) {
-                               if (!"local DB [internal]".equals(c.getName())) 
{
-                                       c.setId(null);
-                                       c = ldapConfigDao.update(c, null);
-                                       if (defaultLdapId == null) {
-                                               defaultLdapId = c.getId();
-                                       }
+               List<LdapConfig> list = readList(simpleSerializer, f, 
"ldapconfigs.xml", "ldapconfigs", LdapConfig.class, true);
+               for (LdapConfig c : list) {
+                       if (!"local DB [internal]".equals(c.getName())) {
+                               c.setId(null);
+                               c = ldapConfigDao.update(c, null);
+                               if (defaultLdapId == null) {
+                                       defaultLdapId = c.getId();
                                }
                        }
                }
+               return defaultLdapId;
+       }
 
+       /*
+        * ##################### OAuth2 servers
+        */
+       private void importOauth(File f, Serializer simpleSerializer) throws 
Exception {
                log.info("Ldap config import complete, starting OAuth2 server 
import");
-               /*
-                * ##################### OAuth2 servers
-                */
-               {
-                       List<OAuthServer> list = readList(simpleSerializer, f, 
"oauth2servers.xml", "oauth2servers", OAuthServer.class, true);
-                       for (OAuthServer s : list) {
-                               s.setId(null);
-                               auth2Dao.update(s, null);
-                       }
+               List<OAuthServer> list = readList(simpleSerializer, f, 
"oauth2servers.xml", "oauth2servers", OAuthServer.class, true);
+               for (OAuthServer s : list) {
+                       s.setId(null);
+                       auth2Dao.update(s, null);
                }
+       }
 
+       /*
+        * ##################### Import Users
+        */
+       private void importUsers(File f, Long defaultLdapId) throws Exception {
                log.info("OAuth2 servers import complete, starting user 
import");
-               /*
-                * ##################### Import Users
-                */
-               {
-                       String jNameTimeZone = 
cfgDao.getString(CONFIG_DEFAULT_TIMEZONE, "Europe/Berlin");
-                       List<User> list = readUserList(f, "users.xml", "users");
-                       int minLoginLength = getMinLoginLength(cfgDao);
-                       for (User u : list) {
-                               if (u.getLogin() == null) {
-                                       continue;
-                               }
-                               if (u.getType() == User.Type.contact && 
u.getLogin().length() < minLoginLength) {
-                                       
u.setLogin(UUID.randomUUID().toString());
-                               }
+               String jNameTimeZone = 
cfgDao.getString(CONFIG_DEFAULT_TIMEZONE, "Europe/Berlin");
+               List<User> list = readUserList(f, "users.xml", "users");
+               int minLoginLength = getMinLoginLength(cfgDao);
+               for (User u : list) {
+                       if (u.getLogin() == null) {
+                               continue;
+                       }
+                       if (u.getType() == User.Type.contact && 
u.getLogin().length() < minLoginLength) {
+                               u.setLogin(UUID.randomUUID().toString());
+                       }
 
-                               String tz = u.getTimeZoneId();
-                               if (tz == null) {
-                                       u.setTimeZoneId(jNameTimeZone);
-                                       u.setForceTimeZoneCheck(true);
-                               } else {
-                                       u.setForceTimeZoneCheck(false);
-                               }
+                       String tz = u.getTimeZoneId();
+                       if (tz == null) {
+                               u.setTimeZoneId(jNameTimeZone);
+                               u.setForceTimeZoneCheck(true);
+                       } else {
+                               u.setForceTimeZoneCheck(false);
+                       }
 
-                               Long userId = u.getId();
-                               u.setId(null);
-                               if (u.getSipUser() != null && 
u.getSipUser().getId() != 0) {
-                                       u.getSipUser().setId(0);
-                               }
-                               if (LDAP_EXT_TYPE.equals(u.getExternalType()) 
&& User.Type.external != u.getType()) {
-                                       log.warn("Found LDAP user in 'old' 
format, external_type == 'LDAP':: " + u);
-                                       u.setType(User.Type.ldap);
-                                       u.setExternalType(null);
-                                       if (u.getDomainId() == null) {
-                                               u.setDomainId(defaultLdapId); 
//domainId was not supported in old versions of OM
-                                       }
-                               }
-                               if (!Strings.isEmpty(u.getExternalType())) {
-                                       u.setType(User.Type.external);
-                               }
-                               if (AuthLevelUtil.hasLoginLevel(u.getRights()) 
&& !Strings.isEmpty(u.getActivatehash())) {
-                                       u.setActivatehash(null);
+                       Long userId = u.getId();
+                       u.setId(null);
+                       if (u.getSipUser() != null && u.getSipUser().getId() != 
0) {
+                               u.getSipUser().setId(0);
+                       }
+                       if (LDAP_EXT_TYPE.equals(u.getExternalType()) && 
User.Type.external != u.getType()) {
+                               log.warn("Found LDAP user in 'old' format, 
external_type == 'LDAP':: " + u);
+                               u.setType(User.Type.ldap);
+                               u.setExternalType(null);
+                               if (u.getDomainId() == null) {
+                                       u.setDomainId(defaultLdapId); 
//domainId was not supported in old versions of OM
                                }
-                               userDao.update(u, Long.valueOf(-1));
-                               userMap.put(userId, u.getId());
                        }
+                       if (!Strings.isEmpty(u.getExternalType())) {
+                               u.setType(User.Type.external);
+                       }
+                       if (AuthLevelUtil.hasLoginLevel(u.getRights()) && 
!Strings.isEmpty(u.getActivatehash())) {
+                               u.setActivatehash(null);
+                       }
+                       userDao.update(u, Long.valueOf(-1));
+                       userMap.put(userId, u.getId());
                }
+       }
 
+       /*
+        * ##################### Import Rooms
+        */
+       private void importRooms(File f) throws Exception {
                log.info("Users import complete, starting room import");
-               /*
-                * ##################### Import Rooms
-                */
-               {
-                       List<Room> list = readRoomList(f, "rooms.xml", "rooms");
-                       for (Room r : list) {
-                               Long roomId = r.getId();
-
-                               // We need to reset ids as openJPA reject to 
store them otherwise
-                               r.setId(null);
-                               if (r.getModerators() != null) {
-                                       for (Iterator<RoomModerator> i = 
r.getModerators().iterator(); i.hasNext();) {
-                                               RoomModerator rm = i.next();
-                                               if (rm.getUser().getId() == 
null) {
-                                                       i.remove();
-                                               }
+               List<Room> list = readRoomList(f, "rooms.xml", "rooms");
+               for (Room r : list) {
+                       Long roomId = r.getId();
+
+                       // We need to reset ids as openJPA reject to store them 
otherwise
+                       r.setId(null);
+                       if (r.getModerators() != null) {
+                               for (Iterator<RoomModerator> i = 
r.getModerators().iterator(); i.hasNext();) {
+                                       RoomModerator rm = i.next();
+                                       if (rm.getUser().getId() == null) {
+                                               i.remove();
                                        }
                                }
-                               r = roomDao.update(r, null);
-                               roomMap.put(roomId, r.getId());
                        }
+                       r = roomDao.update(r, null);
+                       roomMap.put(roomId, r.getId());
                }
+       }
 
+       /*
+        * ##################### Import Room Groups
+        */
+       private void importRoomGroups(File f) throws Exception {
                log.info("Room import complete, starting room groups import");
-               /*
-                * ##################### Import Room Groups
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       Serializer serializer = new Persister(strategy);
+               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));
+               registry.bind(Group.class, new GroupConverter(groupDao, 
groupMap));
+               registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
 
-                       List<RoomGroup> list = readList(serializer, f, 
"rooms_organisation.xml", "room_organisations", RoomGroup.class);
-                       for (RoomGroup ro : list) {
-                               if (!ro.isDeleted() && ro.getRoom() != null && 
ro.getRoom().getId() != null && ro.getGroup() != null && ro.getGroup().getId() 
!= null) {
-                                       // We need to reset this as openJPA 
reject to store them otherwise
-                                       ro.setId(null);
-                                       roomGroupDao.update(ro, null);
-                               }
+               List<RoomGroup> list = readList(serializer, f, 
"rooms_organisation.xml", "room_organisations", RoomGroup.class);
+               for (RoomGroup ro : list) {
+                       if (!ro.isDeleted() && ro.getRoom() != null && 
ro.getRoom().getId() != null && ro.getGroup() != null && ro.getGroup().getId() 
!= null) {
+                               // We need to reset this as openJPA reject to 
store them otherwise
+                               ro.setId(null);
+                               roomGroupDao.update(ro, null);
                        }
                }
+       }
 
+       /*
+        * ##################### Import Chat messages
+        */
+       private void importChat(File f) throws Exception {
                log.info("Room groups import complete, starting chat messages 
import");
-               /*
-                * ##################### Import Chat messages
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       Serializer serializer = new Persister(strategy);
+               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);
+               registry.bind(User.class, new UserConverter(userDao, userMap));
+               registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
+               registry.bind(Date.class, DateConverter.class);
 
-                       List<ChatMessage> list = readList(serializer, f, 
"chat_messages.xml", "chat_messages", ChatMessage.class, true);
-                       for (ChatMessage m : list) {
-                               m.setId(null);
-                               if (m.getFromUser() == null || 
m.getFromUser().getId() == null) {
-                                       continue;
-                               }
-                               chatDao.update(m);
+               List<ChatMessage> list = readList(serializer, f, 
"chat_messages.xml", "chat_messages", ChatMessage.class, true);
+               for (ChatMessage m : list) {
+                       m.setId(null);
+                       if (m.getFromUser() == null || m.getFromUser().getId() 
== null) {
+                               continue;
                        }
+                       chatDao.update(m);
                }
+       }
+
+       /*
+        * ##################### Import Calendars
+        */
+       private void importCalendars(File f) throws Exception {
                log.info("Chat messages import complete, starting calendar 
import");
-               /*
-                * ##################### Import Calendars
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       Serializer serializer = new Persister(strategy);
-                       registry.bind(User.class, new UserConverter(userDao, 
userMap));
-                       //registry.bind(OmCalendar.SyncType.class, 
OmCalendarSyncTypeConverter.class);
-                       List<OmCalendar> list = readList(serializer, f, 
"calendars.xml", "calendars", OmCalendar.class, true);
-                       for (OmCalendar c : list) {
-                               Long id = c.getId();
-                               c.setId(null);
-                               c = calendarDao.update(c);
-                               calendarMap.put(id, c.getId());
-                       }
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
+               registry.bind(User.class, new UserConverter(userDao, userMap));
+               //registry.bind(OmCalendar.SyncType.class, 
OmCalendarSyncTypeConverter.class);
+               List<OmCalendar> list = readList(serializer, f, 
"calendars.xml", "calendars", OmCalendar.class, true);
+               for (OmCalendar c : list) {
+                       Long id = c.getId();
+                       c.setId(null);
+                       c = calendarDao.update(c);
+                       calendarMap.put(id, c.getId());
                }
+       }
 
+       /*
+        * ##################### Import Appointements
+        */
+       private void importAppointments(File f) throws Exception {
                log.info("Calendar import complete, starting appointement 
import");
-               /*
-                * ##################### Import Appointements
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       Serializer serializer = new Persister(strategy);
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                       registry.bind(User.class, new UserConverter(userDao, 
userMap));
-                       registry.bind(Appointment.Reminder.class, 
AppointmentReminderTypeConverter.class);
-                       registry.bind(Room.class, new RoomConverter(roomDao, 
roomMap));
-                       registry.bind(Date.class, DateConverter.class);
-                       registry.bind(OmCalendar.class, new 
OmCalendarConverter(calendarDao, calendarMap));
+               registry.bind(User.class, new UserConverter(userDao, userMap));
+               registry.bind(Appointment.Reminder.class, 
AppointmentReminderTypeConverter.class);
+               registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
+               registry.bind(Date.class, DateConverter.class);
+               registry.bind(OmCalendar.class, new 
OmCalendarConverter(calendarDao, calendarMap));
 
-                       List<Appointment> list = readList(serializer, f, 
"appointements.xml", "appointments", Appointment.class);
-                       for (Appointment a : list) {
-                               Long appId = a.getId();
+               List<Appointment> list = readList(serializer, f, 
"appointements.xml", "appointments", Appointment.class);
+               for (Appointment a : list) {
+                       Long appId = a.getId();
 
-                               // We need to reset this as openJPA reject to 
store them otherwise
-                               a.setId(null);
-                               if (a.getOwner() != null && 
a.getOwner().getId() == null) {
-                                       a.setOwner(null);
-                               }
-                               if (a.getRoom() == null || a.getRoom().getId() 
== null) {
-                                       log.warn("Appointment without room was 
found, skipping: {}", a);
-                                       continue;
-                               }
-                               if (a.getStart() == null || a.getEnd() == null) 
{
-                                       log.warn("Appointment without start/end 
time was found, skipping: {}", a);
-                                       continue;
-                               }
-                               a = appointmentDao.update(a, null, false);
-                               appointmentMap.put(appId, a.getId());
+                       // We need to reset this as openJPA reject to store 
them otherwise
+                       a.setId(null);
+                       if (a.getOwner() != null && a.getOwner().getId() == 
null) {
+                               a.setOwner(null);
                        }
+                       if (a.getRoom() == null || a.getRoom().getId() == null) 
{
+                               log.warn("Appointment without room was found, 
skipping: {}", a);
+                               continue;
+                       }
+                       if (a.getStart() == null || a.getEnd() == null) {
+                               log.warn("Appointment without start/end time 
was found, skipping: {}", a);
+                               continue;
+                       }
+                       a = appointmentDao.update(a, null, false);
+                       appointmentMap.put(appId, a.getId());
                }
+       }
 
+       /*
+        * ##################### Import MeetingMembers
+        *
+        * Reminder Invitations will be NOT send!
+        */
+       private void importMeetingMembers(File f) throws Exception {
                log.info("Appointement import complete, starting meeting 
members import");
-               /*
-                * ##################### Import MeetingMembers
-                *
-                * Reminder Invitations will be NOT send!
-                */
-               {
-                       List<MeetingMember> list = readMeetingMemberList(f, 
"meetingmembers.xml", "meetingmembers");
-                       for (MeetingMember ma : list) {
-                               ma.setId(null);
-                               meetingMemberDao.update(ma);
-                       }
+               List<MeetingMember> list = readMeetingMemberList(f, 
"meetingmembers.xml", "meetingmembers");
+               for (MeetingMember ma : list) {
+                       ma.setId(null);
+                       meetingMemberDao.update(ma);
                }
+       }
 
+       /*
+        * ##################### Import Recordings
+        */
+       private void importRecordings(File f) throws Exception {
                log.info("Meeting members import complete, starting recordings 
server import");
-               /*
-                * ##################### Import Recordings
-                */
-               {
-                       List<Recording> list = readRecordingList(f, 
"flvRecordings.xml", "flvrecordings");
-                       for (Recording r : list) {
-                               Long recId = r.getId();
-                               r.setId(null);
-                               if (r.getRoomId() != null) {
-                                       r.setRoomId(roomMap.get(r.getRoomId()));
-                               }
-                               if (r.getOwnerId() != null) {
-                                       
r.setOwnerId(userMap.get(r.getOwnerId()));
-                               }
-                               if (r.getMetaData() != null) {
-                                       for (RecordingMetaData meta : 
r.getMetaData()) {
-                                               meta.setId(null);
-                                               meta.setRecording(r);
-                                       }
-                               }
-                               if (!Strings.isEmpty(r.getHash()) && 
r.getHash().startsWith(recordingFileName)) {
-                                       String name = getFileName(r.getHash());
-                                       r.setHash(UUID.randomUUID().toString());
-                                       fileMap.put(String.format("%s.%s", 
name, EXTENSION_JPG), String.format("%s.%s", r.getHash(), EXTENSION_PNG));
-                                       fileMap.put(String.format("%s.%s.%s", 
name, EXTENSION_FLV, EXTENSION_MP4), String.format("%s.%s", r.getHash(), 
EXTENSION_MP4));
-                               }
-                               if (Strings.isEmpty(r.getHash())) {
-                                       r.setHash(UUID.randomUUID().toString());
+               List<Recording> list = readRecordingList(f, 
"flvRecordings.xml", "flvrecordings");
+               for (Recording r : list) {
+                       Long recId = r.getId();
+                       r.setId(null);
+                       if (r.getRoomId() != null) {
+                               r.setRoomId(roomMap.get(r.getRoomId()));
+                       }
+                       if (r.getOwnerId() != null) {
+                               r.setOwnerId(userMap.get(r.getOwnerId()));
+                       }
+                       if (r.getMetaData() != null) {
+                               for (RecordingMetaData meta : r.getMetaData()) {
+                                       meta.setId(null);
+                                       meta.setRecording(r);
                                }
-                               r = recordingDao.update(r);
-                               fileItemMap.put(recId, r.getId());
                        }
+                       if (!Strings.isEmpty(r.getHash()) && 
r.getHash().startsWith(recordingFileName)) {
+                               String name = getFileName(r.getHash());
+                               r.setHash(UUID.randomUUID().toString());
+                               fileMap.put(String.format("%s.%s", name, 
EXTENSION_JPG), String.format("%s.%s", r.getHash(), EXTENSION_PNG));
+                               fileMap.put(String.format("%s.%s.%s", name, 
EXTENSION_FLV, EXTENSION_MP4), String.format("%s.%s", r.getHash(), 
EXTENSION_MP4));
+                       }
+                       if (Strings.isEmpty(r.getHash())) {
+                               r.setHash(UUID.randomUUID().toString());
+                       }
+                       r = recordingDao.update(r);
+                       fileItemMap.put(recId, r.getId());
                }
+       }
 
+       /*
+        * ##################### Import Private Message Folders
+        */
+       private void importPrivateMsgFolders(File f, Serializer 
simpleSerializer) throws Exception {
                log.info("Recording import complete, starting private message 
folder import");
-               /*
-                * ##################### Import Private Message Folders
-                */
-               {
-                       List<PrivateMessageFolder> list = 
readList(simpleSerializer, f, "privateMessageFolder.xml"
-                               , "privatemessagefolders", 
PrivateMessageFolder.class, true);
-                       for (PrivateMessageFolder p : list) {
-                               Long folderId = p.getId();
-                               PrivateMessageFolder storedFolder = 
privateMessageFolderDao.get(folderId);
-                               if (storedFolder == null) {
-                                       p.setId(null);
-                                       Long newFolderId = 
privateMessageFolderDao.addPrivateMessageFolderObj(p);
-                                       messageFolderMap.put(folderId, 
newFolderId);
-                               }
+               List<PrivateMessageFolder> list = readList(simpleSerializer, f, 
"privateMessageFolder.xml"
+                       , "privatemessagefolders", PrivateMessageFolder.class, 
true);
+               for (PrivateMessageFolder p : list) {
+                       Long folderId = p.getId();
+                       PrivateMessageFolder storedFolder = 
privateMessageFolderDao.get(folderId);
+                       if (storedFolder == null) {
+                               p.setId(null);
+                               Long newFolderId = 
privateMessageFolderDao.addPrivateMessageFolderObj(p);
+                               messageFolderMap.put(folderId, newFolderId);
                        }
                }
+       }
 
+       /*
+        * ##################### Import User Contacts
+        */
+       private void importContacts(File f) throws Exception {
                log.info("Private message folder import complete, starting user 
contacts import");
-               /*
-                * ##################### Import User Contacts
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       Serializer serializer = new Persister(strategy);
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                       registry.bind(User.class, new UserConverter(userDao, 
userMap));
+               registry.bind(User.class, new UserConverter(userDao, userMap));
 
-                       List<UserContact> list = readList(serializer, f, 
"userContacts.xml", "usercontacts", UserContact.class, true);
-                       for (UserContact uc : list) {
-                               Long ucId = uc.getId();
-                               UserContact storedUC = userContactDao.get(ucId);
+               List<UserContact> list = readList(serializer, f, 
"userContacts.xml", "usercontacts", UserContact.class, true);
+               for (UserContact uc : list) {
+                       Long ucId = uc.getId();
+                       UserContact storedUC = userContactDao.get(ucId);
 
-                               if (storedUC == null && uc.getContact() != null 
&& uc.getContact().getId() != null) {
-                                       uc.setId(null);
-                                       if (uc.getOwner() != null && 
uc.getOwner().getId() == null) {
-                                               uc.setOwner(null);
-                                       }
-                                       uc = userContactDao.update(uc);
-                                       userContactMap.put(ucId, uc.getId());
+                       if (storedUC == null && uc.getContact() != null && 
uc.getContact().getId() != null) {
+                               uc.setId(null);
+                               if (uc.getOwner() != null && 
uc.getOwner().getId() == null) {
+                                       uc.setOwner(null);
                                }
+                               uc = userContactDao.update(uc);
+                               userContactMap.put(ucId, uc.getId());
                        }
                }
+       }
 
+       /*
+        * ##################### Import Private Messages
+        */
+       private void importPrivateMsgs(File f) throws Exception {
                log.info("Usercontact import complete, starting private 
messages item import");
-               /*
-                * ##################### Import Private Messages
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       Serializer serializer = new Persister(strategy);
+               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);
+               registry.bind(User.class, new UserConverter(userDao, userMap));
+               registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
+               registry.bind(Date.class, DateConverter.class);
 
-                       List<PrivateMessage> list = readList(serializer, f, 
"privateMessages.xml", "privatemessages", PrivateMessage.class, true);
-                       boolean oldBackup = true;
-                       for (PrivateMessage p : list) {
-                               if (p.getFolderId() == null || 
p.getFolderId().longValue() < 0) {
-                                       oldBackup = false;
-                                       break;
-                               }
+               List<PrivateMessage> list = readList(serializer, f, 
"privateMessages.xml", "privatemessages", PrivateMessage.class, true);
+               boolean oldBackup = true;
+               for (PrivateMessage p : list) {
+                       if (p.getFolderId() == null || 
p.getFolderId().longValue() < 0) {
+                               oldBackup = false;
+                               break;
                        }
-                       for (PrivateMessage p : list) {
-                               p.setId(null);
-                               p.setFolderId(getNewId(p.getFolderId(), 
Maps.MESSAGEFOLDERS));
-                               
p.setUserContactId(getNewId(p.getUserContactId(), Maps.USERCONTACTS));
-                               if (p.getRoom() != null && p.getRoom().getId() 
== null) {
-                                       p.setRoom(null);
-                               }
-                               if (p.getTo() != null && p.getTo().getId() == 
null) {
-                                       p.setTo(null);
-                               }
-                               if (p.getFrom() != null && p.getFrom().getId() 
== null) {
-                                       p.setFrom(null);
-                               }
-                               if (p.getOwner() != null && 
p.getOwner().getId() == null) {
-                                       p.setOwner(null);
-                               }
-                               if (oldBackup && p.getOwner() != null && 
p.getOwner().getId() != null
-                                               && p.getFrom() != null && 
p.getFrom().getId() != null
-                                               && p.getOwner().getId() == 
p.getFrom().getId())
-                               {
-                                       p.setFolderId(SENT_FOLDER_ID);
-                               }
-                               privateMessageDao.update(p, null);
+               }
+               for (PrivateMessage p : list) {
+                       p.setId(null);
+                       p.setFolderId(getNewId(p.getFolderId(), 
Maps.MESSAGEFOLDERS));
+                       p.setUserContactId(getNewId(p.getUserContactId(), 
Maps.USERCONTACTS));
+                       if (p.getRoom() != null && p.getRoom().getId() == null) 
{
+                               p.setRoom(null);
+                       }
+                       if (p.getTo() != null && p.getTo().getId() == null) {
+                               p.setTo(null);
                        }
+                       if (p.getFrom() != null && p.getFrom().getId() == null) 
{
+                               p.setFrom(null);
+                       }
+                       if (p.getOwner() != null && p.getOwner().getId() == 
null) {
+                               p.setOwner(null);
+                       }
+                       if (oldBackup && p.getOwner() != null && 
p.getOwner().getId() != null
+                                       && p.getFrom() != null && 
p.getFrom().getId() != null
+                                       && p.getOwner().getId() == 
p.getFrom().getId())
+                       {
+                               p.setFolderId(SENT_FOLDER_ID);
+                       }
+                       privateMessageDao.update(p, null);
                }
+       }
 
+       /*
+        * ##################### Import File-Explorer Items
+        */
+       private void importFiles(File f) throws Exception {
                log.info("Private message import complete, starting file 
explorer item import");
-               /*
-                * ##################### Import File-Explorer Items
-                */
-               {
-                       List<FileItem> list = readFileItemList(f, 
"fileExplorerItems.xml", "fileExplorerItems");
-                       for (FileItem file : list) {
-                               Long fId = file.getId();
-                               // We need to reset this as openJPA reject to 
store them otherwise
-                               file.setId(null);
-                               Long roomId = file.getRoomId();
-                               file.setRoomId(roomMap.containsKey(roomId) ? 
roomMap.get(roomId) : null);
-                               if (file.getOwnerId() != null) {
-                                       
file.setOwnerId(userMap.get(file.getOwnerId()));
-                               }
-                               if (file.getParentId() != null && 
file.getParentId().longValue() <= 0L) {
-                                       file.setParentId(null);
-                               }
-                               if (Strings.isEmpty(file.getHash())) {
-                                       
file.setHash(UUID.randomUUID().toString());
-                               }
-                               file = fileItemDao.update(file);
-                               fileItemMap.put(fId, file.getId());
+               List<FileItem> list = readFileItemList(f, 
"fileExplorerItems.xml", "fileExplorerItems");
+               for (FileItem file : list) {
+                       Long fId = file.getId();
+                       // We need to reset this as openJPA reject to store 
them otherwise
+                       file.setId(null);
+                       Long roomId = file.getRoomId();
+                       file.setRoomId(roomMap.containsKey(roomId) ? 
roomMap.get(roomId) : null);
+                       if (file.getOwnerId() != null) {
+                               file.setOwnerId(userMap.get(file.getOwnerId()));
+                       }
+                       if (file.getParentId() != null && 
file.getParentId().longValue() <= 0L) {
+                               file.setParentId(null);
                        }
+                       if (Strings.isEmpty(file.getHash())) {
+                               file.setHash(UUID.randomUUID().toString());
+                       }
+                       file = fileItemDao.update(file);
+                       fileItemMap.put(fId, file.getId());
                }
+       }
 
+       /*
+        * ##################### Import Room Polls
+        */
+       private void importPolls(File f) throws Exception {
                log.info("File explorer item import complete, starting room 
poll import");
-               /*
-                * ##################### Import Room Polls
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       RegistryMatcher matcher = new RegistryMatcher(); //TODO 
need to be removed in the later versions
-                       Serializer serializer = new Persister(strategy, 
matcher);
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               RegistryMatcher matcher = new RegistryMatcher(); //TODO need to 
be removed in the later versions
+               Serializer serializer = new Persister(strategy, matcher);
 
-                       matcher.bind(Integer.class, IntegerTransform.class);
-                       registry.bind(User.class, new UserConverter(userDao, 
userMap));
-                       registry.bind(Room.class, new RoomConverter(roomDao, 
roomMap));
-                       registry.bind(RoomPoll.Type.class, 
PollTypeConverter.class);
-                       registry.bind(Date.class, DateConverter.class);
+               matcher.bind(Integer.class, IntegerTransform.class);
+               registry.bind(User.class, new UserConverter(userDao, userMap));
+               registry.bind(Room.class, new RoomConverter(roomDao, roomMap));
+               registry.bind(RoomPoll.Type.class, PollTypeConverter.class);
+               registry.bind(Date.class, DateConverter.class);
 
-                       List<RoomPoll> list = readList(serializer, f, 
"roompolls.xml", "roompolls", RoomPoll.class, true);
-                       for (RoomPoll rp : list) {
-                               rp.setId(null);
-                               if (rp.getRoom() == null || 
rp.getRoom().getId() == null) {
-                                       //room was deleted
-                                       continue;
-                               }
-                               if (rp.getCreator() == null || 
rp.getCreator().getId() == null) {
-                                       rp.setCreator(null);
-                               }
-                               for (RoomPollAnswer rpa : rp.getAnswers()) {
-                                       if (rpa.getVotedUser() == null || 
rpa.getVotedUser().getId() == null) {
-                                               rpa.setVotedUser(null);
-                                       }
+               List<RoomPoll> list = readList(serializer, f, "roompolls.xml", 
"roompolls", RoomPoll.class, true);
+               for (RoomPoll rp : list) {
+                       rp.setId(null);
+                       if (rp.getRoom() == null || rp.getRoom().getId() == 
null) {
+                               //room was deleted
+                               continue;
+                       }
+                       if (rp.getCreator() == null || rp.getCreator().getId() 
== null) {
+                               rp.setCreator(null);
+                       }
+                       for (RoomPollAnswer rpa : rp.getAnswers()) {
+                               if (rpa.getVotedUser() == null || 
rpa.getVotedUser().getId() == null) {
+                                       rpa.setVotedUser(null);
                                }
-                               pollDao.update(rp);
                        }
+                       pollDao.update(rp);
                }
+       }
 
+       /*
+        * ##################### Import Room Files
+        */
+       private void importRoomFiles(File f) throws Exception {
                log.info("Poll import complete, starting room files import");
-               /*
-                * ##################### Import Room Files
-                */
-               {
-                       Registry registry = new Registry();
-                       Strategy strategy = new RegistryStrategy(registry);
-                       Serializer serializer = new Persister(strategy);
+               Registry registry = new Registry();
+               Strategy strategy = new RegistryStrategy(registry);
+               Serializer serializer = new Persister(strategy);
 
-                       registry.bind(BaseFileItem.class, new 
BaseFileItemConverter(fileItemDao, fileItemMap));
+               registry.bind(BaseFileItem.class, new 
BaseFileItemConverter(fileItemDao, fileItemMap));
 
-                       List<RoomFile> list = readList(serializer, f, 
"roomFiles.xml", "RoomFiles", RoomFile.class, true);
-                       for (RoomFile rf : list) {
-                               Room r = 
roomDao.get(roomMap.get(rf.getRoomId()));
-                               if (r.getFiles() == null) {
-                                       r.setFiles(new ArrayList<>());
-                               }
-                               rf.setId(null);
-                               rf.setRoomId(r.getId());
-                               r.getFiles().add(rf);
-                               roomDao.update(r, null);
+               List<RoomFile> list = readList(serializer, f, "roomFiles.xml", 
"RoomFiles", RoomFile.class, true);
+               for (RoomFile rf : list) {
+                       Room r = roomDao.get(roomMap.get(rf.getRoomId()));
+                       if (r.getFiles() == null) {
+                               r.setFiles(new ArrayList<>());
                        }
+                       rf.setId(null);
+                       rf.setRoomId(r.getId());
+                       r.getFiles().add(rf);
+                       roomDao.update(r, null);
                }
-
-               log.info("Room files import complete, starting copy of files 
and folders");
-               /*
-                * ##################### Import real files and folders
-                */
-               importFolders(f);
-
-               log.info("File explorer item import complete, clearing temp 
files");
-
-               FileUtils.deleteDirectory(f);
        }
 
        private static <T> List<T> readList(Serializer ser, File baseDir, 
String fileName, String listNodeName, Class<T> clazz) throws Exception {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BaseFileItemConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BaseFileItemConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BaseFileItemConverter.java
index def8fa5..d7b5415 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BaseFileItemConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BaseFileItemConverter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getLong;
+
 import java.util.Map;
 
 import org.apache.openmeetings.db.dao.file.FileItemDao;
@@ -26,7 +28,7 @@ import org.apache.openmeetings.db.entity.file.FileItem;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class BaseFileItemConverter extends OmConverter<BaseFileItem> {
+public class BaseFileItemConverter implements OmConverter<BaseFileItem> {
        private FileItemDao fileDao;
        private Map<Long, Long> idMap;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/GroupConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/GroupConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/GroupConverter.java
index 7a07fe8..58cfe9e 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/GroupConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/GroupConverter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getLong;
+
 import java.util.Map;
 
 import org.apache.openmeetings.db.dao.user.GroupDao;
@@ -25,7 +27,7 @@ import org.apache.openmeetings.db.entity.user.Group;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class GroupConverter extends OmConverter<Group> {
+public class GroupConverter implements OmConverter<Group> {
        private GroupDao groupDao;
        private Map<Long, Long> idMap;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/InlineConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/InlineConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/InlineConverter.java
index 51e7ec8..67b78d6 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/InlineConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/InlineConverter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.backup;
 
 import org.simpleframework.xml.stream.InputNode;
 
-public abstract class InlineConverter<T> extends OmConverter<T> {
+public abstract class InlineConverter<T> implements OmConverter<T> {
 
        String getNextValue(InputNode parent, String name) throws Exception {
                InputNode node = parent.getNext(name);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmCalendarConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmCalendarConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmCalendarConverter.java
index 2cef48b..1fdbf6f 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmCalendarConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmCalendarConverter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getLong;
+
 import java.util.Map;
 
 import org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
@@ -25,7 +27,7 @@ import org.apache.openmeetings.db.entity.calendar.OmCalendar;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class OmCalendarConverter extends OmConverter<OmCalendar> {
+public class OmCalendarConverter implements OmConverter<OmCalendar> {
        private OmCalendarDao calendarDao;
        private Map<Long, Long> idMap;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmConverter.java
index 310e7e3..7b36f74 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/OmConverter.java
@@ -21,7 +21,7 @@ package org.apache.openmeetings.backup;
 import org.simpleframework.xml.convert.Converter;
 import org.simpleframework.xml.stream.InputNode;
 
-public abstract class OmConverter<T> implements Converter<T> {
+public interface OmConverter<T> extends Converter<T> {
        static long getLong(InputNode node) throws Exception {
                return getLong(node.getValue());
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/PollTypeConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/PollTypeConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/PollTypeConverter.java
index 8de2fe9..92eec70 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/PollTypeConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/PollTypeConverter.java
@@ -18,11 +18,13 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getLong;
+
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class PollTypeConverter extends OmConverter<RoomPoll.Type> {
+public class PollTypeConverter implements OmConverter<RoomPoll.Type> {
        public PollTypeConverter() {}
 
        @Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RecordingStatusConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RecordingStatusConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RecordingStatusConverter.java
index d6551cc..bbdd19e 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RecordingStatusConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RecordingStatusConverter.java
@@ -27,7 +27,7 @@ import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 import org.slf4j.Logger;
 
-public class RecordingStatusConverter extends OmConverter<Recording.Status> {
+public class RecordingStatusConverter implements OmConverter<Recording.Status> 
{
        private static final Logger log = 
Red5LoggerFactory.getLogger(RecordingStatusConverter.class, getWebAppRootKey());
        private static final String PROCESSING = "PROCESSING";
        public RecordingStatusConverter() {}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomConverter.java
index a47c036..5b10a32 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomConverter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getLong;
+
 import java.util.Map;
 
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -25,7 +27,7 @@ import org.apache.openmeetings.db.entity.room.Room;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class RoomConverter extends OmConverter<Room> {
+public class RoomConverter implements OmConverter<Room> {
        private RoomDao roomDao;
        private Map<Long, Long> idMap;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomTypeConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomTypeConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomTypeConverter.java
index 1aad991..700b68f 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomTypeConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/RoomTypeConverter.java
@@ -18,11 +18,13 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getInt;
+
 import org.apache.openmeetings.db.entity.room.Room.Type;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class RoomTypeConverter extends OmConverter<Type> {
+public class RoomTypeConverter implements OmConverter<Type> {
        public RoomTypeConverter() {}
 
        @Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/SalutationConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/SalutationConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/SalutationConverter.java
index b6fc93d..aeeb087 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/SalutationConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/SalutationConverter.java
@@ -18,11 +18,13 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getInt;
+
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class SalutationConverter extends OmConverter<Salutation> {
+public class SalutationConverter implements OmConverter<Salutation> {
        @Override
        public Salutation read(InputNode node) throws Exception {
                return Salutation.get(getInt(node));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-install/src/main/java/org/apache/openmeetings/backup/UserConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/UserConverter.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/UserConverter.java
index 4853efa..a2cf50d 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/UserConverter.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/UserConverter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.backup;
 
+import static org.apache.openmeetings.backup.OmConverter.getLong;
+
 import java.util.Map;
 
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -25,7 +27,7 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
-public class UserConverter extends OmConverter<User> {
+public class UserConverter implements OmConverter<User> {
        private UserDao userDao;
        private Map<Long, Long> idMap;
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
index 5dba196..d19d81f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/icon/SettingsIcon.java
@@ -40,6 +40,6 @@ public class SettingsIcon extends ClientIcon {
 
        @Override
        protected String getScript() {
-               return String.format("VideoSettings.open();");
+               return "VideoSettings.open();";
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
index 4508493..a1a186f 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
@@ -71,7 +71,7 @@ public class ChangePasswordDialog extends 
AbstractFormDialog<String> {
                                try {
                                        Thread.sleep(6 + (long)(10 * 
Math.random() * 1000));
                                } catch (InterruptedException e) {
-                                       log.error("Unexpected exception while 
sleeting", e);
+                                       log.error("Unexpected exception while 
sleeping", e);
                                }
                        }
                        String p1 = pass.getConvertedInput();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/9774beaf/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
index 9f4f9cc..5a8dc4e 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ProfileForm.java
@@ -129,7 +129,7 @@ public class ProfileForm extends Form<User> {
                        try {
                                Thread.sleep(6 + (long)(10 * Math.random() * 
1000));
                        } catch (InterruptedException e) {
-                               log.error("Unexpected exception while 
sleeting", e);
+                               log.error("Unexpected exception while 
sleeping", e);
                        }
                }
                super.onValidate();

Reply via email to