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/04 15:59:30 UTC

svn commit: r1416973 - in /incubator/openmeetings/trunk/singlewebapp: ./ src/org/apache/openmeetings/backup/ src/org/apache/openmeetings/data/user/ src/org/apache/openmeetings/persistence/beans/files/ src/org/apache/openmeetings/persistence/beans/rooms...

Author: solomax
Date: Tue Dec  4 14:59:26 2012
New Revision: 1416973

URL: http://svn.apache.org/viewvc?rev=1416973&view=rev
Log:
OPENMEETINGS-448 import is tested on "real life" backup file
Simple library is updated

Added:
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
      - copied unchanged from r1416784, incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/Usermanagement.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/ivy.xml
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/AppointmentConverter.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/OrganisationConverter.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomConverter.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomTypeConverter.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/UserConverter.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/files/FileExplorerItem.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/AsteriskSipUsers.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessages.java
    incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java

Modified: incubator/openmeetings/trunk/singlewebapp/ivy.xml
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/ivy.xml?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/ivy.xml (original)
+++ incubator/openmeetings/trunk/singlewebapp/ivy.xml Tue Dec  4 14:59:26 2012
@@ -212,7 +212,7 @@
 		<dependency org="javax.mail" name="mail" rev="1.4.4" conf="openmeetings->*" transitive="false">
 			<include type="jar" />
 		</dependency>
