You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/05/02 16:39:11 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2331] KMS
re-connection is refactored
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 7407e68 [OPENMEETINGS-2331] KMS re-connection is refactored
new 93d8cff Merge branch 'master' of github.com:apache/openmeetings
7407e68 is described below
commit 7407e68a3fe16f0a3b7037f01fce24076e69ce27
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sat May 2 23:33:27 2020 +0700
[OPENMEETINGS-2331] KMS re-connection is refactored
---
.../openmeetings/core/remote/KurentoHandler.java | 29 +++++++++++++---------
.../webapp/WEB-INF/classes/applicationContext.xml | 2 +-
2 files changed, 18 insertions(+), 13 deletions(-)
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 8c3e855..348f3e3 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
@@ -33,6 +33,8 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
@@ -57,7 +59,6 @@ import org.kurento.client.KurentoConnectionListener;
import org.kurento.client.MediaObject;
import org.kurento.client.MediaPipeline;
import org.kurento.client.ObjectCreatedEvent;
-import org.kurento.client.ObjectDestroyedEvent;
import org.kurento.client.PlayerEndpoint;
import org.kurento.client.RecorderEndpoint;
import org.kurento.client.Tag;
@@ -117,27 +118,33 @@ public class KurentoHandler {
return connctd;
}
+ @PostConstruct
public void init() {
check = () -> {
try {
+ if (isConnected()) {
+ return;
+ }
kuid = randomUUID().toString();
client = KurentoClient.create(kurentoWsUrl, new KConnectionListener(kuid));
client.getServerManager().addObjectCreatedListener(new KWatchDogCreate());
- client.getServerManager().addObjectDestroyedListener(new EventListener<>() {
- @Override
- public void onEvent(ObjectDestroyedEvent event) {
- log.debug("Kurento::ObjectDestroyedEvent objectId {}, tags {}, source {}", event.getObjectId(), event.getTags(), event.getSource());
- }
- });
+ client.getServerManager().addObjectDestroyedListener(event ->
+ log.debug("Kurento::ObjectDestroyedEvent objectId {}, tags {}, source {}", event.getObjectId(), event.getTags(), event.getSource())
+ );
} catch (Exception e) {
log.warn("Fail to create Kurento client, will re-try in {} ms", checkTimeout);
- kmsRecheckScheduler.schedule(check, checkTimeout, MILLISECONDS);
}
};
- check.run();
+ kmsRecheckScheduler.scheduleAtFixedRate(check, 0L, checkTimeout, MILLISECONDS);
}
+ @PreDestroy
public void destroy() {
+ clean();
+ kmsRecheckScheduler.shutdownNow();
+ }
+
+ private void clean() {
if (client != null) {
kuid = randomUUID().toString(); // will be changed to prevent double events
client.destroy();
@@ -377,11 +384,9 @@ public class KurentoHandler {
public void disconnected() {
log.info("Kurento disconnected");
if (lkuid.equals(kuid)) {
- log.warn("Disconnected, will re-try in {} ms", checkTimeout);
connected = false;
notifyRooms();
- destroy();
- kmsRecheckScheduler.schedule(check, checkTimeout, MILLISECONDS);
+ clean();
}
}
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
index 39fcbfb..e24aee8 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
@@ -144,7 +144,7 @@
</bean>
<!-- Kurento -->
- <bean id="kurentoHandler" class="org.apache.openmeetings.core.remote.KurentoHandler" init-method="init" destroy-method="destroy"
+ <bean id="kurentoHandler" class="org.apache.openmeetings.core.remote.KurentoHandler"
p:kurentoWsUrl="ws://127.0.0.1:8888/kurento"
p:checkTimeout="10000"
p:watchThreadCount="10"