You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2013/08/10 05:38:22 UTC
svn commit: r1512557 - in
/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings:
axis/services/ data/calendar/management/ data/conference/
persistence/beans/invitation/ remote/ test/invitiation/ utils/math/
Author: sebawagner
Date: Sat Aug 10 03:38:21 2013
New Revision: 1512557
URL: http://svn.apache.org/r1512557
Log:
Fixes OPENMEETINGS-747 Replace OmTimeZone in Invitations Entity with String tz and fix all dependencies
Added:
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/test/invitiation/
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/test/invitiation/TestInvitation.java
Modified:
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/JabberWebService.java
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/RoomWebService.java
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/conference/InvitationManager.java
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/InvitationService.java
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/UserService.java
openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/utils/math/TimezoneUtil.java
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/JabberWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/JabberWebService.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/JabberWebService.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/JabberWebService.java Sat Aug 10 03:38:21 2013
@@ -33,6 +33,7 @@ import org.apache.openmeetings.persisten
import org.apache.openmeetings.persistence.beans.room.RoomOrganisation;
import org.apache.openmeetings.persistence.beans.user.User;
import org.apache.openmeetings.remote.ConferenceService;
+import org.apache.openmeetings.utils.math.TimezoneUtil;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -62,6 +63,8 @@ public class JabberWebService {
private OmTimeZoneDao omTimeZoneDaoImpl;
@Autowired
private ConfigurationDao configurationDao;
+ @Autowired
+ private TimezoneUtil timezoneUtil;
/**
* Get List<Rooms> of all rooms available to the user.
@@ -133,8 +136,8 @@ public class JabberWebService {
user_level, username, username, username, username, username,
room_id, "", Boolean.valueOf(false), null, Integer.valueOf(3),
null, null, users_id, "", Long.valueOf(1L),
- Boolean.valueOf(false), null, null, null, username
- , omTimeZoneDaoImpl.getOmTimeZone(configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin")));
+ Boolean.valueOf(false), null, null, null, username,
+ timezoneUtil.getDefaultTimeZone());
return ((invitation == null) ? null : invitation.getHash());
}
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/RoomWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/RoomWebService.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/RoomWebService.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/axis/services/RoomWebService.java Sat Aug 10 03:38:21 2013
@@ -50,6 +50,7 @@ import org.apache.openmeetings.remote.Co
import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
import org.apache.openmeetings.session.ISessionManager;
import org.apache.openmeetings.utils.math.CalendarPatterns;
+import org.apache.openmeetings.utils.math.TimezoneUtil;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -90,6 +91,8 @@ public class RoomWebService {
private MeetingMemberLogic meetingMemberLogic;
@Autowired
private RoomDao roomDao;
+ @Autowired
+ private TimezoneUtil timezoneUtil;
/**
* Returns an Object of Type RoomsList which contains a list of
@@ -1770,7 +1773,8 @@ public class RoomWebService {
username, username, username, room_id, "",
isPasswordProtected, invitationpass, valid,
dFrom, dTo, users_id, "", 1L, false, dFrom,
- dTo, null, username, userManager.getUserById(users_id).getOmTimeZone());
+ dTo, null, username,
+ timezoneUtil.getTimezoneByUser(userManager.getUserById(users_id)));
if (invitation != null) {
@@ -1909,7 +1913,8 @@ public class RoomWebService {
baseurl, email, subject, room_id, "",
isPasswordProtected, invitationpass, valid,
dFrom, dTo, users_id, baseurl, language_id,
- sendMail, dFrom, dTo, null, username, userManager.getUserById(users_id).getOmTimeZone());
+ sendMail, dFrom, dTo, null, username,
+ timezoneUtil.getTimezoneByUser(userManager.getUserById(users_id)));
if (invitation != null) {
@@ -2010,7 +2015,8 @@ public class RoomWebService {
baseurl, email, subject, room_id, "",
isPasswordProtected, invitationpass, valid,
dFrom, dTo, users_id, baseurl, language_id,
- sendMail, dFrom, dTo, null, username, userManager.getUserById(users_id).getOmTimeZone());
+ sendMail, dFrom, dTo, null, username,
+ timezoneUtil.getTimezoneByUser(userManager.getUserById(users_id)));
if (invitation != null) {
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java Sat Aug 10 03:38:21 2013
@@ -146,7 +146,8 @@ public class MeetingMemberLogic {
point.getAppointmentEndtime(),
point.getAppointmentId(),
invitorName,
- omTimeZone);
+ timezoneUtil.getTimezoneByInternalJName(omTimeZone.getJname())
+ );
invitationId = invitation.getInvitations_id();
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/conference/InvitationManager.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/conference/InvitationManager.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/conference/InvitationManager.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/data/conference/InvitationManager.java Sat Aug 10 03:38:21 2013
@@ -38,7 +38,6 @@ import org.apache.openmeetings.data.conf
import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.data.user.dao.UsersDao;
import org.apache.openmeetings.persistence.beans.basic.MailMessage;
-import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
import org.apache.openmeetings.persistence.beans.calendar.Appointment;
import org.apache.openmeetings.persistence.beans.calendar.MeetingMember;
import org.apache.openmeetings.persistence.beans.invitation.Invitations;
@@ -126,7 +125,7 @@ public class InvitationManager {
Boolean isPasswordProtected, String invitationpass, Integer valid,
Date validFrom, Date validTo, Long createdBy, String baseUrl,
Long language_id, Boolean sendMail, Date gmtTimeStart,
- Date gmtTimeEnd, Long appointmentId, String fromUserField, OmTimeZone omTimeZone) {
+ Date gmtTimeEnd, Long appointmentId, String fromUserField, TimeZone timeZone) {
try {
if (authLevelUtil.checkUserLevel(user_level)) {
@@ -141,7 +140,7 @@ public class InvitationManager {
invitation.setInvitationWasUsed(false);
log.debug(baseUrl);
invitation.setBaseUrl(baseUrl);
- invitation.setOmTimeZone(omTimeZone);
+ invitation.setTimeZoneId(timeZone.getID());
// valid period of Invitation
if (valid == 1) {
@@ -239,7 +238,7 @@ public class InvitationManager {
invitation.setInvitationWasUsed(false);
log.debug(baseUrl);
invitation.setBaseUrl(baseUrl);
- invitation.setOmTimeZone(createdBy.getOmTimeZone());
+ invitation.setTimeZoneId(timezoneUtil.getTimezoneByInternalJName(createdBy.getOmTimeZone().getJname()).getID());
// valid period of Invitation
if (valid == 1) {
@@ -1223,14 +1222,12 @@ public class InvitationManager {
}
} else if (invitation.getIsValidByTime()) {
- OmTimeZone tz = invitation.getOmTimeZone() == null
- ? omTimeZoneDaoImpl.getOmTimeZone(configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin"))
- : invitation.getOmTimeZone();
- Calendar now = Calendar.getInstance(TimeZone.getTimeZone(tz.getIcal()));
- Calendar start = Calendar.getInstance(TimeZone.getTimeZone(tz.getIcal()));
+
+ Calendar now = Calendar.getInstance(timezoneUtil.getTimeZone(invitation.getTimeZoneId()));
+ Calendar start = Calendar.getInstance(timezoneUtil.getTimeZone(invitation.getTimeZoneId()));
start.setTime(invitation.getValidFrom());
- Calendar end = Calendar.getInstance(TimeZone.getTimeZone(tz.getIcal()));
+ Calendar end = Calendar.getInstance(timezoneUtil.getTimeZone(invitation.getTimeZoneId()));
end.setTime(invitation.getValidTo());
if (now.after(start) && now.before(end)) {
invitationDao.updateInvitation(invitation);
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java Sat Aug 10 03:38:21 2013
@@ -34,7 +34,6 @@ import javax.persistence.NamedQuery;
import javax.persistence.Table;
import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
import org.apache.openmeetings.persistence.beans.room.Room;
import org.apache.openmeetings.persistence.beans.user.User;
@@ -125,10 +124,11 @@ public class Invitations implements Seri
@Column(name = "baseUrl")
private String baseUrl;
- @ManyToOne(fetch = FetchType.EAGER)
- @JoinColumn(name = "omtimezoneId", insertable = true, updatable = true)
- @ForeignKey(enabled = true)
- private OmTimeZone omTimeZone; // In UTC +/- hours
+ /**
+ * java.util.TimeZone Id
+ */
+ @Column(name = "time_zone_id")
+ private String timeZoneId; //
private boolean allowEntry = true;
@@ -296,11 +296,12 @@ public class Invitations implements Seri
this.allowEntry = allowEntry;
}
- public OmTimeZone getOmTimeZone() {
- return omTimeZone;
+ public String getTimeZoneId() {
+ return timeZoneId;
}
- public void setOmTimeZone(OmTimeZone omTimeZone) {
- this.omTimeZone = omTimeZone;
+ public void setTimeZoneId(String timeZoneId) {
+ this.timeZoneId = timeZoneId;
}
+
}
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/InvitationService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/InvitationService.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/InvitationService.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/InvitationService.java Sat Aug 10 03:38:21 2013
@@ -29,9 +29,9 @@ import org.apache.openmeetings.data.basi
import org.apache.openmeetings.data.conference.InvitationManager;
import org.apache.openmeetings.data.user.UserManager;
import org.apache.openmeetings.data.user.dao.UsersDao;
-import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
import org.apache.openmeetings.persistence.beans.invitation.Invitations;
import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.utils.math.TimezoneUtil;
import org.red5.logging.Red5LoggerFactory;
import org.red5.server.api.service.IPendingServiceCall;
import org.red5.server.api.service.IPendingServiceCallback;
@@ -54,6 +54,8 @@ public class InvitationService implement
private OmTimeZoneDao omTimeZoneDaoImpl;
@Autowired
private InvitationManager invitationManager;
+ @Autowired
+ private TimezoneUtil timezoneUtil;
public void resultReceived(IPendingServiceCall arg0) {
// TODO Auto-generated method stub
@@ -108,19 +110,12 @@ public class InvitationService implement
Long users_id = sessiondataDao.checkSession(SID);
Long user_level = userManager.getUserLevelByID(users_id);
- OmTimeZone omTimeZone = omTimeZoneDaoImpl
- .getOmTimeZone(jNameTimeZone);
-
- // If everything fails
- if (omTimeZone == null) {
- omTimeZone = omTimeZoneDaoImpl.getOmTimeZone(configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin"));
- }
-
Calendar date = Calendar.getInstance();
date.setTime(validFromDate);
- String timeZoneName = omTimeZone.getIcal();
- Calendar calFrom = Calendar.getInstance(TimeZone.getTimeZone(timeZoneName));
+ TimeZone timeZone = timezoneUtil.getTimezoneByInternalJName(jNameTimeZone);
+
+ 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));
@@ -129,7 +124,7 @@ public class InvitationService implement
calFrom.set(Calendar.SECOND, 0);
date.setTime(validToDate);
- Calendar calTo = Calendar.getInstance(TimeZone.getTimeZone(timeZoneName));
+ 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));
@@ -145,7 +140,7 @@ public class InvitationService implement
email, subject, room_id, conferencedomain,
isPasswordProtected, invitationpass, valid, dFrom,
dTo, users_id, baseurl, language_id, sendMail,
- dFrom, dTo, null, username, omTimeZone);
+ dFrom, dTo, null, username, timeZone);
if (invitation != null) {
return invitation;
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/UserService.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/UserService.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/remote/UserService.java Sat Aug 10 03:38:21 2013
@@ -1095,7 +1095,7 @@ public class UserService {
appointmentstart, appointmentend,
appointmentId,
from.getFirstname() + " " + from.getLastname(),
- from.getOmTimeZone());
+ timezoneUtil.getTimezoneByUser(from));
invitation_link = baseURL + "?invitationHash="
+ invitation.getHash();
Added: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/test/invitiation/TestInvitation.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/test/invitiation/TestInvitation.java?rev=1512557&view=auto
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/test/invitiation/TestInvitation.java (added)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/test/invitiation/TestInvitation.java Sat Aug 10 03:38:21 2013
@@ -0,0 +1,42 @@
+package org.apache.openmeetings.test.invitiation;
+
+import java.util.Date;
+
+import org.apache.openmeetings.data.user.UserManager;
+import org.apache.openmeetings.persistence.beans.basic.Sessiondata;
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.remote.InvitationService;
+import org.apache.openmeetings.remote.MainService;
+import org.apache.openmeetings.test.AbstractOpenmeetingsSpringTest;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestInvitation extends AbstractOpenmeetingsSpringTest {
+
+ private static final Logger log = LoggerFactory.getLogger(TestInvitation.class);
+
+ @Autowired
+ private InvitationService invitationService;
+ @Autowired
+ private MainService mService;
+ @Autowired
+ private UserManager userManager;
+
+ @Test
+ public void testSendInvitationLink() {
+ try {
+ Sessiondata sessionData = mService.getsessiondata();
+
+ User us = (User) userManager.loginUser(sessionData.getSession_id(), username, userpass, null, null, false);
+
+ invitationService.sendInvitationHash(sessionData.getSession_id(), username, "message", "baseurl", "sebawagner@apache.org",
+ "subject", 1L, "", false, "", 1, new Date(), "12:00", new Date(), "14:00", 1L, us.getOmTimeZone().getJname(), true);
+
+ } catch (Exception err) {
+ log.error("[testSendInvitationLink]", err);
+ }
+ }
+
+}
Modified: openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/utils/math/TimezoneUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/utils/math/TimezoneUtil.java?rev=1512557&r1=1512556&r2=1512557&view=diff
==============================================================================
--- openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/utils/math/TimezoneUtil.java (original)
+++ openmeetings/branches/OPENMEETINGS-745/src/org/apache/openmeetings/utils/math/TimezoneUtil.java Sat Aug 10 03:38:21 2013
@@ -40,6 +40,54 @@ public class TimezoneUtil {
private ConfigurationDao configurationDao;
@Autowired
private OmTimeZoneDao omTimeZoneDaoImpl;
+
+ /**
+ * Parameters:
+ * ID - the ID for a TimeZone, either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or
+ * a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and
+ * full names should be used.
+ *
+ * Returns:
+ * the specified TimeZone, or the GMT zone if the given ID cannot be understood.
+ * <br/>
+ * <br/>
+ * TODO: Fall-back mechanism and maybe a log output if the given timeZoneId is not found in the
+ * list of available TimeZones of the current java.util.TimeZone package of the Java SDK
+ * the the user is running
+ * <br/>
+ * @param timeZoneId
+ * @return
+ */
+
+ public TimeZone getTimeZone(String timeZoneId) {
+
+ //see TODO in comments
+
+ return TimeZone.getTimeZone(timeZoneId);
+ }
+
+ /**
+ * @return The current server configured time zone in the table
+ * configuration key: "default.timezone"
+ */
+ public TimeZone getDefaultTimeZone() {
+
+ String defaultTzName = configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin");
+
+ OmTimeZone omTimeZoneDefault = omTimeZoneDaoImpl.getOmTimeZone(defaultTzName);
+
+ TimeZone timeZoneByOmTimeZone = TimeZone
+ .getTimeZone(omTimeZoneDefault.getIcal());
+
+ if (timeZoneByOmTimeZone != null) {
+ return timeZoneByOmTimeZone;
+ }
+
+ // If everything fails take the servers default one
+ log.error("There is no correct time zone set in the configuration of OpenMeetings for the key default.timezone or key is missing in table, using default locale!");
+ return TimeZone.getDefault();
+
+ }
/**
* Returns the timezone based on the user profile, if not return the