This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


The following commit(s) were added to refs/heads/master by this push:
     new 4a4fcb6  [OPENMEETINGS-2297] it is now should be possible to enter 
room by externalId/Type
4a4fcb6 is described below

commit 4a4fcb675e245592bc023d6454e149ed57dbd3d5
Author: Maxim Solodovnik <solomax...@gmail.com>
AuthorDate: Thu Sep 17 18:27:50 2020 +0700

    [OPENMEETINGS-2297] it is now should be possible to enter room by 
externalId/Type
---
 .../openmeetings/core/converter/BaseConverter.java |  6 ++++++
 .../openmeetings/core/remote/KurentoHandler.java   |  2 +-
 .../core/util/ChatWebSocketHelper.java             | 15 ++++++++++----
 .../openmeetings/core/util/WebSocketHelper.java    |  8 ++++++--
 .../core/remote/TestRecordingFlowMocked.java       |  6 +++---
 .../db/bind/adapter/OauthMapAdapter.java           |  6 ++----
 .../apache/openmeetings/db/dao/room/RoomDao.java   |  9 +++++++++
 .../openmeetings/db/dao/server/OAuth2Dao.java      |  2 +-
 .../openmeetings/db/dao/server/SOAPLoginDao.java   | 20 +++++++++----------
 .../openmeetings/db/dto/room/RoomOptionsDTO.java   | 20 +++++++++++++++++++
 .../apache/openmeetings/db/entity/room/Room.java   |  3 +++
 .../db/entity/server/RemoteSessionObject.java      | 23 ++++++++++------------
 .../openmeetings/db/entity/server/SOAPLogin.java   | 22 +++++++++++++++++++++
 .../service/calendar/caldav/IcalUtils.java         |  9 +++------
 .../service/quartz/scheduler/AtomReader.java       |  4 ++++
 .../apache/openmeetings/util/CalendarHelper.java   |  4 ++++
 .../apache/openmeetings/web/app/WebSession.java    | 11 ++++++++---
 .../openmeetings/web/common/InvitationForm.java    |  2 +-
 .../web/pages/auth/ForgetPasswordDialog.java       |  2 +-
 .../web/room/wb/WbWebSocketHelper.java             | 13 ++++++++----
 .../openmeetings/web/util/CalendarWebHelper.java   | 14 ++++++++-----
 .../openmeetings/webservice/UserWebService.java    | 11 ++---------
 22 files changed, 145 insertions(+), 67 deletions(-)

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 5599b11..941c31d 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
@@ -309,6 +309,12 @@ public abstract class BaseConverter {
                return getDimensions(r, 'x');
        }
 
