Revision: 3997
Author:   seba.wagner
Date:     Sun Jul 17 11:08:19 2011
Log: Fix some issues with Import/Export of Backup and migration to openJPA
http://code.google.com/p/openmeetings/source/detail?r=3997

Modified:
/trunk/singlewebapp/WebContent/openmeetings/modules/admin/backup/backupContent.lzx /trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java /trunk/singlewebapp/src/app/org/openmeetings/app/data/user/Usermanagement.java /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupExport.java /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImport.java

=======================================
--- /trunk/singlewebapp/WebContent/openmeetings/modules/admin/backup/backupContent.lzx Sun Jun 20 07:58:30 2010 +++ /trunk/singlewebapp/WebContent/openmeetings/modules/admin/backup/backupContent.lzx Sun Jul 17 11:08:19 2011
@@ -11,20 +11,34 @@
     <labelText fontsize="10" y="24"
             x="30" width="500" labelid="1065" multiline="true" />

+       <labelCheckbox x="10" y="100" fontsize="11"
+ name="_includeFileOption" text="Include uploaded files and recordings in backup" >
+        <handler name="oninit">
+            this.setValue(true);
+        </handler>
+    </labelCheckbox>
+
        <!-- System Import -->
-    <simpleLabelButton text="System Import" x="30" y="100" width="200">
+    <simpleLabelButton text="System Import" x="30" y="140" width="200">
            <handler name="onclick">
new lz.backupImportWindow(canvas.main_content._content.inner,{x:60,y:60,uploadmodule:'users'});
            </handler>
     </simpleLabelButton>

     <!-- System Backup -->
-    <simpleLabelButton text="System Backup" x="232" y="100" width="200">
+    <simpleLabelButton text="System Backup" x="232" y="140" width="200">
         <handler name="onclick">
             <![CDATA[
var exporturl = 'http://'+canvas.rtmphostlocal+':'+canvas.red5httpport +canvas.httpRootKey+'BackupExport?moduleName=backup'
                         +'&sid='+canvas.sessionId;
+
+                if (parent._includeFileOption.getValue()) {
+                       exporturl += "&includeFileOption=yes";
+                } else {
+                       exporturl += "&includeFileOption=no";
+                }
+
                 if($debug) Debug.write("BACKUP/exporturl "+exporturl);
                 lz.Browser.loadURL(exporturl,"_parent");
             ]]>
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java Sat Jul 16 08:49:15 2011 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/data/conference/Roommanagement.java Sun Jul 17 11:08:19 2011
@@ -522,7 +522,26 @@
                        HibernateUtil.closeSession(idf);
                        return ll;
                } catch (Exception ex2) {
-                       log.error("[getRooms]", ex2);
+                       log.error("[getAllRooms]", ex2);
+               }
+               return null;
+       }
+
+       public List<Rooms> getBackupRooms(){
+               try {
+                       Object idf = HibernateUtil.createSession();
+                       EntityManager session = HibernateUtil.getSession();
+                       EntityTransaction tx = session.getTransaction();
+                       tx.begin();
+                       CriteriaBuilder cb = session.getCriteriaBuilder();
+                       CriteriaQuery<Rooms> cq = cb.createQuery(Rooms.class);
+                       TypedQuery<Rooms> q = session.createQuery(cq);
+                       List<Rooms> ll = q.getResultList();
+                       tx.commit();
+                       HibernateUtil.closeSession(idf);
+                       return ll;
+               } catch (Exception ex2) {
+                       log.error("[getBackupRooms]", ex2);
                }
                return null;
        }
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/app/data/user/Usermanagement.java Sat Jul 16 08:49:15 2011 +++ /trunk/singlewebapp/src/app/org/openmeetings/app/data/user/Usermanagement.java Sun Jul 17 11:08:19 2011
@@ -1337,15 +1337,6 @@
                        Long user_id = usr.getUser_id();
                        tx.commit();
                        HibernateUtil.closeSession(idf);
-
-
- for (Iterator<Organisation_Users> orgUserIterator = usr.getOrganisation_users().iterator();orgUserIterator.hasNext();) {
-
-                               Organisation_Users organisationUsers = 
orgUserIterator.next();
-
- Organisationmanagement.getInstance().addOrganisationUserObj(organisationUsers);
-
-                       }

                        return user_id;

