Repository: openmeetings
Updated Branches:
  refs/heads/master 7f482a049 -> 84a5c2f7f


[OPENMEETINGS-1714] more work on duplicate removing


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/a54e5b7d
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/a54e5b7d
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/a54e5b7d

Branch: refs/heads/master
Commit: a54e5b7d54a5106337a3981fd26b4d6abec35643
Parents: 7f482a0
Author: Maxim Solodovnik <[email protected]>
Authored: Thu Oct 12 21:50:12 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Thu Oct 12 21:50:12 2017 +0700

----------------------------------------------------------------------
 .../db/dao/basic/MailMessageDao.java            |  5 +-
 .../db/dao/calendar/OmCalendarDao.java          |  4 +-
 .../openmeetings/db/dao/room/RoomDao.java       |  7 ++
 .../openmeetings/db/dao/room/RoomGroupDao.java  | 63 ------------------
 .../db/dao/room/RoomModeratorDao.java           | 68 --------------------
 .../openmeetings/db/dao/server/OAuth2Dao.java   |  3 +
 .../db/entity/HistoricalEntity.java             | 67 +++++++++++++++++++
 .../db/entity/basic/Configuration.java          | 41 +-----------
 .../db/entity/basic/MailMessage.java            | 28 +-------
 .../db/entity/calendar/Appointment.java         | 42 +-----------
 .../db/entity/calendar/MeetingMember.java       | 40 +-----------
 .../db/entity/calendar/OmCalendar.java          | 34 +++++-----
 .../db/entity/file/BaseFileItem.java            | 41 +-----------
 .../db/entity/record/RecordingMetaData.java     | 39 +----------
 .../openmeetings/db/entity/room/Invitation.java | 43 ++-----------
 .../openmeetings/db/entity/room/Room.java       | 45 ++-----------
 .../openmeetings/db/entity/room/RoomGroup.java  | 36 -----------
 .../db/entity/room/RoomModerator.java           | 30 ++-------
 .../db/entity/server/LdapConfig.java            | 39 +----------
 .../db/entity/server/OAuthServer.java           | 18 +-----
 .../openmeetings/db/entity/user/Group.java      | 42 +-----------
 .../openmeetings/db/entity/user/GroupUser.java  | 28 +-------
 .../openmeetings/db/entity/user/User.java       | 40 +-----------
 .../openmeetings/backup/BackupExport.java       |  5 +-
 .../openmeetings/backup/BackupImport.java       | 20 ++++--
 .../java/org/apache/openmeetings/cli/Admin.java |  2 +
 .../installation/ImportInitvalues.java          |  1 -
 .../src/site/stylesheets/errortable.xsl         | 11 +---
 .../src/site/stylesheets/errorvalues.xml        | 27 --------
 .../classes/META-INF/db2_persistence.xml        |  1 +
 .../classes/META-INF/derby_persistence.xml      |  1 +
 .../classes/META-INF/mssql_persistence.xml      |  1 +
 .../classes/META-INF/mysql_persistence.xml      |  1 +
 .../classes/META-INF/oracle_persistence.xml     |  1 +
 .../classes/META-INF/postgresql_persistence.xml |  1 +
 .../openmeetings/backup/TestOldBackups.java     |  5 +-
 .../calendar/TestGetAppointment.java            |  1 -
 37 files changed, 166 insertions(+), 715 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
index f995dc5..f876df0 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.db.dao.basic;
 
 import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 import javax.persistence.EntityManager;
