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 8f88017 [OPENMEETINGS-2186] token final test
8f88017 is described below
commit 8f880174688ffe99d92d4a87ca5a77111005d7af
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Tue Mar 24 23:18:27 2020 +0700
[OPENMEETINGS-2186] token final test
---
.../apache/openmeetings/web/app/ClientManager.java | 25 ++++++++++++----------
.../src/main/webapp/WEB-INF/classes/hazelcast.xml | 7 ++++++
2 files changed, 21 insertions(+), 11 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 26f2442..598ead2 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
@@ -358,28 +358,31 @@ public class ClientManager implements IClientManager {
}
}
+ private String getServerUrl(Map.Entry<String, ServerInfo> e, Room r) {
+ final String curServerId = app.getServerId();
+ String serverId = e.getKey();
+ if (!curServerId.equals(serverId)) {
+ addRoomToServer(serverId, r);
+ String uuid = UUID.randomUUID().toString();
+ tokens().put(uuid, new InstantToken(getUserId(),
r.getId()));
+ return e.getValue().getUrl() + "?token=" + uuid;
+ }
+ return null;
+ }
+
public String getServerUrl(Room r) {
if (onlineServers.size() == 1) {
return null;
}
- final String curServerId = app.getServerId();
Optional<Map.Entry<String, ServerInfo>> existing =
onlineServers.entrySet().stream()
.filter(e ->
e.getValue().getRooms().contains(r.getId()))
.findFirst();
if (existing.isPresent()) {
- String serverId = existing.get().getKey();
- return curServerId.equals(serverId) ? null :
existing.get().getValue().getUrl();
+ return getServerUrl(existing.get(), r);
}
Optional<Map.Entry<String, ServerInfo>> min =
onlineServers.entrySet().stream()
.min((e1, e2) -> e1.getValue().getCapacity() -
e2.getValue().getCapacity());
- String serverId = min.get().getKey();
- if (!curServerId.equals(serverId)) {
- addRoomToServer(serverId, r);
- String uuid = UUID.randomUUID().toString();
- tokens().put(uuid, new InstantToken(getUserId(),
r.getId()));
- return min.get().getValue().getUrl() + "?token=" + uuid;
- }
- return null;
+ return getServerUrl(min.get(), r);
}
Optional<InstantToken> getToken(StringValue uuid) {
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
index dc847e1..4103181 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
@@ -65,6 +65,13 @@
<cache-local-entries>true</cache-local-entries>
</near-cache>
</map>
+ <map name="INSTANT_TOKENS_KEY">
+ <near-cache>
+ <eviction eviction-policy="NONE"/>
+ <in-memory-format>OBJECT</in-memory-format>
+ <cache-local-entries>true</cache-local-entries>
+ </near-cache>
+ </map>
<instance-name>server-1</instance-name><!-- MAKE SURE THIS ONE IS
UNIQUE -->
<member-attributes>
<attribute
name="server.url">https://127.0.0.1:5443/openmeetings</attribute><!-- MAKE SURE
THIS PUBLIC SERVER ADDRESS, USE IP with care: certificate may be not valid for
IP -->