Author: solomax
Date: Fri Dec 7 09:55:44 2012
New Revision: 1418237
URL: http://svn.apache.org/viewvc?rev=1418237&view=rev
Log:
OPENMEETINGS-448 import is tested on "real life" backup file
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/calendar/Appointment.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/files/FileExplorerItem.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/flvrecord/FlvRecording.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/sip/asterisk/MeetMe.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/calendar/Appointment.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/calendar/Appointment.java?rev=1418237&r1=1418236&r2=1418237&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/calendar/Appointment.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/calendar/Appointment.java
Fri Dec 7 09:55:44 2012
@@ -78,7 +78,7 @@ public class Appointment implements Seri
private Long appointmentId;
@Column(name = "appointmentname")
- @Element(data=true)
+ @Element(data=true, required=false)
private String appointmentName;
@Column(name = "location")
@@ -153,11 +153,11 @@ public class Appointment implements Seri
private List<MeetingMember> meetingMember;
@Column(name = "language_id")
- @Element(data=true)
+ @Element(data=true, required=false)
private Long language_id;
@Column(name = "is_password_protected")
- @Element(data=true)
+ @Element(data=true, required=false)
private Boolean isPasswordProtected;
@Column(name = "password")
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=1418237&r1=1418236&r2=1418237&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
Fri Dec 7 09:55:44 2012
@@ -123,11 +123,11 @@ public class FileExplorerItem implements
private String wmlFilePath;
@Column(name="is_stored_wml_file")
- @Element(data=true)
+ @Element(data=true, required = false)
private Boolean isStoredWmlFile;
@Column(name="is_chart")
- @Element(data=true)
+ @Element(data=true, required = false)
private Boolean isChart;
@Column(name="external_file_id")
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/flvrecord/FlvRecording.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/flvrecord/FlvRecording.java?rev=1418237&r1=1418236&r2=1418237&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/flvrecord/FlvRecording.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/flvrecord/FlvRecording.java
Fri Dec 7 09:55:44 2012
@@ -75,11 +75,11 @@ public class FlvRecording implements Ser
private long flvRecordingId;
@Column(name = "filename")
- @Element(data = true)
+ @Element(data = true, required = false)
private String fileName;
@Column(name = "alternate_download")
- @Element(data = true)
+ @Element(data = true, required = false)
private String alternateDownload;
@Column(name = "filehash")
@@ -95,61 +95,61 @@ public class FlvRecording implements Ser
private Long parentFileExplorerItemId;
@Column(name = "room_id")
- @Element(data = true)
+ @Element(data = true, required = false)
private Long room_id;
@Column(name = "owner_id")
- @Element(data = true)
+ @Element(data = true, required = false)
private Long ownerId;// OwnerID => only set if its directly root in
Owner
// Directory, other
Folders and Files
// maybe are also in a
Home directory but just
// because their parent
is
@Column(name = "is_folder")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isFolder;
@Column(name = "is_image")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isImage;
@Column(name = "is_presentation")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isPresentation;
@Column(name = "is_recording")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isRecording;
@Column(name = "record_start")
- @Element(data = true)
+ @Element(data = true, required = false)
private Date recordStart;
@Column(name = "record_end")
- @Element(data = true)
+ @Element(data = true, required = false)
private Date recordEnd;
@Column(name = "inserted_by")
- @Element(data = true)
+ @Element(data = true, required = false)
private Long insertedBy;
@Column(name = "inserted")
- @Element(data = true)
+ @Element(data = true, required = false)
private Date inserted;
@Column(name = "updated")
private Date updated;
@Column(name = "deleted")
- @Element(data = true)
+ @Element(data = true, required = false)
private boolean deleted;
@Column(name = "width")
- @Element(data = true)
+ @Element(data = true, required = false)
private Integer width;
@Column(name = "height")
- @Element(data = true)
+ @Element(data = true, required = false)
private Integer height;
@Column(name = "flv_width")
@@ -161,7 +161,7 @@ public class FlvRecording implements Ser
private Integer flvHeight;
@Column(name = "preview_image")
- @Element(data = true)
+ @Element(data = true, required = false)
private String previewImage;
@Column(name = "filesize")
@@ -173,20 +173,20 @@ public class FlvRecording implements Ser
private String recorderStreamId;
@Column(name = "organization_id")
- @Element(data = true)
+ @Element(data = true, required = false)
private Long organization_id;
@Column(name = "is_interview")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isInterview;
@Column(name = "progress_post_processing")
- @Element(data = true)
+ @Element(data = true, required = false)
private Integer progressPostProcessing;
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "flvrecording_id")
- @ElementList(name = "flvrecordingmetadatas")
+ @ElementList(name = "flvrecordingmetadatas", required = false)
private List<FlvRecordingMetaData> flvRecordingMetaData;
// Not Mapped
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=1418237&r1=1418236&r2=1418237&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
Fri Dec 7 09:55:44 2012
@@ -93,11 +93,11 @@ public class Rooms implements Serializab
private boolean ispublic;
@Column(name = "numberOfPartizipants")
- @Element(data = true)
+ @Element(data = true, required = false)
private Long numberOfPartizipants = new Long(4);
@Column(name = "appointment")
- @Element(data = true)
+ @Element(data = true, required = false)
private boolean appointment;
// Vars to simulate external Rooms
@@ -110,7 +110,7 @@ public class Rooms implements Serializab
private String externalRoomType;
@Column(name = "isdemoroom")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isDemoRoom;
@Column(name = "demo_time")
@@ -120,11 +120,11 @@ public class Rooms implements Serializab
// If this is true all participants of a meeting have to wait for the
// moderator to come into the room
@Column(name = "ismoderatedroom")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isModeratedRoom;
@Column(name = "allow_user_questions")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean allowUserQuestions;
@Column(name = "sip_number")
@@ -136,11 +136,11 @@ public class Rooms implements Serializab
private String conferencePin;
@Column(name = "is_audio_only")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isAudioOnly;
@Column(name = "is_closed")
- @Element(data = true)
+ @Element(data = true, required = false)
private Boolean isClosed;
@Column(name = "redirect_url")
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=1418237&r1=1418236&r2=1418237&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
Fri Dec 7 09:55:44 2012
@@ -43,59 +43,59 @@ public class AsteriskSipUsers implements
private int id;
@Column(name = "accountcode")
- @Element(data = true)
+ @Element(data = true, required = false)
private String accountcode;
@Column(name = "disallow")
- @Element(data = true)
+ @Element(data = true, required = false)
private String disallow = null;
@Column(name = "allow")
- @Element(data = true)
+ @Element(data = true, required = false)
private String allow = "ulaw";
@Column(name = "allowoverlap")
- @Element(data = true)
+ @Element(data = true, required = false)
private String allowoverlap = "yes";
@Column(name = "allowsubscribe")
- @Element(data = true)
+ @Element(data = true, required = false)
private String allowsubscribe = "yes";
@Column(name = "allowtransfer")
- @Element(data = true)
+ @Element(data = true, required = false)
private String allowtransfer;
@Column(name = "amaflags")
- @Element(data = true)
+ @Element(data = true, required = false)
private String amaflags;
@Column(name = "autoframing")
- @Element(data = true)
+ @Element(data = true, required = false)
private String autoframing;
@Column(name = "auth")
- @Element(data = true)
+ @Element(data = true, required = false)
private String auth;
@Column(name = "buggymwi")
- @Element(data=true)
+ @Element(data=true, required = false)
private String buggymwi = "no";
@Column(name = "callgroup")
- @Element(data=true)
+ @Element(data=true, required = false)
private String callgroup;
@Column(name = "callerid")
- @Element(data=true)
+ @Element(data=true, required = false)
private String callerid;
@Column(name = "cid_number")
- @Element(data=true)
+ @Element(data=true, required = false)
private String cid_number;
@Column(name = "fullname")
- @Element(data=true)
+ @Element(data=true, required = false)
private String fullname;
// TODO: error
@@ -103,49 +103,49 @@ public class AsteriskSipUsers implements
// private int callLimit;
@Column(name = "callingpres")
- @Element(data=true)
+ @Element(data=true, required = false)
private String callingpres;
@Column(name = "canreinvite")
- @Element(data=true)
+ @Element(data=true, required = false)
private String canreinvite = "yes";
@Column(name = "context")
- @Element(data=true)
+ @Element(data=true, required = false)
private String context;
@Column(name = "defaultip")
- @Element(data=true)
+ @Element(data=true, required = false)
private String defaultip;
@Column(name = "dtmfmode")
- @Element(data=true)
+ @Element(data=true, required = false)
private String dtmfmode;
@Column(name = "fromuser")
- @Element(data=true)
+ @Element(data=true, required = false)
private String fromuser;
@Column(name = "fromdomain")
- @Element(data=true)
+ @Element(data=true, required = false)
private String fromdomain;
@Column(name = "fullcontact")
- @Element(data=true)
+ @Element(data=true, required = false)
private String fullcontact;
// @Column(name = "g726nonstandard")
@Column(name = "g726nonstandard")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String g726nonstandard = "no";
@Column(name = "host", nullable = false)
- @Element(data=true)
+ @Element(data=true, required = false)
private String host = "dynamic";
@Column(name = "insecure")
- @Element(data=true)
+ @Element(data=true, required = false)
private String insecure;
@Column(name = "ipaddr", nullable = false)
@@ -153,31 +153,31 @@ public class AsteriskSipUsers implements
private String ipaddr = "";
@Column(name = "language")
- @Element(data=true)
+ @Element(data=true, required = false)
private String language;
@Column(name = "lastms")
- @Element(data=true)
+ @Element(data=true, required = false)
private String lastms;
@Column(name = "mailbox")
- @Element(data=true)
+ @Element(data=true, required = false)
private String mailbox;
@Column(name = "maxcallbitrate")
- @Element(data=true)
+ @Element(data=true, required = false)
private int maxcallbitrate = 384;
@Column(name = "mohsuggest")
- @Element(data=true)
+ @Element(data=true, required = false)
private String mohsuggest;
@Column(name = "md5secret")
- @Element(data=true)
+ @Element(data=true, required = false)
private String md5secret;
@Column(name = "musiconhold")
- @Element(data=true)
+ @Element(data=true, required = false)
private String musiconhold;
@Column(name = "name", nullable = false)
@@ -185,23 +185,23 @@ public class AsteriskSipUsers implements
private String name = "";
@Column(name = "nat", nullable = false)
- @Element(data=true)
+ @Element(data=true, required = false)
private String nat = "no";
@Column(name = "outboundproxy")
- @Element(data=true)
+ @Element(data=true, required = false)
private String outboundproxy;
@Column(name = "deny")
- @Element(data=true)
+ @Element(data=true, required = false)
private String deny;
@Column(name = "permit")
- @Element(data=true)
+ @Element(data=true, required = false)
private String permit;
@Column(name = "pickupgroup")
- @Element(data=true)
+ @Element(data=true, required = false)
private String pickupgroup;
@Column(name = "port", nullable = false)
@@ -211,18 +211,18 @@ public class AsteriskSipUsers implements
// @Column(name = "progressinband")
@Column(name = "progressinband")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String progressinband = "no";
// private YesNoNever progressinband;
// @Column(name = "promiscredir")
@Column(name = "promiscredir")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String promiscredir = "no";
@Column(name = "qualify")
- @Element(data=true)
+ @Element(data=true, required = false)
private String qualify;
@Column(name = "regexten", nullable = false)
@@ -230,31 +230,31 @@ public class AsteriskSipUsers implements
private String regexten = "";
@Column(name = "regseconds", nullable = false)
- @Element(data=true)
+ @Element(data=true, required = false)
private int regseconds = 0;
// @Column(name = "rfc2833compensate")
@Column(name = "rfc2833compensate")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String rfc2833compensate = "no";
@Column(name = "rtptimeout")
- @Element(data=true)
+ @Element(data=true, required = false)
private String rtptimeout;
@Column(name = "rtpholdtimeout")
- @Element(data=true)
+ @Element(data=true, required = false)
private String rtpholdtimeout;
@Column(name = "secret")
- @Element(data=true)
+ @Element(data=true, required = false)
private String secret;
// @Column(name = "sendrpid")
@Column(name = "sendrpid")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String sendrpid = "yes";
@Column(name = "setvar", nullable = false)
@@ -262,23 +262,23 @@ public class AsteriskSipUsers implements
private String setvar = "";
@Column(name = "subscribecontext")
- @Element(data=true)
+ @Element(data=true, required = false)
private String subscribecontext;
@Column(name = "subscribemwi")
- @Element(data=true)
+ @Element(data=true, required = false)
private String subscribemwi;
// @Column(name = "t38pt_udptl")
@Column(name = "t38pt_udptl")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String t38pt_udptl = "no";
// @Column(name = "trustrpid")
@Column(name = "trustrpid")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String trustrpid = "no";
@Column(name = "type", nullable = false)
@@ -302,11 +302,11 @@ public class AsteriskSipUsers implements
// @Column(name = "videosupport")
@Column(name = "videosupport")
// @Enumerated(EnumType.STRING)
- @Element(data=true)
+ @Element(data=true, required = false)
private String videosupport = "yes";
@Column(name = "vmexten")
- @Element(data=true)
+ @Element(data=true, required = false)
private String vmexten;
// create unique index name on asterisk.sipusers (name);
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/MeetMe.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/MeetMe.java?rev=1418237&r1=1418236&r2=1418237&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/MeetMe.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/sip/asterisk/MeetMe.java
Fri Dec 7 09:55:44 2012
@@ -39,15 +39,15 @@ public class MeetMe implements Serializa
private String confno = "0";
@Column(name = "pin")
- @Element(data=true)
+ @Element(data=true, required = false)
private String pin;
@Column(name = "adminpin")
- @Element(data=true)
+ @Element(data=true, required = false)
private String adminpin;
@Column(name = "members", nullable = false)
- @Element(data=true)
+ @Element(data=true, required = false)
private Integer members = 0;
public String getConfno() {
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=1418237&r1=1418236&r2=1418237&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
Fri Dec 7 09:55:44 2012
@@ -283,7 +283,7 @@ public class BackupImportController exte
List<Users> list = readUserList(f, "users.xml",
"users");
for (Users u : list) {
OmTimeZone tz = u.getOmTimeZone();
- if (tz.getJname() == null) {
+ if (tz == null || tz.getJname() == null) {
String jNameTimeZone =
configurationDao.getConfValue(
"default.timezone",
String.class, "Europe/Berlin");
OmTimeZone omTimeZone =
omTimeZoneDaoImpl.getOmTimeZone(jNameTimeZone);
@@ -394,7 +394,7 @@ public class BackupImportController exte
List<MeetingMember> list = readList(serializer, f,
"meetingmembers.xml", "meetingmembers", MeetingMember.class);
for (MeetingMember ma : list) {
- if (ma.getUserid().getUser_id() == null) {
+ if (ma.getUserid() != null &&
ma.getUserid().getUser_id() == null) {
ma.setUserid(null);
}
if (!ma.getDeleted()) {
@@ -439,9 +439,11 @@ public class BackupImportController exte
if (fr.getOwnerId() != null) {
fr.setOwnerId(usersMap.get(fr.getOwnerId()));
}
- for (FlvRecordingMetaData meta :
fr.getFlvRecordingMetaData()) {
- meta.setFlvRecordingMetaDataId(0);
- meta.setFlvRecording(fr);
+ if (fr.getFlvRecordingMetaData() != null) {
+ for (FlvRecordingMetaData meta :
fr.getFlvRecordingMetaData()) {
+
meta.setFlvRecordingMetaDataId(0);
+ meta.setFlvRecording(fr);
+ }
}
flvRecordingDao.addFlvRecordingObj(fr);
}
@@ -483,7 +485,7 @@ public class BackupImportController exte
Long ucId = uc.getUserContactId();
UserContacts storedUC =
userContactsDao.getUserContacts(ucId);
- if (storedUC == null &&
uc.getContact().getUser_id() != null) {
+ if (storedUC == null && uc.getContact() != null
&& uc.getContact().getUser_id() != null) {
uc.setUserContactId(0);
Long newId =
userContactsDao.addUserContactObj(uc);
userContactsMap.put(ucId, newId);
@@ -511,10 +513,10 @@ public class BackupImportController exte
getNewId(p.getPrivateMessageFolderId(),
Maps.MESSAGEFOLDERS));
p.setUserContactId(
getNewId(p.getUserContactId(),
Maps.USERCONTACTS));
- if (p.getRoom().getRooms_id() == null) {
+ if (p.getRoom() != null &&
p.getRoom().getRooms_id() == null) {
p.setRoom(null);
}
- if (p.getTo().getUser_id() == null) {
+ if (p.getTo() != null && p.getTo().getUser_id()
== null) {
p.setTo(null);
}
privateMessagesDao.addPrivateMessageObj(p);
@@ -582,7 +584,7 @@ public class BackupImportController exte
Configuration cfg =
configurationDao.getConfKey(c
.getConf_key());
c.setConfiguration_id(cfg == null ? null :
cfg.getConfiguration_id());
- if (c.getUser().getUser_id() == null) {
+ if (c.getUser() != null &&
c.getUser().getUser_id() == null) {
c.setUser(null);
}
configurationDao.update(c, 1L);
@@ -790,8 +792,12 @@ public class BackupImportController exte
log.debug("Exception While reading node
of type: " + Users.class, e);
}
item = listNode.getNext();
- item1 = listNode1.getNext(); //HACK to handle
Adresses inside user
- item2 = listNode2.getNext(); //HACK to handle
UserSipData inside user
+ do {
+ item1 = listNode1.getNext(); //HACK to
handle Adresses inside user
+ } while (item != null &&
!"user".equals(item1.getName()));
+ do {
+ item2 = listNode2.getNext(); //HACK to
handle UserSipData inside user
+ } while (item != null &&
!"user".equals(item2.getName()));
}
}
return list;