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/07/31 07:34:07 UTC

svn commit: r1367412 [4/4] - in /incubator/openmeetings/trunk/singlewebapp: ./ src/org/openmeetings/app/backup/ src/org/openmeetings/app/data/basic/dao/ src/org/openmeetings/app/data/calendar/daos/ src/org/openmeetings/app/data/conference/ src/org/open...

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java?rev=1367412&r1=1367411&r2=1367412&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupImportController.java Tue Jul 31 05:34:05 2012
@@ -19,31 +19,48 @@
 package org.openmeetings.servlet.outputhandler;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedHashMap;
-import java.util.LinkedList;
 import java.util.List;
-import java.util.regex.Pattern;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
 
 import org.apache.commons.transaction.util.FileHelper;
-import org.dom4j.Document;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
 import org.openmeetings.app.OpenmeetingsVariables;
+import org.openmeetings.app.backup.AppointmentCategoryConverter;
+import org.openmeetings.app.backup.AppointmentConverter;
+import org.openmeetings.app.backup.AppointmentReminderTypeConverter;
+import org.openmeetings.app.backup.DateConverter;
+import org.openmeetings.app.backup.IntegerTransform;
+import org.openmeetings.app.backup.LongTransform;
+import org.openmeetings.app.backup.OmTimeZoneConverter;
+import org.openmeetings.app.backup.OrganisationConverter;
+import org.openmeetings.app.backup.PollTypeConverter;
+import org.openmeetings.app.backup.RoomConverter;
+import org.openmeetings.app.backup.RoomTypeConverter;
+import org.openmeetings.app.backup.StateConverter;
+import org.openmeetings.app.backup.UserConverter;
 import org.openmeetings.app.data.basic.Configurationmanagement;
 import org.openmeetings.app.data.basic.dao.LdapConfigDaoImpl;
 import org.openmeetings.app.data.basic.dao.OmTimeZoneDaoImpl;
+import org.openmeetings.app.data.basic.dao.ServerDaoImpl;
 import org.openmeetings.app.data.calendar.daos.AppointmentCategoryDaoImpl;
 import org.openmeetings.app.data.calendar.daos.AppointmentDaoImpl;
 import org.openmeetings.app.data.calendar.daos.AppointmentReminderTypDaoImpl;
@@ -60,20 +77,24 @@ import org.openmeetings.app.data.user.da
 import org.openmeetings.app.data.user.dao.PrivateMessagesDaoImpl;
 import org.openmeetings.app.data.user.dao.UserContactsDaoImpl;
 import org.openmeetings.app.data.user.dao.UsersDaoImpl;
+import org.openmeetings.app.persistence.beans.adresses.Adresses;
 import org.openmeetings.app.persistence.beans.adresses.States;
 import org.openmeetings.app.persistence.beans.basic.Configuration;
 import org.openmeetings.app.persistence.beans.basic.LdapConfig;
 import org.openmeetings.app.persistence.beans.basic.OmTimeZone;
+import org.openmeetings.app.persistence.beans.basic.Server;
 import org.openmeetings.app.persistence.beans.calendar.Appointment;
+import org.openmeetings.app.persistence.beans.calendar.AppointmentCategory;
+import org.openmeetings.app.persistence.beans.calendar.AppointmentReminderTyps;
 import org.openmeetings.app.persistence.beans.calendar.MeetingMember;
 import org.openmeetings.app.persistence.beans.domain.Organisation;
-import org.openmeetings.app.persistence.beans.domain.Organisation_Users;
 import org.openmeetings.app.persistence.beans.files.FileExplorerItem;
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecording;
 import org.openmeetings.app.persistence.beans.flvrecord.FlvRecordingMetaData;
+import org.openmeetings.app.persistence.beans.poll.PollType;
 import org.openmeetings.app.persistence.beans.poll.RoomPoll;
-import org.openmeetings.app.persistence.beans.poll.RoomPollAnswers;
 import org.openmeetings.app.persistence.beans.rooms.RoomModerators;
+import org.openmeetings.app.persistence.beans.rooms.RoomTypes;
 import org.openmeetings.app.persistence.beans.rooms.Rooms;
 import org.openmeetings.app.persistence.beans.rooms.Rooms_Organisation;
 import org.openmeetings.app.persistence.beans.sip.asterisk.AsteriskSipUsers;
@@ -89,12 +110,23 @@ import org.openmeetings.app.sip.api.impl
 import org.openmeetings.utils.OmFileHelper;
 import org.openmeetings.utils.math.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
+import org.simpleframework.xml.Serializer;
+import org.simpleframework.xml.convert.Registry;
+import org.simpleframework.xml.convert.RegistryStrategy;
+import org.simpleframework.xml.core.Persister;
+import org.simpleframework.xml.strategy.Strategy;
+import org.simpleframework.xml.stream.InputNode;
+import org.simpleframework.xml.stream.NodeBuilder;
+import org.simpleframework.xml.transform.RegistryMatcher;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.multipart.MultipartFile;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 @Controller
 public class BackupImportController extends AbstractUploadController {
@@ -144,6 +176,8 @@ public class BackupImportController exte
 	private Configurationmanagement cfgManagement;
 	@Autowired
 	private AsteriskDAOImpl asteriskDAOImpl;
+	@Autowired
+	private ServerDaoImpl serverDaoImpl;
 
 	private final HashMap<Long, Long> usersMap = new HashMap<Long, Long>();
 	private final HashMap<Long, Long> organisationsMap = new HashMap<Long, Long>();
@@ -151,10 +185,9 @@ public class BackupImportController exte
 	private final HashMap<Long, Long> roomsMap = new HashMap<Long, Long>();
 	private final HashMap<Long, Long> messageFoldersMap = new HashMap<Long, Long>();
 	private final HashMap<Long, Long> userContactsMap = new HashMap<Long, Long>();
-	private final HashMap<Long, Long> fileExplorerItemsMap = new HashMap<Long, Long>();
 
 	private enum Maps {
-		USERS, ORGANISATIONS, APPOINTMENTS, ROOMS, MESSAGEFOLDERS, USERCONTACTS, FILEEXPLORERITEMS
+		USERS, ORGANISATIONS, APPOINTMENTS, ROOMS, MESSAGEFOLDERS, USERCONTACTS
 	};
 
 	public void performImport(InputStream is) throws Exception {
@@ -226,210 +259,368 @@ public class BackupImportController exte
 		/*
 		 * ##################### Import Organizations
 		 */
-		File orgFile = new File(f, "organizations.xml");
-		if (!orgFile.exists()) {
-			throw new Exception("organizations.xml missing");
+		Serializer simpleSerializer = new Persister();
+		{
+			List<Organisation> list = readList(simpleSerializer, f, "organizations.xml", "organisations", Organisation.class);
+			for (Organisation o : list) {
+				long oldId = o.getOrganisation_id();
+				o.setOrganisation_id(null);
+				Long newId = organisationmanagement.addOrganisationObj(o);
+				organisationsMap.put(oldId, newId);
+			}
 		}
-		this.importOrganizsations(orgFile);
 
 		log.info("Organizations import complete, starting user import");
-
 		/*
 		 * ##################### Import Users
 		 */
-		File userFile = new File(f, "users.xml");
-		if (!userFile.exists()) {
-			throw new Exception("users.xml missing");
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Organisation.class, new OrganisationConverter(organisationmanagement, organisationsMap));
+			//registry.bind(UserSipData.class, UserSipDataConverter.class);
+			registry.bind(OmTimeZone.class, new OmTimeZoneConverter(omTimeZoneDaoImpl));
+			registry.bind(States.class, new StateConverter(statemanagement));
+			registry.bind(Date.class, DateConverter.class);
+
+			List<Users> list = readUserList(serializer, f, "users.xml", "users");
+			for (Users u : list) {
+				OmTimeZone tz = u.getOmTimeZone();
+				if (tz.getJname() == null) {
+					String jNameTimeZone = cfgManagement.getConfValue("default.timezone", String.class, "Europe/Berlin");
+					OmTimeZone omTimeZone = omTimeZoneDaoImpl.getOmTimeZone(jNameTimeZone);
+					u.setOmTimeZone(omTimeZone);
+					u.setForceTimeZoneCheck(true);
+				} else {
+					u.setForceTimeZoneCheck(false);
+				}
+				
+				u.setStarttime(new Date());
+				long userId = u.getUser_id();
+				u.setUser_id(null);
+				Long actualNewUserId = userManagement.addUserBackup(u);
+				usersMap.put(userId, actualNewUserId);
+				Server us = u.getServer();
+				if (us != null) {
+					Server s = serverDaoImpl.getServerByAddress(us.getAddress());
+					serverDaoImpl.saveServer(s.getId(), us.getName(), us.getAddress());
+				}
+			}
 		}
-		this.importUsers(userFile);
 
 		log.info("Users import complete, starting room import");
-
 		/*
 		 * ##################### Import Rooms
 		 */
-		File roomFile = new File(f, "rooms.xml");
-		if (!roomFile.exists()) {
-			throw new Exception("rooms.xml missing");
+		{
+			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);
+			matcher.bind(Integer.class, IntegerTransform.class);
+			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(RoomTypes.class, new RoomTypeConverter(roommanagement));
+			
+			List<Rooms> list = readList(serializer, f, "rooms.xml", "rooms", Rooms.class);
+			for (Rooms r : list) {
+				Long roomId = r.getRooms_id();
+
+				// We need to reset this as openJPA reject to store them
+				// otherwise
+				r.setRooms_id(null);
+
+				Long newRoomId = roommanagement.addRoom(r);
+				roomsMap.put(roomId, newRoomId);
+				
+				for (RoomModerators rm : r.getModerators()) {
+					roomModeratorsDao.addRoomModeratorByObj(rm);
+				}
+				Server us = r.getServer();
+				if (us != null) {
+					Server s = serverDaoImpl.getServerByAddress(us.getAddress());
+					serverDaoImpl.saveServer(s.getId(), us.getName(), us.getAddress());
+				}
+			}
 		}
-		this.importRooms(roomFile);
 
 		log.info("Room import complete, starting room organizations import");
-
 		/*
 		 * ##################### Import Room Organisations
 		 */
-		File orgRoomListFile = new File(f, "rooms_organisation.xml");
-		if (!orgRoomListFile.exists()) {
-			throw new Exception("rooms_organisation.xml missing");
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Organisation.class, new OrganisationConverter(organisationmanagement, organisationsMap));
+			registry.bind(Rooms.class, new RoomConverter(roommanagement, roomsMap));
+			
+			List<Rooms_Organisation> list = readList(serializer, f, "rooms_organisation.xml", "room_organisations", Rooms_Organisation.class);
+			for (Rooms_Organisation ro : list) {
+				// We need to reset this as openJPA reject to store them otherwise
+				ro.setRooms_organisation_id(null);
+				roommanagement.addRoomOrganisation(ro);
+			}
 		}
-		this.importOrgRooms(orgRoomListFile);
 
 		log.info("Room organizations import complete, starting appointement import");
-
 		/*
 		 * ##################### Import Appointements
 		 */
-		File appointementListFile = new File(f, "appointements.xml");
-		if (!appointementListFile.exists()) {
-			throw new Exception("appointements.xml missing");
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(AppointmentCategory.class, new AppointmentCategoryConverter(appointmentCategoryDaoImpl));
+			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(AppointmentReminderTyps.class, new AppointmentReminderTypeConverter(appointmentReminderTypDaoImpl));
+			registry.bind(Rooms.class, new RoomConverter(roommanagement, roomsMap));
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<Appointment> list = readList(serializer, f, "appointements.xml", "appointments", Appointment.class);
+			for (Appointment a : list) {
+				Long appId = a.getAppointmentId();
+
+				// We need to reset this as openJPA reject to store them otherwise
+				a.setAppointmentId(null);
+
+				Long newAppId = appointmentDao.addAppointmentObj(a);
+				appointmentsMap.put(appId, newAppId);
+			}
 		}
-		this.importAppointements(appointementListFile);
 
 		log.info("Appointement import complete, starting meeting members import");
-
 		/*
 		 * ##################### Import MeetingMembers
 		 * 
 		 * Reminder Invitations will be NOT send!
 		 */
-		File meetingmembersListFile = new File(f, "meetingmembers.xml");
-		if (!meetingmembersListFile.exists()) {
-			throw new Exception("meetingmembersListFile missing");
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Appointment.class, new AppointmentConverter(appointmentDao, appointmentsMap));
+			
+			List<MeetingMember> list = readList(serializer, f, "meetingmembers.xml", "meetingmembers", MeetingMember.class);
+			for (MeetingMember ma : list) {
+				// We need to reset this as openJPA reject to store them otherwise
+				ma.setMeetingMemberId(null);
+				meetingMemberDao.addMeetingMemberByObject(ma);
+			}
 		}