@@ -109,10 +110,10 @@ public class MailMessageDao implements 
IDataProviderDao<MailMessage> {
        @Override
        public MailMessage update(MailMessage m, Long userId) {
                if (m.getId() == null) {
-                       m.setInserted(Calendar.getInstance());
+                       m.setInserted(new Date());
                        em.persist(m);
                } else {
-                       m.setUpdated(Calendar.getInstance());
+                       m.setUpdated(new Date());
                        m = em.merge(m);
                }
                return m;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
index c3cfb6d..018815a 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.db.dao.calendar;
 
+import java.util.Date;
 import java.util.List;
 
 import javax.persistence.EntityManager;
@@ -84,11 +85,12 @@ public class OmCalendarDao {
         */
        public OmCalendar update(OmCalendar c) {
                if (c.getId() == null) {
+                       c.setInserted(new Date());
                        em.persist(c);
                } else {
+                       c.setUpdated(new Date());
                        c = em.merge(c);
                }
-
                return c;
        }
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
index 747d571..ab05ec2 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
@@ -46,6 +46,7 @@ import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.db.entity.room.Room.Type;
 import org.apache.openmeetings.db.entity.room.RoomFile;
+import org.apache.openmeetings.db.entity.room.RoomGroup;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.DaoHelper;
 import org.red5.logging.Red5LoggerFactory;
@@ -314,8 +315,14 @@ public class RoomDao implements 
IGroupAdminDataProviderDao<Room> {
                return result;
        }
 
+       // Methods for backup export
        public List<RoomFile> getFiles() {
                return em.createQuery("SELECT rf FROM RoomFile rf", 
RoomFile.class)
                                .getResultList();
        }
+
+       public List<RoomGroup> getGroups() {
+               return em.createQuery("SELECT rg FROM RoomGroup rg", 
RoomGroup.class)
+                               .getResultList();
+       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomGroupDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomGroupDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomGroupDao.java
deleted file mode 100644
index 18a6a3f..0000000
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomGroupDao.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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.db.dao.room;
-
-import java.util.Date;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
-import org.apache.openmeetings.db.entity.room.RoomGroup;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-@Repository
-@Transactional
-public class RoomGroupDao {
-       @PersistenceContext
-       private EntityManager em;
-
-       public List<RoomGroup> get() {
-               return em.createNamedQuery("getAllRoomGroups", 
RoomGroup.class).getResultList();
-       }
-
-       /**
-        * @param entity to be updated
-        */
-       public RoomGroup update(RoomGroup entity) {
-               if (entity.getId() == null) {
-                       entity.setInserted(new Date());
-                       em.persist(entity);
-               } else {
-                       entity.setUpdated(new Date());
-                       entity = em.merge(entity);
-               }
-               return entity;
-       }
-
-       public RoomGroup get(long groupId, long roomId) {
-               List<RoomGroup> ll = 
em.createNamedQuery("getRoomGroupByGroupIdAndRoomId", RoomGroup.class)
-                               .setParameter("roomId", roomId)
-                               .setParameter("groupId", groupId)
-                               .getResultList();
-
-               return ll.isEmpty() ? null : ll.get(0);
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomModeratorDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomModeratorDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomModeratorDao.java
deleted file mode 100644
index f447dd5..0000000
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomModeratorDao.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.db.dao.room;
-
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-
-import org.apache.openmeetings.db.entity.room.RoomModerator;
-import org.springframework.stereotype.Repository;
-import org.springframework.transaction.annotation.Transactional;
-
-@Repository
-@Transactional
-public class RoomModeratorDao {
-       @PersistenceContext
-       private EntityManager em;
-
-       public RoomModerator get(long id) {
-               List<RoomModerator> list = 
em.createNamedQuery("getRoomModeratorById", RoomModerator.class)
-                               .setParameter("id", id).getResultList();
-               if (!list.isEmpty()) {
-                       return list.get(0);
-               }
-               return null;
-       }
-
-       public List<RoomModerator> get(Collection<Long> ids) {
-               return em.createNamedQuery("getRoomModeratorsByIds", 
RoomModerator.class).setParameter("ids", ids).getResultList();
-       }
-
-       public List<RoomModerator> getByRoomId(long roomId) {
-               return em.createNamedQuery("getRoomModeratorByRoomId", 
RoomModerator.class).setParameter("roomId", roomId).getResultList();
-       }
-
-       /**
-        * @param rm moderator to be updated
-        */
-       public RoomModerator update(RoomModerator rm) {
-               if (rm.getId() == null) {
-                       rm.setInserted(new Date());
-                       em.persist(rm);
-               } else {
-                       rm.setUpdated(new Date());
-                       rm = em.merge(rm);
-               }
-               return rm;
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
index 1c2ab37..b176960 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.db.dao.server;
 
+import java.util.Date;
 import java.util.List;
 
 import javax.persistence.EntityManager;
@@ -85,8 +86,10 @@ public class OAuth2Dao implements 
IDataProviderDao<OAuthServer> {
        @Override
        public OAuthServer update(OAuthServer server, Long userId) {
                if (server.getId() == null) {
+                       server.setInserted(new Date());
                        em.persist(server);
                } else {
+                       server.setUpdated(new Date());
                        server = em.merge(server);
                }
                return server;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java
new file mode 100644
index 0000000..1e4d3e7
--- /dev/null
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java
@@ -0,0 +1,67 @@
+/*
+ * 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.db.entity;
+
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.MappedSuperclass;
+
+import org.simpleframework.xml.Element;
+
+@MappedSuperclass
+public abstract class HistoricalEntity implements IDataProviderEntity {
+       private static final long serialVersionUID = 1L;
+
+       @Column(name = "inserted")
+       @Element(name = "created", data = true, required = false)
+       private Date inserted;
+
+       @Column(name = "updated")
+       @Element(name = "updated", data = true, required = false)
+       private Date updated;
+
+       @Column(name = "deleted", nullable = false)
+       @Element(data = true, required = false)
+       private boolean deleted;
+
+       public Date getInserted() {
+               return inserted;
+       }
+
+       public void setInserted(Date inserted) {
+               this.inserted = inserted;
+       }
+
+       public Date getUpdated() {
+               return updated;
+       }
+
+       public void setUpdated(Date updated) {
+               this.updated = updated;
+       }
+
+       public boolean isDeleted() {
+               return deleted;
+       }
+
+       public void setDeleted(boolean deleted) {
+               this.deleted = deleted;
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
index 2e36c3b..3fc1448 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
@@ -20,8 +20,6 @@ package org.apache.openmeetings.db.entity.basic;
 
 import static java.lang.Boolean.TRUE;
 
-import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -36,7 +34,7 @@ import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
@@ -54,7 +52,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "configuration")
 @Root(name = "config")
-public class Configuration implements IDataProviderEntity {
+public class Configuration extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        public enum Type {
@@ -80,23 +78,12 @@ public class Configuration implements IDataProviderEntity {
        @Element(name = "value", data = true, required = false)
        private String value;
 
-       @Column(name = "inserted")
-       @Element(name = "created", data = true, required = false)
-       private Date inserted;
-
-       @Column(name = "updated")
-       @Element(name = "updated", data = true, required = false)
-       private Date updated;
 
        @Lob
        @Column(name = "comment", length = 2048)
        @Element(data = true, required = false)
        private String comment;
 
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true)
-       private boolean deleted;
-
        @Column(name = "fromVersion")
        @Element(data = true, required = false)
        private String fromVersion;
@@ -149,30 +136,6 @@ public class Configuration implements IDataProviderEntity {
                this.id = id;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public User getUser() {
                return user;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
index e77cd66..671a060 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.db.entity.basic;
 
-import java.util.Calendar;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EnumType;
@@ -32,7 +30,7 @@ import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 
 @Entity
 @NamedQueries({
@@ -44,7 +42,7 @@ import org.apache.openmeetings.db.entity.IDataProviderEntity;
        , @NamedQuery(name = "resetMailStatusById", query = "UPDATE MailMessage 
m SET m.errorCount = 0, m.status = :noneStatus WHERE m.id = :id")
 })
 @Table(name = "email_queue")
-public class MailMessage implements IDataProviderEntity {
+public class MailMessage extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        public enum Status {
@@ -78,12 +76,6 @@ public class MailMessage implements IDataProviderEntity {
        @Enumerated(EnumType.STRING)
        private Status status = Status.NONE;
 
-       @Column(name = "inserted")
-       private Calendar inserted;
-
-       @Column(name = "updated")
-       private Calendar updated;
-
        @Column(name = "error_count", nullable = false)
        private int errorCount = 0;
 
@@ -157,22 +149,6 @@ public class MailMessage implements IDataProviderEntity {
                this.status = status;
        }
 
-       public Calendar getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Calendar inserted) {
-               this.inserted = inserted;
-       }
-
-       public Calendar getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Calendar updated) {
-               this.updated = updated;
-       }
-
        public byte[] getIcs() {
                return ics;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
index a010e6d..d3abe05 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
@@ -41,7 +41,7 @@ import javax.persistence.OneToMany;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
@@ -118,7 +118,7 @@ import org.simpleframework.xml.Root;
                query = "UPDATE Appointment a SET a.deleted = true WHERE 
a.calendar.id = :calId")
 })
 @Root(name = "appointment")
-public class Appointment implements IDataProviderEntity {
+public class Appointment extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        public static final int REMINDER_NONE_ID = 1;
        public static final int REMINDER_EMAIL_ID = 2;
@@ -194,18 +194,6 @@ public class Appointment implements IDataProviderEntity {
        @Element(name = "users_id", data = true, required = false)
        private User owner;
 
-       @Column(name = "inserted")
-       @Element(name = "inserted", data = true, required = false)
-       private Date inserted;
-
-       @Column(name = "updated")
-       @Element(name = "updated", data = true, required = false)
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true)
-       private boolean deleted;
-
        @Column(name = "reminder")
        @Enumerated(EnumType.STRING)
        @Element(name = "typId", data = true, required = false)
@@ -353,30 +341,6 @@ public class Appointment implements IDataProviderEntity {
                this.reminder = reminder;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public Boolean getIsWeekly() {
                return isWeekly;
        }
@@ -500,6 +464,6 @@ public class Appointment implements IDataProviderEntity {
        @Override
        public String toString() {
                return "Appointment [id=" + id + ", title=" + title + ", 
start=" + start + ", end=" + end + ", owner=" + owner
-                               + ", deleted=" + deleted + ", icalId=" + icalId 
+ ", calendar=" + calendar + ", href=" + href + ", etag=" + etag + "]";
+                               + ", deleted=" + isDeleted() + ", icalId=" + 
icalId + ", calendar=" + calendar + ", href=" + href + ", etag=" + etag + "]";
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
index c8b22a1..4dfce4e 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.db.entity.calendar;
 
-import java.util.Date;
-
 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
@@ -35,7 +33,7 @@ import javax.persistence.OneToOne;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
@@ -51,7 +49,7 @@ import org.simpleframework.xml.Root;
                        , query="SELECT mm.id FROM MeetingMember mm WHERE 
mm.deleted = false AND mm.appointment.id = :id")
 })
 @Root(name = "meetingmember")
-public class MeetingMember implements IDataProviderEntity {
+public class MeetingMember extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -75,16 +73,6 @@ public class MeetingMember implements IDataProviderEntity {
        @Element(data = true, required = false)
        private String appointmentStatus; // status of the appointment denial, 
acceptance, wait.
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true)
-       private boolean deleted;
-
        @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
        @JoinColumn(name = "invitation_id", nullable = true)
        @ForeignKey(enabled = true)
@@ -135,30 +123,6 @@ public class MeetingMember implements IDataProviderEntity {
                this.invitation = invitation;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public boolean isConnectedEvent() {
                return connectedEvent;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
index c1729af..f7e7bae 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
@@ -18,14 +18,26 @@
  */
 package org.apache.openmeetings.db.entity.calendar;
 
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import javax.persistence.FetchType;
+import javax.persistence.GeneratedValue;
+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;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
-import javax.persistence.*;
-
 @Entity
 @Table(name = "om_calendar")
 @NamedQueries({
@@ -48,7 +60,7 @@ import javax.persistence.*;
                                + "     AND a.owner.id = :userId AND 
a.calendar.id = :calId  "),
                @NamedQuery(name = "getCalendarbyId", query = "SELECT c FROM 
OmCalendar c WHERE c.deleted = false AND c.id = :calId") })
 @Root(name = "calendar")
-public class OmCalendar implements IDataProviderEntity {
+public class OmCalendar extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        public enum SyncType {
@@ -75,10 +87,6 @@ public class OmCalendar implements IDataProviderEntity {
        @Element(name = "token", data = true, required = false)
        private String token;
 
-       @Column(name = "deleted", nullable = false)
-       @Element(name = "deleted", data = true)
-       private boolean deleted;
-
        @Column(name = "sync_type")
        @Enumerated(EnumType.STRING)
        @Element(name = "syncType", data = true)
@@ -125,14 +133,6 @@ public class OmCalendar implements IDataProviderEntity {
                this.token = token;
        }
 
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public SyncType getSyncType() {
                return syncType;
        }
@@ -152,6 +152,6 @@ public class OmCalendar implements IDataProviderEntity {
        @Override
        public String toString() {
                return "Calendar [ id=" + id + ", title=" + title + ", token=" 
+ token + ", href=" + href + ", SyncType="
-                               + syncType + ", deleted=" + deleted + ", 
owner=" + owner + " ]";
+                               + syncType + ", deleted=" + isDeleted() + ", 
owner=" + owner + " ]";
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
index bf24fae..7342c6a 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
@@ -30,7 +30,6 @@ import static 
org.apache.openmeetings.util.OmFileHelper.getUploadFilesDir;
 import static org.apache.openmeetings.util.OmFileHelper.getUploadWmlDir;
 
 import java.io.File;
-import java.util.Date;
 import java.util.List;
 
 import javax.persistence.Column;
@@ -48,7 +47,7 @@ import javax.persistence.Table;
 import javax.persistence.Transient;
 import javax.xml.bind.annotation.XmlType;
 
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.simpleframework.xml.Element;
 
 @Entity
@@ -67,7 +66,7 @@ import org.simpleframework.xml.Element;
 })
 @Table(name = "file")
 @Inheritance(strategy = InheritanceType.SINGLE_TABLE)
-public abstract class BaseFileItem implements IDataProviderEntity {
+public abstract class BaseFileItem extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        @XmlType(namespace = "org.apache.openmeetings.file")
@@ -107,18 +106,6 @@ public abstract class BaseFileItem implements 
IDataProviderEntity {
        @Element(data = true, required = false)
        private Long insertedBy;
 
-       @Column(name = "inserted")
-       @Element(data = true, required = false)
-       private Date inserted;
-
-       @Column(name = "updated")
-       @Element(data = true, required = false)
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true)
-       private boolean deleted;
-
        @Column(name = "width")
        @Element(data = true, required = false)
        private Integer width;
@@ -205,30 +192,6 @@ public abstract class BaseFileItem implements 
IDataProviderEntity {
                this.insertedBy = insertedBy;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public Integer getWidth() {
                return width;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingMetaData.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingMetaData.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingMetaData.java
index 6865cd2..5730b9b 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingMetaData.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingMetaData.java
@@ -36,7 +36,7 @@ import javax.persistence.Table;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
@@ -60,7 +60,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "recording_metadata")
 @Root(name = "flvrecordingmetadata")
-public class RecordingMetaData implements IDataProviderEntity {
+public class RecordingMetaData extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        @XmlType(namespace="org.apache.openmeetings.record.meta")
        public enum Status {
@@ -113,17 +113,6 @@ public class RecordingMetaData implements 
IDataProviderEntity {
        @Element(data = true, required = false)
        private Long insertedBy;
 
-       @Column(name = "inserted")
-       @Element(data = true)
-       private Date inserted;
-
-       @Column(name = "updated")
-       @Element(data = true, required = false)
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       private boolean deleted;
-
        @Column(name = "wav_audio_data")
        @Element(data = true, required = false)
        private String wavAudioData;
@@ -214,30 +203,6 @@ public class RecordingMetaData implements 
IDataProviderEntity {
                this.insertedBy = insertedBy;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
        public boolean isScreenData() {
                return screenData;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
index bd002aa..e82700f 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
@@ -37,7 +37,7 @@ import javax.persistence.Table;
 import javax.persistence.Transient;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.User;
@@ -49,7 +49,7 @@ import org.apache.openmeetings.db.entity.user.User;
        @NamedQuery(name = "getInvitationByAppointment", query = "SELECT i FROM 
Invitation i WHERE i.appointment.id = :appointmentId  ")
 })
 @Table(name = "invitation")
-public class Invitation implements IDataProviderEntity {
+public class Invitation extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        public enum MessageType {
@@ -78,15 +78,6 @@ public class Invitation implements IDataProviderEntity {
        @ForeignKey(enabled = true)
        private User invitedBy;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       private boolean deleted;
-
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "room_id", nullable = true)
        @ForeignKey(enabled = true)
@@ -143,9 +134,9 @@ public class Invitation implements IDataProviderEntity {
        public Invitation(Invitation i) {
                id = i.id;
                invitedBy = i.invitedBy;
-               inserted = i.inserted;
-               updated = i.updated;
-               deleted = i.deleted;
+               setInserted(i.getInserted());
+               setUpdated(i.getUpdated());
+               setDeleted(i.isDeleted());
                room = i.room;
                recording = i.recording;
                hash = i.hash;
@@ -193,30 +184,6 @@ public class Invitation implements IDataProviderEntity {
                this.invitedBy = invitedBy;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public String getHash() {
                return hash;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
index 4da21d5..48a3614 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.db.entity.room;
 
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -52,7 +51,7 @@ import org.apache.openjpa.persistence.FetchAttribute;
 import org.apache.openjpa.persistence.FetchGroup;
 import org.apache.openjpa.persistence.FetchGroups;
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.ElementList;
 import org.simpleframework.xml.Root;
@@ -79,15 +78,15 @@ import org.simpleframework.xml.Root;
        @NamedQuery(name = "countRooms", query = "SELECT COUNT(r) FROM Room r 
WHERE r.deleted = false"),
        @NamedQuery(name = "getBackupRooms", query = "SELECT r FROM Room r 
ORDER BY r.id"),
        @NamedQuery(name = "getRoomsCapacityByIds", query = "SELECT 
SUM(r.capacity) FROM Room r WHERE r.deleted = false AND r.id IN :ids")
-       , @NamedQuery(name = "getGroupRooms", query = "SELECT DISTINCT r.room 
FROM RoomGroup r LEFT JOIN FETCH r.room "
-                       + "WHERE r.group.id = :groupId AND r.deleted = false 
AND r.room.deleted = false AND r.room.appointment = false "
-                       + "AND r.group.deleted = false ORDER BY r.room.name 
ASC")
+       , @NamedQuery(name = "getGroupRooms", query = "SELECT DISTINCT rg.room 
FROM RoomGroup rg LEFT JOIN FETCH rg.room "
+                       + "WHERE rg.group.id = :groupId AND rg.room.deleted = 
false AND rg.room.appointment = false "
+                       + "ORDER BY rg.room.name ASC")
 })
 @Table(name = "room")
 @Root(name = "room")
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
-public class Room implements IDataProviderEntity {
+public class Room extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        public static final int CONFERENCE_TYPE_ID = 1;
        public static final int PRESENTATION_TYPE_ID = 3;
@@ -177,16 +176,6 @@ public class Room implements IDataProviderEntity {
        @Element(name = "roomtypeId", data = true, required = false)
        private Type type = Type.conference;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true)
-       private boolean deleted;
-
        @Column(name = "ispublic", nullable = false)
        @Element(name = "ispublic", data = true, required = false)
        private boolean ispublic;
@@ -344,30 +333,6 @@ public class Room implements IDataProviderEntity {
                this.type = type;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public boolean getIspublic() {
                return ispublic;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
index feb4625..ec9c655 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.db.entity.room;
 
-import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -83,16 +81,6 @@ public class RoomGroup implements IDataProviderEntity {
        @Element(name = "organisation_id", data = true, required = false)
        private Group group;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true)
-       private boolean deleted;
-
        public RoomGroup() {
                //def constructor
        }
@@ -127,28 +115,4 @@ public class RoomGroup implements IDataProviderEntity {
        public void setId(Long id) {
                this.id = id;
        }
-
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
index 20533e1..5a774fe 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
@@ -18,9 +18,6 @@
  */
 package org.apache.openmeetings.db.entity.room;
 
-import java.io.Serializable;
-import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -34,6 +31,7 @@ import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
@@ -48,7 +46,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "room_moderator")
 @Root(name = "room_moderator")
-public class RoomModerator implements Serializable {
+public class RoomModerator extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        @Id
@@ -69,16 +67,12 @@ public class RoomModerator implements Serializable {
        @Element(name = "user_id", data = true, required = false)
        private User user;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
+       @Override
        public Long getId() {
                return id;
        }
 
+       @Override
        public void setId(Long id) {
                this.id = id;
        }
@@ -99,22 +93,6 @@ public class RoomModerator implements Serializable {
                this.user = user;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
        public Long getRoomId() {
                return roomId;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
index 3b514ed..7b467f4 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.db.entity.server;
 
-import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -34,7 +32,7 @@ import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.user.User;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
@@ -48,7 +46,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "ldapconfig")
 @Root(name="ldapconfig")
-public class LdapConfig implements IDataProviderEntity {
+public class LdapConfig extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -75,12 +73,6 @@ public class LdapConfig implements IDataProviderEntity {
        @Element(data = true, name = "isActive")
        private boolean active;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
        @ManyToOne(fetch = FetchType.EAGER)
        @JoinColumn(name = "insertedby_id", updatable = true, insertable = true)
        @ForeignKey(enabled = true)
@@ -91,9 +83,6 @@ public class LdapConfig implements IDataProviderEntity {
        @ForeignKey(enabled = true)
        private User updatedby;
 
-       @Column(name = "deleted", nullable = false)
-       private boolean deleted;
-
        @Lob
        @Column(name = "comment", length = 2048)
        @Element(data = true, required = false)
@@ -149,22 +138,6 @@ public class LdapConfig implements IDataProviderEntity {
                this.active = active;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
        public User getInsertedby() {
                return insertedby;
        }
@@ -181,14 +154,6 @@ public class LdapConfig implements IDataProviderEntity {
                this.updatedby = updatedby;
        }
 
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public String getComment() {
                return comment;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
index 67f1ab5..6c45e50 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
@@ -29,7 +29,7 @@ import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
@@ -41,7 +41,7 @@ import org.simpleframework.xml.Root;
                @NamedQuery(name = "getAllOAuthServers", query = "SELECT s FROM 
OAuthServer s WHERE s.deleted = false ORDER BY s.id"),
                @NamedQuery(name = "countOAuthServers", query = "select 
count(s) from OAuthServer s WHERE s.deleted = false") })
 @Root
-public class OAuthServer implements IDataProviderEntity {
+public class OAuthServer extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        @Id
@@ -107,10 +107,6 @@ public class OAuthServer implements IDataProviderEntity {
        @Element(data = true, required = false)
        private String lastnameParamName;
 
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true)
-       private boolean deleted;
-
        @Override
        public Long getId() {
                return id;
@@ -233,14 +229,6 @@ public class OAuthServer implements IDataProviderEntity {
                this.lastnameParamName = lastnameParamName;
        }
 
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        @Override
        public String toString() {
                return "OAuthServer [id=" + id + ", name=" + name + ", 
iconUrl=" + iconUrl + ", enabled=" + enabled
@@ -248,7 +236,7 @@ public class OAuthServer implements IDataProviderEntity {
                                + ", requestTokenUrl=" + requestTokenUrl + ", 
requestTokenAttributes=" + requestTokenAttributes
                                + ", requestTokenMethod=" + requestTokenMethod 
+ ", requestInfoUrl=" + requestInfoUrl
                                + ", loginParamName=" + loginParamName + ", 
emailParamName=" + emailParamName + ", firstnameParamName="
-                               + firstnameParamName + ", lastnameParamName=" + 
lastnameParamName + ", deleted=" + deleted + "]";
+                               + firstnameParamName + ", lastnameParamName=" + 
lastnameParamName + ", deleted=" + isDeleted() + "]";
        }
 
        public enum RequestMethod {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
index d0d0d3b..13d48da 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.db.entity.user;
 
-import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
@@ -29,7 +27,7 @@ import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
@@ -45,7 +43,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "om_group")
 @Root(name = "organisation")
-public class Group implements IDataProviderEntity {
+public class Group extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
 
        @Id
@@ -64,16 +62,6 @@ public class Group implements IDataProviderEntity {
        @Column(name = "updatedby")
        private Long updatedby;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true, required = false)
-       private boolean deleted;
-
        @Column(name = "tag")
        @Element(data = true, required = false)
        private String tag;
@@ -140,30 +128,6 @@ public class Group implements IDataProviderEntity {
                this.updatedby = updatedby;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public String getTag() {
                return tag;
        }
@@ -230,6 +194,6 @@ public class Group implements IDataProviderEntity {
 
        @Override
        public String toString() {
-               return "Group [id=" + id + ", name=" + name + ", deleted=" + 
deleted + "]";
+               return "Group [id=" + id + ", name=" + name + ", deleted=" + 
isDeleted() + "]";
        }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
index c9f2339..f2c0830 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
@@ -18,8 +18,6 @@
  */
 package org.apache.openmeetings.db.entity.user;
 
-import java.util.Date;
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
@@ -33,7 +31,7 @@ import javax.persistence.NamedQuery;
 import javax.persistence.Table;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.simpleframework.xml.Element;
 import org.simpleframework.xml.Root;
 
@@ -47,7 +45,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "group_user")
 @Root(name="user_organisation")
-public class GroupUser implements IDataProviderEntity {
+public class GroupUser extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
@@ -65,12 +63,6 @@ public class GroupUser implements IDataProviderEntity {
        @ForeignKey(enabled = true)
        private User user;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
        @Column(name = "is_moderator", nullable = false)
        @Element(data = true, required = false)
        private boolean moderator;
@@ -102,22 +94,6 @@ public class GroupUser implements IDataProviderEntity {
                this.id = id;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
        public boolean isModerator() {
                return moderator;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
index 666a7a7..4a99a0e 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
@@ -56,7 +56,7 @@ import org.apache.openjpa.persistence.FetchGroups;
 import org.apache.openjpa.persistence.LoadFetchGroup;
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.entity.IDataProviderEntity;
+import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.openmeetings.util.crypt.MD5;
@@ -100,7 +100,7 @@ import org.simpleframework.xml.Root;
 })
 @Table(name = "om_user")
 @Root(name = "user")
-public class User implements IDataProviderEntity {
+public class User extends HistoricalEntity {
        private static final long serialVersionUID = 1L;
        public static final int SALUTATION_MR_ID = 1;
        public static final int SALUTATION_MS_ID = 2;
@@ -212,20 +212,10 @@ public class User implements IDataProviderEntity {
        @Element(name = "title_id", data = true, required = false)
        private Salutation salutation;
 
-       @Column(name = "inserted")
-       private Date inserted;
-
-       @Column(name = "updated")
-       private Date updated;
-
        @Column(name = "pictureuri")
        @Element(data = true, required = false)
        private String pictureuri;
 
-       @Column(name = "deleted", nullable = false)
-       @Element(data = true, required = false)
-       private boolean deleted;
-
        @Column(name = "language_id")
        @Element(name = "language_id", data = true, required = false)
        private long languageId;
@@ -428,30 +418,6 @@ public class User implements IDataProviderEntity {
                this.salutation = salutation;
        }
 
-       public Date getInserted() {
-               return inserted;
-       }
-
-       public void setInserted(Date inserted) {
-               this.inserted = inserted;
-       }
-
-       public Date getUpdated() {
-               return updated;
-       }
-
-       public void setUpdated(Date updated) {
-               this.updated = updated;
-       }
-
-       public boolean isDeleted() {
-               return deleted;
-       }
-
-       public void setDeleted(boolean deleted) {
-               this.deleted = deleted;
-       }
-
        public String getPictureuri() {
                return pictureuri;
        }
@@ -629,7 +595,7 @@ public class User implements IDataProviderEntity {
        public String toString() {
                return "User [id=" + id + ", firstname=" + firstname
                                + ", lastname=" + lastname + ", login=" + login
-                               + ", pictureuri=" + pictureuri + ", deleted=" + 
deleted
+                               + ", pictureuri=" + pictureuri + ", deleted=" + 
isDeleted()
                                + ", languageId=" + languageId + ", address=" + 
address
                                + ", externalId=" + externalId + ", 
externalType=" + externalType
                                + ", type=" + type + "]";

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
index b7a083b..82df8e4 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
@@ -60,7 +60,6 @@ import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.room.PollDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.room.RoomGroupDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
@@ -144,8 +143,6 @@ public class BackupExport {
        private GroupDao groupDao;
        @Autowired
        private RoomDao roomDao;
-       @Autowired
-       private RoomGroupDao roomGroupDao;
 
        public void performExport(File zip, boolean includeFiles, 
ProgressHolder progressHolder) throws Exception {
                if (zip.getParentFile() != null && 
!zip.getParentFile().exists()) {
@@ -245,7 +242,7 @@ public class BackupExport {
                registry.bind(Group.class, GroupConverter.class);
                registry.bind(Room.class, RoomConverter.class);
 
-               writeList(serializer, zos, "rooms_organisation.xml", 
"room_organisations", roomGroupDao.get());
+               writeList(serializer, zos, "rooms_organisation.xml", 
"room_organisations", roomDao.getGroups());
                progressHolder.setProgress(17);
        }
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index 55520bf..b43a91c 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@ -146,7 +146,6 @@ import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.room.PollDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.room.RoomGroupDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
@@ -317,8 +316,6 @@ public class BackupImport {
        private OAuth2Dao auth2Dao;
        @Autowired
        private GroupDao groupDao;
-       @Autowired
-       private RoomGroupDao roomGroupDao;
 
        private final Map<Long, Long> userMap = new HashMap<>();
        private final Map<Long, Long> groupMap = new HashMap<>();
@@ -596,11 +593,17 @@ public class BackupImport {
 
                List<RoomGroup> list = readList(serializer, f, 
"rooms_organisation.xml", "room_organisations", RoomGroup.class);
                for (RoomGroup ro : list) {
-                       if (!ro.isDeleted() && ro.getRoom() != null && 
ro.getRoom().getId() != null && ro.getGroup() != null && ro.getGroup().getId() 
!= null) {
-                               // We need to reset this as openJPA reject to 
store them otherwise
-                               ro.setId(null);
-                               roomGroupDao.update(ro);
+                       Room r = roomDao.get(ro.getRoom().getId());
+                       if (r == null || ro.getGroup() == null || 
ro.getGroup().getId() == null) {
+                               continue;
+                       }
+                       if (r.getGroups() == null) {
+                               r.setGroups(new ArrayList<>());
                        }
+                       ro.setId(null);
+                       ro.setRoom(r);
+                       r.getGroups().add(ro);
+                       roomDao.update(r, null);
                }
        }
 
@@ -898,6 +901,9 @@ public class BackupImport {
                List<RoomFile> list = readList(serializer, f, "roomFiles.xml", 
"RoomFiles", RoomFile.class, true);
                for (RoomFile rf : list) {
                        Room r = roomDao.get(roomMap.get(rf.getRoomId()));
+                       if (r == null || rf.getFile() == null || 
rf.getFile().getId() == null) {
+                               continue;
+                       }
                        if (r.getFiles() == null) {
                                r.setFiles(new ArrayList<>());
                        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java 
b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
index 96082c7..8b0d996 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
@@ -542,8 +542,10 @@ public class Admin {
                        a.process(args);
 
                        log("... Done");
+                       System.exit(0);
                } catch (ExitException e) {
                        a.handleError(e, false, false);
+                       System.exit(1);
                } catch (Exception e) {
                        _log.error("Unexpected error", e);
                        e.printStackTrace();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 6980ad2..fbc7cf5 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -371,7 +371,6 @@ public class ImportInitvalues {
                        RoomGroup ro = new RoomGroup();
                        ro.setRoom(r);
                        ro.setGroup(groupDao.get(groupId));
-                       ro.setInserted(new Date());
                        r.getGroups().add(ro);
                }
                r = roomDao.update(r, null);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-server/src/site/stylesheets/errortable.xsl
----------------------------------------------------------------------
diff --git a/openmeetings-server/src/site/stylesheets/errortable.xsl 
b/openmeetings-server/src/site/stylesheets/errortable.xsl
index 3f58fa3..4a66c8d 100644
--- a/openmeetings-server/src/site/stylesheets/errortable.xsl
+++ b/openmeetings-server/src/site/stylesheets/errortable.xsl
@@ -11,7 +11,7 @@
    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.
- -->
+-->
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
        <xsl:param name="languagesDir"/>
        <xsl:output method="xml"/>
@@ -39,8 +39,7 @@
                <section name="Openmeetings Errors table">
                <table>
                        <tr>
-                               <th>Code</th>
-                               <th>Type</th>
+                               <th>Error Code</th>
                                <th>Description</th>
                        </tr>
                        <xsl:apply-templates/>
@@ -54,11 +53,7 @@
                <xsl:variable name="englishPath"><xsl:value-of 
select="concat($languagesDir, '/Application.properties.xml')"/></xsl:variable>
                <xsl:variable name="descId" select="field[@name='labelKey']"/>
                        <tr>
-                               <td>-<xsl:value-of select="$descId"/></td>
-                               <td>
-                                       <xsl:variable name="type" 
select="concat('error.type.', field[@name='type'])"/>
-                                       <xsl:value-of 
select="document($englishPath)/properties/entry[@key=$type]/text()" />
-                               </td>
+                               <td><xsl:value-of select="$descId"/></td>
                                <td>
                                        <xsl:value-of 
select="document($englishPath)/properties/entry[@key=$descId]/text()" />
                                </td>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-server/src/site/stylesheets/errorvalues.xml
----------------------------------------------------------------------
diff --git a/openmeetings-server/src/site/stylesheets/errorvalues.xml 
b/openmeetings-server/src/site/stylesheets/errorvalues.xml
index e8c18f9..87cd23a 100644
--- a/openmeetings-server/src/site/stylesheets/errorvalues.xml
+++ b/openmeetings-server/src/site/stylesheets/errorvalues.xml
@@ -22,65 +22,38 @@
                xsi:noNamespaceSchemaLocation="errorvalues.xsd">
        <row>
                <field name="starttime">2007-12-06 19:01:07</field>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.unknown</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime">2017-05-18 19:01:07</field>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.bad.credentials</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime">2007-12-06 19:01:07</field>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.short.login</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime">2007-12-06 19:01:07</field>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.reg.disabled</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime">2007-12-06 19:01:07</field>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.login.inuse</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime">2007-12-06 19:01:07</field>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.email.inuse</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime">2007-12-06 19:01:07</field>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.notallowed</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime"/>
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.nogroup</field>
-               <field name="type">error</field>
        </row>
        <row>
                <field name="starttime" />
-               <field name="updatetime" />
-               <field name="deleted">false</field>
                <field name="labelKey">error.notactivated</field>
-               <field name="type">error</field>
        </row>
 </ROOT>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
index 1933f3a..51b8455 100644
--- 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
+++ 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
@@ -24,6 +24,7 @@
                version="2.0">
        <persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
                
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+               
<class>org.apache.openmeetings.db.entity.HistoricalEntity</class>
                
<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
                
<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
                
<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
index 3524c46..9619b42 100644
--- 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
+++ 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
@@ -24,6 +24,7 @@
                version="2.0">
        <persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
                
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+               
<class>org.apache.openmeetings.db.entity.HistoricalEntity</class>
                
<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
                
<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
                
<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
index c6d856a..f21ee4d 100644
--- 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
+++ 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
@@ -24,6 +24,7 @@
                version="2.0">
        <persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
                
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+               
<class>org.apache.openmeetings.db.entity.HistoricalEntity</class>
                
<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
                
<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
                
<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
index 2bacd2c..290e277 100644
--- 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
+++ 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
@@ -24,6 +24,7 @@
                version="2.0">
        <persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
                
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+               
<class>org.apache.openmeetings.db.entity.HistoricalEntity</class>
                
<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
                
<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
                
<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
index e4a60cb..8097470 100644
--- 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
+++ 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
@@ -24,6 +24,7 @@
                version="2.0">
        <persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
                
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+               
<class>org.apache.openmeetings.db.entity.HistoricalEntity</class>
                
<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
                
<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
                
<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
index dbdedbd..96eaf31 100644
--- 
a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
+++ 
b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
@@ -24,6 +24,7 @@
                version="2.0">
        <persistence-unit name="openmeetings" transaction-type="RESOURCE_LOCAL">
                
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+               
<class>org.apache.openmeetings.db.entity.HistoricalEntity</class>
                
<class>org.apache.openmeetings.db.entity.basic.ChatMessage</class>
                
<class>org.apache.openmeetings.db.entity.basic.Configuration</class>
                
<class>org.apache.openmeetings.db.entity.basic.MailMessage</class>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
index 8b2bf7b..59c808a 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestOldBackups.java
@@ -32,7 +32,6 @@ import org.apache.openmeetings.AbstractJUnitDefaults;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
 import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.room.RoomGroupDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.junit.After;
@@ -55,8 +54,6 @@ public class TestOldBackups extends AbstractJUnitDefaults {
        private AppointmentDao appointmentDao;
        @Autowired
        private MeetingMemberDao meetingMemberDao;
-       @Autowired
-       private RoomGroupDao roomGroupDao;
 
        @Override
        public void setUp() throws Exception {
@@ -95,7 +92,7 @@ public class TestOldBackups extends AbstractJUnitDefaults {
                                long newGroupCount = groupDao.count();
                                long newUserCount = userDao.count();
                                long newRoomCount = roomDao.count();
-                               long newRoomGroupCount = 
roomGroupDao.get().size();
+                               long newRoomGroupCount = 
roomDao.getGroups().size();
                                long newApptCount = appointmentDao.get().size();
                                long newMeetingMembersCount = 
meetingMemberDao.getMeetingMembers().size();
                                assertTrue("Zero groups were imported from " + 
name, newGroupCount > groupCount);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/a54e5b7d/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
index 3b907f6..027996e 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
@@ -56,5 +56,4 @@ public class TestGetAppointment extends AbstractJUnitDefaults 
{
                assertNotNull("Failed to get Appointment By id", a);
                assertEquals("Inapropriate MeetingMembers count", 0, 
a.getMeetingMembers() == null ? 0 : a.getMeetingMembers().size());
        }
-
 }

Reply via email to