+       /**
+        * This method should be overridden to supply any additional parameters
+        *
+        * @param r - recording to get params from
+        * @return additional conversion parameters
+        */
        protected List<String> additionalMp4OutParams(Recording r) {
                return List.of();
        }
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
index 42d6874..1722358 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
@@ -188,7 +188,7 @@ public class KurentoHandler {
                        try {
                                KurentoClient copy = client;
                                client = null;
-                               if (copy != null && !copy.isClosed()) {
+                               if (!copy.isClosed()) {
                                        log.debug("Client will destroyed ...");
                                        copy.destroy();
                                        log.debug(".... Client is destroyed");
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
index 631023b..61d480f 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
@@ -18,6 +18,9 @@
  */
 package org.apache.openmeetings.core.util;
 
+import static org.apache.openmeetings.core.util.WebSocketHelper.doSend;
+import static org.apache.openmeetings.core.util.WebSocketHelper.publish;
+
 import java.util.List;
 import java.util.function.BiConsumer;
 
@@ -36,12 +39,16 @@ import org.apache.openmeetings.util.ws.IClusterWsMessage;
 import com.github.openjson.JSONArray;
 import com.github.openjson.JSONObject;
 
-public class ChatWebSocketHelper extends WebSocketHelper {
+public class ChatWebSocketHelper {
        public static final String ID_TAB_PREFIX = "chatTab-";
        public static final String ID_ALL = ID_TAB_PREFIX + "all";
        public static final String ID_ROOM_PREFIX = ID_TAB_PREFIX + "r";
        public static final String ID_USER_PREFIX = ID_TAB_PREFIX + "u";
 
+       private ChatWebSocketHelper() {
+               // denied
+       }
+
        private static JSONObject setScope(JSONObject o, ChatMessage m, long 
curUserId) {
                String scope, scopeName = null;
                if (m.getToUser() != null) {
@@ -117,7 +124,7 @@ public class ChatWebSocketHelper extends WebSocketHelper {
                if (publish) {
                        publish(new WsMessageChat(m, msg));
                }
-               sendRoom(m.getToRoom().getId(), msg
+               WebSocketHelper.sendRoom(m.getToRoom().getId(), msg
                                , c -> !m.isNeedModeration() || 
(m.isNeedModeration() && c.hasRight(Right.MODERATOR))
                                , (o, c) -> setDates(o, m, c.getUser(), false));
        }
@@ -130,7 +137,7 @@ public class ChatWebSocketHelper extends WebSocketHelper {
                if (publish) {
                        publish(new WsMessageChat2User(userId, m, msg));
                }
-               sendUser(userId, msg, (o, c) -> setDates(o, m, c.getUser(), 
false), false);
+               WebSocketHelper.sendUser(userId, msg, (o, c) -> setDates(o, m, 
c.getUser(), false), false);
        }
 
        public static void sendAll(ChatMessage m, JSONObject msg) {
@@ -141,7 +148,7 @@ public class ChatWebSocketHelper extends WebSocketHelper {
                if (publish) {
                        publish(new WsMessageChat2All(m, msg));
                }
-               send(a -> ((IApplication)a).getBean(IClientManager.class).list()
+               WebSocketHelper.send(a -> 
((IApplication)a).getBean(IClientManager.class).list()
                                , (t, c) -> doSend(t, c, msg, (o, cm) -> 
setDates(o, m, c.getUser(), false), "all"), null);
        }
 }
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index cc2b451..10a2de7 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@ -55,6 +55,10 @@ import com.github.openjson.JSONObject;
 public class WebSocketHelper {
        private static final Logger log = 
LoggerFactory.getLogger(WebSocketHelper.class);
 
+       private WebSocketHelper() {
+               // denied
+       }
+
        public static void sendClient(final IWsClient omClient, byte[] b) {
                if (omClient != null) {
                        sendClient(omClient, c -> {
@@ -212,12 +216,12 @@ public class WebSocketHelper {
                }).start();
        }
 
-       protected static void publish(IClusterWsMessage m) {
+       public static void publish(IClusterWsMessage m) {
                IApplication app = getApp();
                new Thread(() -> app.publishWsTopic(m)).start();
        }
 
-       protected static void sendRoom(final Long roomId, final JSONObject m, 
Predicate<Client> check, BiFunction<JSONObject, Client, JSONObject> func) {
+       public static void sendRoom(final Long roomId, final JSONObject m, 
Predicate<Client> check, BiFunction<JSONObject, Client, JSONObject> func) {
                log.trace("Sending json WebSocket message to room: {}", m);
                sendRoom(roomId, (t, c) -> doSend(t, c, m, func, "room"), 
check);
        }
diff --git 
a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
 
b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
index cdb24f8..724008b 100644
--- 
a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
+++ 
b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
@@ -153,7 +153,7 @@ class TestRecordingFlowMocked extends BaseMockedTest {
                assertTrue(streamProcessor.isSharing(ROOM_ID));
 
                // Get current Stream, there should be only 1 KStream created 
as result of this
-               assertTrue(c.getStreams().size() == 1);
+               assertEquals(1, c.getStreams().size());
                StreamDesc streamDesc = c.getStreams().get(0);
 
                //save UID for stopping the stream later
@@ -175,7 +175,7 @@ class TestRecordingFlowMocked extends BaseMockedTest {
                verify(streamProcessor).startBroadcast(any(), any(), any());
 
                // Assert that there is still just 1 stream and has only the 
activities to Record assigned
-               assertTrue(c.getStreams().size() == 1);
+               assertEquals(1, c.getStreams().size());
                streamDesc = c.getStreams().get(0);
                assertEquals(1, streamDesc.getActivities().size());
                assertEquals(Activity.RECORD, 
streamDesc.getActivities().get(0));
@@ -208,6 +208,6 @@ class TestRecordingFlowMocked extends BaseMockedTest {
                // Verify it did also stop the sharing stream
                verify(streamProcessor).pauseSharing(any(), any());
                // Verify all streams gone
-               assertTrue(c.getStreams().size() == 0);
+               assertTrue(c.getStreams().isEmpty());
        }
 }
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
index aa932bb..e009901 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
@@ -82,10 +82,8 @@ public class OauthMapAdapter extends XmlAdapter<Object, 
Map<String, String>> {
                                                key = n;
                                                continue;
                                        }
-                                       if (value == null) {
-                                               value = n;
-                                               break;
-                                       }
+                                       value = n;
+                                       break;
                                }
                                if (key != null && value != null) {
                                        putValue(map, key.getTextContent(), 
value.getTextContent());
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 1f57e55..3d2f039 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
@@ -261,6 +261,15 @@ public class RoomDao implements 
IGroupAdminDataProviderDao<Room> {
                }
        }
 
+       public Room getExternal(String externalType, String externalId) {
+               log.debug("getExternal : {}  - {}", externalType, externalId);
+               return single(fillLazy(em
+                               , oem -> 
oem.createNamedQuery("getExternalRoomNoType", Room.class)
+                                       .setParameter("externalId", externalId)
+                                       .setParameter("externalType", 
externalType)
+                               , GRP_GROUPS));
+       }
+
        public Room getExternal(Type type, String externalType, String 
externalId) {
                log.debug("getExternal : {} - {}  - {}", type, externalType, 
externalId);
                return single(fillLazy(em
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 4a48779..a484cba 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
@@ -44,7 +44,7 @@ public class OAuth2Dao implements 
IDataProviderDao<OAuthServer> {
        @PersistenceContext
        private EntityManager em;
        @Autowired
-       private ConfigurationDao cfgDao;;
+       private ConfigurationDao cfgDao;
 
        public List<OAuthServer> getActive() {
                if (!isAllowRegisterOauth()) {
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
index e7b8e3c..8996843 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
@@ -26,6 +26,7 @@ import java.util.List;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
 
+import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
 import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -40,21 +41,20 @@ public class SOAPLoginDao {
        @PersistenceContext
        private EntityManager em;
 
-       public String addSOAPLogin(String sessionHash, Long roomId,
-                       boolean becomemoderator, boolean showAudioVideoTest,
-                       boolean allowSameURLMultipleTimes, Long recordingId,
-                       boolean allowRecording) {
+       public String addSOAPLogin(String sessionHash, RoomOptionsDTO options) {
                SOAPLogin soapLogin = new SOAPLogin();
                soapLogin.setCreated(new Date());
                soapLogin.setUsed(false);
-               soapLogin.setRoomId(roomId);
-               
soapLogin.setAllowSameURLMultipleTimes(allowSameURLMultipleTimes);
+               soapLogin.setRoomId(options.getRoomId());
+               soapLogin.setExternalRoomId(options.getExternalRoomId());
+               soapLogin.setExternalType(options.getExternalType());
+               
soapLogin.setAllowSameURLMultipleTimes(options.isAllowSameURLMultipleTimes());
                soapLogin.setHash(randomUUID().toString());
-               soapLogin.setRecordingId(recordingId);
+               soapLogin.setRecordingId(options.getRecordingId());
                soapLogin.setSessionHash(sessionHash);
-               soapLogin.setModerator(becomemoderator);
-               soapLogin.setShowAudioVideoTest(showAudioVideoTest);
-               soapLogin.setAllowRecording(allowRecording);
+               soapLogin.setModerator(options.isModerator());
+               soapLogin.setShowAudioVideoTest(options.isShowAudioVideoTest());
+               soapLogin.setAllowRecording(options.isAllowRecording());
 
                em.persist(soapLogin);
                em.flush();
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
index 07c5428..000762a 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
@@ -33,6 +33,8 @@ import com.github.openjson.JSONObject;
 public class RoomOptionsDTO implements Serializable {
        private static final long serialVersionUID = 1L;
        private Long roomId;
+       private String externalRoomId;
+       private String externalType;
        private Long recordingId;
        private boolean moderator;
        private boolean showAudioVideoTest;
@@ -52,6 +54,22 @@ public class RoomOptionsDTO implements Serializable {
                return this;
        }
 
+       public String getExternalRoomId() {
+               return externalRoomId;
+       }
+
+       public void setExternalRoomId(String externalRoomId) {
+               this.externalRoomId = externalRoomId;
+       }
+
+       public String getExternalType() {
+               return externalType;
+       }
+
+       public void setExternalType(String externalType) {
+               this.externalType = externalType;
+       }
+
        public Long getRecordingId() {
                return recordingId;
        }
@@ -101,6 +119,8 @@ public class RoomOptionsDTO implements Serializable {
                ro.moderator = o.optBoolean("moderator", false);
                ro.recordingId = optLong(o, "recordingId");
                ro.roomId = optLong(o, "roomId");
+               ro.externalRoomId = o.optString("externalRoomId");
+               ro.externalType = o.optString("externalType");
                ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", 
false);
                return ro;
        }
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 72663a7..e9e021c 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
@@ -81,6 +81,9 @@ import org.apache.openmeetings.db.entity.user.Group;
 @NamedQuery(name = "getExternalRoom", query = "SELECT rg.room FROM RoomGroup 
rg WHERE "
                + "rg.group.deleted = false AND rg.group.external = true AND 
rg.group.name = :externalType "
                + "AND rg.room.deleted = false AND rg.room.type = :type AND 
rg.room.externalId = :externalId")
+@NamedQuery(name = "getExternalRoomNoType", query = "SELECT rg.room FROM 
RoomGroup rg WHERE "
+               + "rg.group.deleted = false AND rg.group.external = true AND 
rg.group.name = :externalType "
+               + "AND rg.room.deleted = false AND rg.room.externalId = 
:externalId")
 @NamedQuery(name = "getPublicRoomsOrdered", query = "SELECT r from Room r 
WHERE r.ispublic= true AND r.deleted= false AND r.appointment = false ORDER BY 
r.name ASC")
 @NamedQuery(name = "getRoomById", query = "SELECT r FROM Room r WHERE 
r.deleted = false AND r.id = :id")
 @NamedQuery(name = "getRoomsByIds", query = "SELECT r FROM Room r WHERE 
r.deleted = false AND r.id IN :ids")
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
index 284048b..4c9df11 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/RemoteSessionObject.java
@@ -18,6 +18,8 @@
  */
 package org.apache.openmeetings.db.entity.server;
 
+import org.apache.openmeetings.db.dto.user.ExternalUserDTO;
+
 import com.github.openjson.JSONObject;
 
 /**
@@ -40,10 +42,6 @@ public class RemoteSessionObject {
                // def constructor
        }
 
-       public RemoteSessionObject(String username, String firstname, String 
lastname, String pictureUrl, String email) {
-               this(username, firstname, lastname, pictureUrl, email, "0", "");
-       }
-
        /**
         * @param username
         *            - username
@@ -62,15 +60,14 @@ public class RemoteSessionObject {
         *
         *            06.09.2009 17:05:48 sebastianwagner
         */
-       public RemoteSessionObject(String username, String firstname, String 
lastname, String pictureUrl, String email,
-                       String externalId, String externalType) {
-               this.username = username;
-               this.firstname = firstname;
-               this.lastname = lastname;
-               this.pictureUrl = pictureUrl;
-               this.email = email;
-               this.externalId = externalId;
-               this.externalType = externalType;
+       public RemoteSessionObject(ExternalUserDTO user) {
+               this.username = user.getLogin();
+               this.firstname = user.getFirstname();
+               this.lastname = user.getLastname();
+               this.pictureUrl = user.getProfilePictureUrl();
+               this.email = user.getEmail();
+               this.externalId = user.getExternalId();
+               this.externalType = user.getExternalType();
        }
 
        public String getUsername() {
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
index 9800f9e..6f884a6 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
@@ -48,6 +48,12 @@ public class SOAPLogin implements Serializable {
        @Column(name = "room_id")
        private Long roomId;
 
+       @Column(name = "external_room_id")
+       private String externalRoomId;
+
+       @Column(name = "external_type")
+       private String externalType;
+
        @Column(name = "session_hash")
        private String sessionHash;
 
@@ -102,6 +108,22 @@ public class SOAPLogin implements Serializable {
                this.roomId = roomId;
        }
 
+       public String getExternalRoomId() {
+               return externalRoomId;
+       }
+
+       public void setExternalRoomId(String externalRoomId) {
+               this.externalRoomId = externalRoomId;
+       }
+
+       public String getExternalType() {
+               return externalType;
+       }
+
+       public void setExternalType(String externalType) {
+               this.externalType = externalType;
+       }
+
        public String getSessionHash() {
                return sessionHash;
        }
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index f34c217..53a8cae 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
@@ -403,7 +403,7 @@ public class IcalUtils {
                DateTime start = new DateTime(appointment.getStart()), end = 
new DateTime(appointment.getEnd());
 
                VEvent meeting = new VEvent(start, end, appointment.getTitle());
-               meeting = addVEventpropsfromAppointment(appointment, meeting);
+               addVEventpropsfromAppointment(appointment, meeting);
                icsCalendar.getComponents().add(meeting);
 
                return icsCalendar;
@@ -416,8 +416,7 @@ public class IcalUtils {
         * @param meeting     VEvent of the Appointment
         * @return Updated VEvent
         */
-       private static VEvent addVEventpropsfromAppointment(Appointment 
appointment, VEvent meeting) {
-
+       private static void addVEventpropsfromAppointment(Appointment 
appointment, VEvent meeting) {
                if (appointment.getLocation() != null) {
                        meeting.getProperties().add(new 
Location(appointment.getLocation()));
                }
@@ -457,8 +456,6 @@ public class IcalUtils {
                Organizer organizer = new Organizer(orgUri);
                organizer.getParameters().add(orgCn);
                meeting.getProperties().add(organizer);
-
-               return meeting;
        }
 
        /**
@@ -488,7 +485,7 @@ public class IcalUtils {
                        DateTime start = new DateTime(appointment.getStart()), 
end = new DateTime(appointment.getEnd());
 
                        VEvent meeting = new VEvent(start, end, 
appointment.getTitle());
-                       meeting = addVEventpropsfromAppointment(appointment, 
meeting);
+                       addVEventpropsfromAppointment(appointment, meeting);
                        icsCalendar.getComponents().add(meeting);
                }
                return icsCalendar;
diff --git 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java
 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java
index 0513a95..ca3e46e 100644
--- 
a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java
+++ 
b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/AtomReader.java
@@ -67,6 +67,10 @@ public class AtomReader {
                        .add(new Field("author"));
        }
 
+       private AtomReader() {
+               // denied
+       }
+
        private static Spec add(String name) {
                Spec s = new Spec(name);
                specs.put(name, s);
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java
index b880245..3b2a39f 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/CalendarHelper.java
@@ -27,6 +27,10 @@ import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
 public class CalendarHelper {
+       private CalendarHelper() {
+               // denied
+       }
+
        public static ZoneId getZoneId(String tzId) {
                return ZoneId.of(tzId, ZoneId.SHORT_IDS);
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index f59f17d..2a312bf 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
@@ -286,8 +286,13 @@ public class WebSession extends 
AbstractAuthenticatedWebSession implements IWebS
                        if (sd.getXml() != null) {
                                RemoteSessionObject remoteUser = 
RemoteSessionObject.fromString(sd.getXml());
                                log.debug("Hash data was parsed successfuly ? 
{}, containg exterlaId ? {}", (remoteUser != null), 
!Strings.isEmpty(remoteUser.getExternalId()));
-                               if (remoteUser != null && 
!Strings.isEmpty(remoteUser.getExternalId())) {
-                                       Room r = 
roomDao.get(soapLogin.getRoomId());
+                               if 
(!Strings.isEmpty(remoteUser.getExternalId())) {
+                                       Room r;
+                                       if 
(Strings.isEmpty(soapLogin.getExternalRoomId()) || 
Strings.isEmpty(soapLogin.getExternalType())) {
+                                               r = 
roomDao.get(soapLogin.getRoomId());
+                                       } else {
+                                               r = 
roomDao.getExternal(soapLogin.getExternalType(), soapLogin.getExternalRoomId());
+                                       }
                                        if (r == null) {
                                                log.warn("Room was not found");
                                        } else {
@@ -317,7 +322,7 @@ public class WebSession extends 
AbstractAuthenticatedWebSession implements IWebS
                                                soapLogin.setUseDate(new 
Date());
                                                soapDao.update(soapLogin);
                                        }
-                                       roomId = soapLogin.getRoomId();
+                                       roomId = r == null ? null : r.getId();
                                        sd.setUserId(user.getId());
                                        sd.setRoomId(roomId);
                                        sessionDao.update(sd);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index 33ef7f0..9657f7d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -87,7 +87,7 @@ public abstract class InvitationForm extends Form<Invitation> 
{
        public enum Action {
                GENERATE
                , SEND
-       };
+       }
 
        public InvitationForm(String id) {
                super(id, new CompoundPropertyModel<>(new Invitation()));
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
index 465449b..7923aa2 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
@@ -268,5 +268,5 @@ public class ForgetPasswordDialog extends Modal<String> {
                        wasReset = true;
                        ForgetPasswordDialog.this.close(target);
                }
-       };
+       }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
index af62dae..c7b8232 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
@@ -18,12 +18,13 @@
  */
 package org.apache.openmeetings.web.room.wb;
 
+import static org.apache.openmeetings.core.util.WebSocketHelper.publish;
+import static org.apache.openmeetings.core.util.WebSocketHelper.sendRoom;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_SRC;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM__SRC;
 
 import java.util.function.Predicate;
 
-import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.util.NullStringer;
@@ -40,10 +41,14 @@ import 
org.apache.wicket.resource.FileSystemResourceReference;
 
 import com.github.openjson.JSONObject;
 
-public class WbWebSocketHelper extends WebSocketHelper {
+public class WbWebSocketHelper {
        public static final String PARAM_OBJ = "obj";
        private static final String PARAM__POSTER = "_poster";
 
+       private WbWebSocketHelper() {
+               // denied
+       }
+
        public static boolean send(IClusterWsMessage inMsg) {
                if (inMsg instanceof WsMessageWb) {
                        WsMessageWb m = (WsMessageWb)inMsg;
@@ -163,7 +168,7 @@ public class WbWebSocketHelper extends WebSocketHelper {
                        publish(new WsMessageWbFile(roomId, wbId, ruid, file, 
fi));
                }
                final JSONObject f = addFileUrl(ruid, file, fi, null);
-               WebSocketHelper.sendRoom(
+               sendRoom(
                                roomId
                                , new JSONObject().put("type", "wb")
                                , null
@@ -172,7 +177,7 @@ public class WbWebSocketHelper extends WebSocketHelper {
        }
 
        private static void sendWb(Long roomId, WbAction meth, JSONObject obj, 
Predicate<Client> check) {
-               WebSocketHelper.sendRoom(
+               sendRoom(
                                roomId
                                , new JSONObject().put("type", "wb")
                                , check
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java
index d5b5106..d05a0c1 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CalendarWebHelper.java
@@ -27,20 +27,24 @@ import java.util.Date;
 
 import org.apache.openmeetings.util.CalendarHelper;
 
-public class CalendarWebHelper extends CalendarHelper {
+public class CalendarWebHelper {
+       private CalendarWebHelper() {
+               // denied
+       }
+
        public static ZoneId getZoneId() {
-               return getZoneId(getUserTimeZone().getID());
+               return CalendarHelper.getZoneId(getUserTimeZone().getID());
        }
 
        public static Date getDate(LocalDateTime d) {
-               return getDate(d, getUserTimeZone().getID());
+               return CalendarHelper.getDate(d, getUserTimeZone().getID());
        }
 
        public static Date getDate(LocalDate d) {
-               return getDate(d, getUserTimeZone().getID());
+               return CalendarHelper.getDate(d, getUserTimeZone().getID());
        }
 
        public static LocalDateTime getDateTime(Date d) {
-               return getDateTime(d, getUserTimeZone().getID());
+               return CalendarHelper.getDateTime(d, getUserTimeZone().getID());
        }
 }
diff --git 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
index 65ca5e2..7d469de 100644
--- 
a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
+++ 
b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
@@ -300,10 +300,7 @@ public class UserWebService extends BaseWebService {
                        if (Strings.isEmpty(user.getExternalId()) || 
Strings.isEmpty(user.getExternalType())) {
                                return new ServiceResult("externalId and/or 
externalType are not set", Type.ERROR);
                        }
-                       RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(
-                                       user.getLogin(), user.getFirstname(), 
user.getLastname()
-                                       , user.getProfilePictureUrl(), 
user.getEmail()
-                                       , user.getExternalId(), 
user.getExternalType());
+                       RemoteSessionObject remoteSessionObject = new 
RemoteSessionObject(user);
 
                        log.debug(remoteSessionObject.toString());
 
@@ -311,11 +308,7 @@ public class UserWebService extends BaseWebService {
 
                        log.debug("jsonString {}", xmlString);
 
-                       String hash = soapDao.addSOAPLogin(sid, 
options.getRoomId(),
-                                       options.isModerator(), 
options.isShowAudioVideoTest(), options.isAllowSameURLMultipleTimes(),
-                                       options.getRecordingId(),
-                                       options.isAllowRecording()
-                                       );
+                       String hash = soapDao.addSOAPLogin(sid, options);
 
                        if (hash != null) {
                                if (options.isAllowSameURLMultipleTimes()) {

Reply via email to