You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/12/28 14:05:36 UTC
svn commit: r1426492 - in
/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings:
backup/RoomTypeConverter.java data/conference/Roommanagement.java
servlet/outputhandler/BackupImportController.java
Author: solomax
Date: Fri Dec 28 13:05:36 2012
New Revision: 1426492
URL: http://svn.apache.org/viewvc?rev=1426492&view=rev
Log:
OPENMEETINGS-492, OPENMEETINGS-498 restoration from backup is fixed
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomTypeConverter.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomTypeConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomTypeConverter.java?rev=1426492&r1=1426491&r2=1426492&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomTypeConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomTypeConverter.java Fri Dec 28 13:05:36 2012
@@ -35,8 +35,8 @@ public class RoomTypeConverter extends O
}
public RoomTypes read(InputNode node) throws Exception {
- long id = getlongValue(node);
- return roommanagement.getRoomTypesById(id > 0 ? id : 1); // conference type will be used in case of bad type
+ RoomTypes rt = roommanagement.getRoomTypesById(getlongValue(node));
+ return rt != null ? rt : roommanagement.getRoomTypesById(1); // conference type will be used in case of bad type
}
public void write(OutputNode node, RoomTypes value) throws Exception {
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java?rev=1426492&r1=1426491&r2=1426492&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/Roommanagement.java Fri Dec 28 13:05:36 2012
@@ -626,13 +626,15 @@ public class Roommanagement {
return null;
}
- private String getSipNumber(long roomId) {
+ //TODO move it to helper or DAO
+ public String getSipNumber(long roomId) {
String sipEnabled = configurationDaoImpl.getConfValue("red5sip.enable", String.class, "no");
if("yes".equals(sipEnabled)) {
return configurationDaoImpl.getConfValue("red5sip.room_prefix", String.class, "400") + roomId;
}
return null;
}
+
/**
* Returns number of SIP conference participants
* @param rooms_id id of room
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java?rev=1426492&r1=1426491&r2=1426492&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java Fri Dec 28 13:05:36 2012
@@ -27,6 +27,7 @@ import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
@@ -91,9 +92,11 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaData;
import org.apache.openmeetings.persistence.beans.poll.PollType;
import org.apache.openmeetings.persistence.beans.poll.RoomPoll;
+import org.apache.openmeetings.persistence.beans.rooms.RoomModerators;
import org.apache.openmeetings.persistence.beans.rooms.RoomTypes;
import org.apache.openmeetings.persistence.beans.rooms.Rooms;
import org.apache.openmeetings.persistence.beans.rooms.Rooms_Organisation;
+import org.apache.openmeetings.persistence.beans.sip.asterisk.MeetMe;
import org.apache.openmeetings.persistence.beans.user.PrivateMessageFolder;
import org.apache.openmeetings.persistence.beans.user.PrivateMessages;
import org.apache.openmeetings.persistence.beans.user.UserContacts;
@@ -304,11 +307,23 @@ public class BackupImportController exte
for (Rooms r : list) {
Long roomId = r.getRooms_id();
- // We need to reset this as openJPA reject to store them
+ // We need to reset ids as openJPA reject to store them
// otherwise
r.setRooms_id(null);
-
+ MeetMe mm = r.getMeetme();
+ r.setMeetme(null);
+ for (Iterator<RoomModerators> i = r.getModerators().iterator(); i.hasNext();) {
+ RoomModerators rm = i.next();
+ if (rm.getUser().getUser_id() == null) {
+ i.remove();
+ }
+ }
r = roomDao.update(r, 1L);
+ if (mm != null) {
+ mm.setConfno(roommanagement.getSipNumber(r.getRooms_id()));
+ r.setMeetme(mm);
+ r = roomDao.update(r, 1L); //FIXME double update
+ }
roomsMap.put(roomId, r.getRooms_id());
}
}
@@ -356,7 +371,9 @@ public class BackupImportController exte
// We need to reset this as openJPA reject to store them otherwise
a.setAppointmentId(null);
-
+ if (a.getUserId().getUser_id() == null) {
+ a.setUserId(null);
+ }
Long newAppId = appointmentDao.addAppointmentObj(a);
appointmentsMap.put(appId, newAppId);
}
@@ -503,6 +520,12 @@ public class BackupImportController exte
if (p.getTo() != null && p.getTo().getUser_id() == null) {
p.setTo(null);
}
+ if (p.getFrom() != null && p.getFrom().getUser_id() == null) {
+ p.setFrom(null);
+ }
+ if (p.getOwner() != null && p.getOwner().getUser_id() == null) {
+ p.setOwner(null);
+ }
privateMessagesDao.addPrivateMessageObj(p);
}
}
@@ -623,6 +646,7 @@ public class BackupImportController exte
}
private <T> List<T> readList(Serializer ser, File baseDir, String fileName, String listNodeName, Class<T> clazz, boolean notThow) throws Exception {
+ List<T> list = new ArrayList<T>();
File xml = new File(baseDir, fileName);
if (!xml.exists()) {
final String msg = fileName + " missing";
@@ -631,20 +655,20 @@ public class BackupImportController exte
} else {
throw new Exception(msg);
}
- }
- List<T> list = new ArrayList<T>();
- InputNode root = NodeBuilder.read(new FileInputStream(xml));
- InputNode listNode = root.getNext();
- if (listNodeName.equals(listNode.getName())) {
- InputNode item = listNode.getNext();
- while (item != null) {
- try {
- T o = ser.read(clazz, item, false);
- list.add(o);
- } catch (Exception e) {
- log.debug("Exception While reading node of type: " + clazz, e);
+ } else {
+ InputNode root = NodeBuilder.read(new FileInputStream(xml));
+ InputNode listNode = root.getNext();
+ if (listNodeName.equals(listNode.getName())) {
+ InputNode item = listNode.getNext();
+ while (item != null) {
+ try {
+ T o = ser.read(clazz, item, false);
+ list.add(o);
+ } catch (Exception e) {
+ log.debug("Exception While reading node of type: " + clazz, e);
+ }
+ item = listNode.getNext();
}
- item = listNode.getNext();
}
}
return list;