Repository: openmeetings
Updated Branches:
  refs/heads/master 079f92c04 -> 1fef09d04


[OPENMEETINGS-1714] more issues are fixed


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

Branch: refs/heads/master
Commit: 1fef09d04bb38dd2e44690541c1184a57d06bbc1
Parents: 079f92c
Author: Maxim Solodovnik <[email protected]>
Authored: Fri Oct 13 22:28:18 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Fri Oct 13 22:28:18 2017 +0700

----------------------------------------------------------------------
 .../core/converter/BaseConverter.java           |  2 -
 .../data/record/listener/StreamListener.java    |  9 +--
 .../record/listener/async/BaseStreamWriter.java |  5 +-
 .../listener/async/StreamAudioWriter.java       |  9 ++-
 .../listener/async/StreamVideoWriter.java       |  7 +-
 .../core/remote/RecordingService.java           | 19 ++---
 .../openmeetings/db/dao/file/FileItemDao.java   | 30 --------
 .../db/dao/record/RecordingMetaDataDao.java     | 14 +---
 .../db/dao/user/PrivateMessageDao.java          |  8 +--
 .../openmeetings/db/dao/user/UserDao.java       | 63 ----------------
 .../db/entity/record/RecordingMetaData.java     | 36 ----------
 .../db/entity/room/StreamClient.java            | 18 -----
 .../db/entity/user/PrivateMessage.java          | 13 ----
 .../service/calendar/AppointmentLogic.java      | 76 --------------------
 .../openmeetings/service/user/UserManager.java  | 51 +++++++++++--
 .../openmeetings/web/app/Application.java       |  1 -
 .../openmeetings/web/util/ContactsHelper.java   |  5 +-
 .../calendar/TestAppointmentAddAppointment.java | 58 +++++++++++++--
 18 files changed, 123 insertions(+), 301 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
