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/06 10:17:06 UTC

svn commit: r1510879 - in /openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ src/org/apache/openmeetings/data/calendar/daos/ src/org/apache/openmeetings/data/calendar/management/ src/org/apache/openmeetings/data/conference/ src/org/apache/openmeetin...

Author: sebawagner
Date: Tue Aug  6 08:17:06 2013
New Revision: 1510879

URL: http://svn.apache.org/r1510879
Log:
OPENMEETINGS-728 Refactor Timezone safe DatetimeFields back to regular one's and move persistence handling of Invitations into Dao and Named Queries

Added:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java
Modified:
    openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java

Modified: openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1510879&r1=1510878&r2=1510879&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml (original)
+++ openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml Tue Aug  6 08:17:06 2013
@@ -243,6 +243,7 @@
 		<constructor-arg><value>12345</value></constructor-arg>
 	 -->
 	</bean>
+	<bean id="invitationDao" class="org.apache.openmeetings.data.conference.dao.InvitationDao" />
 	<bean id="organisationmanagement" class="org.apache.openmeetings.data.user.OrganisationManager" />
 	<bean id="organisationDao" class="org.apache.openmeetings.data.user.dao.OrganisationDao" />
 	<bean id="organisationUserDao" class="org.apache.openmeetings.data.user.dao.OrganisationUserDao" />

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java?rev=1510879&r1=1510878&r2=1510879&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java Tue Aug  6 08:17:06 2013
@@ -41,6 +41,7 @@ import org.apache.openmeetings.data.basi
 import org.apache.openmeetings.data.basic.dao.OmTimeZoneDao;
 import org.apache.openmeetings.data.calendar.management.MeetingMemberLogic;
 import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.dao.InvitationDao;
 import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.user.UserManager;
 import org.apache.openmeetings.data.user.dao.UsersDao;