-		this.importMeetingmembers(meetingmembersListFile);
 
 		log.info("Meeting members import complete, starting ldap config import");
-
 		/*
 		 * ##################### Import LDAP Configs
 		 */
-		File ldapConfigListFile = new File(f, "ldapconfigs.xml");
-		if (!ldapConfigListFile.exists()) {
-			log.debug("meetingmembersListFile missing");
-			// throw new Exception
-			// ("meetingmembersListFile missing");
-		} else {
-			this.importLdapConfig(ldapConfigListFile);
+		{
+			List<LdapConfig> list = readList(simpleSerializer, f, "ldapconfigs.xml", "ldapconfigs", LdapConfig.class, true);
+			for (LdapConfig c : list) {
+				ldapConfigDao.addLdapConfigByObject(c);
+			}
 		}
 
 		log.info("Ldap config import complete, starting recordings import");
-
 		/*
 		 * ##################### Import Recordings
 		 */
-		File flvRecordingsListFile = new File(f, "flvRecordings.xml");
-		if (!flvRecordingsListFile.exists()) {
-			log.debug("flvRecordingsListFile missing");
-			// throw new Exception
-			// ("meetingmembersListFile missing");
-		} else {
-			this.importFlvRecordings(flvRecordingsListFile);
+		{
+			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);
+			matcher.bind(Integer.class, IntegerTransform.class);
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<FlvRecording> list = readList(serializer, f, "flvRecordings.xml", "flvrecordings", FlvRecording.class, true);
+			for (FlvRecording fr : list) {
+				fr.setFlvRecordingId(0);
+				for (FlvRecordingMetaData meta : fr.getFlvRecordingMetaData()) {
+					meta.setFlvRecordingMetaDataId(0);
+					meta.setFlvRecording(fr);
+				}
+				flvRecordingDao.addFlvRecordingObj(fr);
+			}
 		}
 
 		log.info("FLVrecording import complete, starting private message folder import");
-
 		/*
 		 * ##################### Import Private Message Folders
 		 */
-		File privateMessageFoldersFile = new File(f, "privateMessageFolder.xml");
-		if (!privateMessageFoldersFile.exists()) {
-			log.debug("privateMessageFoldersFile missing");
-			// throw new Exception
-			// ("meetingmembersListFile missing");
-		} else {
-			this.importPrivateMessageFolders(privateMessageFoldersFile);
+		{
+			List<PrivateMessageFolder> list = readList(simpleSerializer, f, "privateMessageFolder.xml"
+				, "privatemessagefolders", PrivateMessageFolder.class, true);
+			for (PrivateMessageFolder p : list) {
+				Long folderId = p.getPrivateMessageFolderId();
+				PrivateMessageFolder storedFolder = privateMessageFolderDao
+						.getPrivateMessageFolderById(folderId);
+				if (storedFolder == null) {
+					p.setPrivateMessageFolderId(0);
+					Long newFolderId = privateMessageFolderDao
+							.addPrivateMessageFolderObj(p);
+					messageFoldersMap.put(folderId, newFolderId);
+				}
+			}
 		}
 
-		log.info("Private message folder import complete, starting private message import");
-
+		log.info("Private message folder import complete, starting user contacts import");
 		/*
-		 * ##################### Import Private Messages
+		 * ##################### Import User Contacts
 		 */
-		File privateMessagesFile = new File(f, "privateMessages.xml");
-		if (!privateMessagesFile.exists()) {
-			log.debug("privateMessagesFile missing");
-			// throw new Exception
-			// ("meetingmembersListFile missing");
-		} else {
-			this.importPrivateMessages(privateMessagesFile);
-		}
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			
+			List<UserContacts> list = readList(serializer, f, "userContacts.xml", "usercontacts", UserContacts.class, true);
+			for (UserContacts uc : list) {
+				Long ucId = uc.getUserContactId();
+				UserContacts storedUC = userContactsDao.getUserContacts(ucId);
 
-		log.info("Private message import complete, starting usercontact import");
+				if (storedUC == null) {
+					uc.setUserContactId(0);
+					Long newId = userContactsDao.addUserContactObj(uc);
+					userContactsMap.put(ucId, newId);
+				}
+			}
+		}
 
+		log.info("Usercontact import complete, starting private messages item import");
 		/*
-		 * ##################### Import User Contacts
+		 * ##################### Import Private Messages
 		 */
-		File userContactsFile = new File(f, "userContacts.xml");
-		if (!userContactsFile.exists()) {
-			log.debug("userContactsFile missing");
-			// throw new Exception
-			// ("meetingmembersListFile missing");
-		} else {
-			this.importUserContacts(userContactsFile);
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Rooms.class, new RoomConverter(roommanagement, roomsMap));
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<PrivateMessages> list = readList(serializer, f, "privateMessages.xml", "privatemessages", PrivateMessages.class, true);
+			for (PrivateMessages p : list) {
+				p.setPrivateMessageId(0);
+				p.setPrivateMessageFolderId(
+					getNewId(p.getPrivateMessageFolderId(), Maps.MESSAGEFOLDERS));
+				p.setUserContactId(
+					getNewId(p.getUserContactId(), Maps.USERCONTACTS));
+				
+				privateMessagesDao.addPrivateMessageObj(p);
+			}
 		}
 
-		log.info("Usercontact import complete, starting file explorer item import");
-
+		log.info("Private message import complete, starting file explorer item import");
 		/*
 		 * ##################### Import File-Explorer Items
 		 */
-		File fileExplorerListFile = new File(f, "fileExplorerItems.xml");
-		if (!fileExplorerListFile.exists()) {
-			log.debug("fileExplorerListFile missing");
-			// throw new Exception
-			// ("meetingmembersListFile missing");
-		} else {
-			this.importFileExplorerItems(fileExplorerListFile);
+		{
+			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);
+			matcher.bind(Integer.class, IntegerTransform.class);
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<FileExplorerItem> list = readList(serializer, f, "fileExplorerItems.xml", "fileExplorerItems", FileExplorerItem.class, true);
+			for (FileExplorerItem fileExplorerItem : list) {
+				// We need to reset this as openJPA reject to store them otherwise
+				fileExplorerItem.setFileExplorerItemId(0);
+				fileExplorerItemDao.addFileExplorerItem(fileExplorerItem);
+			}
 		}
 
 		log.info("File explorer item import complete, starting file poll import");
-
 		/*
 		 * ##################### Import Room Polls
 		 */
-		File roomPollListFile = new File(f, "roompolls.xml");
-		if (!roomPollListFile.exists()) {
-			log.debug("roomPollListFile missing");
-		} else {
-			this.importRoomPolls(roomPollListFile);
+		{
+			Registry registry = new Registry();
+			Strategy strategy = new RegistryStrategy(registry);
+			Serializer serializer = new Persister(strategy);
+	
+			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Rooms.class, new RoomConverter(roommanagement, roomsMap));
+			registry.bind(PollType.class, new PollTypeConverter(pollManagement));
+			registry.bind(Date.class, DateConverter.class);
+			
+			List<RoomPoll> list = readList(serializer, f, "roompolls.xml", "roompolls", RoomPoll.class, true);
+			for (RoomPoll rp : list) {
+				pollManagement.savePollBackup(rp);
+			}
 		}
+		
 		log.info("Poll import complete, starting configs import");
-
 		/*
 		 * ##################### Import Configs
 		 */
-		File configsFile = new File(f, "configs.xml");
-		if (!configsFile.exists()) {
-			log.debug("configsFile missing");
-		} else {
-			importConfigs(configsFile);
+		{
+			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);
+			
+			List<Configuration> list = readList(serializer, f, "configs.xml", "configs", Configuration.class, true);
+			for (Configuration c : list) {
+				Configuration cfg = cfgManagement.getConfKey(3L, c.getConf_key());
+				c.setConfiguration_id(cfg == null ? null : cfg.getConfiguration_id());
+				cfgManagement.updateConfig(c);
+			}
 		}
+
 		log.info("Configs import complete, starting asteriskSipUsersFile import");
-		
 		/*
 		 * ##################### Import AsteriskSipUsers
 		 */
