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.