[openmeetings] branch master updated: [OPENMEETINGS-1836] more work on performance: micActivity

2018-03-29 Thread solomax
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 09340dc  [OPENMEETINGS-1836] more work on performance: micActivity
09340dc is described below

commit 09340dc0bffd6be2b10261d25aeb2c68164b0e3c
Author: Maxim Solodovnik 
AuthorDate: Fri Mar 30 00:28:55 2018 +0700

[OPENMEETINGS-1836] more work on performance: micActivity
---
 .../core/remote/ScopeApplicationAdapter.java |  7 +--
 .../apache/openmeetings/db/manager/IClientManager.java   |  1 +
 .../org/apache/openmeetings/db/util/ws/RoomMessage.java  |  1 -
 .../org/apache/openmeetings/web/app/ClientManager.java   |  8 
 .../java/org/apache/openmeetings/web/room/RoomPanel.java | 13 -
 .../java/org/apache/openmeetings/web/room/room-base.js   |  3 +++
 .../org/apache/openmeetings/web/room/video-manager.js| 16 +---
 7 files changed, 30 insertions(+), 19 deletions(-)

diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
index 9a9c0ac..36985fe 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
@@ -938,8 +938,11 @@ public class ScopeApplicationAdapter /*extends 
MultiThreadedApplicationAdapter i
public void micActivity(boolean active) {
IConnection current = Red5.getConnectionLocal();
StreamClient client = 
streamClientManager.get(IClientUtil.getId(current.getClient()));
-   WebSocketHelper.sendRoom(new 
TextRoomMessage(client.getRoomId(), client, RoomMessage.Type.audioActivity
-   , new JSONObject().put("sid", 
client.getSid()).put("active", active).toString()));
+   WebSocketHelper.sendRoom(client.getRoomId(), new JSONObject()
+   .put("type", "mic")
+   .put("id", "activity")
+   .put("uid", 
clientManager.uidBySid(client.getSid()))
+   .put("active", active));
}
 
/*
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
index 037e4e6..5535ecc 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/manager/IClientManager.java
@@ -28,6 +28,7 @@ import org.apache.openmeetings.db.entity.basic.IClient;
 public interface IClientManager {
Client get(String uid);
Client getBySid(String sid);
+   String uidBySid(String sid);
List listByRoom(Long roomId);
Collection listByUser(Long userId);
Client update(Client c);
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
index 3c57781..5bd5b79 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ws/RoomMessage.java
@@ -55,7 +55,6 @@ public class RoomMessage implements IWebSocketPushMessage {
, kick
, newStream
, closeStream
-   , audioActivity //user speaks
, mute
, exclusive
, quickPollUpdated
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index a81591d..45e9ad7 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -115,6 +115,14 @@ public class ClientManager implements IClientManager {
return uid == null ? null : get(uid);
}
 
+   @Override
+   public String uidBySid(String sid) {
+   if (sid == null) {
+   return null;
+   }
+   return mapBySid().get(sid);
+   }
+
public void exitRoom(IClient c) {
Long roomId = c.getRoomId();
removeFromRoom(c);
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index 8bb95a0..a0464ad 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room

[openmeetings] branch master updated: [OPENMEETINGS-1836] more work on performance

2018-03-06 Thread solomax
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 1ca1bc5  [OPENMEETINGS-1836] more work on performance
1ca1bc5 is described below

commit 1ca1bc545634bc755c48c29556a4d8ea78940d8c
Author: Maxim Solodovnik 
AuthorDate: Wed Mar 7 14:06:54 2018 +0700

[OPENMEETINGS-1836] more work on performance
---
 .../apache/openmeetings/web/app/ClientManager.java |  11 +-
 .../apache/openmeetings/web/room/RoomPanel.html|   3 -
 .../apache/openmeetings/web/room/RoomPanel.java| 136 +++--
 .../openmeetings/web/room/sidebar/RoomSidebar.java |   5 +-
 .../web/room/sidebar/icon/ClientIcon.java  |  10 +-
 .../web/room/sidebar/icon/KickIcon.java|   2 +-
 .../room/sidebar/icon/right/AudioRightIcon.java|   2 +-
 .../sidebar/icon/right/ModeratorRightIcon.java |   4 +-
 .../sidebar/icon/right/PresenterRightIcon.java |   4 +-
 .../sidebar/icon/right/RemoteControlRightIcon.java |   2 +-
 .../web/room/sidebar/icon/right/RoomRightIcon.java |   6 +-
 .../sidebar/icon/right/ScreenShareRightIcon.java   |   2 +-
 .../room/sidebar/icon/right/VideoRightIcon.java|   2 +-
 .../sidebar/icon/right/WhiteboardRightIcon.java|   4 +-
 14 files changed, 106 insertions(+), 87 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index c1ca3d0..df177c8 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -134,7 +134,13 @@ public class ClientManager implements IClientManager {
return getRooms().keySet();
}
 
-   public Client addToRoom(Client c) {
+   /**
+* This method will return count of users in room _after_ adding
+*
+* @param c - client to be added to the room
+* @return count of users in room _after_ adding
+*/
+   public int addToRoom(Client c) {
Long roomId = c.getRoom().getId();
log.debug("Adding online room client: {}, room: {}", 
c.getUid(), roomId);
IMap> rooms = getRooms();
@@ -142,10 +148,11 @@ public class ClientManager implements IClientManager {
rooms.putIfAbsent(roomId, new ConcurrentHashSet());
Set set = rooms.get(roomId);
set.add(c.getUid());
+   final int count = set.size();
rooms.put(roomId, set);
rooms.unlock(roomId);
update(c);
-   return c;
+   return count;
}
 
public IClient removeFromRoom(IClient _c) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
index 5b66475..d6c38c8 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.html
@@ -85,8 +85,5 @@



-   
-   OmUtil.sendMessage({area: 'room', type: 'room', action: 
'roomEnter'});
-   
 
 
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index f6942a3..1ce716a 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -72,6 +72,7 @@ import org.apache.openmeetings.web.room.wb.WbPanel;
 import org.apache.openmeetings.web.util.ExtendedClientProperties;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import 
org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -79,6 +80,7 @@ import org.apache.wicket.event.IEvent;
 import org.apache.wicket.extensions.ajax.AjaxDownloadBehavior;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.protocol.ws.api.event.WebSocketPushPayload;
@@ -114,6 +116,69 @@ public class RoomPanel extends BasePanel {
private final Room r;
private final boolean intervi