=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupExport.java Fri Jun 10 07:32:32 2011 +++ /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupExport.java Sun Jul 17 11:08:19 2011
@@ -30,6 +30,7 @@
 import org.dom4j.Element;
 import org.dom4j.io.OutputFormat;
 import org.dom4j.io.XMLWriter;
+import org.openmeetings.app.data.basic.AuthLevelmanagement;
 import org.openmeetings.app.data.basic.Sessionmanagement;
 import org.openmeetings.app.data.basic.dao.LdapConfigDaoImpl;
 import org.openmeetings.app.data.calendar.daos.AppointmentDaoImpl;
@@ -95,8 +96,13 @@
                        log.debug("users_id: " + users_id);
                        log.debug("user_level: " + user_level);

-                       if (user_level!=null && user_level > 0) {
+                       if 
(AuthLevelmanagement.getInstance().checkAdminLevel(user_level)) {
                        //if (true) {
+
+ String includeFileOption = httpServletRequest.getParameter("includeFileOption");
+                               if (includeFileOption == null) {
+                                       includeFileOption = "yes";
+                               }

                                String moduleName = 
httpServletRequest.getParameter("moduleName");
                                if (moduleName == null) {
@@ -156,8 +162,6 @@

                                        List<Users> uList = 
UsersDaoImpl.getInstance().getAllUsersDeleted();

-                                       log.debug("Number of Users to be deleted 
"+uList);
-
                                        if (uList != null) {

                                                log.debug("Number of Users to be 
deleted "+uList.size());
@@ -176,7 +180,7 @@
                                        /* #####################
                                         * Backup Room
                                         */
-                                       List<Rooms> roomList = 
Roommanagement.getInstance().getAllRooms();
+                                       List<Rooms> roomList = 
Roommanagement.getInstance().getBackupRooms();

                                        if (roomList != null) {
                                                Document doc = 
this.createRoomsDocument(roomList);
@@ -336,51 +340,53 @@
                                                this.serializetoXML(fos, 
"UTF-8", doc);
                                        }

-
-                                       /* #####################
-                                        * Backup Room Files
-                                        */
- File targetDir = new File(backup_dir + File.separatorChar + "roomFiles");
-
-                                       if (!targetDir.exists()) {
-                                               targetDir.mkdir();
-                                       }
-
- File sourceDir = new File(current_dir + "upload" + File.separatorChar);
-
-                                       File[] files = sourceDir.listFiles();
-                                       for (File file : files) {
-                                               if (file.isDirectory()) {
-
- if (!file.getName().equals("backup") && !file.getName().equals("import")) {
-
-                                                               targetDir = new 
File(backup_dir + File.separatorChar
-                                                                                         
                      + "roomFiles" + File.separatorChar + file.getName());
-
-                                                               log.debug("### 
"+file.getName());
-
-                                                               
copyDirectory(file,targetDir);
+                                       if (includeFileOption.equals("yes")) {
+
+                                               /* #####################
+                                                * Backup Room Files
+                                                */
+ File targetDir = new File(backup_dir + File.separatorChar + "roomFiles");
+
+                                               if (!targetDir.exists()) {
+                                                       targetDir.mkdir();
+                                               }
+
+ File sourceDir = new File(current_dir + "upload" + File.separatorChar);
+
+                                               File[] files = 
sourceDir.listFiles();
+                                               for (File file : files) {
+                                                       if (file.isDirectory()) 
{
+
+ if (!file.getName().equals("backup") && !file.getName().equals("import")) {
+
+                                                                       
targetDir = new File(backup_dir + File.separatorChar
+                                                                                         
                              + "roomFiles" + File.separatorChar + 
file.getName());
+
+                                                                       
log.debug("### "+file.getName());
+
+                                                                       
copyDirectory(file,targetDir);
+
+                                                               }

                                                        }
-
-                                               }
-                                       }
-
-                                       /* #####################
-                                        * Backup Recording Files
-                                        */
- File targetDirRec = new File(backup_dir + File.separatorChar + "recordingFiles");
-
-                                       if (!targetDirRec.exists()) {
-                                               targetDirRec.mkdir();
-                                       }
-
-
- File sourceDirRec = new File(current_dir + "streams" + File.separatorChar
-                                                                                       + 
"hibernate" + File.separatorChar);
-
-                                       
copyDirectory(sourceDirRec,targetDirRec);
-
+                                               }
+
+                                               /* #####################
+                                                * Backup Recording Files
+                                                */
+ File targetDirRec = new File(backup_dir + File.separatorChar + "recordingFiles");
+
+                                               if (!targetDirRec.exists()) {
+                                                       targetDirRec.mkdir();
+                                               }
+
+
+ File sourceDirRec = new File(current_dir + "streams" + File.separatorChar
+                                                                                         
      + "hibernate" + File.separatorChar);
+
+                                               
copyDirectory(sourceDirRec,targetDirRec);
+
+                                       }

                                        String full_path = backup_file + ".zip";

@@ -714,6 +720,26 @@
                        } else {
                                room.addElement("roomtypeId").setText(""+0);
                        }
+                       if (r.getOwnerId() != null) {
+                               
room.addElement("ownerid").setText(""+r.getOwnerId());
+                       } else {
+                               room.addElement("ownerid").setText("");
+                       }
+                       if (r.getWaitForRecording() != null) {
+ room.addElement("waitForRecording").setText(""+r.getWaitForRecording());
+                       } else {
+                               room.addElement("waitForRecording").setText("");
+                       }
+                       if (r.getHideTopBar() != null) {
+                               
room.addElement("hideTopBar").setText(""+r.getHideTopBar());
+                       } else {
+                               room.addElement("hideTopBar").setText("");
+                       }
+                       if (r.getAllowRecording() != null) {
+                               
room.addElement("allowRecording").setText(""+r.getAllowRecording());
+                       } else {
+                               room.addElement("allowRecording").setText("");
+                       }
                        
room.addElement("isDemoRoom").setText(""+r.getIsDemoRoom());
                        room.addElement("demoTime").setText(""+r.getDemoTime());
                        
room.addElement("isModeratedRoom").setText(""+r.getIsModeratedRoom());
@@ -1161,13 +1187,76 @@
                        user.addElement("user_id").setText(""+u.getUser_id());
                        user.addElement("deleted").setText(""+u.getDeleted());
user.addElement("age").setText(""+CalendarPatterns.getDateByMiliSeconds(u.getAge()));
-                       
user.addElement("availible").setText(""+u.getAvailible().toString());
+                       if (u.getAvailible() != null) {
+                               
user.addElement("availible").setText(""+u.getAvailible().toString());
+                       } else {
+                               user.addElement("availible").setText("0");
+                       }
                        user.addElement("deleted").setText(""+u.getDeleted());
                        
user.addElement("firstname").setText(""+u.getFirstname());
                        user.addElement("lastname").setText(""+u.getLastname());
                        user.addElement("login").setText(""+u.getLogin());
                        user.addElement("pass").setText(""+u.getPassword());

+                       if (u.getActivatehash()!= null) {
+                               
user.addElement("activatehash").setText(""+u.getActivatehash());
+                       } else {
+                               user.addElement("activatehash").setText("");
+                       }
+                       if (u.getExternalUserType() != null) {
+ user.addElement("externalUserType").setText(""+u.getExternalUserType());
+                       } else {
+                               user.addElement("externalUserType").setText("");
+                       }
+
+                       if (u.getExternalUserId() != null) {
+                               
user.addElement("externalUserId").setText(""+u.getExternalUserId());
+                       } else {
+                               user.addElement("externalUserId").setText("");
+                       }
+
+                       if (u.getResethash() != null) {
+                               
user.addElement("resethash").setText(""+u.getResethash());
+                       } else {
+                               user.addElement("resethash").setText("");
+                       }
+
+                       if (u.getUserOffers() != null) {
+                               
user.addElement("userOffers").setText(""+u.getUserOffers());
+                       } else {
+                               user.addElement("userOffers").setText("");
+                       }
+
+                       if (u.getUserSearchs() != null) {
+                               
user.addElement("userSearchs").setText(""+u.getUserSearchs());
+                       } else {
+                               user.addElement("userSearchs").setText("");
+                       }
+
+                       if (u.getForceTimeZoneCheck() != null) {
+ user.addElement("forceTimeZoneCheck").setText(""+u.getForceTimeZoneCheck());
+                       } else {
+                               
user.addElement("ForceTimeZoneCheck").setText("");
+                       }
+
+                       if (u.getLasttrans() != null) {
+                               
user.addElement("lasttrans").setText(""+u.getLasttrans());
+                       } else {
+                               user.addElement("lasttrans").setText("");
+                       }
+
+                       if (u.getShowContactData() != null) {
+                               
user.addElement("showContactData").setText(""+u.getShowContactData());
+                       } else {
+                               user.addElement("showContactData").setText("");
+                       }
+
+                       if (u.getShowContactDataToContacts() != null) {
+ user.addElement("showContactDataToContacts").setText(""+u.getShowContactDataToContacts());
+                       } else {
+                               
user.addElement("showContactDataToContacts").setText("");
+                       }
+
                        String pictureuri = u.getPictureuri();
if (pictureuri != null) user.addElement("pictureuri").setText(pictureuri);
                        else user.addElement("pictureuri").setText("");
@@ -1175,13 +1264,25 @@
if ( u.getLanguage_id() != null ) user.addElement("language_id").setText(u.getLanguage_id().toString());
                        else user.addElement("language_id").setText("");

-                       
user.addElement("status").setText(""+u.getStatus().toString());
+                       if (u.getStatus() != null) {
+                               
user.addElement("status").setText(""+u.getStatus().toString());
+                       } else {
+                               user.addElement("status").setText("0");
+                       }
user.addElement("regdate").setText(""+CalendarPatterns.getDateWithTimeByMiliSeconds(u.getRegdate()));
-                       
user.addElement("title_id").setText(""+u.getTitle_id().toString());
-                       
user.addElement("level_id").setText(""+u.getLevel_id().toString());
+
+                       if (u.getTitle_id() != null) {
+                               
user.addElement("title_id").setText(""+u.getTitle_id().toString());
+                               
user.addElement("level_id").setText(""+u.getLevel_id().toString());
+                       } else {
+                               user.addElement("title_id").setText("1");
+                               user.addElement("level_id").setText("1");
+                       }

                        if (u.getOmTimeZone() != null) {
                                
user.addElement("omTimeZone").setText(""+u.getOmTimeZone().getJname());
+                       } else {
+                               user.addElement("omTimeZone").setText("");
                        }

                        if (u.getAdresses() != null) {
@@ -1206,7 +1307,8 @@
                        } else {
                                user.addElement("additionalname").setText("");
                                user.addElement("comment").setText("");
- //A User can not have a deleted Adress, you cannot delete the Adress of an User + //A User can not have a deleted address, you cannot delete the address of an User without deleting the user
+                               //only SOAP users might have a null
                                //String deleted = u.getAdresses().getDeleted()
                                //Phone Number not done yet
                                user.addElement("fax").setText("");
@@ -1214,10 +1316,9 @@
                                user.addElement("street").setText("");
                                user.addElement("town").setText("");
                                user.addElement("zip").setText("");
-
-                               // Email and Phone
-                               
user.addElement("mail").setText(""+u.getAdresses().getEmail());
-                               
user.addElement("phone").setText(""+u.getAdresses().getPhone());
+                               user.addElement("mail").setText("");
+                               user.addElement("phone").setText("");
+
                        }

                        if (u.getUserSipData() != null) {
=======================================
--- /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImport.java Fri Jun 10 07:32:32 2011 +++ /trunk/singlewebapp/src/app/org/openmeetings/servlet/outputhandler/BackupImport.java Sun Jul 17 11:08:19 2011
@@ -572,28 +572,13 @@

        private void importUsers(File userFile) throws Exception {

-               List<Users> userList = this.getUsersByXML(userFile);
-
-               for (Users us : userList) {
-
- Users storedUser = Usermanagement.getInstance().getUserById(us.getUser_id());
-
-                       if (storedUser == null) {
-
-                               us.setStarttime(new Date());
-                               Usermanagement.getInstance().addUserBackup(us);
-
-                       }
-
-               }
+               this.getUsersByXML(userFile);

        }

-       private List<Users> getUsersByXML (File userFile) {
+       private void getUsersByXML (File userFile) {
                try {

-                       List<Users> userList = new LinkedList<Users>();
-
                        SAXReader reader = new SAXReader();
                        Document document = reader.read(userFile);

@@ -619,6 +604,58 @@
                                        
us.setPassword(itemUsers.element("pass").getText());
                                        
us.setDeleted(itemUsers.element("deleted").getText());

+                                       if (itemUsers.element("activatehash") 
!= null) {
+ us.setActivatehash(itemUsers.element("activatehash").getText());
+                                       } else {
+                                               us.setActivatehash("");
+                                       }
+                                       if 
(itemUsers.element("externalUserType") != null) {
+ us.setExternalUserType(itemUsers.element("externalUserType").getText());
+                                       } else {
+                                               us.setExternalUserType("");
+                                       }
+                                       if (itemUsers.element("externalUserId") 
!= null) {
+ us.setExternalUserId(importLongType(itemUsers.element("externalUserId").getText()));
+                                       } else {
+                                               us.setExternalUserId(null);
+                                       }
+                                       if (itemUsers.element("resethash") != 
null) {
+                                               
us.setResethash(itemUsers.element("resethash").getText());
+                                       } else {
+                                               us.setResethash(null);
+                                       }
+                                       if (itemUsers.element("userOffers") != 
null) {
+                                               
us.setUserOffers(itemUsers.element("userOffers").getText());
+                                       } else {
+                                               us.setUserOffers("");
+                                       }
+                                       if (itemUsers.element("userSearchs") != 
null) {
+                                               
us.setUserSearchs(itemUsers.element("userSearchs").getText());
+                                       } else {
+                                               us.setUserSearchs("");
+                                       }
+                                       if 
(itemUsers.element("forceTimeZoneCheck") != null) {
+ us.setForceTimeZoneCheck(importBooleanType(itemUsers.element("forceTimeZoneCheck").getText()));
+                                       } else {
+                                               us.setForceTimeZoneCheck(null);
+                                       }
+                                       if (itemUsers.element("lasttrans") != 
null) {
+ us.setLasttrans(importLongType(itemUsers.element("lasttrans").getText()));
+                                       } else {
+                                               us.setLasttrans(null);
+                                       }
+                                       if 
(itemUsers.element("showContactData") != null) {
+ us.setShowContactData(importBooleanType(itemUsers.element("showContactData").getText()));
+                                       } else {
+                                               us.setShowContactData(null);
+                                       }
+                                       if 
(itemUsers.element("showContactDataToContacts") != null) {
+ us.setShowContactDataToContacts(importBooleanType(itemUsers.element("showContactDataToContacts").getText()));
+                                       } else {
+                                               
us.setShowContactDataToContacts(null);
+                                       }
+
+
                                        
us.setPictureuri(itemUsers.element("pictureuri").getText());
                                        if 
(itemUsers.element("language_id").getText().length()>0)
us.setLanguage_id(Long.valueOf(itemUsers.element("language_id").getText()));
@@ -701,7 +738,7 @@

                                        us.setAdresses(adr);

-                                       us.setOrganisation_users(new 
HashSet<Organisation_Users>());
+ HashSet<Organisation_Users> orgUsers = new HashSet<Organisation_Users>();

for (Iterator<Element> organisationsIterator = itemUsers.elementIterator( "organisations" ); organisationsIterator.hasNext(); ) {

@@ -725,25 +762,41 @@
                                                        
orgUser.setStarttime(new Date());
                                                        
orgUser.setDeleted(deleted);

-                                                       
us.getOrganisation_users().add(orgUser);
+                                                       orgUsers.add(orgUser);

                                                }

                                        }

-                                       userList.add(us);
+ Users storedUser = Usermanagement.getInstance().getUserById(us.getUser_id());
+
+                                       if (storedUser == null) {
+
+                                               log.debug("Add User ID 
"+us.getUser_id());
+                                               us.setUser_id(null);
+                                               us.setStarttime(new Date());
+ Long actualNewUserId = Usermanagement.getInstance().addUserBackup(us);
+
+ for (Iterator<Organisation_Users> orgUserIterator = orgUsers.iterator();orgUserIterator.hasNext();) {
+
+ Organisation_Users organisationUsers = orgUserIterator.next();
+
+                                                       
organisationUsers.setUser_id(actualNewUserId);
+
+ Organisationmanagement.getInstance().addOrganisationUserObj(organisationUsers);
+
+                                               }
+
+                                       }

                                }

                        }
                }

-               return userList;
-
                } catch (Exception err) {
                        log.error("[getUsersByXML]",err);
                }
-               return null;
        }


@@ -1106,6 +1159,7 @@
Organisation orgStored = Organisationmanagement.getInstance().getOrganisationByIdAndDeleted(org.getOrganisation_id());

                        if (orgStored == null) {
+                               org.setOrganisation_id(null);
                                
Organisationmanagement.getInstance().addOrganisationObj(org);
                        }

@@ -1161,6 +1215,10 @@
List<MeetingMember> meetingmembersList = this.getMeetingmembersListByXML(meetingmembersListFile);

                for (MeetingMember ma : meetingmembersList) {
+
+                       //We need to reset this as openJPA reject to store them 
otherwise
+                       ma.setMeetingMemberId(null);
+
                        
MeetingMemberDaoImpl.getInstance().addMeetingMemberByObject(ma);
                }

@@ -1296,6 +1354,9 @@

                        if (appointmentStored == null) {

+                               //We need to reset this as openJPA reject to 
store them otherwise
+                               appointment.setAppointmentId(null);
+
                                
AppointmentDaoImpl.getInstance().addAppointmentObj(appointment);

                        }
@@ -1391,6 +1452,9 @@

                        if (roomsOrganisationStored == null) {

+                               //We need to reset this as openJPA reject to 
store them otherwise
+                               
rooms_Organisation.setRooms_organisation_id(null);
+
                                
Roommanagement.getInstance().addRoomOrganisation(rooms_Organisation);

                        }
@@ -1445,43 +1509,16 @@

        private void importRooms(File roomFile) throws Exception {

-               Map<String,List> returnObject = this.getRoomListByXML(roomFile);
-
-               List<Rooms> roomList = returnObject.get("roomList");
- List<RoomModerators> roomModeratorList = returnObject.get("roomModeratorList");
-
-               for (Rooms rooms : roomList) {
-
- Rooms roomStored = Roommanagement.getInstance().getRoomById(rooms.getRooms_id());
-
-                       if (roomStored == null) {
-                               Roommanagement.getInstance().addRoom(rooms);
-                       }
-
-               }
-
-               for (RoomModerators roomModerators : roomModeratorList) {
-
- List<RoomModerators> roomModeratorsStored = RoomModeratorsDaoImpl.getInstance().getRoomModeratorByUserAndRoomId(roomModerators.getRoomId(), roomModerators.getUser().getUser_id());
-
-                       if (roomModeratorsStored == null || 
roomModeratorsStored.size() == 0) {
-
- RoomModeratorsDaoImpl.getInstance().addRoomModeratorByObj(roomModerators);
-
-                       }
-
-               }
-
-
+               this.getRoomListByXML(roomFile);

        }

-       private Map<String,List> getRoomListByXML(File roomFile) {
+       private void getRoomListByXML(File roomFile) {
                try {

-                       List<Rooms> roomList = new LinkedList<Rooms>();
-
- List<RoomModerators> roomModeratorList = new LinkedList<RoomModerators>();
+                       //List<Rooms> roomList = new LinkedList<Rooms>();
+
+ //List<RoomModerators> roomModeratorList = new LinkedList<RoomModerators>();

                        SAXReader reader = new SAXReader();
                        Document document = reader.read(roomFile);
@@ -1512,16 +1549,36 @@
Boolean isAudioOnly = importBooleanType(roomObject.element("isAudioOnly").getText());
                                        String sipNumber = 
roomObject.element("sipNumber").getText();
String conferencePin = roomObject.element("conferencePin").getText();
+
+                                       Long ownerId = null;
+                                       if (roomObject.element("ownerid") != 
null) {
+ ownerId = importLongType(roomObject.element("ownerid").getText());
+                                       }

                                        Boolean ispublic = false;
                                        if (roomObject.element("ispublic") != 
null) {
ispublic = importBooleanType(roomObject.element("ispublic").getText());
                                        }
+
+                                       Boolean waitForRecording = false;
+                                       if 
(roomObject.element("waitForRecording") != null) {
+ waitForRecording = importBooleanType(roomObject.element("waitForRecording").getText());
+                                       }
+
+                                       Boolean hideTopBar = false;
+                                       if (roomObject.element("hideTopBar") != 
null) {
+ hideTopBar = importBooleanType(roomObject.element("hideTopBar").getText());
+                                       }

                                        Boolean isClosed = false;
                                        if (roomObject.element("isClosed") != 
null) {
isClosed = importBooleanType(roomObject.element("isClosed").getText());
                                        }
+
+                                       Boolean allowRecording = false;
+                                       if 
(roomObject.element("allowRecording") != null) {
+ allowRecording = importBooleanType(roomObject.element("allowRecording").getText());
+                                       }

                                        String redirectURL = "";
                                        if (roomObject.element("redirectURL") 
!= null) {
@@ -1530,6 +1587,7 @@

                                        Rooms room = new Rooms();
                                        room.setRooms_id(rooms_id);
+                                       room.setOwnerId(ownerId);
                                        room.setName(name);
                                        room.setDeleted(deleted);
                                        room.setComment(comment);
@@ -1548,9 +1606,18 @@
                                        room.setIspublic(ispublic);
                                        room.setIsClosed(isClosed);
                                        room.setRedirectURL(redirectURL);
-
-
-                                       roomList.add(room);
+                                       
room.setWaitForRecording(waitForRecording);
+                                       room.setHideTopBar(hideTopBar);
+                                       room.setAllowRecording(allowRecording);
+
+ Rooms roomStored = Roommanagement.getInstance().getRoomById(room.getRooms_id());
+
+                                       if (roomStored == null) {
+ //We need to reset this as openJPA reject to store them otherwise
+                                               room.setRooms_id(null);
+
+                                               
Roommanagement.getInstance().addRoom(room);
+                                       }

for (Iterator<Element> iterMods = roomObject.elementIterator( "room_moderators" ); iterMods.hasNext(); ) {

@@ -1570,8 +1637,13 @@
roomModerators.setUser(Usermanagement.getInstance().getUserById(user_id));
                                                        
roomModerators.setIsSuperModerator(is_supermoderator);

-                                                       
roomModeratorList.add(roomModerators);
-
+ List<RoomModerators> roomModeratorsStored = RoomModeratorsDaoImpl.getInstance().getRoomModeratorByUserAndRoomId(roomModerators.getRoomId(), roomModerators.getUser().getUser_id());
+
+ if (roomModeratorsStored == null || roomModeratorsStored.size() == 0) {
+
+ RoomModeratorsDaoImpl.getInstance().addRoomModeratorByObj(roomModerators);
+
+                                                       }
                                                }

                                        }
@@ -1580,18 +1652,10 @@

                        }
                        }
-
-                       Map<String,List> returnObject = new 
HashMap<String,List>();
-
-                       returnObject.put("roomList",roomList);
-                       returnObject.put("roomModeratorList", 
roomModeratorList);
-
-                       return returnObject;

                } catch (Exception err) {
                        log.error("[getRoomListByXML]",err);
                }
-               return null;
        }


@@ -1601,6 +1665,9 @@

                for (FileExplorerItem fileExplorerItem : fileExplorerItems) {

+                       //We need to reset this as openJPA reject to store them 
otherwise
+                       fileExplorerItem.setFileExplorerItemId(0);
+
FileExplorerItemDaoImpl.getInstance().addFileExplorerItem(fileExplorerItem);

                }

--
You received this message because you are subscribed to the Google Groups 
"OpenMeetings developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/openmeetings-dev?hl=en.

Reply via email to