index 85c8200..7d814bd 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
@@ -272,8 +272,6 @@ public abstract class BaseConverter {
 
                                File outputWav = new File(streamFolder, 
metaData.getStreamName() + "_WAVE.wav");
 
-                               metaData.setWavAudioData(outputWav.getName());
-
                                log.debug("FLV File Name: {} Length: {} ", 
inputFlvFile.getName(), inputFlvFile.length());
 
                                if (inputFlvFile.exists()) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/StreamListener.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/StreamListener.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/StreamListener.java
index b272438..cfc7ba2 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/StreamListener.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/StreamListener.java
@@ -26,8 +26,6 @@ import 
org.apache.openmeetings.core.data.record.listener.async.BaseStreamWriter;
 import org.apache.openmeetings.core.data.record.listener.async.CachedEvent;
 import 
org.apache.openmeetings.core.data.record.listener.async.StreamAudioWriter;
 import 
org.apache.openmeetings.core.data.record.listener.async.StreamVideoWriter;
-import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
-import org.apache.openmeetings.db.dao.record.RecordingMetaDeltaDao;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.scope.IScope;
 import org.red5.server.api.stream.IBroadcastStream;
@@ -42,11 +40,10 @@ public class StreamListener implements IStreamListener {
        private final BaseStreamWriter streamWriter;
 
        public StreamListener(boolean isAudio, String streamName, IScope scope, 
Long metaDataId,
-                       boolean isScreenData, boolean isInterview, 
RecordingMetaDataDao metaDataDao
-                       , RecordingMetaDeltaDao metaDeltaDao) {
+                       boolean isScreenData, boolean isInterview) {
                streamWriter = isAudio
-                       ? new StreamAudioWriter(streamName, scope, metaDataId, 
isScreenData, isInterview, metaDataDao, metaDeltaDao)
-                       : new StreamVideoWriter(streamName, scope, metaDataId, 
isScreenData, metaDataDao);
+                       ? new StreamAudioWriter(streamName, scope, metaDataId, 
isScreenData, isInterview)
+                       : new StreamVideoWriter(streamName, scope, metaDataId, 
isScreenData);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
index 3db92d9..d58ae1a 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/BaseStreamWriter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.data.record.listener.async;
 
+import static 
org.apache.openmeetings.core.remote.ScopeApplicationAdapter.getApp;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_FLV;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 
@@ -75,12 +76,12 @@ public abstract class BaseStreamWriter implements Runnable {
        protected final RecordingMetaDataDao metaDataDao;
        private final BlockingQueue<CachedEvent> queue = new 
LinkedBlockingQueue<>();
 
-       public BaseStreamWriter(String streamName, IScope scope, Long 
metaDataId, boolean isScreenData, RecordingMetaDataDao metaDataDao) {
+       public BaseStreamWriter(String streamName, IScope scope, Long 
metaDataId, boolean isScreenData) {
                startedSessionTimeDate = new Date();
                this.isScreenData = isScreenData;
                this.streamName = streamName;
                this.metaDataId = metaDataId;
-               this.metaDataDao = metaDataDao;
+               this.metaDataDao = 
getApp().getOmBean(RecordingMetaDataDao.class);
                this.scope = scope;
                try {
                        init();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamAudioWriter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamAudioWriter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamAudioWriter.java
index 5e9bafe..f4ccdaa 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamAudioWriter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamAudioWriter.java
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.core.data.record.listener.async;
 
+import static 
org.apache.openmeetings.core.remote.ScopeApplicationAdapter.getApp;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 import static org.red5.io.IoConstants.TYPE_AUDIO;
 import static org.red5.server.net.rtmp.event.VideoData.FrameType.KEYFRAME;
@@ -25,7 +26,6 @@ import static 
org.red5.server.net.rtmp.event.VideoData.FrameType.KEYFRAME;
 import java.util.Date;
 
 import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
 import org.apache.openmeetings.db.dao.record.RecordingMetaDeltaDao;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
 import org.apache.openmeetings.db.entity.record.RecordingMetaDelta;
@@ -50,11 +50,10 @@ public class StreamAudioWriter extends BaseStreamWriter {
 
        private boolean isInterview = false;
 
-       public StreamAudioWriter(String streamName, IScope scope, Long 
metaDataId, boolean isScreenData,
-                       boolean isInterview, RecordingMetaDataDao metaDataDao, 
RecordingMetaDeltaDao metaDeltaDao) {
-               super(streamName, scope, metaDataId, isScreenData, metaDataDao);
+       public StreamAudioWriter(String streamName, IScope scope, Long 
metaDataId, boolean isScreenData, boolean isInterview) {
+               super(streamName, scope, metaDataId, isScreenData);
 
-               this.metaDeltaDao = metaDeltaDao;
+               this.metaDeltaDao = 
getApp().getOmBean(RecordingMetaDeltaDao.class);
                this.isInterview = isInterview;
        }
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamVideoWriter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamVideoWriter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamVideoWriter.java
index 022d043..6aa41e7 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamVideoWriter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/record/listener/async/StreamVideoWriter.java
@@ -24,7 +24,6 @@ import static 
org.red5.server.net.rtmp.event.VideoData.FrameType.KEYFRAME;
 import java.util.Date;
 
 import org.apache.mina.core.buffer.IoBuffer;
-import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
 import org.apache.openmeetings.db.entity.record.RecordingMetaData;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.scope.IScope;
@@ -34,10 +33,8 @@ public class StreamVideoWriter extends BaseStreamWriter {
        private static final Logger log = 
Red5LoggerFactory.getLogger(StreamVideoWriter.class, getWebAppRootKey());
        private Date startedSessionScreenTimeDate = null;
 
-       public StreamVideoWriter(String streamName, IScope scope, Long 
metaDataId, boolean isScreenData,
-                       RecordingMetaDataDao metaDataDao) {
-
-               super(streamName, scope, metaDataId, isScreenData, metaDataDao);
+       public StreamVideoWriter(String streamName, IScope scope, Long 
metaDataId, boolean isScreenData) {
+               super(streamName, scope, metaDataId, isScreenData);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
index ba43284..c270f59 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/RecordingService.java
@@ -35,7 +35,6 @@ import org.apache.openmeetings.core.util.IClientUtil;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.db.dao.record.RecordingMetaDataDao;
-import org.apache.openmeetings.db.dao.record.RecordingMetaDeltaDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.Client;
@@ -89,8 +88,6 @@ public class RecordingService implements 
IPendingServiceCallback {
        @Autowired
        private ScopeApplicationAdapter scopeAdapter;
        @Autowired
-       private RecordingMetaDeltaDao metaDeltaDao;
-       @Autowired
        private RecordingMetaDataDao metaDataDao;
 
        @Override
@@ -142,7 +139,6 @@ public class RecordingService implements 
IPendingServiceCallback {
 
                        // Update Client and set Flag
                        client.setRecordingStarted(true);
-                       client.setRecordingId(recordingId);
                        if (!(client instanceof Client)) {
                                IApplication iapp = getApp();
                                Client c = 
iapp.getOmClientBySid(client.getSid());
@@ -239,7 +235,7 @@ public class RecordingService implements 
IPendingServiceCallback {
                // Save the stream to disk.
                log.debug("### stream: [{}, name: {}, scope: {}, metaId: {}, 
sharing ? {}, interview ? {}]"
                                , stream, streamName, conn.getScope(), metaId, 
isScreenSharing, isInterview);
-               StreamListener streamListener = new 
StreamListener(!isScreenSharing, streamName, conn.getScope(), metaId, 
isScreenSharing, isInterview, metaDataDao, metaDeltaDao);
+               StreamListener streamListener = new 
StreamListener(!isScreenSharing, streamName, conn.getScope(), metaId, 
isScreenSharing, isInterview);
 
                streamListeners.put(metaId, streamListener);
                stream.addStreamListener(streamListener);
@@ -340,16 +336,14 @@ public class RecordingService implements 
IPendingServiceCallback {
                }
 
                // If its the recording client we need another type of Meta Data
-               boolean audioOnly = "a".equals(rcl.getAvsettings());
-               boolean videoOnly = "v".equals(rcl.getAvsettings());
                if (broadcastId != null) {
+                       boolean audioOnly = "a".equals(rcl.getAvsettings());
+                       boolean videoOnly = "v".equals(rcl.getAvsettings());
                        if (Client.Type.sharing == rcl.getType()) {
-                               if (rcl.getRecordingId() != null && 
(rcl.isSharingStarted() || rcl.isRecordingStarted())) {
+                               if (rcl.isSharingStarted() || 
rcl.isRecordingStarted()) {
                                        String streamName = 
generateFileName(recordingId, broadcastId);
 
-                                       Long metaId = metaDataDao.add(
-                                                       recordingId, 
rcl.getFirstname() + " " + rcl.getLastname(), now, false,
-                                                       false, true, 
streamName, null);
+                                       Long metaId = 
metaDataDao.add(recordingId, now, false, false, true, streamName, null);
 
                                        // Start FLV Recording
                                        addListener(conn, rcl.getBroadcastId(), 
streamName, metaId, true, isInterview);
@@ -363,8 +357,7 @@ public class RecordingService implements 
IPendingServiceCallback {
                                // But we only record av or a, video only is 
not interesting
                                String streamName = 
generateFileName(recordingId, broadcastId);
 
-                               Long metaId = metaDataDao.add(recordingId,
-                                               rcl.getFirstname() + " " + 
rcl.getLastname(), now, audioOnly, videoOnly, false, streamName,
+                               Long metaId = metaDataDao.add(recordingId, now, 
audioOnly, videoOnly, false, streamName,
                                                rcl.getInterviewPodId());
 
                                // Start FLV recording

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
index 0441375..8e7b22b 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
@@ -22,9 +22,7 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKe
 
 import java.io.File;
 import java.util.Collection;
-import java.util.Date;
 import java.util.List;
-import java.util.UUID;
 import java.util.stream.Collectors;
 
 import javax.persistence.TypedQuery;
@@ -48,34 +46,6 @@ import 
org.springframework.transaction.annotation.Transactional;
 public class FileItemDao extends BaseFileItemDao {
        private static final Logger log = 
Red5LoggerFactory.getLogger(FileItemDao.class, getWebAppRootKey());
 
-       public FileItem add(String fileName, Long parentId, Long ownerId, Long 
roomId, Long insertedBy,
-                       Type type, String externalId, String externalType) {
-               log.debug(".add(): adding file " + fileName + " roomID: " + 
roomId);
-               try {
-                       FileItem fileItem = new FileItem();
-                       fileItem.setName(fileName);
-                       fileItem.setHash(UUID.randomUUID().toString());
-                       fileItem.setDeleted(false);
-                       fileItem.setParentId(parentId);
-                       fileItem.setOwnerId(ownerId);
-                       fileItem.setRoomId(roomId);
-                       fileItem.setInserted(new Date());
-                       fileItem.setInsertedBy(insertedBy);
-                       fileItem.setType(type);
-                       fileItem.setUpdated(new Date());
-                       fileItem.setExternalId(externalId);
-                       fileItem.setExternalType(externalType);
-
-                       fileItem = em.merge(fileItem);
-
-                       log.debug(".add(): file " + fileName + " added as " + 
fileItem.getId());
-                       return fileItem;
-               } catch (Exception ex2) {
-                       log.error(".add(): ", ex2);
-               }
-               return null;
-       }
-
        public List<FileItem> getByRoom(Long roomId) {
                log.debug("getByRoom roomId :: " + roomId);
                return em.createNamedQuery("getFilesByRoom", 
FileItem.class).setParameter("roomId", roomId).getResultList();

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingMetaDataDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingMetaDataDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingMetaDataDao.java
index 55d332c..6c0dc66 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingMetaDataDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingMetaDataDao.java
@@ -75,28 +75,18 @@ public class RecordingMetaDataDao {
                return null;
        }
 
-       public Long add(Long recordingId, String freeTextUserName, Date 
recordStart, boolean isAudioOnly,
+       public Long add(Long recordingId, Date recordStart, boolean isAudioOnly,
                        boolean isVideoOnly, boolean isScreenData, String 
streamName, Integer interiewPodId) {
                try {
 
                        RecordingMetaData metaData = new RecordingMetaData();
-
-                       metaData.setDeleted(false);
-
                        metaData.setRecording(recordingDao.get(recordingId));
-                       metaData.setFreeTextUserName(freeTextUserName);
-                       metaData.setInserted(new Date());
-
                        metaData.setRecordStart(recordStart);
-
                        metaData.setAudioOnly(isAudioOnly);
                        metaData.setVideoOnly(isVideoOnly);
                        metaData.setScreenData(isScreenData);
-
                        metaData.setStreamName(streamName);
-
                        metaData.setInteriewPodId(interiewPodId);
-
                        metaData = update(metaData);
                        return metaData.getId();
                } catch (Exception ex2) {
@@ -125,8 +115,10 @@ public class RecordingMetaDataDao {
        public RecordingMetaData update(RecordingMetaData metaData) {
                log.debug("[update]: ");
                if (metaData.getId() == null) {
+                       metaData.setInserted(new Date());
                        em.persist(metaData);
                } else {
+                       metaData.setUpdated(new Date());
                        metaData = em.merge(metaData);
                }
                return metaData;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
index ad99168..b4fb916 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
@@ -33,7 +33,6 @@ import javax.persistence.Query;
 import javax.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
-import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.util.string.Strings;
@@ -49,8 +48,8 @@ public class PrivateMessageDao implements 
IDataProviderDao<PrivateMessage> {
        @PersistenceContext
        private EntityManager em;
 
-       public Long addPrivateMessage(String subject, String message, Long 
parentMessageId,
-                       User from, User to, User owner, Boolean bookedRoom, 
Room room,
+       public Long addPrivateMessage(String subject, String message,
+                       User from, User to, User owner,
                        boolean isContactRequest, Long userContactId) {
                try {
                        PrivateMessage privateMessage = new PrivateMessage();
@@ -60,9 +59,6 @@ public class PrivateMessageDao implements 
IDataProviderDao<PrivateMessage> {
                        privateMessage.setFrom(from);
                        privateMessage.setTo(to);
                        privateMessage.setOwner(owner);
-                       
privateMessage.setBookedRoom(Boolean.TRUE.equals(bookedRoom));
-                       privateMessage.setRoom(room);
-                       privateMessage.setParentMessage(parentMessageId);
                        privateMessage.setFolderId(INBOX_FOLDER_ID);
                        privateMessage.setIsRead(false);
                        privateMessage.setIsContactRequest(isContactRequest);

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
index 664dbe6..f302a0e 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
@@ -33,7 +33,6 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
-import java.util.TimeZone;
 import java.util.UUID;
 
 import javax.persistence.EntityManager;
@@ -48,7 +47,6 @@ import 
org.apache.openmeetings.db.dao.IGroupAdminDataProviderDao;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.entity.user.Address;
-import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
@@ -85,8 +83,6 @@ public class UserDao implements 
IGroupAdminDataProviderDao<User> {
        @Autowired
        private ConfigurationDao cfgDao;
        @Autowired
-       private GroupDao groupDao;
-       @Autowired
        private TimezoneUtil timezoneUtil;
 
        public static Set<Right> getDefaultRights() {
@@ -625,65 +621,6 @@ public class UserDao implements 
IGroupAdminDataProviderDao<User> {
                return update(u, u.getId());
        }
 
-       public Address getAddress(String street, String zip, String town, 
String country, String additionalname, String fax, String phone, String email) {
-               Address a =  new Address();
-               a.setStreet(street);
-               a.setZip(zip);
-               a.setTown(town);
-               a.setCountry(country);
-               a.setAdditionalname(additionalname);
-               a.setComment("");
-               a.setFax(fax);
-               a.setPhone(phone);
-               a.setEmail(email);
-               return a;
-       }
-
-       public User addUser(Set<Right> rights, String firstname, String login, 
String lastname, long languageId,
-                       String userpass, Address adress, boolean sendSMS, Date 
age, String hash, TimeZone timezone,
-                       boolean forceTimeZoneCheck, String userOffers, String 
userSearchs, boolean showContactData,
-                       boolean showContactDataToContacts, String externalId, 
String externalType, List<Long> groupIds, String pictureuri) throws 
NoSuchAlgorithmException {
-
-               User u = new User();
-               u.setFirstname(firstname);
-               u.setLogin(login);
-               u.setLastname(lastname);
-               u.setAge(age);
-               u.setAddress(adress);
-               u.setSendSMS(sendSMS);
-               u.setRights(rights);
-               u.setLastlogin(new Date());
-               u.setSalutation(Salutation.mr);
-               u.setActivatehash(hash);
-               u.setTimeZoneId(timezone.getID());
-               u.setForceTimeZoneCheck(forceTimeZoneCheck);
-               u.setExternalId(externalId);
-               u.setExternalType(externalType);
-               if (!Strings.isEmpty(u.getExternalType())) {
-                       u.setType(Type.external);
-               }
-
-               u.setUserOffers(userOffers);
-               u.setUserSearchs(userSearchs);
-               u.setShowContactData(showContactData);
-               u.setShowContactDataToContacts(showContactDataToContacts);
-
-               // this is needed cause the language is not a needed data at 
registering
-               u.setLanguageId(languageId != 0 ? languageId : 1);
-               if (!Strings.isEmpty(userpass)) {
-                       u.updatePassword(cfgDao, userpass);
-               }
-               u.setDeleted(false);
-               u.setPictureuri(pictureuri);
-               if (groupIds != null) {
-                       for (Long grpId : groupIds) {
-                               u.getGroupUsers().add(new 
GroupUser(groupDao.get(grpId), u));
-                       }
-               }
-
-               return update(u, null);
-       }
-
        public List<User> getByExpiredHash(long ttl) {
                return em.createNamedQuery("getUserByExpiredHash", User.class)
                                .setParameter("date", new 
Date(System.currentTimeMillis() - ttl))

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/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 5730b9b..7839386 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
@@ -93,10 +93,6 @@ public class RecordingMetaData extends HistoricalEntity {
        @Element(data = true)
        private String streamName;
 
-       @Column(name = "free_text_user_name")
-       @Element(data = true)
-       private String freeTextUserName;
-
        @Column(name = "is_audio_only", nullable = false)
        @Element(name = "isAudioOnly", data = true)
        private boolean audioOnly;
@@ -109,14 +105,6 @@ public class RecordingMetaData extends HistoricalEntity {
        @Element(name = "isScreenData", data = true)
        private boolean screenData;
 
-       @Column(name = "inserted_by")
-       @Element(data = true, required = false)
-       private Long insertedBy;
-
-       @Column(name = "wav_audio_data")
-       @Element(data = true, required = false)
-       private String wavAudioData;
-
        @Column(name = "full_wav_audio_data")
        @Element(data = true, required = false)
        private String fullWavAudioData;
@@ -171,14 +159,6 @@ public class RecordingMetaData extends HistoricalEntity {
                this.recordEnd = recordEnd;
        }
 
-       public String getFreeTextUserName() {
-               return freeTextUserName;
-       }
-
-       public void setFreeTextUserName(String freeTextUserName) {
-               this.freeTextUserName = freeTextUserName;
-       }
-
        public boolean isAudioOnly() {
                return audioOnly;
        }
@@ -195,14 +175,6 @@ public class RecordingMetaData extends HistoricalEntity {
                this.videoOnly = videoOnly;
        }
 
-       public Long getInsertedBy() {
-               return insertedBy;
-       }
-
-       public void setInsertedBy(Long insertedBy) {
-               this.insertedBy = insertedBy;
-       }
-
        public boolean isScreenData() {
                return screenData;
        }
@@ -219,14 +191,6 @@ public class RecordingMetaData extends HistoricalEntity {
                this.streamName = streamName;
        }
 
-       public String getWavAudioData() {
-               return wavAudioData;
-       }
-
-       public void setWavAudioData(String wavAudioData) {
-               this.wavAudioData = wavAudioData;
-       }
-
        public String getFullWavAudioData() {
                return fullWavAudioData;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
index 92f7aa2..0d8b462 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
@@ -38,8 +38,6 @@ public class StreamClient implements IClient {
        private String sid = null;
        private boolean mod = false;
        private boolean superMod = false;
-       private boolean canGiveAudio = false;
-       private boolean canVideo = false;
        private Date connectedSince;
        private String remoteAddress;
        private int userport;
@@ -147,22 +145,6 @@ public class StreamClient implements IClient {
                this.superMod = superMod;
        }
 
-       public boolean isCanGiveAudio() {
-               return canGiveAudio;
-       }
-
-       public void setCanGiveAudio(boolean canGiveAudio) {
-               this.canGiveAudio = canGiveAudio;
-       }
-
-       public boolean isCanVideo() {
-               return canVideo;
-       }
-
-       public void setCanVideo(boolean canVideo) {
-               this.canVideo = canVideo;
-       }
-
        public Date getConnectedSince() {
                return connectedSince;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
index 4b1272d..367487c 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
@@ -108,10 +108,6 @@ public class PrivateMessage implements IDataProviderEntity 
{
        @Element(data = true)
        private boolean isRead;
 
-       @Column(name = "parent_message_id")
-       @Element(data = true, required = false)
-       private Long parentMessage;
-
        @Column(name = "private_message_folder_id")
        @Element(data = true, name = "privateMessageFolderId", required = false)
        private Long folderId;
@@ -137,7 +133,6 @@ public class PrivateMessage implements IDataProviderEntity {
                bookedRoom = copy.bookedRoom;
                room = copy.room;
                isRead = copy.isRead;
-               parentMessage = copy.parentMessage;
                folderId = copy.folderId;
                isContactRequest = copy.isContactRequest;
                userContactId = copy.userContactId;
@@ -217,14 +212,6 @@ public class PrivateMessage implements IDataProviderEntity 
{
                this.room = room;
        }
 
-       public Long getParentMessage() {
-               return parentMessage;
-       }
-
-       public void setParentMessage(Long parentMessage) {
-               this.parentMessage = parentMessage;
-       }
-
        public Long getFolderId() {
                return folderId;
        }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
index d25f575..bc01f54 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
@@ -24,7 +24,6 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_BASE_UR
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_MINUTES_REMINDER_SEND;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 import java.util.TimeZone;
@@ -32,18 +31,12 @@ import java.util.TimeZone;
 import org.apache.openmeetings.core.notifier.NotifierService;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
 import org.apache.openmeetings.db.dao.room.InvitationDao;
-import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
-import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.apache.openmeetings.db.entity.room.Invitation;
-import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -58,16 +51,10 @@ public class AppointmentLogic {
        @Autowired
        private ConfigurationDao cfgDao;
        @Autowired
-       private RoomDao roomDao;
-       @Autowired
        private TimezoneUtil timezoneUtil;
        @Autowired
        private InvitationDao invitationDao;
        @Autowired
-       private UserDao userDao;
-       @Autowired
-       private MeetingMemberDao meetingMemberDao;
-       @Autowired
        private NotifierService notifierService;
 
        // 
--------------------------------------------------------------------------------------------
@@ -152,67 +139,4 @@ public class AppointmentLogic {
                        }
                }
        }
-
-       public Appointment getAppointment(String appointmentName,
-                       String appointmentLocation, String 
appointmentDescription,
-                       Calendar appointmentstart, Calendar appointmentend,
-                       Boolean isDaily, Boolean isWeekly, Boolean isMonthly,
-                       Boolean isYearly, String remind, String[] mmClient,
-                       Long roomType, Long languageId,
-                       boolean isPasswordProtected, String password, long 
roomId, Long userId) {
-               Appointment a = new Appointment();
-               a.setTitle(appointmentName);
-               a.setLocation(appointmentLocation);
-               a.setDescription(appointmentDescription);
-               a.setStart(appointmentstart.getTime());
-               a.setEnd(appointmentend.getTime());
-               a.setIsDaily(isDaily);
-               a.setIsWeekly(isWeekly);
-               a.setIsMonthly(isMonthly);
-               a.setIsYearly(isYearly);
-               a.setReminder(Reminder.valueOf(remind));
-               if (roomId > 0) {
-                       a.setRoom(roomDao.get(roomId));
-               } else {
-                       a.setRoom(new Room());
-                       a.getRoom().setComment(appointmentDescription);
-                       a.getRoom().setName(appointmentName);
-                       a.getRoom().setType(Room.Type.get(roomType));
-                       a.getRoom().setAppointment(true);
-               }
-               a.setOwner(userDao.get(userId));
-               a.setPasswordProtected(isPasswordProtected);
-               a.setPassword(password);
-               a.setMeetingMembers(new ArrayList<MeetingMember>());
-               for (String singleClient : mmClient) {
-                       if (Strings.isEmpty(singleClient)) {
-                               continue;
-                       }
-                       MeetingMember mm = getMeetingMember(userId, languageId, 
singleClient);
-                       mm.setAppointment(a);
-                       a.getMeetingMembers().add(mm);
-               }
-               return a;
-       }
-
-       public MeetingMember getMeetingMember(Long userId, Long langId, String 
str) {
-               String[] params = str.split(",");
-
-               try {
-                       return meetingMemberDao.get(Long.valueOf(params[0]));
-               } catch (Exception e) {
-                       //no-op
-               }
-               MeetingMember mm = new MeetingMember();
-               try {
-                       mm.setUser(userDao.get(Long.valueOf(params[4])));
-               } catch (Exception e) {
-                       //no-op
-               }
-               if (mm.getUser() == null) {
-                       mm.setUser(userDao.getContact(params[3], params[1], 
params[2], langId, params[5], userId));
-               }
-
-               return mm;
-       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
index 69da110..d8d7ecb 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
@@ -54,6 +54,7 @@ import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
+import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.service.mail.EmailManager;
@@ -208,7 +209,16 @@ public class UserManager implements IUserManager {
                                if (sendWelcomeMessage && email.length() != 0) {
                                        emailManagement.sendMail(login, email, 
hash, sendConfirmation, languageId);
                                }
-                               Address adr =  userDao.getAddress(street, zip, 
town, country, additionalname, fax, phone, email);
+                               Address a =  new Address();
+                               a.setStreet(street);
+                               a.setZip(zip);
+                               a.setTown(town);
+                               a.setCountry(country);
+                               a.setAdditionalname(additionalname);
+                               a.setComment("");
+                               a.setFax(fax);
+                               a.setPhone(phone);
+                               a.setEmail(email);
 
                                // If this user needs first to click his E-Mail 
verification
                                // code then set the status to 0
@@ -216,13 +226,42 @@ public class UserManager implements IUserManager {
                                        rights.remove(Right.Login);
                                }
 
-                               User u = userDao.addUser(rights, firstname, 
login, lastname, languageId,
-                                               password, adr, sendSMS, age, 
hash, timezone,
-                                               forceTimeZoneCheck, userOffers, 
userSearchs, showContactData,
-                                               showContactDataToContacts, 
null, null, groups, null);
+                               User u = new User();
+                               u.setFirstname(firstname);
+                               u.setLogin(login);
+                               u.setLastname(lastname);
+                               u.setAge(age);
+                               u.setAddress(a);
+                               u.setSendSMS(sendSMS);
+                               u.setRights(rights);
+                               u.setLastlogin(new Date());
+                               u.setSalutation(Salutation.mr);
+                               u.setActivatehash(hash);
+                               u.setTimeZoneId(timezone.getID());
+                               u.setForceTimeZoneCheck(forceTimeZoneCheck);
+                               if (!Strings.isEmpty(u.getExternalType())) {
+                                       u.setType(Type.external);
+                               }
+
+                               u.setUserOffers(userOffers);
+                               u.setUserSearchs(userSearchs);
+                               u.setShowContactData(showContactData);
+                               
u.setShowContactDataToContacts(showContactDataToContacts);
+
+                               // this is needed cause the language is not a 
needed data at registering
+                               u.setLanguageId(languageId != 0 ? languageId : 
1);
+                               if (!Strings.isEmpty(password)) {
+                                       u.updatePassword(cfgDao, password);
+                               }
+                               if (groups != null) {
+                                       for (Long grpId : groups) {
+                                               u.getGroupUsers().add(new 
GroupUser(groupDao.get(grpId), u));
+                                       }
+                               }
+                               u = userDao.update(u, null);
                                log.debug("Added user-Id " + u.getId());
 
-                               if (adr.getId() != null && u.getId() != null) {
+                               if (a.getId() != null && u.getId() != null) {
                                        return u;
                                }
                        } else {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index c97a507..78b528c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -480,7 +480,6 @@ public class Application extends 
AuthenticatedWebApplication implements IApplica
                rcl.setEmail(u.getAddress() == null ? null : 
u.getAddress().getEmail());
                rcl.setSuperMod(client.hasRight(Right.superModerator));
                rcl.setMod(client.hasRight(Right.moderator));
-               rcl.setCanVideo(client.hasRight(Right.video) && 
client.isCamEnabled() && client.hasActivity(Activity.broadcastV));
                if (client.hasActivity(Activity.broadcastA) && client.getMic() 
< 0) {
                        client.remove(Activity.broadcastA);
                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java
index 633cdf4..84d568d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ContactsHelper.java
@@ -48,7 +48,7 @@ public class ContactsHelper {
                String message = RequestContactTemplate.getEmail(userToAdd, 
user);
 
                getBean(PrivateMessageDao.class).addPrivateMessage(
-                       subj, message, 0L, user, userToAdd, userToAdd, false, 
null, true, contact.getId());
+                       subj, message, user, userToAdd, userToAdd, true, 
contact.getId());
 
                if (userToAdd.getAddress() != null) {
                        
getBean(MailHandler.class).send(userToAdd.getAddress().getEmail(), subj, 
message);
@@ -82,8 +82,7 @@ public class ContactsHelper {
                        String subj = contact.getContact().getFirstname() + " " 
+ contact.getContact().getLastname() + " " + Application.getString("1198");
 
                        getBean(PrivateMessageDao.class).addPrivateMessage(
-                                       subj, message,
-                                       0L, contact.getContact(), user, user, 
false, null, false, 0L);
+                                       subj, message, contact.getContact(), 
user, user, false, 0L);
 
                        
getBean(MailHandler.class).send(user.getAddress().getEmail(), subj, message);
                }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/1fef09d0/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
index 8190c71..b3e293a 100644
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
@@ -32,6 +32,7 @@ import java.util.UUID;
 
 import org.apache.openmeetings.AbstractWicketTester;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
+import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
@@ -40,6 +41,7 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.service.calendar.AppointmentLogic;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.util.string.StringValue;
+import org.apache.wicket.util.string.Strings;
 import org.junit.Test;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
@@ -52,12 +54,35 @@ public class TestAppointmentAddAppointment extends 
AbstractWicketTester {
        private AppointmentLogic appointmentLogic;
        @Autowired
        private AppointmentDao appointmentDao;
+       @Autowired
+       private MeetingMemberDao meetingMemberDao;
 
        private static void setTime(Appointment a) {
                
a.setStart(Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()));
                
a.setEnd(Date.from(LocalDateTime.now().plusHours(1).atZone(ZoneId.systemDefault()).toInstant()));
        }
 
+       public MeetingMember getMeetingMember(Long userId, Long langId, String 
str) {
+               String[] params = str.split(",");
+
+               try {
+                       return meetingMemberDao.get(Long.valueOf(params[0]));
+               } catch (Exception e) {
+                       //no-op
+               }
+               MeetingMember mm = new MeetingMember();
+               try {
+                       mm.setUser(userDao.get(Long.valueOf(params[4])));
+               } catch (Exception e) {
+                       //no-op
+               }
+               if (mm.getUser() == null) {
+                       mm.setUser(userDao.getContact(params[3], params[1], 
params[2], langId, params[5], userId));
+               }
+
+               return mm;
+       }
+
        @Test
        public void saveAppointment() throws Exception {
                log.debug("- saveAppointment");
@@ -85,11 +110,34 @@ public class TestAppointmentAddAppointment extends 
AbstractWicketTester {
                Long languageId = 1L;
                Long roomType = 1L;
 
-               Appointment a = appointmentLogic.getAppointment(appointmentName,
-                               appointmentLocation, appointmentDescription,
-                               start, end, isDaily, isWeekly,
-                               isMonthly, isYearly, remind, mmClient,
-                               roomType, languageId, false, "", -1, userId);
+               Appointment a = new Appointment();
+               a.setTitle(appointmentName);
+               a.setLocation(appointmentLocation);
+               a.setDescription(appointmentDescription);
+               a.setStart(start.getTime());
+               a.setEnd(end.getTime());
+               a.setIsDaily(isDaily);
+               a.setIsWeekly(isWeekly);
+               a.setIsMonthly(isMonthly);
+               a.setIsYearly(isYearly);
+               a.setReminder(Reminder.valueOf(remind));
+               a.setRoom(new Room());
+               a.getRoom().setComment(appointmentDescription);
+               a.getRoom().setName(appointmentName);
+               a.getRoom().setType(Room.Type.get(roomType));
+               a.getRoom().setAppointment(true);
+               a.setOwner(userDao.get(userId));
+               a.setPasswordProtected(false);
+               a.setPassword("");
+               a.setMeetingMembers(new ArrayList<MeetingMember>());
+               for (String singleClient : mmClient) {
+                       if (Strings.isEmpty(singleClient)) {
+                               continue;
+                       }
+                       MeetingMember mm = getMeetingMember(userId, languageId, 
singleClient);
+                       mm.setAppointment(a);
+                       a.getMeetingMembers().add(mm);
+               }
                a = appointmentDao.update(a, userId);
 
                Thread.sleep(3000);

Reply via email to