@@ -87,6 +88,8 @@ public class AppointmentDao {
 	private MeetingMemberLogic meetingMemberLogic;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private InvitationDao invitationDao;
 
 	/*
 	 * insert, update, delete, select
@@ -474,7 +477,7 @@ public class AppointmentDao {
 			}
 
 			// Update Invitation hash to new time
-			invitationManager.updateInvitationByAppointment(appointmentId,
+			invitationDao.updateInvitationByAppointment(appointmentId,
 					appointmentstart, appointmentend);
 
 			ap.setAppointmentName(appointmentName);
@@ -678,7 +681,7 @@ public class AppointmentDao {
 			}
 
 			// Update Invitation hash to new time
-			invitationManager.updateInvitationByAppointment(appointmentId,
+			invitationDao.updateInvitationByAppointment(appointmentId,
 					appointmentstart, appointmentend);
 
 			ap.setAppointmentStarttime(appointmentstart);

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java?rev=1510879&r1=1510878&r2=1510879&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java Tue Aug  6 08:17:06 2013
@@ -32,6 +32,7 @@ import org.apache.openmeetings.data.cale
 import org.apache.openmeetings.data.calendar.daos.MeetingMemberDao;
 import org.apache.openmeetings.data.conference.InvitationManager;
 import org.apache.openmeetings.data.conference.RoomManager;
+import org.apache.openmeetings.data.conference.dao.InvitationDao;
 import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.user.UserManager;
 import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
@@ -74,6 +75,8 @@ public class AppointmentLogic {
 	private MeetingMemberLogic meetingMemberLogic;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private InvitationDao invitationDao;
 
 	private static int DEFAULT_MINUTES_REMINDER_SEND = 15;
 
@@ -493,7 +496,7 @@ public class AppointmentLogic {
 
 					invitationManager.sendInvitationReminderSMS(mm.getPhone(), smsSubject, language_id);
 					inv.setUpdatetime(new Date());
-					invitationManager.updateInvitation(inv);
+					invitationDao.updateInvitation(inv);
 				}
 			}
 		}

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java?rev=1510879&r1=1510878&r2=1510879&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java Tue Aug  6 08:17:06 2013
@@ -24,6 +24,7 @@ import org.apache.openmeetings.Openmeeti
 import org.apache.openmeetings.data.basic.FieldManager;
 import org.apache.openmeetings.data.calendar.daos.MeetingMemberDao;
 import org.apache.openmeetings.data.conference.InvitationManager;
+import org.apache.openmeetings.data.conference.dao.InvitationDao;
 import org.apache.openmeetings.data.user.UserManager;
 import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
 import org.apache.openmeetings.persistence.beans.calendar.Appointment;
@@ -53,6 +54,8 @@ public class MeetingMemberLogic {
 	private MeetingMemberDao meetingMemberDao;
 	@Autowired
 	private TimezoneUtil timezoneUtil;
+	@Autowired
+	private InvitationDao invitationDao;
 
 	/**
 	 * This can be either an internal or an external user, internal users have a
@@ -178,7 +181,7 @@ public class MeetingMemberLogic {
 			// Setting InvitationId within MeetingMember
 
 			if (invitationId != null) {
-				Invitations invi = invitationManager
+				Invitations invi = invitationDao
 						.getInvitationbyId(invitationId);
 
 				member.setInvitation(invi);
@@ -266,7 +269,7 @@ public class MeetingMemberLogic {
 			// Setting InvitationId within MeetingMember
 
 			if (invitationId != null) {
-				Invitations invi = invitationManager
+				Invitations invi = invitationDao
 						.getInvitationbyId(invitationId);
 
 				member.setInvitation(invi);

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java?rev=1510879&r1=1510878&r2=1510879&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java Tue Aug  6 08:17:06 2013
@@ -23,15 +23,9 @@ import static org.apache.openmeetings.pe
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.List;
 import java.util.TimeZone;
 import java.util.Vector;
 
-import javax.persistence.EntityManager;
-import javax.persistence.NoResultException;
-import javax.persistence.PersistenceContext;
-import javax.persistence.TypedQuery;
-
 import org.apache.openmeetings.OpenmeetingsVariables;
 import org.apache.openmeetings.data.basic.AuthLevelUtil;
 import org.apache.openmeetings.data.basic.FieldManager;
@@ -39,6 +33,7 @@ import org.apache.openmeetings.data.basi
 import org.apache.openmeetings.data.basic.dao.OmTimeZoneDao;
 import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
 import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
+import org.apache.openmeetings.data.conference.dao.InvitationDao;
 import org.apache.openmeetings.data.conference.dao.RoomDao;
 import org.apache.openmeetings.data.user.UserManager;
 import org.apache.openmeetings.data.user.dao.UsersDao;
@@ -74,8 +69,8 @@ public class InvitationManager {
 	private static final Logger log = Red5LoggerFactory.getLogger(
 			InvitationManager.class, OpenmeetingsVariables.webAppRootKey);
 
-	@PersistenceContext
-	private EntityManager em;
+	@Autowired
+	private InvitationDao invitationDao;
 	@Autowired
 	private AppointmentLogic appointmentLogic;
 	@Autowired
@@ -187,7 +182,7 @@ public class InvitationManager {
 				invitation.setStarttime(new Date());
 				invitation.setAppointmentId(appointmentId);
 
-				invitation = em.merge(invitation);
+				invitation = invitationDao.updateInvitation(invitation);
 				long invitationId = invitation.getInvitations_id();
 
 				invitation.setInvitations_id(invitationId);
@@ -283,7 +278,7 @@ public class InvitationManager {
 			invitation.setStarttime(new Date());
 			invitation.setAppointmentId(appointment.getAppointmentId());
 
-			invitation = em.merge(invitation);
+			invitation = invitationDao.updateInvitation(invitation);
 			long invitationId = invitation.getInvitations_id();
 
 			invitation.setInvitations_id(invitationId);
@@ -315,7 +310,7 @@ public class InvitationManager {
 	 */
 	// -----------------------------------------------------------------------------------------------
 	public void cancelInvitation(Appointment appointment, MeetingMember member,
-			Long canceling_user_id, Long language_id) {
+			Long canceling_user_id, Long language_id) throws Exception {
 
 		log.debug("cancelInvitation");
 
@@ -377,7 +372,8 @@ public class InvitationManager {
 
 		if (inv != null) {
 			inv.setDeleted(true);
-			updateInvitation(inv);
+			//updateInvitation(inv);
+			invitationDao.updateInvitation(inv);
 		}
 
 	}
@@ -674,7 +670,7 @@ public class InvitationManager {
 				invitation.setStarttime(new Date());
 				invitation.setAppointmentId(appointmentId);
 
-				invitation = em.merge(invitation);
+				invitation = invitationDao.updateInvitation(invitation);
 				long invitationId = invitation.getInvitations_id();
 
 				if (invitationId > 0) {
@@ -761,7 +757,7 @@ public class InvitationManager {
 			invitation.setStarttime(new Date());
 			invitation.setAppointmentId(appointment.getAppointmentId());
 
-			invitation = em.merge(invitation);
+			invitation = invitationDao.updateInvitation(invitation);
 			long invitationId = invitation.getInvitations_id();
 
 			if (invitationId > 0) {
@@ -1187,60 +1183,6 @@ public class InvitationManager {
 		return null;
 	}
 
-	/**
-	 * @author becherer
-	 * @param invId
-	 * 
-	 */
-	public Invitations getInvitationbyId(Long invId) {
-		log.debug("getInvitationbyId");
-
-		try {
-			String hql = "select invi from Invitations invi "
-					+ "WHERE invi.deleted <> :deleted "
-					+ "AND invi.invitations_id = :invid";
-
-			TypedQuery<Invitations> query = em.createQuery(hql, Invitations.class);
-			query.setParameter("deleted", true);
-			query.setParameter("invid", invId);
-
-			Invitations inv = null;
-			try {
-				inv = query.getSingleResult();
-			} catch (NoResultException ex) {
-			}
-
-			return inv;
-		} catch (Exception e) {
-			log.error("getInvitationsbyId : ", e);
-			return null;
-		}
-	}
-
-	public Invitations getInvitationbyAppointementId(Long invId) {
-		log.debug("getInvitationbyId");
-
-		try {
-			String hql = "select invi from Invitations invi "
-					+ "WHERE invi.deleted <> :deleted "
-					+ "AND invi.invitations_id = :invid";
-
-			TypedQuery<Invitations> query = em.createQuery(hql, Invitations.class);
-			query.setParameter("deleted", true);
-			query.setParameter("invid", invId);
-
-			Invitations inv = null;
-			try {
-				inv = query.getSingleResult();
-			} catch (NoResultException ex) {
-			}
-
-			return inv;
-		} catch (Exception e) {
-			log.error("getInvitationsbyId : ", e);
-			return null;
-		}
-	}
 
 	/**
 	 * 
@@ -1250,17 +1192,7 @@ public class InvitationManager {
 	 */
 	public Object getInvitationByHashCode(String hashCode, boolean hidePass) {
 		try {
-			String hql = "select c from Invitations as c "
-					+ "where c.hash LIKE :hashCode "
-					+ "AND c.deleted = :deleted";
-			TypedQuery<Invitations> query = em.createQuery(hql, Invitations.class);
-			query.setParameter("hashCode", hashCode);
-			query.setParameter("deleted", false);
-			Invitations invitation = null;
-			try {
-				invitation = query.getSingleResult();
-			} catch (NoResultException ex) {
-			}
+			Invitations invitation = invitationDao.getInvitationByHashCode(hashCode, hidePass);
 
 			if (invitation == null) {
 				// already deleted or does not exist
@@ -1280,7 +1212,7 @@ public class InvitationManager {
 							// set to true if this is the first time / a normal
 							// getInvitation-Query
 							invitation.setInvitationWasUsed(true);
-							this.updateInvitation(invitation);
+							invitationDao.updateInvitation(invitation);
 							// invitation.setInvitationpass(null);
 							invitation.setAllowEntry(true);
 							return invitation;
@@ -1301,7 +1233,7 @@ public class InvitationManager {
 					Calendar end = Calendar.getInstance(TimeZone.getTimeZone(tz.getIcal()));
 					end.setTime(invitation.getValidTo());
 					if (now.after(start) && now.before(end)) {
-						this.updateInvitation(invitation);
+						invitationDao.updateInvitation(invitation);
 						// invitation.setInvitationpass(null);
 						invitation.setAllowEntry(true);
 						return invitation;
@@ -1318,7 +1250,7 @@ public class InvitationManager {
 					}
 				} else {
 					// Invitation is not limited, neither time nor single-usage
-					this.updateInvitation(invitation);
+					invitationDao.updateInvitation(invitation);
 
 					invitation.setAllowEntry(true);
 					// invitation.setInvitationpass(null);
@@ -1334,25 +1266,6 @@ public class InvitationManager {
 
 	/**
 	 * 
-	 * @param invitation
-	 */
-	public void updateInvitation(Invitations invitation) {
-		try {
-			invitation.setUpdatetime(new Date());
-			if (invitation.getInvitations_id() == null) {
-				em.persist(invitation);
-			} else {
-				if (!em.contains(invitation)) {
-					em.merge(invitation);
-				}
-			}
-		} catch (Exception ex2) {
-			log.error("[selectMaxFromUsers] ", ex2);
-		}
-	}
-
-	/**
-	 * 
 	 * @param hashCode
 	 * @param pass
 	 * @return
@@ -1383,35 +1296,5 @@ public class InvitationManager {
 		return new Long(-1);
 	}
 
-	public void updateInvitationByAppointment(Long appointmentId,
-			Date appointmentstart, Date appointmentend) {
-		try {
-
-			Date gmtTimeStartShifted = new Date(appointmentstart.getTime()
-					- (5 * 60 * 1000));
-
-			String hql = "select a from Invitations a "
-					+ "WHERE a.appointmentId = :appointmentId  ";
-
-			TypedQuery<Invitations> query = em.createQuery(hql, Invitations.class);
-			query.setParameter("appointmentId", appointmentId);
-
-			List<Invitations> listInvitations = query.getResultList();
-
-			for (Invitations inv : listInvitations) {
-				inv.setValidFrom(gmtTimeStartShifted);
-				inv.setValidTo(appointmentend);
-				if (inv.getInvitations_id() == null) {
-					em.persist(inv);
-				} else {
-					if (!em.contains(inv)) {
-						em.merge(inv);
-					}
-				}
-			}
-
-		} catch (Exception err) {
-
-		}
-	}
+	
 }

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java?rev=1510879&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java Tue Aug  6 08:17:06 2013
@@ -0,0 +1,121 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.data.conference.dao;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.apache.openmeetings.OpenmeetingsVariables;
+import org.apache.openmeetings.persistence.beans.invitation.Invitations;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class InvitationDao {
+	
+	private static final Logger log = Red5LoggerFactory.getLogger(
+			InvitationDao.class, OpenmeetingsVariables.webAppRootKey);
+	
+	@PersistenceContext
+	private EntityManager em;
+	
+	public Invitations updateInvitation(Invitations invitation) throws Exception {
+		invitation.setUpdatetime(new Date());
+		if (invitation.getInvitations_id() == null) {
+			em.persist(invitation);
+			return invitation;
+		} else {
+			if (!em.contains(invitation)) {
+				return em.merge(invitation);
+			}
+		}
+		return null;
+	}
+	
+	public Invitations getInvitationbyId(Long invId) {
+		try {
+			
+			TypedQuery<Invitations> query = em.createNamedQuery("getInvitationbyId", Invitations.class);
+			query.setParameter("deleted", true);
+			query.setParameter("invid", invId);
+			
+			try {
+				return query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+
+		} catch (Exception e) {
+			log.error("getInvitationbyId : ", e);
+		}
+		return null;
+	}
+	
+	public Invitations getInvitationByHashCode(String hashCode, boolean hidePass) {
+		try {
+			
+			TypedQuery<Invitations> query = em.createNamedQuery("getInvitationByHashCode", Invitations.class);
+			query.setParameter("hashCode", hashCode);
+			query.setParameter("deleted", false);
+			
+			try {
+				return query.getSingleResult();
+			} catch (NoResultException ex) {
+			}
+			
+		} catch (Exception e) {
+			log.error("getInvitationbyAppointementId : ", e);
+		}
+		return null;
+	}
+	
+	public void updateInvitationByAppointment(Long appointmentId,
+			Date appointmentstart, Date appointmentend) {
+		try {
+
+			Date gmtTimeStartShifted = new Date(appointmentstart.getTime()
+					- (5 * 60 * 1000));
+
+			TypedQuery<Invitations> query = em.createNamedQuery("getInvitationByAppointment", Invitations.class);
+			query.setParameter("appointmentId", appointmentId);
+
+			List<Invitations> listInvitations = query.getResultList();
+
+			for (Invitations inv : listInvitations) {
+				inv.setValidFrom(gmtTimeStartShifted);
+				inv.setValidTo(appointmentend);
+				if (inv.getInvitations_id() == null) {
+					em.persist(inv);
+				} else {
+					if (!em.contains(inv)) {
+						em.merge(inv);
+					}
+				}
+			}
+
+		} catch (Exception err) {
+			log.error("updateInvitationByAppointment : ", err);
+		}
+	}
+}

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java?rev=1510879&r1=1510878&r2=1510879&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java Tue Aug  6 08:17:06 2013
@@ -29,6 +29,8 @@ import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
 import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
@@ -37,6 +39,16 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.user.User;
 
 @Entity
+@NamedQueries({
+	@NamedQuery(name = "getInvitationbyId", query = "select invi from Invitations invi "
+					+ "WHERE invi.deleted <> :deleted "
+					+ "AND invi.invitations_id = :invid"),
+	@NamedQuery(name = "getInvitationByHashCode", query = "select c from Invitations as c "
+					+ "where c.hash LIKE :hashCode "
+					+ "AND c.deleted = :deleted"),
+	@NamedQuery(name = "getInvitationByAppointment", query = "select a from Invitations a "
+					+ "WHERE a.appointmentId = :appointmentId  ")
+})
 @Table(name = "invitations")
 public class Invitations implements Serializable {
 	private static final long serialVersionUID = 1153321347974705506L;



Re: svn commit: r1510879 - in /openmeetings/trunk/singlewebapp: WebContent/WEB-INF/ src/org/apache/openmeetings/data/calendar/daos/ src/org/apache/openmeetings/data/calendar/management/ src/org/apache/openmeetings/data/conference/ src/org/apache/openmeetin...

Posted by Maxim Solodovnik <so...@gmail.com>.
Hello Sebastian,

can I rename couple of methods for consistency?
like
Invitations getInvitationbyId(Long invId) -> Invitations get(Long invId)
etc.


On Tue, Aug 6, 2013 at 3:17 PM, <se...@apache.org> wrote:

> Author: sebawagner
> Date: Tue Aug  6 08:17:06 2013
> New Revision: 1510879
>
> URL: http://svn.apache.org/r1510879
> Log:
> OPENMEETINGS-728 Refactor Timezone safe DatetimeFields back to regular
> one's and move persistence handling of Invitations into Dao and Named
> Queries
>
> Added:
>
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java
> Modified:
>
> openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
>
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java
>
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
>
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
>
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java
>
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
>
> Modified:
> openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
> URL:
> http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1510879&r1=1510878&r2=1510879&view=diff
>
> ==============================================================================
> ---
> openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
> (original)
> +++
> openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
> Tue Aug  6 08:17:06 2013
> @@ -243,6 +243,7 @@
>                 <constructor-arg><value>12345</value></constructor-arg>
>          -->
>         </bean>
> +       <bean id="invitationDao"
> class="org.apache.openmeetings.data.conference.dao.InvitationDao" />
>         <bean id="organisationmanagement"
> class="org.apache.openmeetings.data.user.OrganisationManager" />
>         <bean id="organisationDao"
> class="org.apache.openmeetings.data.user.dao.OrganisationDao" />
>         <bean id="organisationUserDao"
> class="org.apache.openmeetings.data.user.dao.OrganisationUserDao" />
>
> Modified:
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java
> URL:
> http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java?rev=1510879&r1=1510878&r2=1510879&view=diff
>
> ==============================================================================
> ---
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java
> (original)
> +++
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/daos/AppointmentDao.java
> Tue Aug  6 08:17:06 2013
> @@ -41,6 +41,7 @@ import org.apache.openmeetings.data.basi
>  import org.apache.openmeetings.data.basic.dao.OmTimeZoneDao;
>  import
> org.apache.openmeetings.data.calendar.management.MeetingMemberLogic;
>  import org.apache.openmeetings.data.conference.InvitationManager;
> +import org.apache.openmeetings.data.conference.dao.InvitationDao;
>  import org.apache.openmeetings.data.conference.dao.RoomDao;
>  import org.apache.openmeetings.data.user.UserManager;
>  import org.apache.openmeetings.data.user.dao.UsersDao;
> @@ -87,6 +88,8 @@ public class AppointmentDao {
>         private MeetingMemberLogic meetingMemberLogic;
>         @Autowired
>         private TimezoneUtil timezoneUtil;
> +       @Autowired
> +       private InvitationDao invitationDao;
>
>         /*
>          * insert, update, delete, select
> @@ -474,7 +477,7 @@ public class AppointmentDao {
>                         }
>
>                         // Update Invitation hash to new time
> -
> invitationManager.updateInvitationByAppointment(appointmentId,
> +
> invitationDao.updateInvitationByAppointment(appointmentId,
>                                         appointmentstart, appointmentend);
>
>                         ap.setAppointmentName(appointmentName);
> @@ -678,7 +681,7 @@ public class AppointmentDao {
>                         }
>
>                         // Update Invitation hash to new time
> -
> invitationManager.updateInvitationByAppointment(appointmentId,
> +
> invitationDao.updateInvitationByAppointment(appointmentId,
>                                         appointmentstart, appointmentend);
>
>                         ap.setAppointmentStarttime(appointmentstart);
>
> Modified:
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
> URL:
> http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java?rev=1510879&r1=1510878&r2=1510879&view=diff
>
> ==============================================================================
> ---
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
> (original)
> +++
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/AppointmentLogic.java
> Tue Aug  6 08:17:06 2013
> @@ -32,6 +32,7 @@ import org.apache.openmeetings.data.cale
>  import org.apache.openmeetings.data.calendar.daos.MeetingMemberDao;
>  import org.apache.openmeetings.data.conference.InvitationManager;
>  import org.apache.openmeetings.data.conference.RoomManager;
> +import org.apache.openmeetings.data.conference.dao.InvitationDao;
>  import org.apache.openmeetings.data.conference.dao.RoomDao;
>  import org.apache.openmeetings.data.user.UserManager;
>  import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
> @@ -74,6 +75,8 @@ public class AppointmentLogic {
>         private MeetingMemberLogic meetingMemberLogic;
>         @Autowired
>         private TimezoneUtil timezoneUtil;
> +       @Autowired
> +       private InvitationDao invitationDao;
>
>         private static int DEFAULT_MINUTES_REMINDER_SEND = 15;
>
> @@ -493,7 +496,7 @@ public class AppointmentLogic {
>
>
> invitationManager.sendInvitationReminderSMS(mm.getPhone(), smsSubject,
> language_id);
>                                         inv.setUpdatetime(new Date());
> -
> invitationManager.updateInvitation(inv);
> +
> invitationDao.updateInvitation(inv);
>                                 }
>                         }
>                 }
>
> Modified:
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
> URL:
> http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java?rev=1510879&r1=1510878&r2=1510879&view=diff
>
> ==============================================================================
> ---
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
> (original)
> +++
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/calendar/management/MeetingMemberLogic.java
> Tue Aug  6 08:17:06 2013
> @@ -24,6 +24,7 @@ import org.apache.openmeetings.Openmeeti
>  import org.apache.openmeetings.data.basic.FieldManager;
>  import org.apache.openmeetings.data.calendar.daos.MeetingMemberDao;
>  import org.apache.openmeetings.data.conference.InvitationManager;
> +import org.apache.openmeetings.data.conference.dao.InvitationDao;
>  import org.apache.openmeetings.data.user.UserManager;
>  import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
>  import org.apache.openmeetings.persistence.beans.calendar.Appointment;
> @@ -53,6 +54,8 @@ public class MeetingMemberLogic {
>         private MeetingMemberDao meetingMemberDao;
>         @Autowired
>         private TimezoneUtil timezoneUtil;
> +       @Autowired
> +       private InvitationDao invitationDao;
>
>         /**
>          * This can be either an internal or an external user, internal
> users have a
> @@ -178,7 +181,7 @@ public class MeetingMemberLogic {
>                         // Setting InvitationId within MeetingMember
>
>                         if (invitationId != null) {
> -                               Invitations invi = invitationManager
> +                               Invitations invi = invitationDao
>
> .getInvitationbyId(invitationId);
>
>                                 member.setInvitation(invi);
> @@ -266,7 +269,7 @@ public class MeetingMemberLogic {
>                         // Setting InvitationId within MeetingMember
>
>                         if (invitationId != null) {
> -                               Invitations invi = invitationManager
> +                               Invitations invi = invitationDao
>
> .getInvitationbyId(invitationId);
>
>                                 member.setInvitation(invi);
>
> Modified:
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java
> URL:
> http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java?rev=1510879&r1=1510878&r2=1510879&view=diff
>
> ==============================================================================
> ---
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java
> (original)
> +++
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/InvitationManager.java
> Tue Aug  6 08:17:06 2013
> @@ -23,15 +23,9 @@ import static org.apache.openmeetings.pe
>  import java.util.Calendar;
>  import java.util.Date;
>  import java.util.HashMap;
> -import java.util.List;
>  import java.util.TimeZone;
>  import java.util.Vector;
>
> -import javax.persistence.EntityManager;
> -import javax.persistence.NoResultException;
> -import javax.persistence.PersistenceContext;
> -import javax.persistence.TypedQuery;
> -
>  import org.apache.openmeetings.OpenmeetingsVariables;
>  import org.apache.openmeetings.data.basic.AuthLevelUtil;
>  import org.apache.openmeetings.data.basic.FieldManager;
> @@ -39,6 +33,7 @@ import org.apache.openmeetings.data.basi
>  import org.apache.openmeetings.data.basic.dao.OmTimeZoneDao;
>  import org.apache.openmeetings.data.calendar.daos.AppointmentDao;
>  import org.apache.openmeetings.data.calendar.management.AppointmentLogic;
> +import org.apache.openmeetings.data.conference.dao.InvitationDao;
>  import org.apache.openmeetings.data.conference.dao.RoomDao;
>  import org.apache.openmeetings.data.user.UserManager;
>  import org.apache.openmeetings.data.user.dao.UsersDao;
> @@ -74,8 +69,8 @@ public class InvitationManager {
>         private static final Logger log = Red5LoggerFactory.getLogger(
>                         InvitationManager.class,
> OpenmeetingsVariables.webAppRootKey);
>
> -       @PersistenceContext
> -       private EntityManager em;
> +       @Autowired
> +       private InvitationDao invitationDao;
>         @Autowired
>         private AppointmentLogic appointmentLogic;
>         @Autowired
> @@ -187,7 +182,7 @@ public class InvitationManager {
>                                 invitation.setStarttime(new Date());
>                                 invitation.setAppointmentId(appointmentId);
>
> -                               invitation = em.merge(invitation);
> +                               invitation =
> invitationDao.updateInvitation(invitation);
>                                 long invitationId =
> invitation.getInvitations_id();
>
>                                 invitation.setInvitations_id(invitationId);
> @@ -283,7 +278,7 @@ public class InvitationManager {
>                         invitation.setStarttime(new Date());
>
> invitation.setAppointmentId(appointment.getAppointmentId());
>
> -                       invitation = em.merge(invitation);
> +                       invitation =
> invitationDao.updateInvitation(invitation);
>                         long invitationId = invitation.getInvitations_id();
>
>                         invitation.setInvitations_id(invitationId);
> @@ -315,7 +310,7 @@ public class InvitationManager {
>          */
>         //
> -----------------------------------------------------------------------------------------------
>         public void cancelInvitation(Appointment appointment,
> MeetingMember member,
> -                       Long canceling_user_id, Long language_id) {
> +                       Long canceling_user_id, Long language_id) throws
> Exception {
>
>                 log.debug("cancelInvitation");
>
> @@ -377,7 +372,8 @@ public class InvitationManager {
>
>                 if (inv != null) {
>                         inv.setDeleted(true);
> -                       updateInvitation(inv);
> +                       //updateInvitation(inv);
> +                       invitationDao.updateInvitation(inv);
>                 }
>
>         }
> @@ -674,7 +670,7 @@ public class InvitationManager {
>                                 invitation.setStarttime(new Date());
>                                 invitation.setAppointmentId(appointmentId);
>
> -                               invitation = em.merge(invitation);
> +                               invitation =
> invitationDao.updateInvitation(invitation);
>                                 long invitationId =
> invitation.getInvitations_id();
>
>                                 if (invitationId > 0) {
> @@ -761,7 +757,7 @@ public class InvitationManager {
>                         invitation.setStarttime(new Date());
>
> invitation.setAppointmentId(appointment.getAppointmentId());
>
> -                       invitation = em.merge(invitation);
> +                       invitation =
> invitationDao.updateInvitation(invitation);
>                         long invitationId = invitation.getInvitations_id();
>
>                         if (invitationId > 0) {
> @@ -1187,60 +1183,6 @@ public class InvitationManager {
>                 return null;
>         }
>
> -       /**
> -        * @author becherer
> -        * @param invId
> -        *
> -        */
> -       public Invitations getInvitationbyId(Long invId) {
> -               log.debug("getInvitationbyId");
> -
> -               try {
> -                       String hql = "select invi from Invitations invi "
> -                                       + "WHERE invi.deleted <> :deleted "
> -                                       + "AND invi.invitations_id =
> :invid";
> -
> -                       TypedQuery<Invitations> query =
> em.createQuery(hql, Invitations.class);
> -                       query.setParameter("deleted", true);
> -                       query.setParameter("invid", invId);
> -
> -                       Invitations inv = null;
> -                       try {
> -                               inv = query.getSingleResult();
> -                       } catch (NoResultException ex) {
> -                       }
> -
> -                       return inv;
> -               } catch (Exception e) {
> -                       log.error("getInvitationsbyId : ", e);
> -                       return null;
> -               }
> -       }
> -
> -       public Invitations getInvitationbyAppointementId(Long invId) {
> -               log.debug("getInvitationbyId");
> -
> -               try {
> -                       String hql = "select invi from Invitations invi "
> -                                       + "WHERE invi.deleted <> :deleted "
> -                                       + "AND invi.invitations_id =
> :invid";
> -
> -                       TypedQuery<Invitations> query =
> em.createQuery(hql, Invitations.class);
> -                       query.setParameter("deleted", true);
> -                       query.setParameter("invid", invId);
> -
> -                       Invitations inv = null;
> -                       try {
> -                               inv = query.getSingleResult();
> -                       } catch (NoResultException ex) {
> -                       }
> -
> -                       return inv;
> -               } catch (Exception e) {
> -                       log.error("getInvitationsbyId : ", e);
> -                       return null;
> -               }
> -       }
>
>         /**
>          *
> @@ -1250,17 +1192,7 @@ public class InvitationManager {
>          */
>         public Object getInvitationByHashCode(String hashCode, boolean
> hidePass) {
>                 try {
> -                       String hql = "select c from Invitations as c "
> -                                       + "where c.hash LIKE :hashCode "
> -                                       + "AND c.deleted = :deleted";
> -                       TypedQuery<Invitations> query =
> em.createQuery(hql, Invitations.class);
> -                       query.setParameter("hashCode", hashCode);
> -                       query.setParameter("deleted", false);
> -                       Invitations invitation = null;
> -                       try {
> -                               invitation = query.getSingleResult();
> -                       } catch (NoResultException ex) {
> -                       }
> +                       Invitations invitation =
> invitationDao.getInvitationByHashCode(hashCode, hidePass);
>
>                         if (invitation == null) {
>                                 // already deleted or does not exist
> @@ -1280,7 +1212,7 @@ public class InvitationManager {
>                                                         // set to true if
> this is the first time / a normal
>                                                         //
> getInvitation-Query
>
> invitation.setInvitationWasUsed(true);
> -
> this.updateInvitation(invitation);
> +
> invitationDao.updateInvitation(invitation);
>                                                         //
> invitation.setInvitationpass(null);
>
> invitation.setAllowEntry(true);
>                                                         return invitation;
> @@ -1301,7 +1233,7 @@ public class InvitationManager {
>                                         Calendar end =
> Calendar.getInstance(TimeZone.getTimeZone(tz.getIcal()));
>
> end.setTime(invitation.getValidTo());
>                                         if (now.after(start) &&
> now.before(end)) {
> -
> this.updateInvitation(invitation);
> +
> invitationDao.updateInvitation(invitation);
>                                                 //
> invitation.setInvitationpass(null);
>
> invitation.setAllowEntry(true);
>                                                 return invitation;
> @@ -1318,7 +1250,7 @@ public class InvitationManager {
>                                         }
>                                 } else {
>                                         // Invitation is not limited,
> neither time nor single-usage
> -                                       this.updateInvitation(invitation);
> +
> invitationDao.updateInvitation(invitation);
>
>                                         invitation.setAllowEntry(true);
>                                         //
> invitation.setInvitationpass(null);
> @@ -1334,25 +1266,6 @@ public class InvitationManager {
>
>         /**
>          *
> -        * @param invitation
> -        */
> -       public void updateInvitation(Invitations invitation) {
> -               try {
> -                       invitation.setUpdatetime(new Date());
> -                       if (invitation.getInvitations_id() == null) {
> -                               em.persist(invitation);
> -                       } else {
> -                               if (!em.contains(invitation)) {
> -                                       em.merge(invitation);
> -                               }
> -                       }
> -               } catch (Exception ex2) {
> -                       log.error("[selectMaxFromUsers] ", ex2);
> -               }
> -       }
> -
> -       /**
> -        *
>          * @param hashCode
>          * @param pass
>          * @return
> @@ -1383,35 +1296,5 @@ public class InvitationManager {
>                 return new Long(-1);
>         }
>
> -       public void updateInvitationByAppointment(Long appointmentId,
> -                       Date appointmentstart, Date appointmentend) {
> -               try {
> -
> -                       Date gmtTimeStartShifted = new
> Date(appointmentstart.getTime()
> -                                       - (5 * 60 * 1000));
> -
> -                       String hql = "select a from Invitations a "
> -                                       + "WHERE a.appointmentId =
> :appointmentId  ";
> -
> -                       TypedQuery<Invitations> query =
> em.createQuery(hql, Invitations.class);
> -                       query.setParameter("appointmentId", appointmentId);
> -
> -                       List<Invitations> listInvitations =
> query.getResultList();
> -
> -                       for (Invitations inv : listInvitations) {
> -                               inv.setValidFrom(gmtTimeStartShifted);
> -                               inv.setValidTo(appointmentend);
> -                               if (inv.getInvitations_id() == null) {
> -                                       em.persist(inv);
> -                               } else {
> -                                       if (!em.contains(inv)) {
> -                                               em.merge(inv);
> -                                       }
> -                               }
> -                       }
> -
> -               } catch (Exception err) {
> -
> -               }
> -       }
> +
>  }
>
> Added:
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java
> URL:
> http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java?rev=1510879&view=auto
>
> ==============================================================================
> ---
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java
> (added)
> +++
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/conference/dao/InvitationDao.java
> Tue Aug  6 08:17:06 2013
> @@ -0,0 +1,121 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one
> + * or more contributor license agreements.  See the NOTICE file
> + * distributed with this work for additional information
> + * regarding copyright ownership.  The ASF licenses this file
> + * to you under the Apache License, Version 2.0 (the
> + * "License") +  you may not use this file except in compliance
> + * with the License.  You may obtain a copy of the License at
> + *
> + *   http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing,
> + * software distributed under the License is distributed on an
> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> + * KIND, either express or implied.  See the License for the
> + * specific language governing permissions and limitations
> + * under the License.
> + */
> +package org.apache.openmeetings.data.conference.dao;
> +
> +import java.util.Date;
> +import java.util.List;
> +
> +import javax.persistence.EntityManager;
> +import javax.persistence.NoResultException;
> +import javax.persistence.PersistenceContext;
> +import javax.persistence.TypedQuery;
> +
> +import org.apache.openmeetings.OpenmeetingsVariables;
> +import org.apache.openmeetings.persistence.beans.invitation.Invitations;
> +import org.red5.logging.Red5LoggerFactory;
> +import org.slf4j.Logger;
> +import org.springframework.transaction.annotation.Transactional;
> +
> +@Transactional
> +public class InvitationDao {
> +
> +       private static final Logger log = Red5LoggerFactory.getLogger(
> +                       InvitationDao.class,
> OpenmeetingsVariables.webAppRootKey);
> +
> +       @PersistenceContext
> +       private EntityManager em;
> +
> +       public Invitations updateInvitation(Invitations invitation) throws
> Exception {
> +               invitation.setUpdatetime(new Date());
> +               if (invitation.getInvitations_id() == null) {
> +                       em.persist(invitation);
> +                       return invitation;
> +               } else {
> +                       if (!em.contains(invitation)) {
> +                               return em.merge(invitation);
> +                       }
> +               }
> +               return null;
> +       }
> +
> +       public Invitations getInvitationbyId(Long invId) {
> +               try {
> +
> +                       TypedQuery<Invitations> query =
> em.createNamedQuery("getInvitationbyId", Invitations.class);
> +                       query.setParameter("deleted", true);
> +                       query.setParameter("invid", invId);
> +
> +                       try {
> +                               return query.getSingleResult();
> +                       } catch (NoResultException ex) {
> +                       }
> +
> +               } catch (Exception e) {
> +                       log.error("getInvitationbyId : ", e);
> +               }
> +               return null;
> +       }
> +
> +       public Invitations getInvitationByHashCode(String hashCode,
> boolean hidePass) {
> +               try {
> +
> +                       TypedQuery<Invitations> query =
> em.createNamedQuery("getInvitationByHashCode", Invitations.class);
> +                       query.setParameter("hashCode", hashCode);
> +                       query.setParameter("deleted", false);
> +
> +                       try {
> +                               return query.getSingleResult();
> +                       } catch (NoResultException ex) {
> +                       }
> +
> +               } catch (Exception e) {
> +                       log.error("getInvitationbyAppointementId : ", e);
> +               }
> +               return null;
> +       }
> +
> +       public void updateInvitationByAppointment(Long appointmentId,
> +                       Date appointmentstart, Date appointmentend) {
> +               try {
> +
> +                       Date gmtTimeStartShifted = new
> Date(appointmentstart.getTime()
> +                                       - (5 * 60 * 1000));
> +
> +                       TypedQuery<Invitations> query =
> em.createNamedQuery("getInvitationByAppointment", Invitations.class);
> +                       query.setParameter("appointmentId", appointmentId);
> +
> +                       List<Invitations> listInvitations =
> query.getResultList();
> +
> +                       for (Invitations inv : listInvitations) {
> +                               inv.setValidFrom(gmtTimeStartShifted);
> +                               inv.setValidTo(appointmentend);
> +                               if (inv.getInvitations_id() == null) {
> +                                       em.persist(inv);
> +                               } else {
> +                                       if (!em.contains(inv)) {
> +                                               em.merge(inv);
> +                                       }
> +                               }
> +                       }
> +
> +               } catch (Exception err) {
> +                       log.error("updateInvitationByAppointment : ", err);
> +               }
> +       }
> +}
>
> Modified:
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
> URL:
> http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java?rev=1510879&r1=1510878&r2=1510879&view=diff
>
> ==============================================================================
> ---
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
> (original)
> +++
> openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/invitation/Invitations.java
> Tue Aug  6 08:17:06 2013
> @@ -29,6 +29,8 @@ import javax.persistence.GenerationType;
>  import javax.persistence.Id;
>  import javax.persistence.JoinColumn;
>  import javax.persistence.ManyToOne;
> +import javax.persistence.NamedQueries;
> +import javax.persistence.NamedQuery;
>  import javax.persistence.Table;
>
>  import org.apache.openjpa.persistence.jdbc.ForeignKey;
> @@ -37,6 +39,16 @@ import org.apache.openmeetings.persisten
>  import org.apache.openmeetings.persistence.beans.user.User;
>
>  @Entity
> +@NamedQueries({
> +       @NamedQuery(name = "getInvitationbyId", query = "select invi from
> Invitations invi "
> +                                       + "WHERE invi.deleted <> :deleted "
> +                                       + "AND invi.invitations_id =
> :invid"),
> +       @NamedQuery(name = "getInvitationByHashCode", query = "select c
> from Invitations as c "
> +                                       + "where c.hash LIKE :hashCode "
> +                                       + "AND c.deleted = :deleted"),
> +       @NamedQuery(name = "getInvitationByAppointment", query = "select a
> from Invitations a "
> +                                       + "WHERE a.appointmentId =
> :appointmentId  ")
> +})
>  @Table(name = "invitations")
>  public class Invitations implements Serializable {
>         private static final long serialVersionUID = 1153321347974705506L;
>
>
>


-- 
WBR
Maxim aka solomax