-		File asteriskSipUsersFile = new File(f, "asterisksipusers.xml");
-		if (!asteriskSipUsersFile.exists()) {
-			log.debug("asteriskSipUsersFile missing");
-		} else {
-			importAsteriskSipUsers(asteriskSipUsersFile);
+		{
+			List<AsteriskSipUsers> list = readList(simpleSerializer, f, "asterisksipusers.xml"
+				, "asterisksipusers", AsteriskSipUsers.class, true);
+			for (AsteriskSipUsers au : list) {
+				asteriskDAOImpl.saveAsteriskSipUsers(au);
+			}
 		}
+
 		log.info("AsteriskSipUsers import complete, starting extensions import");
-		
 		/*
 		 * ##################### Import Extensions
 		 */
-		File extensionsFile = new File(f, "extensions.xml");
-		if (!extensionsFile.exists()) {
-			log.debug("extensionsFile missing");
-		} else {
-			importExtensions(extensionsFile);
+		{
+			List<Extensions> list = readList(simpleSerializer, f, "extensions.xml"
+				, "extensions", Extensions.class, true);
+			for (Extensions e : list) {
+				asteriskDAOImpl.saveExtensions(e);
+			}
 		}
-		log.info("Extensions import complete, starting members import");
-		
+
+		log.info("Extensions import complete, starting MeetMe members import");
 		/*
-		 * ##################### Import Extensions
+		 * ##################### Import MeetMe
 		 */
-		File membersFile = new File(f, "members.xml");
-		if (!membersFile.exists()) {
-			log.debug("membersFile missing");
-		} else {
-			importMembers(membersFile);
+		{
+			List<MeetMe> list = readList(simpleSerializer, f, "members.xml"
+				, "members", MeetMe.class, true);
+			for (MeetMe mm : list) {
+				asteriskDAOImpl.saveMeetMe(mm);
+			}
 		}
-		log.info("Members import complete, starting copy of files and folders");
 
+		log.info("Members import complete, starting copy of files and folders");
 		/*
 		 * ##################### Import real files and folders
 		 */
@@ -472,1888 +663,115 @@ public class BackupImportController exte
 		return;
 	}
 
-	private void importRoomPolls(File roomPollListFile) {
-		try {
-
-			List<RoomPoll> roomPolls = this.getRoomPolls(roomPollListFile);
-
-			for (RoomPoll roomPoll : roomPolls) {
-
-				pollManagement.savePollBackup(roomPoll);
-
-			}
-
-		} catch (Exception err) {
-			log.error("[getRoomPolls]", err);
-		}
-
-	}
-	
-	private void importMembers(File membersFile) throws Exception {
-		SAXReader reader = new SAXReader();
-		Document document = reader.read(membersFile);
-
-		Element root = document.getRootElement();
-		Element extensions = root.element("members");
-		for (@SuppressWarnings("unchecked")
-			Iterator<Element> iter = extensions.elementIterator("member"); iter.hasNext();) {
-			
-			Element extensionElem = iter.next();
-			String confno = extensionElem.elementText("confno");
-			try {
-				MeetMe meetMe = new MeetMe();
-				meetMe.setConfno(unformatString(extensionElem
-								.element("confno").getText()));
-				meetMe.setPin(unformatString(extensionElem
-						.element("pin").getText()));
-				meetMe.setAdminpin(unformatString(extensionElem
-						.element("adminpin").getText()));
-				meetMe.setMembers(importIntegerType(unformatString(extensionElem
-						.element("members").getText())));
-				
-				asteriskDAOImpl.saveMeetMe(meetMe);
-			} catch (Exception e) {
-				log.debug("failed to add/update members confno: " + confno, e);
-			}
-		}
-	}
-	
-	private void importExtensions(File extensionsFile) throws Exception {
-		SAXReader reader = new SAXReader();
-		Document document = reader.read(extensionsFile);
-
-		Element root = document.getRootElement();
-		Element extensions = root.element("extensions");
-		for (@SuppressWarnings("unchecked")
-			Iterator<Element> iter = extensions.elementIterator("extension"); iter.hasNext();) {
-			
-			Element extensionElem = iter.next();
-			String id = extensionElem.elementText("id");
-			try {
-				Extensions extension = new Extensions();
-				//the primary key must be null for new objects if its an auto-increment
-				extension.setExten(unformatString(extensionElem
-						.element("exten").getText()));
-				extension.setPriority(importIntegerType(unformatString(extensionElem
-						.element("priority").getText())));
-				extension.setApp(unformatString(extensionElem
-						.element("app").getText()));
-				extension.setAppdata(unformatString(extensionElem
-						.element("appdata").getText()));
-				
-				asteriskDAOImpl.saveExtensions(extension);
-			} catch (Exception e) {
-				log.debug("failed to add/update extensions id: " + id, e);
-			}
-		}
-	}
-	
-	private void importAsteriskSipUsers(File asteriskSipUsersFile) throws Exception {
-		SAXReader reader = new SAXReader();
-		Document document = reader.read(asteriskSipUsersFile);
-
-		Element root = document.getRootElement();
-		Element asterisksipusers = root.element("asterisksipusers");
-		for (@SuppressWarnings("unchecked")
-			Iterator<Element> iter = asterisksipusers.elementIterator("asterisksipuser"); iter.hasNext();) {
-			
-			Element asterisksipuserElem = iter.next();
-			
-			String id = asterisksipuserElem.elementText("id");
-			
-			try {
-			
-				AsteriskSipUsers asterisksipuser = new AsteriskSipUsers();
-				//the primary key must be null for new objects if its an auto-increment
-				asterisksipuser.setAccountcode(unformatString(asterisksipuserElem
-						.element("accountcode").getText()));
-				asterisksipuser.setDisallow(unformatString(asterisksipuserElem
-						.element("disallow").getText()));
-				asterisksipuser.setAllow(unformatString(asterisksipuserElem
-						.element("allow").getText()));
-				asterisksipuser.setAllowoverlap(unformatString(asterisksipuserElem
-						.element("allowoverlap").getText()));
-				asterisksipuser.setAllowsubscribe(unformatString(asterisksipuserElem
-						.element("allowsubscribe").getText()));
-				asterisksipuser.setAllowtransfer(unformatString(asterisksipuserElem
-						.element("allowtransfer").getText()));
-				asterisksipuser.setAmaflags(unformatString(asterisksipuserElem
-						.element("amaflags").getText()));
-				asterisksipuser.setAutoframing(unformatString(asterisksipuserElem
-						.element("autoframing").getText()));
-				asterisksipuser.setAuth(unformatString(asterisksipuserElem
-						.element("auth").getText()));
-				asterisksipuser.setBuggymwi(unformatString(asterisksipuserElem
-						.element("buggymwi").getText()));
-				asterisksipuser.setCallgroup(unformatString(asterisksipuserElem
-						.element("callgroup").getText()));
-				asterisksipuser.setCallerid(unformatString(asterisksipuserElem
-						.element("callerid").getText()));
-				asterisksipuser.setCid_number(unformatString(asterisksipuserElem
-						.element("cid_number").getText()));
-				asterisksipuser.setFullname(unformatString(asterisksipuserElem
-						.element("fullname").getText()));
-				asterisksipuser.setCallingpres(unformatString(asterisksipuserElem
-						.element("callingpres").getText()));
-				asterisksipuser.setCanreinvite(unformatString(asterisksipuserElem
-						.element("canreinvite").getText()));
-				asterisksipuser.setContext(unformatString(asterisksipuserElem
-						.element("context").getText()));
-				asterisksipuser.setDefaultip(unformatString(asterisksipuserElem
-						.element("defaultip").getText()));
-				asterisksipuser.setDtmfmode(unformatString(asterisksipuserElem
-						.element("dtmfmode").getText()));
-				asterisksipuser.setFromuser(unformatString(asterisksipuserElem
-						.element("fromuser").getText()));
-				asterisksipuser.setFromdomain(unformatString(asterisksipuserElem
-						.element("fromdomain").getText()));
-				asterisksipuser.setFullcontact(unformatString(asterisksipuserElem
-						.element("fullcontact").getText()));
-				asterisksipuser.setG726nonstandard(unformatString(asterisksipuserElem
-						.element("g726nonstandard").getText()));
-				asterisksipuser.setHost(unformatString(asterisksipuserElem
-						.element("host").getText()));
-				asterisksipuser.setInsecure(unformatString(asterisksipuserElem
-						.element("insecure").getText()));
-				asterisksipuser.setIpaddr(unformatString(asterisksipuserElem
-						.element("ipaddr").getText()));
-				asterisksipuser.setLanguage(unformatString(asterisksipuserElem
-						.element("language").getText()));
-				asterisksipuser.setLastms(unformatString(asterisksipuserElem
-						.element("lastms").getText()));
-				asterisksipuser.setMailbox(unformatString(asterisksipuserElem
-						.element("mailbox").getText()));
-				asterisksipuser.setMaxcallbitrate(importIntegerType(unformatString(asterisksipuserElem
-						.element("maxcallbitrate").getText())));
-				asterisksipuser.setMohsuggest(unformatString(asterisksipuserElem
-						.element("mohsuggest").getText()));
-				asterisksipuser.setMd5secret(unformatString(asterisksipuserElem
-						.element("md5secret").getText()));
-				asterisksipuser.setMusiconhold(unformatString(asterisksipuserElem
-						.element("musiconhold").getText()));
-				asterisksipuser.setName(unformatString(asterisksipuserElem
-						.element("name").getText()));
-				asterisksipuser.setNat(unformatString(asterisksipuserElem
-						.element("nat").getText()));
-				asterisksipuser.setOutboundproxy(unformatString(asterisksipuserElem
-						.element("outboundproxy").getText()));
-				asterisksipuser.setDeny(unformatString(asterisksipuserElem
-						.element("deny").getText()));
-				asterisksipuser.setPermit(unformatString(asterisksipuserElem
-						.element("permit").getText()));
-				asterisksipuser.setPickupgroup(unformatString(asterisksipuserElem
-						.element("pickupgroup").getText()));
-				asterisksipuser.setPort(unformatString(asterisksipuserElem
-						.element("port").getText()));
-				asterisksipuser.setProgressinband(unformatString(asterisksipuserElem
-						.element("progressinband").getText()));
-				asterisksipuser.setPromiscredir(unformatString(asterisksipuserElem
-						.element("promiscredir").getText()));
-				asterisksipuser.setQualify(unformatString(asterisksipuserElem
-						.element("qualify").getText()));
-				asterisksipuser.setRegexten(unformatString(asterisksipuserElem
-						.element("regexten").getText()));
-				asterisksipuser.setRegseconds(importIntegerType(unformatString(asterisksipuserElem
-						.element("regseconds").getText())));
-				asterisksipuser.setRfc2833compensate(unformatString(asterisksipuserElem
-						.element("rfc2833compensate").getText()));
-				asterisksipuser.setRtptimeout(unformatString(asterisksipuserElem
-						.element("rtptimeout").getText()));
-				asterisksipuser.setRtpholdtimeout(unformatString(asterisksipuserElem
-						.element("rtpholdtimeout").getText()));
-				asterisksipuser.setSecret(unformatString(asterisksipuserElem
-						.element("secret").getText()));
-				asterisksipuser.setSendrpid(unformatString(asterisksipuserElem
-						.element("sendrpid").getText()));
-				asterisksipuser.setSetvar(unformatString(asterisksipuserElem
-						.element("setvar").getText()));
-				asterisksipuser.setSubscribecontext(unformatString(asterisksipuserElem
-						.element("subscribecontext").getText()));
-				asterisksipuser.setSubscribemwi(unformatString(asterisksipuserElem
-						.element("subscribemwi").getText()));
-				asterisksipuser.setT38pt_udptl(unformatString(asterisksipuserElem
-						.element("t38pt_udptl").getText()));
-				asterisksipuser.setTrustrpid(unformatString(asterisksipuserElem
-						.element("trustrpid").getText()));
-				asterisksipuser.setType(unformatString(asterisksipuserElem
-						.element("type").getText()));
-				asterisksipuser.setUseclientcode(unformatString(asterisksipuserElem
-						.element("useclientcode").getText()));
-				asterisksipuser.setUsername(unformatString(asterisksipuserElem
-						.element("username").getText()));
-				asterisksipuser.setUsereqphone(unformatString(asterisksipuserElem
-						.element("usereqphone").getText()));
-				asterisksipuser.setVideosupport(unformatString(asterisksipuserElem
-						.element("videosupport").getText()));
-				asterisksipuser.setVmexten(unformatString(asterisksipuserElem
-						.element("vmexten").getText()));
-				
-				asteriskDAOImpl.saveAsteriskSipUsers(asterisksipuser);
-				
-			} catch (Exception e) {
-				log.debug("failed to add/update asterisksipuser id: "+id, e);
-			}
-		}
+	private <T> List<T> readList(Serializer ser, File baseDir, String fileName, String listNodeName, Class<T> clazz) throws Exception {
+		return readList(ser, baseDir, fileName, listNodeName, clazz, false);
 	}
 	
-	private void importConfigs(File configsFile) throws Exception {
-		SAXReader reader = new SAXReader();
-		Document document = reader.read(configsFile);
-
-		Element root = document.getRootElement();
-		Element configs = root.element("configs");
-		for (@SuppressWarnings("unchecked")
-			Iterator<Element> iter = configs.elementIterator("config"); iter.hasNext();) {
-			
-			Element cfgElem = iter.next();
-			String key = cfgElem.elementText("key");
-			try {
-				Configuration cfg = cfgManagement.getConfKey(3L, key);
-				if (cfg == null) {
-					cfg = new Configuration();
-					cfg.setConf_key(key);
+	private <T> List<T> readList(Serializer ser, File baseDir, String fileName, String listNodeName, Class<T> clazz, boolean notThow) throws Exception {
+		File xml = new File(baseDir, fileName);
+		if (!xml.exists()) {
+			final String msg = fileName + " missing";
+			if (notThow) {
+				log.debug(msg);
+			} 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);
 				}
-				cfg.setConf_value(cfgElem.elementText("value"));
-				cfg.setUpdatetime(new Date());
-				cfg.setDeleted(Boolean.valueOf(cfgElem.elementText("deleted")));
-				cfg.setComment(cfgElem.elementText("comment"));
-				cfgManagement.updateConfig(cfg);
-			} catch (Exception e) {
-				log.debug("failed to add/update configuration: " + key, e);
+				item = listNode.getNext();
 			}
 		}
+		return list;
 	}
 	
-	@SuppressWarnings("unchecked")
-	private List<RoomPoll> getRoomPolls(File roomPollListFile) throws Exception {
-
-		List<RoomPoll> roomPollList = new LinkedList<RoomPoll>();
-
-		SAXReader reader = new SAXReader();
-		Document document = reader.read(roomPollListFile);
-
-		Element root = document.getRootElement();
-
-		for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-
-			Element itemObject = i.next();
-
-			if (itemObject.getName().equals("roompolls")) {
-
-				for (Iterator<Element> innerIter = itemObject
-						.elementIterator("roompoll"); innerIter.hasNext();) {
-
-					Element roompollObject = innerIter.next();
-
-					String pollname = unformatString(roompollObject.element(
-							"pollname").getText());
-					String pollquestion = unformatString(roompollObject
-							.element("pollquestion").getText());
-					Boolean archived = importBooleanType(unformatString(roompollObject
-							.element("archived").getText()));
-					Date created = CalendarPatterns
-							.parseImportDate(unformatString(roompollObject
-									.element("created").getText()));
-					Long createdbyuserid = importLongType(unformatString(roompollObject
-							.element("createdbyuserid").getText()));
-					Long polltypeid = importLongType(unformatString(roompollObject
-							.element("polltypeid").getText()));
-					Long roomid = importLongType(unformatString(roompollObject
-							.element("roomid").getText()));
-					
-					RoomPoll roomPoll = new RoomPoll();
-					roomPoll.setPollName(pollname);
-					roomPoll.setPollQuestion(pollquestion);
-					if (archived != null) {
-						roomPoll.setArchived(archived.booleanValue());
-					} else {
-						roomPoll.setArchived(true);
-					}
-					roomPoll.setCreated(created);
-					roomPoll.setCreatedBy(usersDao.getUser(getNewId(createdbyuserid, Maps.USERS)));
-					roomPoll.setPollType(pollManagement.getPollType(polltypeid));
-					roomPoll.setRoom(roommanagement.getRoomById(getNewId(roomid, Maps.ROOMS)));
-					roomPoll.setRoomPollAnswerList(new LinkedList<RoomPollAnswers>());
-					
-					Element roompollanswers = roompollObject
-							.element("roompollanswers");
-
-					for (Iterator<Element> innerIterAnswers = roompollanswers
-							.elementIterator("roompollanswer"); innerIterAnswers
-							.hasNext();) {
-
-						Element innerIterAnswerObj = innerIterAnswers.next();
-
-						Integer pointlist = importIntegerType(unformatString(innerIterAnswerObj
-								.element("pointlist").getText()));
-						Boolean answer = importBooleanType(unformatString(innerIterAnswerObj
-								.element("answer").getText()));
-						Date votedate = CalendarPatterns
-								.parseImportDate(unformatString(innerIterAnswerObj
-										.element("votedate").getText()));
-						Long voteduserid = importLongType(unformatString(innerIterAnswerObj
-								.element("voteduserid").getText()));
-						
-						RoomPollAnswers roomPollAnswers = new RoomPollAnswers();
-						roomPollAnswers.setPointList(pointlist);
-						roomPollAnswers.setAnswer(answer);
-						roomPollAnswers.setVoteDate(votedate);
-						roomPollAnswers.setVotedUser(usersDao.getUser(getNewId(voteduserid, Maps.USERS)));
-						
-						roomPoll.getRoomPollAnswerList().add(roomPollAnswers);
-					}
-					
-					roomPollList.add(roomPoll);
-
-				}
-
-			}
-
-		}
-
-		return roomPollList;
-
-	}
-
-	private void importUsers(File userFile) throws Exception {
-
-		this.getUsersByXML(userFile);
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private void getUsersByXML(File userFile) {
-		try {
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(userFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("users")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("user"); innerIter.hasNext();) {
-
-						Element itemUsers = innerIter.next();
-
-						Users us = new Users();
-						Long userId = Long.valueOf(unformatString(itemUsers
-								.element("user_id").getText()));
-
-						us.setAge(CalendarPatterns
-								.parseImportDate(unformatString(itemUsers
-										.element("age").getText())));
-						us.setAvailible(importIntegerType(unformatString(itemUsers
-								.element("availible").getText())));
-						us.setDeleted(Boolean.valueOf(unformatString(itemUsers.element(
-								"deleted").getText())));
-						us.setFirstname(unformatString(itemUsers.element(
-								"firstname").getText()));
-						us.setLastname(unformatString(itemUsers.element(
-								"lastname").getText()));
-						us.setLogin(unformatString(itemUsers.element("login")
-								.getText()));
-						us.setPassword(unformatString(itemUsers.element("pass")
-								.getText()));
-						us.setDeleted(Boolean.valueOf(itemUsers.element("deleted").getText()));
-
-						if (itemUsers.element("activatehash") != null) {
-							us.setActivatehash(unformatString(itemUsers
-									.element("activatehash").getText()));
-						} else {
-							us.setActivatehash("");
-						}
-						if (itemUsers.element("externalUserType") != null) {
-							us.setExternalUserType(unformatString(itemUsers
-									.element("externalUserType").getText()));
-						} else {
-							us.setExternalUserType("");
-						}
-						if (itemUsers.element("externalUserId") != null) {
-							us.setExternalUserId(unformatString(itemUsers
-									.element("externalUserId").getText()));
-						} else {
-							us.setExternalUserId(null);
-						}
-						if (itemUsers.element("resethash") != null) {
-							us.setResethash(unformatString(itemUsers.element(
-									"resethash").getText()));
-						} else {
-							us.setResethash(null);
-						}
-						if (itemUsers.element("userOffers") != null) {
-							us.setUserOffers(unformatString(itemUsers.element(
-									"userOffers").getText()));
-						} else {
-							us.setUserOffers("");
-						}
-						if (itemUsers.element("userSearchs") != null) {
-							us.setUserSearchs(unformatString(itemUsers.element(
-									"userSearchs").getText()));
-						} else {
-							us.setUserSearchs("");
-						}
-						if (itemUsers.element("forceTimeZoneCheck") != null) {
-							us.setForceTimeZoneCheck(importBooleanType(unformatString(itemUsers
-									.element("forceTimeZoneCheck").getText())));
-						} else {
-							us.setForceTimeZoneCheck(null);
-						}
-						if (itemUsers.element("lasttrans") != null) {
-							us.setLasttrans(importLongType(unformatString(itemUsers
-									.element("lasttrans").getText())));
-						} else {
-							us.setLasttrans(null);
-						}
-						if (itemUsers.element("showContactData") != null) {
-							us.setShowContactData(importBooleanType(unformatString(itemUsers
-									.element("showContactData").getText())));
-						} else {
-							us.setShowContactData(null);
-						}
-						if (itemUsers.element("showContactDataToContacts") != null) {
-							us.setShowContactDataToContacts(importBooleanType(unformatString(itemUsers
-									.element("showContactDataToContacts")
-									.getText())));
-						} else {
-							us.setShowContactDataToContacts(null);
-						}
-
-						us.setPictureuri(unformatString(itemUsers.element(
-								"pictureuri").getText()));
-						if (unformatString(
-								itemUsers.element("language_id").getText())
-								.length() > 0)
-							us.setLanguage_id(Long
-									.valueOf(unformatString(itemUsers.element(
-											"language_id").getText())));
-
-						us.setStatus(importIntegerType(unformatString(itemUsers
-								.element("status").getText())));
-						us.setRegdate(CalendarPatterns
-								.parseImportDate(unformatString(itemUsers
-										.element("regdate").getText())));
-						us.setTitle_id(importIntegerType(unformatString(itemUsers
-								.element("title_id").getText())));
-						us.setLevel_id(importLongType(unformatString(itemUsers
-								.element("level_id").getText())));
-
-						// UserSIP Data
-						if (itemUsers.element("sip_username") != null
-								&& itemUsers.element("sip_userpass") != null
-								&& itemUsers.element("sip_authid") != null) {
-							UserSipData userSipData = new UserSipData();
-							userSipData.setUsername(unformatString(itemUsers
-									.element("sip_username").getText()));
-							userSipData.setUsername(unformatString(itemUsers
-									.element("sip_userpass").getText()));
-							userSipData.setUsername(unformatString(itemUsers
-									.element("sip_authid").getText()));
-							us.setUserSipData(userSipData);
-						}
-
-						String additionalname = unformatString(itemUsers
-								.element("additionalname").getText());
-						String comment = unformatString(itemUsers.element(
-								"comment").getText());
-						// A User can not have a deleted Adress, you cannot
-						// delete the
-						// Adress of an User
-						// String deleted = u.getAdresses().getDeleted()
-						// Phone Number not done yet
-						String fax = unformatString(itemUsers.element("fax")
-								.getText());
-						Long state_id = importLongType(unformatString(itemUsers
-								.element("state_id").getText()));
-						String street = unformatString(itemUsers.element(
-								"street").getText());
-						String town = unformatString(itemUsers.element("town")
-								.getText());
-						String zip = unformatString(itemUsers.element("zip")
-								.getText());
-
-						if (itemUsers.element("omTimeZone") != null) {
-							OmTimeZone omTimeZone = omTimeZoneDaoImpl
-									.getOmTimeZone(unformatString(itemUsers
-											.element("omTimeZone").getText()));
-
-							us.setOmTimeZone(omTimeZone);
-							us.setForceTimeZoneCheck(false);
-						} else {
-
-							String jNameTimeZone = cfgManagement.getConfValue("default.timezone", String.class, "Europe/Berlin");
-							OmTimeZone omTimeZone = omTimeZoneDaoImpl
-									.getOmTimeZone(jNameTimeZone);
-							us.setOmTimeZone(omTimeZone);
-							us.setForceTimeZoneCheck(true);
-						}
-
-						String phone = "";
-						if (itemUsers.element("phone") != null) {
-							phone = unformatString(itemUsers.element("phone")
-									.getText());
-						}
-
-						String email = "";
-						if (itemUsers.element("mail") != null) {
-							email = unformatString(itemUsers.element("mail")
-									.getText());
-						}
-
-						States st = statemanagement.getStateById(state_id);
-						if (st == null) {
-							st = statemanagement.getStateById(1L);
-						}
-
-						us.setAdresses(street, zip, town,
-								st, additionalname, comment, fax,
-								phone, email);
-
-						HashSet<Organisation_Users> orgUsers = new HashSet<Organisation_Users>();
-
-						for (Iterator<Element> organisationsIterator = itemUsers
-								.elementIterator("organisations"); organisationsIterator
-								.hasNext();) {
-
-							Element organisations = organisationsIterator
-									.next();
-
-							for (Iterator<Element> organisationIterator = organisations
-									.elementIterator("user_organisation"); organisationIterator
-									.hasNext();) {
-
-								Element organisationObject = organisationIterator
-										.next();
-
-								Long organisation_id = getNewId(
-										importLongType(unformatString(organisationObject
-												.element("organisation_id")
-												.getText())),
-										Maps.ORGANISATIONS);
-								Boolean isModerator = importBooleanType(unformatString(organisationObject
-										.element("isModerator").getText()));
-								boolean deleted = Boolean.valueOf(unformatString(organisationObject
-										.element("deleted").getText()));
-
-								Organisation_Users orgUser = new Organisation_Users();
-								orgUser.setOrganisation(organisationmanagement
-										.getOrganisationByIdBackup(organisation_id));
-								orgUser.setIsModerator(isModerator);
-								orgUser.setStarttime(new Date());
-								orgUser.setDeleted(deleted);
-
-								orgUsers.add(orgUser);
-
-							}
-
-						}
-
-						log.debug("Import User ID " + userId);
-						us.setStarttime(new Date());
-						Long actualNewUserId = userManagement.addUserBackup(us);
-						usersMap.put(userId, actualNewUserId);
-
-						for (Iterator<Organisation_Users> orgUserIterator = orgUsers
-								.iterator(); orgUserIterator.hasNext();) {
-
-							Organisation_Users organisationUsers = orgUserIterator
-									.next();
-
-							organisationmanagement
-									.addOrganisationUserObj(actualNewUserId, organisationUsers);
-
-						}
-
-					}
-
-				}
-			}
-
-		} catch (Exception err) {
-			log.error("[getUsersByXML]", err);
-		}
-	}
-
-	private void importFlvRecordings(File flvRecordingsListFile)
-			throws Exception {
-
-		List<FlvRecording> flvRecordings = this
-				.getFlvRecordings(flvRecordingsListFile);
-
-		for (FlvRecording flvRecording : flvRecordings) {
-
-			Long flvRecordingId = flvRecordingDao
-					.addFlvRecordingObj(flvRecording);
-
-			for (FlvRecordingMetaData flvRecordingMetaData : flvRecording
-					.getFlvRecordingMetaData()) {
-
-				FlvRecording flvRecordingSaved = flvRecordingDao
-						.getFlvRecordingById(flvRecordingId);
-
-				flvRecordingMetaData.setFlvRecording(flvRecordingSaved);
-
-				flvRecordingMetaDataDao
-						.addFlvRecordingMetaDataObj(flvRecordingMetaData);
-
-			}
-
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<FlvRecording> getFlvRecordings(File flvRecordingsListFile) {
-		try {
-
-			List<FlvRecording> flvList = new LinkedList<FlvRecording>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(flvRecordingsListFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-
-				Element itemObject = i.next();
-
-				if (itemObject.getName().equals("flvrecordings")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("flvrecording"); innerIter
-							.hasNext();) {
-
-						Element flvObject = innerIter.next();
-
-						String alternateDownload = unformatString(flvObject
-								.element("alternateDownload").getText());
-						String comment = unformatString(flvObject.element(
-								"comment").getText());
-						boolean deleted = Boolean.valueOf(unformatString(flvObject.element(
-								"deleted").getText()));
-						String fileHash = unformatString(flvObject.element(
-								"fileHash").getText());
-						String fileName = unformatString(flvObject.element(
-								"fileName").getText());
-						String previewImage = unformatString(flvObject.element(
-								"previewImage").getText());
-						String recorderStreamId = unformatString(flvObject
-								.element("recorderStreamId").getText());
-						Long fileSize = importLongType(unformatString(flvObject
-								.element("fileSize").getText()));
-						Integer flvHeight = importIntegerType(unformatString(flvObject
-								.element("flvHeight").getText()));
-						Integer flvWidth = importIntegerType(unformatString(flvObject
-								.element("flvWidth").getText()));
-						Integer height = importIntegerType(unformatString(flvObject
-								.element("height").getText()));
-						Integer width = importIntegerType(unformatString(flvObject
-								.element("width").getText()));
-						Long insertedBy = getNewId(
-								importLongType(unformatString(flvObject
-										.element("insertedBy").getText())),
-								Maps.USERS);
-						Long organization_id = getNewId(
-								importLongType(unformatString(flvObject
-										.element("organization_id").getText())),
-								Maps.ORGANISATIONS);
-						Long ownerId = getNewId(
-								importLongType(unformatString(flvObject
-										.element("ownerId").getText())),
-								Maps.USERS);
-						Long parentFileExplorerItemId = getNewId(
-								importLongType(unformatString(flvObject
-										.element("parentFileExplorerItemId")
-										.getText())), Maps.FILEEXPLORERITEMS);
-						Integer progressPostProcessing = importIntegerType(unformatString(flvObject
-								.element("progressPostProcessing").getText()));
-						Long room_id = getNewId(
-								importLongType(unformatString(flvObject
-										.element("room_id").getText())),
-								Maps.ROOMS);
-						Date inserted = CalendarPatterns
-								.parseImportDate(unformatString(flvObject
-										.element("inserted").getText()));
-						Boolean isFolder = importBooleanType(unformatString(flvObject
-								.element("isFolder").getText()));
-						Boolean isImage = importBooleanType(unformatString(flvObject
-								.element("isImage").getText()));
-						Boolean isInterview = importBooleanType(unformatString(flvObject
-								.element("isInterview").getText()));
-						Boolean isPresentation = importBooleanType(unformatString(flvObject
-								.element("isPresentation").getText()));
-						Boolean isRecording = importBooleanType(unformatString(flvObject
-								.element("isRecording").getText()));
-						Date recordEnd = CalendarPatterns
-								.parseImportDate(unformatString(flvObject
-										.element("recordEnd").getText()));
-						Date recordStart = CalendarPatterns
-								.parseImportDate(unformatString(flvObject
-										.element("recordStart").getText()));
-
-						FlvRecording flvRecording = new FlvRecording();
-						flvRecording.setAlternateDownload(alternateDownload);
-						flvRecording.setComment(comment);
-						flvRecording.setFileHash(fileHash);
-						flvRecording.setFileName(fileName);
-						flvRecording.setPreviewImage(previewImage);
-						flvRecording.setRecorderStreamId(recorderStreamId);
-						flvRecording.setFileSize(fileSize);
-						flvRecording.setFlvHeight(flvHeight);
-						flvRecording.setFlvWidth(flvWidth);
-						flvRecording.setHeight(height);
-						flvRecording.setWidth(width);
-						flvRecording.setInsertedBy(insertedBy);
-						flvRecording.setOrganization_id(organization_id);
-						flvRecording.setOwnerId(ownerId);
-						flvRecording
-								.setParentFileExplorerItemId(parentFileExplorerItemId);
-						flvRecording
-								.setProgressPostProcessing(progressPostProcessing);
-						flvRecording.setRoom_id(room_id);
-						flvRecording.setInserted(inserted);
-						flvRecording.setIsFolder(isFolder);
-						flvRecording.setIsImage(isImage);
-						flvRecording.setIsInterview(isInterview);
-						flvRecording.setIsPresentation(isPresentation);
-						flvRecording.setIsRecording(isRecording);
-						flvRecording.setRecordEnd(recordEnd);
-						flvRecording.setRecordStart(recordStart);
-						flvRecording.setDeleted(deleted);
-
-						flvRecording
-								.setFlvRecordingMetaData(new LinkedList<FlvRecordingMetaData>());
-
-						Element flvrecordingmetadatas = flvObject
-								.element("flvrecordingmetadatas");
-
-						for (Iterator<Element> innerIterMetas = flvrecordingmetadatas
-								.elementIterator("flvrecordingmetadata"); innerIterMetas
-								.hasNext();) {
-
-							Element flvrecordingmetadataObj = innerIterMetas
-									.next();
-
-							String freeTextUserName = unformatString(flvrecordingmetadataObj
-									.element("freeTextUserName").getText());
-							String fullWavAudioData = unformatString(flvrecordingmetadataObj
-									.element("fullWavAudioData").getText());
-							String streamName = unformatString(flvrecordingmetadataObj
-									.element("streamName").getText());
-							String wavAudioData = unformatString(flvrecordingmetadataObj
-									.element("wavAudioData").getText());
-							Integer initialGapSeconds = importIntegerType(unformatString(flvrecordingmetadataObj
-									.element("initialGapSeconds").getText()));
-							Long insertedBy1 = importLongType(unformatString(flvrecordingmetadataObj
-									.element("insertedBy").getText()));
-							Integer interiewPodId = importIntegerType(unformatString(flvrecordingmetadataObj
-									.element("interiewPodId").getText()));
-							Boolean audioIsValid = importBooleanType(unformatString(flvrecordingmetadataObj
-									.element("audioIsValid").getText()));
-							Date inserted1 = CalendarPatterns
-									.parseImportDate(unformatString(flvrecordingmetadataObj
-											.element("inserted").getText()));
-							Boolean isAudioOnly = importBooleanType(unformatString(flvrecordingmetadataObj
-									.element("isAudioOnly").getText()));
-							Boolean isScreenData = importBooleanType(unformatString(flvrecordingmetadataObj
-									.element("isScreenData").getText()));
-							Boolean isVideoOnly = importBooleanType(unformatString(flvrecordingmetadataObj
-									.element("isVideoOnly").getText()));
-							Date recordEnd1 = CalendarPatterns
-									.parseImportDate(unformatString(flvrecordingmetadataObj
-											.element("recordEnd").getText()));
-							Date recordStart1 = CalendarPatterns
-									.parseImportDate(unformatString(flvrecordingmetadataObj
-											.element("recordStart").getText()));
-							Date updated = CalendarPatterns
-									.parseImportDate(unformatString(flvrecordingmetadataObj
-											.element("updated").getText()));
-
-							FlvRecordingMetaData flvrecordingmetadata = new FlvRecordingMetaData();
-							flvrecordingmetadata
-									.setFreeTextUserName(freeTextUserName);
-							flvrecordingmetadata
-									.setFullWavAudioData(fullWavAudioData);
-							flvrecordingmetadata.setStreamName(streamName);
-							flvrecordingmetadata.setWavAudioData(wavAudioData);
-							flvrecordingmetadata
-									.setInitialGapSeconds(initialGapSeconds);
-							flvrecordingmetadata.setInsertedBy(insertedBy1);
-							flvrecordingmetadata
-									.setInteriewPodId(interiewPodId);
-							flvrecordingmetadata.setAudioIsValid(audioIsValid);
-							flvrecordingmetadata.setInserted(inserted1);
-							flvrecordingmetadata.setIsAudioOnly(isAudioOnly);
-							flvrecordingmetadata.setIsScreenData(isScreenData);
-							flvrecordingmetadata.setIsVideoOnly(isVideoOnly);
-							flvrecordingmetadata.setRecordEnd(recordEnd1);
-							flvrecordingmetadata.setRecordStart(recordStart1);
-							flvrecordingmetadata.setUpdated(updated);
-							flvrecordingmetadata.setDeleted(false);
-
-							flvRecording.getFlvRecordingMetaData().add(
-									flvrecordingmetadata);
-
-						}
-
-						flvList.add(flvRecording);
-
-					}
-
-				}
-			}
-
-			return flvList;
-
-		} catch (Exception err) {
-			log.error("[getFlvRecordings]", err);
-		}
-		return null;
-	}
-
-	private void importPrivateMessageFolders(File privateMessageFoldersFile)
-			throws Exception {
-
-		List<PrivateMessageFolder> privateMessageFolders = this
-				.getPrivateMessageFoldersByXML(privateMessageFoldersFile);
-
-		for (PrivateMessageFolder privateMessageFolder : privateMessageFolders) {
-
-			Long folderId = privateMessageFolder.getPrivateMessageFolderId();
-			PrivateMessageFolder storedFolder = privateMessageFolderDao
-					.getPrivateMessageFolderById(folderId);
-			if (storedFolder == null) {
-				privateMessageFolder.setPrivateMessageFolderId(0);
-				Long newFolderId = privateMessageFolderDao
-						.addPrivateMessageFolderObj(privateMessageFolder);
-				messageFoldersMap.put(folderId, newFolderId);
-			}
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<PrivateMessageFolder> getPrivateMessageFoldersByXML(
-			File privateMessageFoldersFile) {
-		try {
-
-			List<PrivateMessageFolder> pmfList = new LinkedList<PrivateMessageFolder>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(privateMessageFoldersFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("privatemessagefolders")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("privatemessagefolder"); innerIter
-							.hasNext();) {
-
-						Element pmfObject = innerIter.next();
-
-						String folderName = unformatString(pmfObject.element(
-								"folderName").getText());
-						Long userId = getNewId(
-								importLongType(unformatString(pmfObject
-										.element("userId").getText())),
-								Maps.USERS);
-						Long privateMessageFolderId = importLongType(unformatString(pmfObject
-								.element("privateMessageFolderId").getText()));
-
-						PrivateMessageFolder privateMessageFolder = new PrivateMessageFolder();
-						privateMessageFolder.setFolderName(folderName);
-						privateMessageFolder.setUserId(userId);
-						privateMessageFolder
-								.setPrivateMessageFolderId(privateMessageFolderId);
-
-						pmfList.add(privateMessageFolder);
-
-					}
-
-				}
+	private Node getNode(Node doc, String name) {
+		NodeList nl = doc.getChildNodes();
+		for (int i = 0; i < nl.getLength(); ++i) {
+			Node node = nl.item(i);
+			if (node.getNodeType() == Node.ELEMENT_NODE && name.equals(node.getNodeName())) {
+				return node;
 			}
-
-			return pmfList;
-
-		} catch (Exception err) {
-			log.error("[getPrivateMessageFoldersByXML]", err);
 		}
 		return null;
 	}
-
-	private void importPrivateMessages(File privateMessagesFile)
-			throws Exception {
-
-		List<PrivateMessages> pmList = this
-				.getPrivateMessagesByXML(privateMessagesFile);
-
-		for (PrivateMessages pm : pmList) {
-			privateMessagesDao.addPrivateMessageObj(pm);
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<PrivateMessages> getPrivateMessagesByXML(
-			File privateMessagesFile) {
-		try {
-
-			List<PrivateMessages> pmList = new LinkedList<PrivateMessages>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(privateMessagesFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("privatemessages")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("privatemessage"); innerIter
-							.hasNext();) {
-
-						Element pmObject = innerIter.next();
-
-						String message = unformatString(pmObject.element(
-								"message").getText());
-						String subject = unformatString(pmObject.element(
-								"subject").getText());
-						Long privateMessageFolderId = getNewId(
-								importLongType(unformatString(pmObject.element(
-										"privateMessageFolderId").getText())),
-								Maps.MESSAGEFOLDERS);
-						Long userContactId = getNewId(
-								importLongType(unformatString(pmObject.element(
-										"userContactId").getText())),
-								Maps.USERCONTACTS);
-						Long parentMessage = importLongType(unformatString(pmObject
-								.element("parentMessage").getText()));
-						Boolean bookedRoom = importBooleanType(unformatString(pmObject
-								.element("bookedRoom").getText()));
-						Users from = userManagement.getUserById(getNewId(
-								importLongType(unformatString(pmObject.element(
-										"from").getText())), Maps.USERS));
-						Users to = userManagement.getUserById(getNewId(
-								importLongType(unformatString(pmObject.element(
-										"to").getText())), Maps.USERS));
-						Date inserted = CalendarPatterns
-								.parseImportDate(unformatString(pmObject
-										.element("inserted").getText()));
-						Boolean isContactRequest = importBooleanType(unformatString(pmObject
-								.element("isContactRequest").getText()));
-						Boolean isRead = importBooleanType(unformatString(pmObject
-								.element("isRead").getText()));
-						Boolean isTrash = importBooleanType(unformatString(pmObject
-								.element("isTrash").getText()));
-						Users owner = userManagement.getUserById(getNewId(
-								importLongType(unformatString(pmObject.element(
-										"owner").getText())), Maps.USERS));
-						Rooms room = roommanagement.getRoomById(getNewId(
-								importLongType(unformatString(pmObject.element(
-										"room").getText())), Maps.ROOMS));
-
-						PrivateMessages pm = new PrivateMessages();
-						pm.setMessage(message);
-						pm.setSubject(subject);
-						pm.setPrivateMessageFolderId(privateMessageFolderId);
-						pm.setUserContactId(userContactId);
-						pm.setParentMessage(parentMessage);
-						pm.setBookedRoom(bookedRoom);
-						pm.setFrom(from);
-						pm.setTo(to);
-						pm.setInserted(inserted);
-						pm.setIsContactRequest(isContactRequest);
-						pm.setIsRead(isRead);
-						pm.setIsTrash(isTrash);
-						pm.setOwner(owner);
-						pm.setRoom(room);
-
-						pmList.add(pm);
-
-					}
-
-				}
-			}
-
-			return pmList;
-
-		} catch (Exception err) {
-			log.error("[getPrivateMessagesByXML]", err);
-		}
-		return null;
-	}
-
-	private void importUserContacts(File userContactsFile) throws Exception {
-
-		List<UserContacts> ucList = this.getUserContactsByXML(userContactsFile);
-
-		for (UserContacts uc : ucList) {
-			Long userContactId = uc.getUserContactId();
-			UserContacts storedUC = userContactsDao
-					.getUserContacts(userContactId);
-
-			if (storedUC == null) {
-				uc.setUserContactId(0);
-				Long newId = userContactsDao.addUserContactObj(uc);
-				this.userContactsMap.put(userContactId, newId);
-			}
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<UserContacts> getUserContactsByXML(File userContactsFile) {
-		try {
-
-			List<UserContacts> ucList = new LinkedList<UserContacts>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(userContactsFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("usercontacts")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("usercontact"); innerIter
-							.hasNext();) {
-
-						Element usercontact = innerIter.next();
-
-						String hash = unformatString(usercontact
-								.element("hash").getText());
-						Users contact = userManagement.getUserById(getNewId(
-								importLongType(unformatString(usercontact
-										.element("contact").getText())),
-								Maps.USERS));
-						Users owner = userManagement.getUserById(getNewId(
-								importLongType(unformatString(usercontact
-										.element("owner").getText())),
-								Maps.USERS));
-						Boolean pending = importBooleanType(unformatString(usercontact
-								.element("pending").getText()));
-						Boolean shareCalendar = importBooleanType(unformatString(usercontact
-								.element("shareCalendar").getText()));
-						Long userContactId = importLongType(unformatString(usercontact
-								.element("userContactId").getText()));
-
-						UserContacts userContacts = new UserContacts();
-						userContacts.setHash(hash);
-						userContacts.setContact(contact);
-						userContacts.setOwner(owner);
-						userContacts.setPending(pending);
-						userContacts.setShareCalendar(shareCalendar);
-						userContacts.setUserContactId(userContactId);
-
-						ucList.add(userContacts);
-
-					}
-
-				}
-			}
-
-			return ucList;
-
-		} catch (Exception err) {
-			log.error("[getUserContactsByXML]", err);
-		}
-		return null;
-	}
-
-	private void importOrganizsations(File orgFile) {
-		try {
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(orgFile);
-
-			Element root = document.getRootElement();
-
-			for (@SuppressWarnings("unchecked")
-			Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("organisations")) {
-					for (@SuppressWarnings("unchecked")
-					Iterator<Element> innerIter = itemObject
-							.elementIterator("organisation"); innerIter
-							.hasNext();) {
-
-						Element orgObject = innerIter.next();
-
-						Long organisation_id = importLongType(unformatString(orgObject
-								.element("organisation_id").getText()));
-						String name = unformatString(orgObject.element("name")
-								.getText());
-						boolean deleted = Boolean.valueOf(unformatString(orgObject.element(
-								"deleted").getText()));
-
-						Organisation organisation = new Organisation();
-						organisation.setName(name);
-						organisation.setDeleted(deleted);
-
-						Long newOrgID = organisationmanagement
-								.addOrganisationObj(organisation);
-						organisationsMap.put(organisation_id, newOrgID);
-					}
-				}
-			}
-		} catch (Exception err) {
-			log.error("[getOrganisationsByXML]", err);
-		}
-	}
-
-	private String unformatString(String str) {
-		str = str.replaceAll(Pattern.quote("<![CDATA["), "");
-		str = str.replaceAll(Pattern.quote("]]>"), "");
-		return str;
-	}
-
-	private void importMeetingmembers(File meetingmembersListFile)
-			throws Exception {
-
-		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);
-
-			meetingMemberDao.addMeetingMemberByObject(ma);
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<MeetingMember> getMeetingmembersListByXML(
-			File meetingmembersListFile) {
-		try {
-
-			List<MeetingMember> meetingmembersList = new LinkedList<MeetingMember>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(meetingmembersListFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("meetingmembers")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("meetingmember"); innerIter
-							.hasNext();) {
-
-						Element appointmentsObject = innerIter.next();
-
-						Long meetingMemberId = importLongType(unformatString(appointmentsObject
-								.element("meetingMemberId").getText()));
-						Long userid = getNewId(
-								importLongType(unformatString(appointmentsObject
-										.element("userid").getText())),
-								Maps.USERS);
-						Long appointment = getNewId(
-								importLongType(unformatString(appointmentsObject
-										.element("appointment").getText())),
-								Maps.APPOINTMENTS);
-						String firstname = unformatString(appointmentsObject
-								.element("firstname").getText());
-						String lastname = unformatString(appointmentsObject
-								.element("lastname").getText());
-						String memberStatus = unformatString(appointmentsObject
-								.element("memberStatus").getText());
-						String appointmentStatus = unformatString(appointmentsObject
-								.element("appointmentStatus").getText());
-						String email = unformatString(appointmentsObject
-								.element("email").getText());
-						String phone = appointmentsObject.element("phone") == null ? "" :
-								unformatString(appointmentsObject.element("phone").getText());
-						boolean deleted = importBooleanType(unformatString(appointmentsObject
-								.element("deleted").getText()));
-						Boolean invitor = importBooleanType(unformatString(appointmentsObject
-								.element("invitor").getText()));
-
-						MeetingMember meetingMember = new MeetingMember();
-						meetingMember.setMeetingMemberId(meetingMemberId);
-						meetingMember.setUserid(usersDao.getUser(userid));
-						meetingMember.setAppointment(appointmentDao
-								.getAppointmentByIdBackup(appointment));
-						meetingMember.setFirstname(firstname);
-						meetingMember.setLastname(lastname);
-						meetingMember.setMemberStatus(memberStatus);
-						meetingMember.setAppointmentStatus(appointmentStatus);
-						meetingMember.setEmail(email);
-						meetingMember.setPhone(phone);
-						meetingMember.setDeleted(deleted);
-						meetingMember.setInvitor(invitor);
-
-						meetingmembersList.add(meetingMember);
-
-					}
-
-				}
-			}
-
-			return meetingmembersList;
-
-		} catch (Exception err) {
-			log.error("[meetingmembersList]", err);
-		}
-		return null;
-	}
-
-	private void importLdapConfig(File ldapConfigListFile) throws Exception {
-
-		List<LdapConfig> ldapConfigList = this
-				.getLdapConfigListByXML(ldapConfigListFile);
-
-		for (LdapConfig ldapConfig : ldapConfigList) {
-			ldapConfigDao.addLdapConfigByObject(ldapConfig);
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<LdapConfig> getLdapConfigListByXML(File ldapConfigListFile) {
-		try {
-
-			List<LdapConfig> ldapConfigsList = new LinkedList<LdapConfig>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(ldapConfigListFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("ldapconfigs")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("ldapconfig"); innerIter.hasNext();) {
-
-						Element ldapconfigObject = innerIter.next();
-
-						String name = unformatString(ldapconfigObject.element(
-								"name").getText());
-						String configFileName = unformatString(ldapconfigObject
-								.element("configFileName").getText());
-						Boolean addDomainToUserName = importBooleanType(unformatString(ldapconfigObject
-								.element("addDomainToUserName").getText()));
-						String domain = unformatString(ldapconfigObject
-								.element("domain").getText());
-						Boolean isActive = importBooleanType(unformatString(ldapconfigObject
-								.element("isActive").getText()));
-
-						LdapConfig ldapConfig = new LdapConfig();
-						ldapConfig.setName(name);
-						ldapConfig.setConfigFileName(configFileName);
-						ldapConfig.setAddDomainToUserName(addDomainToUserName);
-						ldapConfig.setDomain(domain);
-						ldapConfig.setIsActive(isActive);
-
-						ldapConfigsList.add(ldapConfig);
-
-					}
-
-				}
-			}
-
-			return ldapConfigsList;
-
-		} catch (Exception err) {
-			log.error("[getLdapConfigListByXML]", err);
-		}
-		return null;
-	}
-
-	private void importAppointements(File appointementListFile)
-			throws Exception {
-
-		List<Appointment> appointmentList = this
-				.getAppointmentListByXML(appointementListFile);
-
-		for (Appointment appointment : appointmentList) {
-			Long appId = appointment.getAppointmentId();
-
-			// We need to reset this as openJPA reject to store them otherwise
-			appointment.setAppointmentId(null);
-
-			Long newAppId = appointmentDao.addAppointmentObj(appointment);
-			appointmentsMap.put(appId, newAppId);
-
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<Appointment> getAppointmentListByXML(File appointementListFile) {
-		try {
-
-			List<Appointment> appointmentList = new LinkedList<Appointment>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(appointementListFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("appointments")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("appointment"); innerIter
-							.hasNext();) {
-
-						Element appointmentsObject = innerIter.next();
-
-						Long appointmentId = importLongType(unformatString(appointmentsObject
-								.element("appointmentId").getText()));
-						String appointmentName = unformatString(appointmentsObject
-								.element("appointmentName").getText());
-						String appointmentLocation = unformatString(appointmentsObject
-								.element("appointmentLocation").getText());
-						String appointmentDescription = unformatString(appointmentsObject
-								.element("appointmentDescription").getText());
-						Long categoryId = importLongType(unformatString(appointmentsObject
-								.element("categoryId").getText()));
-						Date appointmentStarttime = CalendarPatterns
-								.parseImportDate(unformatString(appointmentsObject
-										.element("appointmentStarttime")
-										.getText()));
-						Date appointmentEndtime = CalendarPatterns
-								.parseImportDate(unformatString(appointmentsObject
-										.element("appointmentEndtime")
-										.getText()));
-						boolean deleted = Boolean.valueOf(unformatString(appointmentsObject
-								.element("deleted").getText()));
-						Long typId = importLongType(unformatString(appointmentsObject
-								.element("typId").getText()));
-						Boolean isDaily = importBooleanType(unformatString(appointmentsObject
-								.element("isDaily").getText()));
-						Boolean isWeekly = importBooleanType(unformatString(appointmentsObject
-								.element("isWeekly").getText()));
-						Boolean isMonthly = importBooleanType(unformatString(appointmentsObject
-								.element("isMonthly").getText()));
-						Boolean isYearly = importBooleanType(unformatString(appointmentsObject
-								.element("isYearly").getText()));
-						Long room_id = getNewId(
-								importLongType(unformatString(appointmentsObject
-										.element("room_id").getText())),
-								Maps.ROOMS);
-						String icalId = unformatString(appointmentsObject
-								.element("icalId").getText());
-						Long language_id = importLongType(unformatString(appointmentsObject
-								.element("language_id").getText()));
-						Boolean isPasswordProtected = importBooleanType(unformatString(appointmentsObject
-								.element("isPasswordProtected").getText()));
-						String password = unformatString(appointmentsObject
-								.element("password").getText());
-						Long users_id = getNewId(
-								importLongType(unformatString(appointmentsObject
-										.element("users_id").getText())),
-								Maps.USERS);
-
-						Appointment app = new Appointment();
-						app.setAppointmentId(appointmentId);
-						app.setAppointmentLocation(appointmentLocation);
-						app.setAppointmentName(appointmentName);
-						app.setAppointmentDescription(appointmentDescription);
-						app.setAppointmentCategory(appointmentCategoryDaoImpl
-								.getAppointmentCategoryById(categoryId));
-						app.setAppointmentStarttime(appointmentStarttime);
-						app.setAppointmentEndtime(appointmentEndtime);
-						app.setDeleted(deleted);
-						app.setRemind(appointmentReminderTypDaoImpl
-								.getAppointmentReminderTypById(typId));
-						app.setIsDaily(isDaily);
-						app.setIsWeekly(isWeekly);
-						app.setIsMonthly(isMonthly);
-						app.setIsYearly(isYearly);
-						app.setRoom(roommanagement.getRoomById(room_id));
-						app.setIcalId(icalId);
-						app.setLanguage_id(language_id);
-						app.setIsPasswordProtected(isPasswordProtected);
-						app.setPassword(password);
-						app.setUserId(userManagement.getUserById(users_id));
-
-						appointmentList.add(app);
-
-					}
-
-				}
-			}
-
-			return appointmentList;
-
-		} catch (Exception err) {
-			log.error("[getRoomListByXML]", err);
-		}
-		return null;
-	}
-
-	private void importOrgRooms(File orgRoomListFile) throws Exception {
-
-		List<Rooms_Organisation> roomOrgList = this
-				.getOrgRoomListByXML(orgRoomListFile);
-
-		for (Rooms_Organisation rooms_Organisation : roomOrgList) {
-
-			// We need to reset this as openJPA reject to store them otherwise
-			rooms_Organisation.setRooms_organisation_id(null);
-
-			roommanagement.addRoomOrganisation(rooms_Organisation);
-
-		}
-
-	}
-
-	@SuppressWarnings("unchecked")
-	private List<Rooms_Organisation> getOrgRoomListByXML(File orgRoomListFile) {
-		try {
-
-			List<Rooms_Organisation> orgRoomList = new LinkedList<Rooms_Organisation>();
-
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(orgRoomListFile);
-
-			Element root = document.getRootElement();
-
-			for (Iterator<Element> i = root.elementIterator(); i.hasNext();) {
-				Element itemObject = i.next();
-				if (itemObject.getName().equals("room_organisations")) {
-
-					for (Iterator<Element> innerIter = itemObject
-							.elementIterator("room_organisation"); innerIter
-							.hasNext();) {
-
-						Element orgRoomObject = innerIter.next();
-
-						Long rooms_organisation_id = importLongType(unformatString(orgRoomObject
-								.element("rooms_organisation_id").getText()));
-						Long organisation_id = getNewId(
-								importLongType(unformatString(orgRoomObject
-										.element("organisation_id").getText())),
-								Maps.ORGANISATIONS);
-						Long rooms_id = getNewId(
-								importLongType(unformatString(orgRoomObject
-										.element("rooms_id").getText())),
-								Maps.ROOMS);
-						boolean deleted = Boolean.valueOf(unformatString(orgRoomObject.element(
-								"deleted").getText()));
-
-						Rooms_Organisation rooms_Organisation = new Rooms_Organisation();
-						rooms_Organisation
-								.setRooms_organisation_id(rooms_organisation_id);
-						rooms_Organisation
-								.setOrganisation(organisationmanagement
-										.getOrganisationById(organisation_id));
-						rooms_Organisation.setRoom(roommanagement
-								.getRoomById(rooms_id));
-						rooms_Organisation.setDeleted(deleted);
-
-						orgRoomList.add(rooms_Organisation);
-
-					}
-
-				}
-			}
-
-			return orgRoomList;
-
-		} catch (Exception err) {
-			log.error("[getRoomListByXML]", err);
-		}
-		return null;
-	}
-
-	@SuppressWarnings("unchecked")
-	private void importRooms(File roomFile) throws Exception {
-		try {
-			SAXReader reader = new SAXReader();
-			Document document = reader.read(roomFile);
-
-			Element root = document.getRootElement();
-
-			Element rooms = root.element("rooms");
-			for (Iterator<Element> innerIter = rooms
-					.elementIterator("room"); innerIter.hasNext();) {
-
-				Element roomObject = innerIter.next();
-
-				Long rooms_id = importLongType(unformatString(roomObject
-						.element("rooms_id").getText()));
-				String name = unformatString(roomObject.element("name")
-						.getText());
-				boolean deleted = Boolean.valueOf(unformatString(roomObject.element(
-						"deleted").getText()));
-				String comment = unformatString(roomObject.element(
-						"comment").getText());
-				Long numberOfPartizipants = importLongType(unformatString((roomObject
-						.element("numberOfPartizipants").getText())));
-				Boolean appointment = importBooleanType(unformatString(roomObject
-						.element("appointment").getText()));
-				Long externalRoomId = importLongType(unformatString(roomObject
-						.element("externalRoomId").getText()));
-				String externalRoomType = unformatString(roomObject
-						.element("externalRoomType").getText());
-				Long roomtypes_id = importLongType(unformatString(roomObject
-						.element("roomtypeId").getText()));
-				
-				Boolean isDemoRoom = false;
-				if (roomObject
-						.element("isDemoRoom") != null) {
-					isDemoRoom = importBooleanType(unformatString(roomObject
-						.element("isDemoRoom").getText()));
-				}
-				
-				Integer demoTime = null;
-				if (roomObject
-						.element("demoTime") != null) {
-					demoTime = importIntegerType(unformatString(roomObject
-						.element("demoTime").getText()));
-				}
-				
-				Boolean isModeratedRoom = false;
-				if (roomObject.element("isModeratedRoom") != null) {
-					isModeratedRoom = importBooleanType(unformatString(roomObject
-						.element("isModeratedRoom").getText()));
-				}
-				
-				Boolean allowUserQuestions = true;
-				if (roomObject.element("allowUserQuestions") != null) {
-					allowUserQuestions = importBooleanType(unformatString(roomObject
-						.element("allowUserQuestions").getText()));
-				}
-				
-				
-				Boolean isAudioOnly = false;
-				if (roomObject.element("isAudioOnly") != null) {
-					isAudioOnly = importBooleanType(unformatString(roomObject
-						.element("isAudioOnly").getText()));
-				}
-				
-				String sipNumber = "";
-				if (roomObject.element("sipNumber") != null) {
-					sipNumber = unformatString(roomObject.element(
-						"sipNumber").getText());
-				}
-				
-				String conferencePin = "";
-				if (roomObject.element("conferencePin") != null) {
-					conferencePin = unformatString(roomObject
-							.element("conferencePin").getText());
-				}
-				
-				Boolean showMicrophoneStatus = false;
-				if (roomObject.element("showMicrophoneStatus") != null) {
-					showMicrophoneStatus = importBooleanType(unformatString(roomObject
-							.element("showMicrophoneStatus").getText()));
-				}
-
-				Long ownerId = null;
-				if (roomObject.element("ownerid") != null) {
-					ownerId = getNewId(
-							importLongType(unformatString(roomObject
-									.element("ownerid").getText())),
-							Maps.USERS);
-				}
-
-				Boolean ispublic = false;
-				if (roomObject.element("ispublic") != null) {
-					ispublic = importBooleanType(unformatString(roomObject
-							.element("ispublic").getText()));
-				}
-
-				Boolean waitForRecording = false;
-				if (roomObject.element("waitForRecording") != null) {
-					waitForRecording = importBooleanType(unformatString(roomObject
-							.element("waitForRecording").getText()));
-				}
-
-				Boolean hideTopBar = false;
-				if (roomObject.element("hideTopBar") != null) {
-					hideTopBar = importBooleanType(unformatString(roomObject
-							.element("hideTopBar").getText()));
-				}
-
-				Boolean isClosed = false;
-				if (roomObject.element("isClosed") != null) {
-					isClosed = importBooleanType(unformatString(roomObject
-							.element("isClosed").getText()));
-				}
-
-				Boolean allowRecording = false;
-				if (roomObject.element("allowRecording") != null) {
-					allowRecording = importBooleanType(unformatString(roomObject
-							.element("allowRecording").getText()));
-				}
-
-				String redirectURL = "";
-				if (roomObject.element("redirectURL") != null) {
-					redirectURL = unformatString(roomObject.element(
-							"redirectURL").getText());
-				}
-				
-				Boolean hideActionsMenu = false;
-				if (roomObject.element("hideActionsMenu") != null) {
-					hideTopBar = importBooleanType(unformatString(roomObject
-							.element("hideActionsMenu").getText()));
-				}
-				
-				Boolean hideActivitiesAndActions = false;
-				if (roomObject.element("hideActivitiesAndActions") != null) {
-					hideTopBar = importBooleanType(unformatString(roomObject
-							.element("hideActivitiesAndActions").getText()));
-				}
-				
-				Boolean hideChat = false;
-				if (roomObject.element("hideChat") != null) {
-					hideTopBar = importBooleanType(unformatString(roomObject
-							.element("hideChat").getText()));
-				}
-				
-				Boolean hideFilesExplorer = false;
-				if (roomObject.element("hideFilesExplorer") != null) {
-					hideTopBar = importBooleanType(unformatString(roomObject
-							.element("hideFilesExplorer").getText()));
-				}
-				
-				Boolean hideScreenSharing = false;
-				if (roomObject.element("hideScreenSharing") != null) {
-					hideTopBar = importBooleanType(unformatString(roomObject
-							.element("hideScreenSharing").getText()));
-				}
-				
-				Boolean hideWhiteboard = false;
-				if (roomObject.element("hideWhiteboard") != null) {
-					hideTopBar = importBooleanType(unformatString(roomObject
-							.element("hideWhiteboard").getText()));
-				}
-
-				Rooms room = new Rooms();
-				room.setRooms_id(rooms_id);
-				room.setOwnerId(ownerId);
-				room.setName(name);
-				room.setDeleted(deleted);
-				room.setComment(comment);
-				room.setNumberOfPartizipants(numberOfPartizipants);
-				room.setAppointment(appointment);
-				room.setExternalRoomId(externalRoomId);
-				room.setExternalRoomType(externalRoomType);
-				room.setRoomtype(roommanagement
-						.getRoomTypesById(roomtypes_id));
-				room.setIsDemoRoom(isDemoRoom);
-				room.setDemoTime(demoTime);
-				room.setIsModeratedRoom(isModeratedRoom);
-				room.setAllowUserQuestions(allowUserQuestions);
-				room.setIsAudioOnly(isAudioOnly);
-				room.setSipNumber(sipNumber);
-				room.setConferencePin(conferencePin);
-				room.setIspublic(ispublic);
-				room.setIsClosed(isClosed);
-				room.setRedirectURL(redirectURL);
-				room.setWaitForRecording(waitForRecording);
-				room.setHideTopBar(hideTopBar);
-				room.setAllowRecording(allowRecording);
-				room.setShowMicrophoneStatus(showMicrophoneStatus);						
-				room.setHideActionsMenu(hideActionsMenu);
-				room.setHideActivitiesAndActions(hideActivitiesAndActions);
-				room.setHideChat(hideChat);
-				room.setHideFilesExplorer(hideFilesExplorer);
-				room.setHideScreenSharing(hideScreenSharing);
-				room.setHideWhiteboard(hideWhiteboard);
-
-				Long roomId = room.getRooms_id();
-

[... 292 lines stripped ...]