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;