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 2013/09/12 03:21:28 UTC

svn commit: r1522099 [4/4] - in /openmeetings/trunk/singlewebapp: ./ docs/ src/main/java/org/apache/openmeetings/axis/services/ src/main/java/org/apache/openmeetings/backup/ src/main/java/org/apache/openmeetings/data/calendar/beans/ src/main/java/org/a...

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/InvitationService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/InvitationService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/InvitationService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/InvitationService.java Thu Sep 12 01:21:26 2013
@@ -18,17 +18,22 @@
  */
 package org.apache.openmeetings.remote;
 
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+
 import java.util.Calendar;
 import java.util.Date;
 import java.util.TimeZone;
 
-import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.data.basic.AuthLevelUtil;
 import org.apache.openmeetings.data.basic.SessiondataDao;
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
 import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.InvitationManager.MessageType;
+import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.user.UserManager;
 import org.apache.openmeetings.data.user.dao.UserDao;
-import org.apache.openmeetings.persistence.beans.invitation.Invitations;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation;
+import org.apache.openmeetings.persistence.beans.invitation.Invitation.Valid;
 import org.apache.openmeetings.persistence.beans.user.User;
 import org.apache.openmeetings.utils.TimezoneUtil;
 import org.red5.logging.Red5LoggerFactory;