-		<dependency org="org.simpleframework" name="simple-xml" rev="2.6.6" conf="openmeetings->*" transitive="false">
+		<dependency org="org.simpleframework" name="simple-xml" rev="2.6.8" conf="openmeetings->*" transitive="false">
 			<include type="jar" />
 		</dependency>
 		<dependency org="org.apache.wicket" name="wicket-request" rev="6.2.0" conf="openmeetings->*" transitive="false">

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/AppointmentConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/AppointmentConverter.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/AppointmentConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/AppointmentConverter.java Tue Dec  4 14:59:26 2012
@@ -39,10 +39,11 @@ public class AppointmentConverter extend
 	}
 	
 	public Appointment read(InputNode node) throws Exception {
-		long oldOrgId = getlongValue(node);
-		long newId = idMap.containsKey(oldOrgId) ? idMap.get(oldOrgId) : oldOrgId;
+		long oldId = getlongValue(node);
+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;
 		
-		return appointmentDao.getAppointmentByIdBackup(newId);
+		Appointment a = appointmentDao.getAppointmentByIdBackup(newId);
+		return a == null ? new Appointment() : a;
 	}
 
 	public void write(OutputNode node, Appointment value) throws Exception {

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/OrganisationConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/OrganisationConverter.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/OrganisationConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/OrganisationConverter.java Tue Dec  4 14:59:26 2012
@@ -20,29 +20,30 @@ package org.apache.openmeetings.backup;
 
 import java.util.Map;
 
-import org.apache.openmeetings.data.user.Organisationmanagement;
+import org.apache.openmeetings.data.user.dao.OrganisationDao;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
 public class OrganisationConverter extends OmConverter<Organisation> {
-	private Organisationmanagement organisationmanagement;
+	private OrganisationDao orgDao;
 	private Map<Long, Long> idMap;
 	
 	public OrganisationConverter() {
 		//default constructor is for export
 	}
 	
-	public OrganisationConverter(Organisationmanagement organisationmanagement, Map<Long, Long> idMap) {
-		this.organisationmanagement = organisationmanagement;
+	public OrganisationConverter(OrganisationDao orgDao, Map<Long, Long> idMap) {
+		this.orgDao = orgDao;
 		this.idMap = idMap;
 	}
 	
 	public Organisation read(InputNode node) throws Exception {
-		long oldOrgId = getlongValue(node);
-		long newId = idMap.containsKey(oldOrgId) ? idMap.get(oldOrgId) : oldOrgId;
+		long oldId = getlongValue(node);
+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;
 		
-		return organisationmanagement.getOrganisationByIdBackup(newId);
+		Organisation o = orgDao.get(newId);
+		return o == null ? new Organisation() : o;
 	}
 
 	public void write(OutputNode node, Organisation value) throws Exception {

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomConverter.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/RoomConverter.java Tue Dec  4 14:59:26 2012
@@ -39,10 +39,11 @@ public class RoomConverter extends OmCon
 	}
 	
 	public Rooms read(InputNode node) throws Exception {
-		long oldOrgId = getlongValue(node);
-		long newId = idMap.containsKey(oldOrgId) ? idMap.get(oldOrgId) : oldOrgId;
+		long oldId = getlongValue(node);
+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;
 
-		return roomDao.get(newId);
+		Rooms r = roomDao.get(newId);
+		return r == null ? new Rooms() : r;
 	}
 
 	public void write(OutputNode node, Rooms value) throws Exception {

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=1416973&r1=1416972&r2=1416973&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 Tue Dec  4 14:59:26 2012
@@ -35,7 +35,8 @@ public class RoomTypeConverter extends O
 	}
 	
 	public RoomTypes read(InputNode node) throws Exception {
-		return roommanagement.getRoomTypesById(getlongValue(node));
+		long id = getlongValue(node);
+		return roommanagement.getRoomTypesById(id > 0 ? id : 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/backup/UserConverter.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/UserConverter.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/UserConverter.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/backup/UserConverter.java Tue Dec  4 14:59:26 2012
@@ -20,29 +20,30 @@ package org.apache.openmeetings.backup;
 
 import java.util.Map;
 
-import org.apache.openmeetings.data.user.Usermanagement;
+import org.apache.openmeetings.data.user.dao.UsersDao;
 import org.apache.openmeetings.persistence.beans.user.Users;
 import org.simpleframework.xml.stream.InputNode;
 import org.simpleframework.xml.stream.OutputNode;
 
 public class UserConverter extends OmConverter<Users> {
-	private Usermanagement userManagement;
+	private UsersDao userDao;
 	private Map<Long, Long> idMap;
 	
 	public UserConverter() {
 		//default constructor is for export
 	}
 	
-	public UserConverter(Usermanagement userManagement, Map<Long, Long> idMap) {
-		this.userManagement = userManagement;
+	public UserConverter(UsersDao userDao, Map<Long, Long> idMap) {
+		this.userDao = userDao;
 		this.idMap = idMap;
 	}
 	
 	public Users read(InputNode node) throws Exception {
-		long oldOrgId = getlongValue(node);
-		long newId = idMap.containsKey(oldOrgId) ? idMap.get(oldOrgId) : oldOrgId;
+		long oldId = getlongValue(node);
+		long newId = idMap.containsKey(oldId) ? idMap.get(oldId) : oldId;
 		
-		return userManagement.getUserById(newId);
+		Users u = userDao.get(newId);
+		return u == null ? new Users() : u;
 	}
 
 	public void write(OutputNode node, Users value) throws Exception {

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/files/FileExplorerItem.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/files/FileExplorerItem.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/files/FileExplorerItem.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/files/FileExplorerItem.java Tue Dec  4 14:59:26 2012
@@ -50,7 +50,7 @@ public class FileExplorerItem implements
 	private long fileExplorerItemId;
 	
 	@Column(name="filename")
-	@Element(data=true)
+	@Element(data=true, required = false)
 	private String fileName;
 	
 	@Column(name="filehash")

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/rooms/Rooms.java Tue Dec  4 14:59:26 2012
@@ -61,7 +61,7 @@ public class Rooms implements Serializab
 	@Id
 	@GeneratedValue(strategy = GenerationType.IDENTITY)
 	@Column(name = "id")
-	@Element(data = true)
+	@Element(data = true, required=false)
 	private Long rooms_id;
 
 	@Column(name = "name")
@@ -211,7 +211,7 @@ public class Rooms implements Serializab
 	@Element(data = true, required = false)
 	private boolean autoVideoSelect = false;
 
-	@OneToMany(fetch = FetchType.LAZY)
+	@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
 	@JoinColumn(name = "roomId")
 	@ElementList(name = "room_moderators", required=false)
 	private List<RoomModerators> moderators;

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/AsteriskSipUsers.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/AsteriskSipUsers.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/AsteriskSipUsers.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/AsteriskSipUsers.java Tue Dec  4 14:59:26 2012
@@ -149,7 +149,7 @@ public class AsteriskSipUsers implements
 	private String insecure;
 
 	@Column(name = "ipaddr", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String ipaddr = "";
 
 	@Column(name = "language")
@@ -181,7 +181,7 @@ public class AsteriskSipUsers implements
 	private String musiconhold;
 
 	@Column(name = "name", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String name = "";
 
 	@Column(name = "nat", nullable = false)
@@ -205,7 +205,7 @@ public class AsteriskSipUsers implements
 	private String pickupgroup;
 
 	@Column(name = "port", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String port = "";
 
 	// @Column(name = "progressinband")
@@ -226,7 +226,7 @@ public class AsteriskSipUsers implements
 	private String qualify;
 
 	@Column(name = "regexten", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String regexten = "";
 
 	@Column(name = "regseconds", nullable = false)
@@ -258,7 +258,7 @@ public class AsteriskSipUsers implements
 	private String sendrpid = "yes";
 
 	@Column(name = "setvar", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String setvar = "";
 
 	@Column(name = "subscribecontext")
@@ -282,21 +282,21 @@ public class AsteriskSipUsers implements
 	private String trustrpid = "no";
 
 	@Column(name = "type", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String type = "friend";
 
 	// @Column(name = "useclientcode")
 	@Column(name = "useclientcode")
 	// @Enumerated(EnumType.STRING)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String useclientcode = "no";
 
 	@Column(name = "username", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String username = "";
 
 	@Column(name = "usereqphone", nullable = false)
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String usereqphone = "no";
 
 	// @Column(name = "videosupport")

Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessages.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessages.java?rev=1416973&r1=1416972&r2=1416973&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessages.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/user/PrivateMessages.java Tue Dec  4 14:59:26 2012
@@ -49,12 +49,12 @@ public class PrivateMessages implements 
 	private long privateMessageId;
 	
 	@Column(name="subject")
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String subject;
 	
 	@Lob
 	@Column(name="message")
-	@Element(data=true)
+	@Element(data=true, required=false)
 	private String message;
 	
 	@Column(name="email")

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=1416973&r1=1416972&r2=1416973&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 Tue Dec  4 14:59:26 2012
@@ -73,6 +73,7 @@ import org.apache.openmeetings.data.file
 import org.apache.openmeetings.data.flvrecord.FlvRecordingDao;
 import org.apache.openmeetings.data.flvrecord.FlvRecordingMetaDataDao;
 import org.apache.openmeetings.data.user.Organisationmanagement;
+import org.apache.openmeetings.data.user.dao.OrganisationDao;
 import org.apache.openmeetings.data.user.dao.PrivateMessageFolderDao;
 import org.apache.openmeetings.data.user.dao.PrivateMessagesDao;
 import org.apache.openmeetings.data.user.dao.StateDao;
@@ -93,7 +94,6 @@ 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;
@@ -144,6 +144,8 @@ public class BackupImportController exte
 	@Autowired
 	private Organisationmanagement organisationmanagement;
 	@Autowired
+	private OrganisationDao orgDao;
+	@Autowired
 	private Roommanagement roommanagement;
 	@Autowired
 	private RoomDAO roomDao;
@@ -311,7 +313,7 @@ public class BackupImportController exte
 
 			matcher.bind(Long.class, LongTransform.class);
 			matcher.bind(Integer.class, IntegerTransform.class);
-			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Users.class, new UserConverter(usersDao, usersMap));
 			registry.bind(RoomTypes.class, new RoomTypeConverter(roommanagement));
 			
 			List<Rooms> list = readList(serializer, f, "rooms.xml", "rooms", Rooms.class);
@@ -324,10 +326,6 @@ public class BackupImportController exte
 
 				r = roomDao.update(r, 1L);
 				roomsMap.put(roomId, r.getRooms_id());
-				
-				for (RoomModerators rm : r.getModerators()) {
-					roomModeratorsDao.addRoomModeratorByObj(rm);
-				}
 			}
 		}
 
@@ -340,14 +338,16 @@ public class BackupImportController exte
 			Strategy strategy = new RegistryStrategy(registry);
 			Serializer serializer = new Persister(strategy);
 	
-			registry.bind(Organisation.class, new OrganisationConverter(organisationmanagement, organisationsMap));
+			registry.bind(Organisation.class, new OrganisationConverter(orgDao, organisationsMap));
 			registry.bind(Rooms.class, new RoomConverter(roomDao, 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);
+				if (!ro.getDeleted()) {
+					// We need to reset this as openJPA reject to store them otherwise
+					ro.setRooms_organisation_id(null);
+					roommanagement.addRoomOrganisation(ro);
+				}
 			}
 		}
 
@@ -361,7 +361,7 @@ public class BackupImportController exte
 			Serializer serializer = new Persister(strategy);
 	
 			registry.bind(AppointmentCategory.class, new AppointmentCategoryConverter(appointmentCategoryDaoImpl));
-			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Users.class, new UserConverter(usersDao, usersMap));
 			registry.bind(AppointmentReminderTyps.class, new AppointmentReminderTypeConverter(appointmentReminderTypDaoImpl));
 			registry.bind(Rooms.class, new RoomConverter(roomDao, roomsMap));
 			registry.bind(Date.class, DateConverter.class);
@@ -389,14 +389,19 @@ public class BackupImportController exte
 			Strategy strategy = new RegistryStrategy(registry);
 			Serializer serializer = new Persister(strategy);
 	
-			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Users.class, new UserConverter(usersDao, 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);
+				if (ma.getUserid().getUser_id() == null) {
+					ma.setUserid(null);
+				}
+				if (!ma.getDeleted()) {
+					// We need to reset this as openJPA reject to store them otherwise
+					ma.setMeetingMemberId(null);
+					meetingMemberDao.addMeetingMemberByObject(ma);
+				}
 			}
 		}
 
@@ -471,14 +476,14 @@ public class BackupImportController exte
 			Strategy strategy = new RegistryStrategy(registry);
 			Serializer serializer = new Persister(strategy);
 	
-			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Users.class, new UserConverter(usersDao, 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);
 
-				if (storedUC == null) {
+				if (storedUC == null && uc.getContact().getUser_id() != null) {
 					uc.setUserContactId(0);
 					Long newId = userContactsDao.addUserContactObj(uc);
 					userContactsMap.put(ucId, newId);
@@ -495,7 +500,7 @@ public class BackupImportController exte
 			Strategy strategy = new RegistryStrategy(registry);
 			Serializer serializer = new Persister(strategy);
 	
-			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Users.class, new UserConverter(usersDao, usersMap));
 			registry.bind(Rooms.class, new RoomConverter(roomDao, roomsMap));
 			registry.bind(Date.class, DateConverter.class);
 			
@@ -506,7 +511,12 @@ public class BackupImportController exte
 					getNewId(p.getPrivateMessageFolderId(), Maps.MESSAGEFOLDERS));
 				p.setUserContactId(
 					getNewId(p.getUserContactId(), Maps.USERCONTACTS));
-				
+				if (p.getRoom().getRooms_id() == null) {
+					p.setRoom(null);
+				}
+				if (p.getTo().getUser_id() == null) {
+					p.setTo(null);
+				}
 				privateMessagesDao.addPrivateMessageObj(p);
 			}
 		}
@@ -542,7 +552,7 @@ public class BackupImportController exte
 			Strategy strategy = new RegistryStrategy(registry);
 			Serializer serializer = new Persister(strategy);
 	
-			registry.bind(Users.class, new UserConverter(userManagement, usersMap));
+			registry.bind(Users.class, new UserConverter(usersDao, usersMap));
 			registry.bind(Rooms.class, new RoomConverter(roomDao, roomsMap));
 			registry.bind(PollType.class, new PollTypeConverter(pollManagement));
 			registry.bind(Date.class, DateConverter.class);
@@ -565,12 +575,16 @@ public class BackupImportController exte
 
 			matcher.bind(Long.class, LongTransform.class);
 			registry.bind(Date.class, DateConverter.class);
+			registry.bind(Users.class, new UserConverter(usersDao, usersMap));
 			
 			List<Configuration> list = readList(serializer, f, "configs.xml", "configs", Configuration.class, true);
 			for (Configuration c : list) {
 				Configuration cfg = configurationDao.getConfKey(c
 						.getConf_key());
 				c.setConfiguration_id(cfg == null ? null : cfg.getConfiguration_id());
+				if (c.getUser().getUser_id() == null) {
+					c.setUser(null);
+				}
 				configurationDao.update(c, 1L);
 			}
 		}
@@ -583,6 +597,7 @@ public class BackupImportController exte
 			List<AsteriskSipUsers> list = readList(simpleSerializer, f, "asterisksipusers.xml"
 				, "asterisksipusers", AsteriskSipUsers.class, true);
 			for (AsteriskSipUsers au : list) {
+				au.setId(0);
 				asteriskDAOImpl.saveAsteriskSipUsers(au);
 			}
 		}
@@ -595,6 +610,7 @@ public class BackupImportController exte
 			List<Extensions> list = readList(simpleSerializer, f, "extensions.xml"
 				, "extensions", Extensions.class, true);
 			for (Extensions e : list) {
+				e.setId(null);
 				asteriskDAOImpl.saveExtensions(e);
 			}
 		}
@@ -716,7 +732,7 @@ public class BackupImportController exte
 		Strategy strategy = new RegistryStrategy(registry);
 		Serializer ser = new Persister(strategy);
 
-		registry.bind(Organisation.class, new OrganisationConverter(organisationmanagement, organisationsMap));
+		registry.bind(Organisation.class, new OrganisationConverter(orgDao, organisationsMap));
 		//registry.bind(UserSipData.class, UserSipDataConverter.class);
 		registry.bind(OmTimeZone.class, new OmTimeZoneConverter(omTimeZoneDaoImpl));
 		registry.bind(States.class, new StateConverter(statemanagement));