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