@@ -38,27 +43,40 @@ import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class InvitationService implements IPendingServiceCallback {
-
-	private static final Logger log = Red5LoggerFactory.getLogger(
-			InvitationService.class, OpenmeetingsVariables.webAppRootKey);
+	private static final Logger log = Red5LoggerFactory.getLogger(InvitationService.class, webAppRootKey);
 	@Autowired
 	private SessiondataDao sessiondataDao;
 	@Autowired
 	private ConfigurationDao configurationDao;
 	@Autowired
-	private UserDao userDAO;
+	private UserDao userDao;
 	@Autowired
 	private UserManager userManager;
 	@Autowired
 	private InvitationManager invitationManager;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private AuthLevelUtil authLevelUtil;
+	@Autowired
+	private RoomDao roomDao;
 
 	public void resultReceived(IPendingServiceCall arg0) {
 		// TODO Auto-generated method stub
 		log.debug("InvitationService resultReceived" + arg0);
 	}
 
+	private String getBaseUrl(String baseUrl) {
+		String url = null;
+		if (baseUrl != null) {
+			url = baseUrl.toLowerCase();
+			if (url.endsWith("swf")) {
+				url = url.substring(0, url.length() - 4);
+			}
+		}	
+		return url;
+	}
+	
 	/**
 	 * send an invitation to another user by Mail
 	 * 
@@ -89,61 +107,69 @@ public class InvitationService implement
 			Long language_id, String iCalTz, boolean sendMail) {
 
 		try {
-			log.debug("sendInvitationHash: ");
-
-			Integer validFromHour = Integer.valueOf(
-					validFromTime.substring(0, 2)).intValue();
-			Integer validFromMinute = Integer.valueOf(
-					validFromTime.substring(3, 5)).intValue();
-
-			Integer validToHour = Integer.valueOf(validToTime.substring(0, 2))
-					.intValue();
-			Integer validToMinute = Integer
-					.valueOf(validToTime.substring(3, 5)).intValue();
-
-			log.info("validFromHour: " + validFromHour);
-			log.info("validFromMinute: " + validFromMinute);
-
 			Long users_id = sessiondataDao.checkSession(SID);
 			Long user_level = userManager.getUserLevelByID(users_id);
 
-			Calendar date = Calendar.getInstance();
-			date.setTime(validFromDate);
-			
-			TimeZone timeZone = timezoneUtil.getTimeZone(iCalTz);
-			
-			Calendar calFrom = Calendar.getInstance(timeZone);
-			calFrom.set(Calendar.YEAR, date.get(Calendar.YEAR));
-			calFrom.set(Calendar.MONTH, date.get(Calendar.MONTH));
-			calFrom.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
-			calFrom.set(Calendar.HOUR_OF_DAY, validFromHour);
-			calFrom.set(Calendar.MINUTE, validFromMinute);
-			calFrom.set(Calendar.SECOND, 0);
-
-			date.setTime(validToDate);
-			Calendar calTo = Calendar.getInstance(timeZone);
-			calTo.set(Calendar.YEAR, date.get(Calendar.YEAR));
-			calTo.set(Calendar.MONTH, date.get(Calendar.MONTH));
-			calTo.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
-			calTo.set(Calendar.HOUR_OF_DAY, validToHour);
-			calTo.set(Calendar.MINUTE, validToMinute);
-			calTo.set(Calendar.SECOND, 0);
-
-			Date dFrom = calFrom.getTime();
-			Date dTo = calTo.getTime();
-
-			Invitations invitation = invitationManager
-					.addInvitationLink(user_level, username, message, baseurl,
-							email, subject, room_id, conferencedomain,
-							isPasswordProtected, invitationpass, valid, dFrom,
-							dTo, users_id, baseurl, language_id, sendMail,
-							dFrom, dTo, null, username, timeZone);
-
-			if (invitation != null) {
-				return invitation;
+			if (authLevelUtil.checkUserLevel(user_level)) {
+				log.debug("sendInvitationHash: ");
+	
+				Integer validFromHour = Integer.valueOf(
+						validFromTime.substring(0, 2)).intValue();
+				Integer validFromMinute = Integer.valueOf(
+						validFromTime.substring(3, 5)).intValue();
+	
+				Integer validToHour = Integer.valueOf(validToTime.substring(0, 2))
+						.intValue();
+				Integer validToMinute = Integer
+						.valueOf(validToTime.substring(3, 5)).intValue();
+	
+				log.info("validFromHour: " + validFromHour);
+				log.info("validFromMinute: " + validFromMinute);
+	
+				Calendar date = Calendar.getInstance();
+				date.setTime(validFromDate);
+				
+				TimeZone timeZone = timezoneUtil.getTimeZone(iCalTz);
+				
+				Calendar calFrom = Calendar.getInstance(timeZone);
+				calFrom.set(Calendar.YEAR, date.get(Calendar.YEAR));
+				calFrom.set(Calendar.MONTH, date.get(Calendar.MONTH));
+				calFrom.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
+				calFrom.set(Calendar.HOUR_OF_DAY, validFromHour);
+				calFrom.set(Calendar.MINUTE, validFromMinute);
+				calFrom.set(Calendar.SECOND, 0);
+	
+				date.setTime(validToDate);
+				Calendar calTo = Calendar.getInstance(timeZone);
+				calTo.set(Calendar.YEAR, date.get(Calendar.YEAR));
+				calTo.set(Calendar.MONTH, date.get(Calendar.MONTH));
+				calTo.set(Calendar.DAY_OF_MONTH, date.get(Calendar.DAY_OF_MONTH));
+				calTo.set(Calendar.HOUR_OF_DAY, validToHour);
+				calTo.set(Calendar.MINUTE, validToMinute);
+				calTo.set(Calendar.SECOND, 0);
+	
+				Date dFrom = calFrom.getTime();
+				Date dTo = calTo.getTime();
+	
+				User invitee = userDao.getContact(email, users_id);
+				Invitation invitation = invitationManager.getInvitation(invitee, roomDao.get(room_id),
+								isPasswordProtected, invitationpass, Valid.fromInt(valid)
+								, userDao.get(users_id), getBaseUrl(baseurl), language_id,
+								dFrom, dTo, null);
+
+				if (invitation != null) {
+					if (sendMail) {
+						invitationManager.sendInvitionLink(invitation, MessageType.Create, subject, message, false);
+					}
+
+					return invitation;
+				} else {
+					return "Sys - Error";
+				}
 			} else {
-				return "Sys - Error";
+				return "Need User Privileges to perfom the Action";
 			}
+
 		} catch (Exception err) {
 			log.error("[sendInvitationHash]", err);
 		}
@@ -151,10 +177,20 @@ public class InvitationService implement
 		return null;
 	}
 
-	public String sendInvitationByHash(String SID, String invitationHash, String message, String baseurl, String subject, Long language_id) {
-		User us = userDAO.get(sessiondataDao.checkSession(SID));
-		Invitations inv = (Invitations)invitationManager.getInvitationByHashCode(invitationHash, true);
-		return invitationManager.sendInvitionLink(us, inv, message, baseurl, subject, language_id);
+	public String sendInvitationByHash(String SID, String invitationHash, String message, String baseurl, String subject
+			, Long language_id) throws Exception {
+		Long users_id = sessiondataDao.checkSession(SID);
+		Long user_level = userManager.getUserLevelByID(users_id);
+
+		if (authLevelUtil.checkUserLevel(user_level)) {
+			Invitation inv = (Invitation)invitationManager.getInvitationByHashCode(invitationHash, true);
+			inv.setBaseUrl(getBaseUrl(baseurl));
+			inv.getInvitee().setLanguage_id(language_id);
+			invitationManager.sendInvitionLink(inv, MessageType.Create, subject, message, false);
+		} else {
+			return "Need User Privileges to perfom the Action";
+		}
+		return "Success";
 	}
 	
 	public Object getInvitationByHash(String hashCode) {
@@ -163,7 +199,6 @@ public class InvitationService implement
 	}
 
 	public Object checkInvitationPass(String hashCode, String pass) {
-		return invitationManager.checkInvitationPass(hashCode,
-				pass);
+		return invitationManager.checkInvitationPass(hashCode, pass);
 	}
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/MainService.java Thu Sep 12 01:21:26 2013
@@ -540,33 +540,6 @@ public class MainService implements IPen
 		}
 	}
 
-	/**
-	 * send an invitation to another user by Mail
-	 * 
-	 * @deprecated
-	 * @param SID
-	 * @param username
-	 * @param message
-	 * @param domain
-	 * @param room
-	 * @param roomtype
-	 * @param baseurl
-	 * @param email
-	 * @param subject
-	 * @param room_id
-	 * @return - "success" string in case of success, error message of null otherwise
-	 */
-	@Deprecated
-	public String sendInvitation(String SID, String username, String message,
-			String domain, String room, String roomtype, String baseurl,
-			String email, String subject, Long room_id) {
-		Long users_id = sessiondataDao.checkSession(SID);
-		Long user_level = userManager.getUserLevelByID(users_id);
-		return invitationManager.sendInvitionLink(user_level,
-				username, message, domain, room, roomtype, baseurl, email,
-				usersDao.get(users_id).getAdresses().getEmail(), subject, room_id, null, null);
-	}
-
 	public List<Userdata> getUserdata(String SID) {
 		Long users_id = sessiondataDao.checkSession(SID);
 		Long user_level = userManager.getUserLevelByID(users_id);

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/UserService.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/UserService.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/UserService.java Thu Sep 12 01:21:26 2013
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.remote;
 
-import static org.apache.openmeetings.persistence.beans.basic.Configuration.DEFAUT_LANG_KEY;
+import static org.apache.openmeetings.web.app.Application.getBean;
 
 import java.util.Calendar;
 import java.util.Date;
@@ -34,6 +34,7 @@ import org.apache.openmeetings.data.basi
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
 import org.apache.openmeetings.data.basic.dao.ServerDao;
 import org.apache.openmeetings.data.beans.basic.SearchResult;
+import org.apache.openmeetings.data.calendar.daos.AppointmentCategoryDao;
 import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
 import org.apache.openmeetings.data.calendar.daos.MeetingMemberDao;
 import org.apache.openmeetings.data.conference.InvitationManager;
@@ -47,9 +48,9 @@ import org.apache.openmeetings.data.user
 import org.apache.openmeetings.data.user.dao.SalutationDao;
 import org.apache.openmeetings.data.user.dao.UserContactsDao;
 import org.apache.openmeetings.persistence.beans.basic.Server;
+import org.apache.openmeetings.persistence.beans.calendar.Appointment;
+import org.apache.openmeetings.persistence.beans.calendar.MeetingMember;
 import org.apache.openmeetings.persistence.beans.domain.Organisation;
-import org.apache.openmeetings.persistence.beans.invitation.Invitations;
-import org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues;
 import org.apache.openmeetings.persistence.beans.room.Client;
 import org.apache.openmeetings.persistence.beans.room.Room;
 import org.apache.openmeetings.persistence.beans.user.Salutation;
@@ -61,6 +62,7 @@ import org.apache.openmeetings.utils.Tim
 import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
 import org.apache.openmeetings.utils.mail.MailHandler;
 import org.apache.openmeetings.utils.math.CalendarPatterns;
+import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.util.ContactsHelper;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.scope.IScope;
@@ -85,12 +87,16 @@ public class UserService {
 	@Autowired
 	private AppointmentDao appointmentDao;
 	@Autowired
+	private AppointmentCategoryDao appointmentCategoryDao;
+	@Autowired
 	private SessiondataDao sessiondataDao;
 	@Autowired
 	private ConfigurationDao configurationDao;
 	@Autowired
 	private UserManager userManager;
 	@Autowired
+	private AdminUserDao userDao;
+	@Autowired
 	private FieldManager fieldManager;
 	@Autowired
 	private SalutationDao salutationmanagement;
@@ -434,21 +440,13 @@ public class UserService {
 			// users only
 			if (authLevelUtil.checkUserLevel(user_level)) {
 				User from = userManager.getUserById(users_id);
-				TimeZone timezone = timezoneUtil.getTimezoneByUser(from);
+				TimeZone timezone = timezoneUtil.getTimeZone(from);
 
-				Date appointmentstart = createCalendarDate(timezone,
-						validFromDate, validFromTime);
-				Date appointmentend = createCalendarDate(timezone, validToDate,
-						validToTime);
-
-				log.info("validFromDate: "
-						+ CalendarPatterns
-								.getDateWithTimeByMiliSeconds(appointmentstart));
-				log.info("validToDate: "
-						+ CalendarPatterns
-								.getDateWithTimeByMiliSeconds(appointmentend));
+				Date start = createCalendarDate(timezone, validFromDate, validFromTime);
+				Date end = createCalendarDate(timezone, validToDate, validToTime);
 
-				Room room = null;
+				log.info("validFromDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(start));
+				log.info("validToDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(end));
 
 				String baseURL = "http://" + domain + ":" + port + webapp;
 				if (port.equals("80")) {
@@ -457,144 +455,45 @@ public class UserService {
 					baseURL = "https://" + domain + webapp;
 				}
 
-				Long room_id = null;
-				Long appointmentId = null;
-
+				Appointment a = new Appointment();
+				a.setTitle(subject);
+				a.setDescription(message);
+				a.setStart(start);
+				a.setEnd(end);
+				a.setCategory(appointmentCategoryDao.get(1L));
+				a.setOwner(from);
 				if (bookedRoom) {
-					room_id = roomManager.addRoom(3, // Userlevel
-							subject, // name
-							roomtype_id, // RoomType
-							"", // Comment
-							new Long(100), // Number of participants
-							false, // public
-							null, // Organisations
-							true, // Appointment
-							false, // Demo Room => Meeting Timer
-							null, // Meeting Timer time in seconds
-							false, // Is Moderated Room
-							null, // Moderation List Room
-							true, // Allow User Questions
-							false, // isAudioOnly
-							true, // allowFontStyles
-							false, // isClosed
-							"", // redirectURL
-							"", // conferencePIN
-							null, // ownerId
-							null, null, false, // hideTopBar
-							false, // hideChat
-							false, // hideActivitiesAndActions
-							false, // hideFilesExplorer
-							false, // hideActionsMenu
-							false, // hideScreenSharing
-							false, // hideWhiteboard
-							false, // showMicrophoneStatus
-							false, // chatModerated
-							false, // chatOpened
-							false, // filesOpened
-							false, // autoVideoSelect
-							false //sipEnabled
-							);
-
-					room = roomDao.get(room_id);
-
-					String sendJNameTimeZone = from.getTimeZoneId();
-
-					appointmentId = this.addAppointmentToUser(subject, message,
-							from, recipients, room, appointmentstart,
-							appointmentend, true, true, sendJNameTimeZone);
-
+					a.setRoom(new Room());
+					a.getRoom().setAppointment(true);
+					a.getRoom().setName(subject);
+					a.getRoom().setRoomtype(roomManager.getRoomTypesById(roomtype_id));
+					a.getRoom().setNumberOfPartizipants(100L);
+					a.getRoom().setAllowUserQuestions(true);
+					a.getRoom().setAllowFontStyles(true);
 				}
-
-				recipients.add(from.getAdresses().getEmail());
-
-				String sendJNameTimeZone = from.getTimeZoneId();
-
-				String profile_link = baseURL + "?cuser=1";
-
 				for (String email : recipients) {
-
-					// Map receipent = (Map) recipients.get(iter.next());
-
-					// String email = receipent.get("email").toString();
-
-					Long language_id = from.getLanguage_id();
-					if (language_id == null) {
-						language_id = configurationDao.getConfValue(DEFAUT_LANG_KEY, Long.class, "1");
-					}
-					String invitation_link = null;
-					User to = userManager.getUserByEmail(email);
-
-					if (bookedRoom) {
-						// Add the appointment to the calendar of the user (if
-						// its an internal user)
-						// if the user is the sender then we already added the
-						// appointment as we created the
-						// room, the invitations always belong to the
-						// appointment of the meeting creator
-						if (to != null && !to.getUser_id().equals(from.getUser_id())) {
-							this.addAppointmentToUser(subject, message, to,
-									recipients, room, appointmentstart,
-									appointmentend, false, true,
-									sendJNameTimeZone);
-						}
-
-						String username = to == null ? "" : to.getFirstname() + " " + to.getLastname();;
-						Invitations invitation = invitationManager
-								.addInvitationLink(
-										new Long(2), // userlevel
-										username, // username
-										message,
-										baseURL, // baseURl
-										email, // email
-										subject, // subject
-										room_id, // room_id
-										"public",
-										false, // passwordprotected
-										"", // invitationpass
-										2, // valid type
-										appointmentstart, // valid from
-										appointmentend, // valid to
-										from.getUser_id(), // created by
-										baseURL, from.getUser_id(),
-										false, // really send mail sendMail
-										appointmentstart, appointmentend,
-										appointmentId, 
-										from.getFirstname() + " " + from.getLastname(),
-										timezoneUtil.getTimezoneByUser(from));
-
-						invitation_link = baseURL + "?invitationHash="
-								+ invitation.getHash();
-
-					}
-
-					if (to != null) {
-
-						if (!to.getUser_id().equals(from.getUser_id())) {
-							// One message to the Send
-							privateMessagesDao.addPrivateMessage(subject,
-									message, parentMessageId, from, to, from,
-									bookedRoom, room, false, 0L, email);
-
-							// One message to the Inbox
-							privateMessagesDao.addPrivateMessage(subject,
-									message, parentMessageId, from, to, to,
-									bookedRoom, room, false, 0L, email);
-
-							// One copy of the Inbox message to the user
-							if (to.getLanguage_id() != null) {
-								language_id = to.getLanguage_id();
-							}
-						}
-
-					} else {
-
+					MeetingMember mm = new MeetingMember();
+					mm.setAppointment(a);
+					mm.setUser(userDao.getContact(email, users_id));
+					a.getMeetingMembers().add(mm);
+				}
+				a = appointmentDao.update(a, baseURL, users_id);
+				for (MeetingMember mm : a.getMeetingMembers()) {
+					User to = mm.getUser();
+					String email = to.getAdresses().getEmail();
+					Room room = a.getRoom();
+					
+					//TODO should be reviewed
+					if (!to.getUser_id().equals(from.getUser_id())) {
 						// One message to the Send
-						privateMessagesDao.addPrivateMessage(subject, message,
-								parentMessageId, from, to, from, bookedRoom,
-								room, false, 0L, email);
-
-						// there is no Inbox for external users
-
+						privateMessagesDao.addPrivateMessage(subject,
+								message, parentMessageId, from, to, from,
+								bookedRoom, room, false, 0L, email);
+
+						// One message to the Inbox
+						privateMessagesDao.addPrivateMessage(subject,
+								message, parentMessageId, from, to, to,
+								bookedRoom, room, false, 0L, email);
 					}
 
 					// We do not send an email to the one that has created the
@@ -603,45 +502,15 @@ public class UserService {
 						continue;
 					}
 
-					Fieldlanguagesvalues fValue1301 = fieldManager
-							.getFieldByIdAndLanguage(1301L, language_id);
-					Fieldlanguagesvalues fValue1302 = fieldManager
-							.getFieldByIdAndLanguage(1302L, language_id);
-					Fieldlanguagesvalues labelid504 = fieldManager
-							.getFieldByIdAndLanguage(new Long(504), language_id);
-					Fieldlanguagesvalues labelid503 = fieldManager
-							.getFieldByIdAndLanguage(new Long(503), language_id);
-
-					String aLinkHTML = "";
-					if (to != null) {
-						aLinkHTML = "<br/><br/><a href='" + profile_link + "'>"
-								+ fValue1302.getValue() + "</a><br/>";
-					}
-
-					if (invitation_link == null) {
-						invitation_link = "";
-					} else {
-						invitation_link = "<br/>" //
-								+ CalendarPatterns
-										.getDateWithTimeByMiliSecondsAndTimeZone(
-												appointmentstart, timezone)
-								+ "<br/> - <br/>" //
-								+ CalendarPatterns
-										.getDateWithTimeByMiliSecondsAndTimeZone(
-												appointmentstart, timezone)
-								+ "<br/>"
-								+ labelid503.getValue()
-								+ "<br/><a href='" + invitation_link
-								+ "'>"
-								+ labelid504.getValue() + "</a><br/>";
+					if (to.getAdresses() != null) {
+						String aLinkHTML = 	"<br/><br/>" + "<a href='" + ContactsHelper.getLink() + "'>"
+									+ WebSession.getString(1302) + "</a><br/>";
+						
+						getBean(MailHandler.class).send(to.getAdresses().getEmail(),
+								WebSession.getString(1301) + subject,
+								message.replaceAll("\\<.*?>", "") + aLinkHTML);
 					}
-
-					mailHandler.send(email, fValue1301.getValue() + " "
-							+ subject, message.replaceAll("\\<.*?>", "")
-							+ aLinkHTML + invitation_link);
-
 				}
-
 			}
 
 		} catch (Exception err) {
@@ -650,34 +519,6 @@ public class UserService {
 		return null;
 	}
 
-	/*
-	 * Date appointmentstart = calFrom.getTime(); Date appointmentend =
-	 * calTo.getTime();
-	 */
-	private Long addAppointmentToUser(String subject, String message, User to,
-			List<String> recipients, Room room, Date appointmentstart,
-			Date appointmentend, Boolean invitor, Boolean isConnectedEvent,
-			String sendJNameTimeZone) throws Exception {
-
-		Long appointmentId = appointmentDao.addAppointment(subject,
-				to.getUser_id(), "", message, appointmentstart, appointmentend,
-				false, false, false, false, 1L, 2L, room, to.getLanguage_id(),
-				false, "", isConnectedEvent);
-
-		for (String email : recipients) {
-
-			User meetingMember = userManager.getUserByEmail(email);
-
-			if (meetingMember != null) {
-				meetingMemberDao.addMeetingMember("", appointmentId, meetingMember.getUser_id(), 
-						timezoneUtil.getTimezoneByUser(meetingMember), isConnectedEvent);
-			}
-		}
-
-		return appointmentId;
-
-	}
-
 	public Boolean checkUserIsInContactList(String SID, Long user_id) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java Thu Sep 12 01:21:26 2013
@@ -1528,12 +1528,7 @@ public class ScopeApplicationAdapter ext
 				// If this is an Appointment then the Moderator will be set to
 				// the Invitor
 
-				Appointment ment = appointmentLogic
-						.getAppointmentByRoom(room_id);
-
-				List<MeetingMember> members = meetingMemberDao
-						.getMeetingMemberByAppointmentId(ment
-								.getId());
+				Appointment ment = appointmentLogic.getAppointmentByRoom(room_id);
 
 				Long userIdInRoomClient = currentClient.getUser_id();
 
@@ -1541,8 +1536,7 @@ public class ScopeApplicationAdapter ext
 				boolean moderator_set = false;
 
 				// Check if current user is set to moderator
-				for (int i = 0; i < members.size(); i++) {
-					MeetingMember member = members.get(i);
+				for (MeetingMember member : ment.getMeetingMembers()) {
 
 					// only persistent users can schedule a meeting
 					// user-id is only set for registered users
@@ -1561,8 +1555,7 @@ public class ScopeApplicationAdapter ext
 								currentClient.setIsMod(true);
 
 								// Update the Client List
-								this.sessionManager.updateClientByStreamId(
-										streamid, currentClient, false, null);
+								sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
 
 								List<Client> modRoomList = this.sessionManager
 										.getCurrentModeratorByRoom(currentClient
@@ -1597,8 +1590,7 @@ public class ScopeApplicationAdapter ext
 							+ userIdInRoomClient
 							+ " could not be found as MeetingMember -> definitely no moderator");
 					currentClient.setIsMod(false);
-					this.sessionManager.updateClientByStreamId(streamid,
-							currentClient, false, null);
+					sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
 				} else {
 					// if current user is part of the member list, but moderator
 					// couldn't be retrieved : first come, first draw!
@@ -1607,8 +1599,7 @@ public class ScopeApplicationAdapter ext
 						currentClient.setIsMod(true);
 
 						// Update the Client List
-						this.sessionManager.updateClientByStreamId(streamid,
-								currentClient, false, null);
+						sessionManager.updateClientByStreamId(streamid, currentClient, false, null);
 
 						List<Client> modRoomList = this.sessionManager
 								.getCurrentModeratorByRoom(currentClient

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/BackupImport.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/BackupImport.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/BackupImport.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/BackupImport.java Thu Sep 12 01:21:26 2013
@@ -706,25 +706,16 @@ public class BackupImport {
 					//HACK to handle external attendee's firstname, lastname, email
 					boolean contactValid = false;
 					do {
-						if ("firstname".equals(item1.getName())) {
+						if (Type.contact == mm.getUser().getType() && "firstname".equals(item1.getName())) {
 							mm.getUser().setFirstname(item1.getValue());
 						}
-						if ("lastname".equals(item1.getName())) {
+						if (Type.contact == mm.getUser().getType() && "lastname".equals(item1.getName())) {
 							mm.getUser().setLastname(item1.getValue());
 						}
 						if ("email".equals(item1.getName())) {
-							if (mm.getUser().getAdresses() == null) {
-								mm.getUser().setAdresses(new Address());
-							}
 							String email = item1.getValue();
-							User u = usersDao.getUserByEmail(email);
-							if (u != null) {
-								mm.setUser(u);
-							} else if (mm.getAppointment() != null && mm.getAppointment().getOwner() != null) {
-								mm.getUser().setType(Type.contact);
-								mm.getUser().getAdresses().setEmail(email);
-								mm.getUser().setLogin(mm.getAppointment().getOwner().getUser_id() + "_" + email);
-								mm.getUser().setOwner_id(mm.getAppointment().getOwner().getUser_id());
+							if (mm.getAppointment() != null && mm.getAppointment().getOwner() != null) {
+								mm.setUser(usersDao.getContact(email, mm.getAppointment().getOwner()));
 							}
 							contactValid = true;
 						}

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/TimezoneUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/TimezoneUtil.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/TimezoneUtil.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/TimezoneUtil.java Thu Sep 12 01:21:26 2013
@@ -130,7 +130,7 @@ public class TimezoneUtil {
 	 * @param user
 	 * @return
 	 */
-	public TimeZone getTimezoneByUser(User user) {
+	public TimeZone getTimeZone(User user) {
 
 		if (user != null && user.getTimeZoneId() != null) {
 

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/mail/MailHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/mail/MailHandler.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/mail/MailHandler.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/utils/mail/MailHandler.java Thu Sep 12 01:21:26 2013
@@ -255,7 +255,7 @@ public class MailHandler {
 		init();
 		log.debug("sendMails enter ...");
 		List<MailMessage> list = mailMessageDao.get(0, 1);
-		log.debug("Numebr of emails in init queue " + list.size());
+		log.debug("Number of emails in init queue " + list.size());
 		while (!list.isEmpty()) {
 			send(list.get(0), true);
 			list = mailMessageDao.get(0, 1);

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/app/WebSession.java Thu Sep 12 01:21:26 2013
@@ -137,7 +137,7 @@ public class WebSession extends Abstract
 			User user = (User)u;
 			userId = user.getUser_id();
 			languageId = user.getLanguage_id();
-			tz = getBean(TimezoneUtil.class).getTimezoneByUser(user);
+			tz = getBean(TimezoneUtil.class).getTimeZone(user);
 			ISO8601FORMAT.setTimeZone(tz);
 			//FIXMW locale need to be set by User language first
 			sdf = DateFormat.getDateTimeInstance(SHORT, SHORT, getLocale());

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/common/BasePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/common/BasePanel.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/common/BasePanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/common/BasePanel.java Thu Sep 12 01:21:26 2013
@@ -36,6 +36,13 @@ public abstract class BasePanel extends 
 	 * @param target
 	 */
 	public void onMenuPanelLoad(AjaxRequestTarget target) {
+	}
 
+	/**
+	 * This method should be overridden to perform necessary cleanup: remove timers etc.
+	 * 
+	 * @param target
+	 */
+	public void cleanup(AjaxRequestTarget target) {
 	}
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/AbstractTemplatePanel.java Thu Sep 12 01:21:26 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.web.mail.template;
 
+import org.apache.openmeetings.web.app.Application;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.markup.IMarkupResourceStreamProvider;
 import org.apache.wicket.markup.html.WebPage;
@@ -27,9 +28,11 @@ import org.apache.wicket.request.Respons
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
+import org.apache.wicket.util.tester.WicketTester;
 
 public abstract class AbstractTemplatePanel extends Panel {
 	private static final long serialVersionUID = 1L;
+	private static WicketTester wicketTest = null;
 	
 	public AbstractTemplatePanel(String id) {
 		super(id);
@@ -70,4 +73,15 @@ public abstract class AbstractTemplatePa
 			return new StringResourceStream("<wicket:container wicket:id='" + COMP_ID + "'></wicket:container>");
 		}
 	}
+	
+	static void ensureApplication() {
+		try {
+			Application.get();
+		} catch (Exception e) {
+			if (wicketTest == null) {
+				//FIXME not working since there is no ServletContext
+				wicketTest = new WicketTester(new Application());
+			}
+		}
+	}
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/mail/template/InvitationTemplate.java Thu Sep 12 01:21:26 2013
@@ -33,6 +33,7 @@ public class InvitationTemplate extends 
 	}
 	
 	public static String getEmail(String user, String message, String link) {
+		ensureApplication();
 		return renderPanel(new InvitationTemplate(TemplatePage.COMP_ID, user, message, link)).toString();
 	}
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Thu Sep 12 01:21:26 2013
@@ -37,6 +37,7 @@ import org.apache.openmeetings.web.user.
 import org.apache.openmeetings.web.user.ChatPanel;
 import org.apache.openmeetings.web.util.BaseUrlAjaxBehavior;
 import org.apache.openmeetings.web.util.OmUrlFragment;
+import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
@@ -155,6 +156,10 @@ public class MainPage extends BaseInited
 	public void updateContents(OmUrlFragment f, AjaxRequestTarget target) {
 		BasePanel panel = getPanel(f.getArea(), f.getType());
 		if (panel != null) {
+			Component prev = contents.get(CHILD_ID);
+			if (prev != null && prev instanceof BasePanel) {
+				((BasePanel)prev).cleanup(target);
+			}
 			target.add(contents.replace(panel));
 			UrlFragment uf = new UrlFragment(target);
 			uf.set(f.getArea().name(), f.getType());

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java Thu Sep 12 01:21:26 2013
@@ -20,6 +20,7 @@ package org.apache.openmeetings.web.user
 
 import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getBaseUrl;
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.util.RoomTypeDropDown.getRoomTypes;
@@ -30,7 +31,6 @@ import java.util.List;
 
 import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
 import org.apache.openmeetings.data.calendar.daos.AppointmentReminderTypDao;
-import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
 import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.user.dao.UserDao;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
@@ -73,7 +73,6 @@ import com.googlecode.wicket.jquery.ui.w
 import com.googlecode.wicket.jquery.ui.widget.dialog.DialogIcon;
 import com.googlecode.wicket.jquery.ui.widget.dialog.MessageDialog;
 
-
 public class AppointmentDialog extends AbstractFormDialog<Appointment> {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = Red5LoggerFactory.getLogger(AppointmentDialog.class, webAppRootKey);
@@ -131,7 +130,7 @@ public class AppointmentDialog extends A
 	}
 
 	protected void deleteAppointment(AjaxRequestTarget target) {
-		getBean(AppointmentLogic.class).deleteAppointment(getModelObject().getId(), getUserId(), getLanguage());
+		getBean(AppointmentDao.class).delete(getModelObject(), getBaseUrl(), getUserId());
 		calendar.refresh(target);		
 	}
 
@@ -171,7 +170,7 @@ public class AppointmentDialog extends A
 
 	@Override
 	protected void onSubmit(AjaxRequestTarget target) {
-		getBean(AppointmentDao.class).update(form.getModelObject(), getUserId());
+		getBean(AppointmentDao.class).update(form.getModelObject(), getBaseUrl(), getUserId());
 		target.add(feedback);
 		calendar.refresh(target);
 	}
@@ -203,7 +202,7 @@ public class AppointmentDialog extends A
 				java.util.Calendar start = WebSession.getCalendar();
 				start.setTime(a.getStart());
 				java.util.Calendar end = WebSession.getCalendar();
-				end.setTime(a.end());
+				end.setTime(a.getEnd());
 				
 				if (start.equals(end)) {
 					end.add(java.util.Calendar.HOUR_OF_DAY, 1);

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentModel.java Thu Sep 12 01:21:26 2013
@@ -41,7 +41,7 @@ public class AppointmentModel extends Ca
 	protected List<? extends CalendarEvent> load() {
 		List<CalendarEvent> list = new ArrayList<CalendarEvent>();
 		for (Appointment a : Application.getBean(AppointmentDao.class).getAppointmentsByRange(WebSession.getUserId(), this.getStart(), this.getEnd())) {
-			CalendarEvent c = new CalendarEvent(a.getId().intValue(), a.getTitle(), a.getStart(), a.end());
+			CalendarEvent c = new CalendarEvent(a.getId().intValue(), a.getTitle(), a.getStart(), a.getEnd());
 			c.setAllDay(false);
 			//FIXME desc c.set
 			list.add(c);

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java Thu Sep 12 01:21:26 2013
@@ -19,6 +19,8 @@
 package org.apache.openmeetings.web.user.calendar;
 
 import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getBaseUrl;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 
 import java.text.SimpleDateFormat;
@@ -26,8 +28,8 @@ import java.util.Date;
 
 import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
 import org.apache.openmeetings.data.calendar.daos.AppointmentReminderTypDao;
+import org.apache.openmeetings.data.user.dao.UserDao;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
-import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.UserPanel;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
@@ -52,18 +54,31 @@ public class CalendarPanel extends UserP
 	private static final String javaScriptMarkup = "setCalendarHeight();";
 	private static final String javaScriptAddDatepicker = "addCalButton('left', 'Datepicker', 'datepicker');";
 	private static final SimpleDateFormat formatDateJava = new SimpleDateFormat("MM/dd/yy");
+	private AbstractAjaxTimerBehavior refreshTimer = new AbstractAjaxTimerBehavior(Duration.seconds(10)) {
+		private static final long serialVersionUID = -4353305314396043476L;
+
+		@Override
+		protected void onTimer(AjaxRequestTarget target) {
+			refresh(target);
+		}
+	};
 	private Calendar calendar;
 	
 	@Override
 	public void onMenuPanelLoad(AjaxRequestTarget target) {
 	}
 
+	@Override
+	public void cleanup(AjaxRequestTarget target) {
+		refreshTimer.stop(target);
+	}
+	
 	private AppointmentDao getDao() {
-		return Application.getBean(AppointmentDao.class);
+		return getBean(AppointmentDao.class);
 	}
 	
 	private AppointmentReminderTypDao getAppointmentReminderTypDao() {
-		return Application.getBean(AppointmentReminderTypDao.class);
+		return getBean(AppointmentReminderTypDao.class);
 	}
 	
 	public void refresh(AjaxRequestTarget target) {
@@ -203,11 +218,11 @@ public class CalendarPanel extends UserP
 				cal.add(java.util.Calendar.MILLISECOND, (int)delta); //FIXME?
 				a.setStart(cal.getTime());
 				
-				cal.setTime(a.end());
+				cal.setTime(a.getEnd());
 				cal.add(java.util.Calendar.MILLISECOND, (int)delta); //FIXME?
 				a.setEnd(cal.getTime());
 				
-				dao.update(a, getUserId());
+				dao.update(a, getBaseUrl(), getUserId());
 				//FIXME add feedback info
 			}
 			
@@ -216,30 +231,23 @@ public class CalendarPanel extends UserP
 				AppointmentDao dao = getDao();
 				Appointment a = dao.get((long)eventId);
 				java.util.Calendar cal = WebSession.getCalendar();
-				cal.setTime(a.end());
+				cal.setTime(a.getEnd());
 				cal.add(java.util.Calendar.MILLISECOND, (int)delta); //FIXME?
 				a.setEnd(cal.getTime());
 				
-				dao.update(a, getUserId());
+				dao.update(a, getBaseUrl(), getUserId());
 				//FIXME add feedback info
 			}
 		};
 		
 		form.add(calendar);
-		add(new AbstractAjaxTimerBehavior(Duration.seconds(10)) {
-			private static final long serialVersionUID = -4353305314396043476L;
-
-			@Override
-			protected void onTimer(AjaxRequestTarget target) {
-				refresh(target);
-			}
-		});
+		add(refreshTimer);
 	}
 	
 	private Appointment getDefault() {
 		Appointment a = new Appointment();
-		a.setRemind(getAppointmentReminderTypDao()
-				.getAppointmentReminderTypById(3L)); //TODO: Make configurable
+		a.setRemind(getAppointmentReminderTypDao().get(3L)); //TODO: Make configurable
+		a.setOwner(getBean(UserDao.class).get(getUserId()));
 		a.setTitle(WebSession.getString(1444));
 		log.debug(" -- getDefault -- Current model " + a);
 		return a;

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/MeetingMemberDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/MeetingMemberDialog.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/MeetingMemberDialog.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/calendar/MeetingMemberDialog.java Thu Sep 12 01:21:26 2013
@@ -207,7 +207,7 @@ public class MeetingMemberDialog extends
 			if (!found) {
 				MeetingMember mm = new MeetingMember();
 				if (u.getType() == Type.contact) {
-					u.setOwner_id(getUserId());
+					u.setOwnerId(getUserId());
 					u.setLanguage_id(getLanguage());
 				}
 				mm.setUser(u);

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java Thu Sep 12 01:21:26 2013
@@ -132,7 +132,7 @@ public class UserSearchPanel extends Use
 				final long userId = u.getUser_id();
 				item.add(new WebMarkupContainer("status").add(AttributeModifier.append("class", isUserOnline(userId) ? "online" : "offline")));
 				item.add(new Label("name", getName(u)));
-				item.add(new Label("tz", getBean(TimezoneUtil.class).getTimezoneByUser(u).getID()));
+				item.add(new Label("tz", getBean(TimezoneUtil.class).getTimeZone(u).getID()));
 				item.add(new Label("offer", u.getUserOffers()));
 				item.add(new Label("search", u.getUserSearchs()));
 				item.add(new WebMarkupContainer("view").add(new AjaxEventBehavior("onclick") {

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/user/rooms/RoomEnterBehavior.java Thu Sep 12 01:21:26 2013
@@ -33,8 +33,12 @@ public class RoomEnterBehavior extends A
 		this.roomid = roomid;
 	}
 
+	public static OmUrlFragment getRoomUrlFragment(long roomId) {
+		return new OmUrlFragment(AreaKeys.room, "" + roomId);
+	}
+	
 	public static void roomEnter(MainPage page, AjaxRequestTarget target, long roomId) {
-		page.updateContents(new OmUrlFragment(AreaKeys.room, "" + roomId), target);
+		page.updateContents(getRoomUrlFragment(roomId), target);
 	}
 	
 	@Override

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java Thu Sep 12 01:21:26 2013
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.web.util;
 
 import static org.apache.openmeetings.web.app.Application.getBean;
-import static org.apache.openmeetings.web.app.WebSession.getBaseUrl;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
 
@@ -101,6 +100,6 @@ public class ContactsHelper {
 	}
 	
 	public static String getLink() {
-		return getBaseUrl() + "#" + PROFILE_MESSAGES.getArea().name() + "/" + PROFILE_MESSAGES.getType();		
+		return PROFILE_MESSAGES.getLink();		
 	}
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/OmUrlFragment.java Thu Sep 12 01:21:26 2013
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.web.util;
 
+import static org.apache.openmeetings.web.app.WebSession.getBaseUrl;
 import static org.apache.openmeetings.web.app.WebSession.getLanguage;
 import static org.apache.openmeetings.web.app.WebSession.getSid;
 import static org.apache.openmeetings.web.user.profile.SettingsPanel.EDIT_PROFILE_TAB_ID;
@@ -274,4 +275,12 @@ public class OmUrlFragment implements Se
 		}
 		return basePanel;
 	}
+	
+	public String getLink() {
+		return getLink(getBaseUrl());
+	}
+
+	public String getLink(String baseUrl) {
+		return baseUrl + "#" + getArea().name() + "/" + getType();
+	}
 }

Modified: openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java (original)
+++ openmeetings/trunk/singlewebapp/src/main/java/org/apache/openmeetings/web/util/UserAutoCompleteTextField.java Thu Sep 12 01:21:26 2013
@@ -25,9 +25,7 @@ import java.util.List;
 import java.util.Locale;
 
 import org.apache.openmeetings.data.user.dao.UserDao;
-import org.apache.openmeetings.persistence.beans.user.Address;
 import org.apache.openmeetings.persistence.beans.user.User;
-import org.apache.openmeetings.persistence.beans.user.User.Type;
 import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.util.convert.IConverter;
@@ -77,13 +75,7 @@ public class UserAutoCompleteTextField e
 				Validatable<String> valEmail = new Validatable<String>(email);
 				RfcCompliantEmailAddressValidator.getInstance().validate(valEmail);
 				if (valEmail.isValid()) {
-					u = new User();
-					u.setType(Type.contact);
-					u.setFirstname(fName);
-					u.setLogin(getUserId() + "_" + email); //UserId prefix is used to ensure unique login
-					u.setLastname(lName);
-					u.setAdresses(new Address());
-					u.getAdresses().setEmail(email);
+					u = getBean(UserDao.class).getContact(email, fName, lName, getUserId());
 				} else {
 					for (IValidationError err : valEmail.getErrors()) {
 						UserAutoCompleteTextField.this.error(err);

Modified: openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml Thu Sep 12 01:21:26 2013
@@ -45,7 +45,7 @@
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingLog</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaData</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaDelta</class>
-		<class>org.apache.openmeetings.persistence.beans.invitation.Invitations</class>
+		<class>org.apache.openmeetings.persistence.beans.invitation.Invitation</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.FieldLanguage</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldvalues</class>

Modified: openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Thu Sep 12 01:21:26 2013
@@ -45,7 +45,7 @@
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingLog</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaData</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaDelta</class>
-		<class>org.apache.openmeetings.persistence.beans.invitation.Invitations</class>
+		<class>org.apache.openmeetings.persistence.beans.invitation.Invitation</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.FieldLanguage</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldvalues</class>

Modified: openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml Thu Sep 12 01:21:26 2013
@@ -45,7 +45,7 @@
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingLog</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaData</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaDelta</class>
-		<class>org.apache.openmeetings.persistence.beans.invitation.Invitations</class>
+		<class>org.apache.openmeetings.persistence.beans.invitation.Invitation</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.FieldLanguage</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldvalues</class>

Modified: openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml Thu Sep 12 01:21:26 2013
@@ -45,7 +45,7 @@
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingLog</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaData</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaDelta</class>
-		<class>org.apache.openmeetings.persistence.beans.invitation.Invitations</class>
+		<class>org.apache.openmeetings.persistence.beans.invitation.Invitation</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.FieldLanguage</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldvalues</class>

Modified: openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/postgres_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/postgres_persistence.xml?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/postgres_persistence.xml (original)
+++ openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/classes/META-INF/postgres_persistence.xml Thu Sep 12 01:21:26 2013
@@ -45,7 +45,7 @@
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingLog</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaData</class>
 		<class>org.apache.openmeetings.persistence.beans.flvrecord.FlvRecordingMetaDelta</class>
-		<class>org.apache.openmeetings.persistence.beans.invitation.Invitations</class>
+		<class>org.apache.openmeetings.persistence.beans.invitation.Invitation</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.FieldLanguage</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldlanguagesvalues</class>
 		<class>org.apache.openmeetings.persistence.beans.lang.Fieldvalues</class>

Modified: openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/openmeetings-applicationContext.xml?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/openmeetings-applicationContext.xml (original)
+++ openmeetings/trunk/singlewebapp/src/main/webapp/WEB-INF/openmeetings-applicationContext.xml Thu Sep 12 01:21:26 2013
@@ -254,7 +254,6 @@
 	<bean id="configurationDaoImpl" class="org.apache.openmeetings.data.basic.dao.ConfigurationDao" />
 	<bean id="appointmentDao" class="org.apache.openmeetings.data.calendar.daos.AppointmentDao" />
 	<bean id="appointmentLogic" class="org.apache.openmeetings.data.calendar.management.AppointmentLogic" />
-	<bean id="meetingMemberLogic" class="org.apache.openmeetings.data.calendar.management.MeetingMemberLogic" />
 	<bean id="sessionManagement" class="org.apache.openmeetings.data.basic.SessiondataDao" />
 	<bean id="userManagement" class="org.apache.openmeetings.data.user.UserManager" />
 	<bean id="roomModeratorsDao" class="org.apache.openmeetings.data.conference.dao.RoomModeratorsDao" />

Modified: openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java (original)
+++ openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/AbstractOpenmeetingsSpringTest.java Thu Sep 12 01:21:26 2013
@@ -18,7 +18,6 @@
  */
 package org.apache.openmeetings.test;
 
-import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -32,9 +31,7 @@ import org.apache.openmeetings.data.user
 import org.apache.openmeetings.installation.ImportInitvalues;
 import org.apache.openmeetings.installation.InstallationConfig;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
-import org.apache.openmeetings.persistence.beans.user.Address;
 import org.apache.openmeetings.persistence.beans.user.User;
-import org.apache.openmeetings.persistence.beans.user.User.Type;
 import org.apache.openmeetings.utils.OmFileHelper;
 import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
 import org.junit.Before;
@@ -64,7 +61,7 @@ public abstract class AbstractOpenmeetin
 	@Autowired
 	private UserManager userManager;
 	@Autowired
-	private UserDao usersDao;
+	private UserDao userDao;
 	@Autowired
 	private ImportInitvalues importInitvalues;
 	@Autowired
@@ -75,7 +72,7 @@ public abstract class AbstractOpenmeetin
 	@Before
 	public void setUp() throws Exception {
 		setOmHome();
-        if (usersDao.count() < 1) {
+        if (userDao.count() < 1) {
             makeDefaultScheme();
             log.info("Default scheme created successfully");
         } else {
@@ -107,7 +104,7 @@ public abstract class AbstractOpenmeetin
 		ap.setIsYearly(false);
 		ap.setPasswordProtected(false);
 
-		ap.setOwner(usersDao.get(1L));
+		ap.setOwner(userDao.get(1L));
 		ap.setConnectedEvent(false);
 		Long id = appointmentDao.addAppointmentObj(ap);
 		assertNotNull("Cann't add appointment", id);
@@ -148,17 +145,8 @@ public abstract class AbstractOpenmeetin
 	}
 
 	public User createUserContact(int rnd, Long ownerId) throws Exception {
-		User user = new User();
-		// add user as contact
-		user.setFirstname("firstname" + rnd);
-		user.setLastname("lastname" + rnd);
-		user.setLogin(getUserId() + "_" + "email" + rnd);
-		user.setLanguage_id(1L);
-		user.setType(Type.contact);
-		user.setOwner_id(ownerId);
-		user.setAdresses(new Address());
-		user.getAdresses().setEmail("email" + rnd);
-		user = usersDao.update(user, ownerId);
+		User user = userDao.getContact("email" + rnd, "firstname" + rnd, "lastname" + rnd, ownerId);
+		user = userDao.update(user, ownerId);
 		assertNotNull("Cann't add user", user);
 		return user;
 	}

Modified: openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java (original)
+++ openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java Thu Sep 12 01:21:26 2013
@@ -18,94 +18,85 @@
  */
 package org.apache.openmeetings.test.calendar;
 
+import static org.apache.openmeetings.OpenmeetingsVariables.webAppRootKey;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
 
-import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.axis.services.CalendarWebService;
+import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
 import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.persistence.beans.calendar.Appointment;
 import org.apache.openmeetings.test.AbstractOpenmeetingsSpringTest;
 import org.junit.Test;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
+public class TestAppointmentAddAppointment extends AbstractOpenmeetingsSpringTest {
+	private static final Logger log = Red5LoggerFactory.getLogger(TestAppointmentAddAppointment.class, webAppRootKey);
 
-public class TestAppointmentAddAppointment extends
-		AbstractOpenmeetingsSpringTest {
-
-	private static final Logger log = Red5LoggerFactory.getLogger(
-			TestAppointmentAddAppointment.class,
-			OpenmeetingsVariables.webAppRootKey);
-
+	@Autowired
+	private CalendarWebService calendarWebService;
 	@Autowired
 	private AppointmentLogic appointmentLogic;
+	@Autowired
+	private AppointmentDao appointmentDao;
 
 	@Test
-	public void saveAppointment() {
+	public void saveAppointment() throws Exception {
 		log.debug("- 1 MeetingReminderJob.execute");
 		log.warn("- 2 MeetingReminderJob.execute");
 
-		try {
-			Calendar start = Calendar.getInstance();
-			start.setTimeInMillis(start.getTimeInMillis() + 600000);
-
-			Calendar end = Calendar.getInstance();
-			end.setTimeInMillis(start.getTimeInMillis() + 600000);
-
-			String appointmentName = "Test 01";
-			String appointmentDescription = "Descr";
-			Long users_id = 1L;
-			String appointmentLocation = "office";
-			Boolean isMonthly = false;
-			Date appointmentstart = start.getTime();
-			Date appointmentend = end.getTime();
-			Boolean isDaily = false;
-			Long categoryId = 1L;
-			Boolean isWeekly = false;
-			Long remind = 3L;
-			Boolean isYearly = false;
-			List<Map<String, String>> mmClient = new LinkedList<Map<String, String>>();
-			for (int i = 0; i < 1; i++) {
-				mmClient.add(createClientObj("firstname" + i, "lastname" + i,
-						"first" + i + ".last" + i + "@webbase-design.de", "Etc/GMT+1"));
-			}
-			Long language_id = 1L;
-			String baseUrl = "http://localhost:5080/openmeetings/";
-			Long roomType = 1L;
-
-			Long id = appointmentLogic.saveAppointment(appointmentName,
-					users_id, appointmentLocation, appointmentDescription,
-					appointmentstart, appointmentend, isDaily, isWeekly,
-					isMonthly, isYearly, categoryId, remind, mmClient,
-					roomType, baseUrl, language_id, false, "", -1);
-
-			
-			Thread.sleep(3000);
-			
-			appointmentLogic.doScheduledMeetingReminder();
-			
-			Thread.sleep(3000);
-			
-			assertTrue("Saved appointment should have valid id: " + id, id != null && id > 0);
+		Calendar start = Calendar.getInstance();
+		start.setTimeInMillis(start.getTimeInMillis() + 600000);
+
+		Calendar end = Calendar.getInstance();
+		end.setTimeInMillis(start.getTimeInMillis() + 600000);
 
-		} catch (Exception err) {
-			log.error("[saveAppointment]", err);
+		String appointmentName = "Test 01";
+		String appointmentDescription = "Descr";
+		Long users_id = 1L;
+		String appointmentLocation = "office";
+		Boolean isMonthly = false;
+		Boolean isDaily = false;
+		Long categoryId = 1L;
+		Boolean isWeekly = false;
+		Long remind = 3L;
+		Boolean isYearly = false;
+		String[] mmClient = new String[1];
+		for (int i = 0; i < 1; i++) {
+			mmClient[0] = createClientObj("firstname" + i, "lastname" + i,
+					"first" + i + ".last" + i + "@webbase-design.de", "Etc/GMT+1");
 		}
+		Long language_id = 1L;
+		String baseUrl = "http://localhost:5080/openmeetings/";
+		Long roomType = 1L;
+
+		Appointment a = calendarWebService.getAppointment(appointmentName,
+				appointmentLocation, appointmentDescription,
+				start, end, isDaily, isWeekly,
+				isMonthly, isYearly, categoryId, remind, mmClient,
+				roomType, baseUrl, language_id, false, "", -1, users_id);
+		a = appointmentDao.update(a, baseUrl, users_id);
+		
+		Thread.sleep(3000);
+		
+		appointmentLogic.doScheduledMeetingReminder();
+		
+		Thread.sleep(3000);
+		
+		assertTrue("Saved appointment should have valid id: " + a.getId(), a.getId() != null && a.getId() > 0);
 	}
 
-	private Map<String, String> createClientObj(String firstname,
-			String lastname, String email, String jNameTimeZone) {
-		Map<String, String> client = new HashMap<String, String>();
-		client.put("firstname", firstname);
-		client.put("lastname", lastname);
-		client.put("email", email);
-		client.put("jNameTimeZone", jNameTimeZone);
-		return client;
+	private String createClientObj(String firstname, String lastname, String email, String jNameTimeZone) {
+		StringBuilder sb = new StringBuilder();
+		sb.append(",") //memberId
+			.append(firstname).append(",")
+			.append(lastname).append(",")
+			.append(email).append(",")
+			.append(",") //userId
+			.append(jNameTimeZone);
+		return sb.toString();
 	}
 
 }

Modified: openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java (original)
+++ openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java Thu Sep 12 01:21:26 2013
@@ -66,7 +66,7 @@ public class TestDatabaseStructureAppoin
 			
 			
 			for (Appointment appoints : listAppoints) {
-				log.debug("Termin: "+appoints.getTitle()+" startDate: "+appoints.getStart()+ " endDate: "+appoints.end());
+				log.debug("Termin: "+appoints.getTitle()+" startDate: "+appoints.getStart()+ " endDate: "+appoints.getEnd());
 				log.debug("MeetingMembers: "+appoints.getMeetingMembers().size());
 			}
 			

Modified: openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java?rev=1522099&r1=1522098&r2=1522099&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java (original)
+++ openmeetings/trunk/singlewebapp/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java Thu Sep 12 01:21:26 2013
@@ -19,53 +19,27 @@
 package org.apache.openmeetings.test.calendar;
 
 import java.util.Calendar;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.log4j.Logger;
-import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
 import org.apache.openmeetings.test.AbstractOpenmeetingsSpringTest;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
-
-
 public class TestDatabaseStructureGetAppointmentByRange extends AbstractOpenmeetingsSpringTest {
-
 	private static final Logger log = Logger.getLogger(TestDatabaseStructureGetAppointmentByRange.class);
 	@Autowired
-	private AppointmentLogic appointmentLogic;
-	
-	@Test
-	public void testAddingGroup(){
+	private AppointmentDao appointmentDao;
 
-		try {
-			List<Appointment> listAppoints = appointmentLogic.getAppointmentByRange(1L, Calendar.getInstance().getTime(), Calendar.getInstance().getTime());  
-
-			//List<Appointment> listAppoints = AppointmentDaoImpl.getInstance().getAppointmentsByRange(Calendar.getInstance().getTime(), Calendar.getInstance().getTime());
-			
-			for (Appointment appoints : listAppoints) {
-				log.debug(""+appoints);
-			}
-			
-			for (Iterator<Appointment> iter = listAppoints.iterator();iter.hasNext();) {
-				log.debug(""+iter.next());
-			}
-
-		} catch (Exception err) {
-
-			log.error("[testAddingGroup]",err);
+	@Test
+	public void test() {
+		List<Appointment> listAppoints = appointmentDao.getAppointmentsByRange(1L,
+				Calendar.getInstance().getTime(), Calendar.getInstance().getTime());
 
+		for (Appointment appoints : listAppoints) {
+			log.debug("" + appoints);
 		}
-
-		
-
-		
-
 	}
-
-
-
 }
-