From 1cfdcb0fed7a0ef7fc791f599b5a8d3501fe5786 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Tue, 11 Jun 2019 14:28:43 +0200 Subject: [PATCH] openvidu-server: LoadManager interface --- openvidu-server/pom.xml | 2 +- .../src/main/java/io/openvidu/server/OpenViduServer.java | 8 +------- .../main/java/io/openvidu/server/core/TokenGenerator.java | 3 +++ .../io/openvidu/server/kurento/core/KurentoSession.java | 5 ----- .../io/openvidu/server/kurento/kms/DummyLoadManager.java | 3 +++ .../openvidu/server/kurento/kms/FixedOneKmsManager.java | 4 +++- .../java/io/openvidu/server/kurento/kms/KmsManager.java | 5 ++++- .../java/io/openvidu/server/kurento/kms/LoadManager.java | 7 ++----- .../server/recording/service/RecordingManager.java | 5 +++++ pom.xml | 2 +- 10 files changed, 23 insertions(+), 21 deletions(-) diff --git a/openvidu-server/pom.xml b/openvidu-server/pom.xml index e0bf108f..ba901064 100644 --- a/openvidu-server/pom.xml +++ b/openvidu-server/pom.xml @@ -5,7 +5,7 @@ io.openvidu openvidu-parent - 1.9.0-beta-1 + 2.0.0 openvidu-server diff --git a/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java b/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java index 7af2e42e..36b1bfc1 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java +++ b/openvidu-server/src/main/java/io/openvidu/server/OpenViduServer.java @@ -105,7 +105,7 @@ public class OpenViduServer implements JsonRpcConfigurer { String firstKmsWsUri = kmsWsUris.get(0); log.info("OpenVidu Server using one KMS: {}", kmsWsUris); - return new FixedOneKmsManager(firstKmsWsUri); + return new FixedOneKmsManager(firstKmsWsUri, new DummyLoadManager()); } @Bean @@ -150,12 +150,6 @@ public class OpenViduServer implements JsonRpcConfigurer { return new TokenGeneratorDefault(); } - @Bean - @ConditionalOnMissingBean - public LoadManager loadManager() { - return new DummyLoadManager(); - } - @Bean @ConditionalOnMissingBean public OpenviduConfig openviduConfig() { diff --git a/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java b/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java index 5e763492..303f597e 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java +++ b/openvidu-server/src/main/java/io/openvidu/server/core/TokenGenerator.java @@ -17,9 +17,12 @@ package io.openvidu.server.core; +import org.springframework.stereotype.Service; + import io.openvidu.java.client.OpenViduRole; import io.openvidu.server.kurento.core.KurentoTokenOptions; +@Service public interface TokenGenerator { public Token generateToken(String sessionId, OpenViduRole role, String serverMetadata, diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSession.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSession.java index 8871619b..36da6c4b 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSession.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/core/KurentoSession.java @@ -287,11 +287,6 @@ public class KurentoSession extends Session { if (recordingManager.sessionIsBeingRecorded(this.sessionId)) { Recording stoppedRecording = this.recordingManager.forceStopRecording(this, EndReason.mediaServerDisconnect); - if (OutputMode.COMPOSED.equals(stoppedRecording.getOutputMode()) && stoppedRecording.hasVideo()) { - recordingManager.getSessionManager().evictParticipant( - this.getParticipantByPublicId(ProtocolElements.RECORDER_PARTICIPANT_PUBLICID), null, null, - null); - } } // Close all MediaEndpoints of participants diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/DummyLoadManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/DummyLoadManager.java index fcb8e3ea..a56bb33a 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/DummyLoadManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/DummyLoadManager.java @@ -17,6 +17,9 @@ package io.openvidu.server.kurento.kms; +import org.springframework.stereotype.Service; + +@Service public class DummyLoadManager implements LoadManager { @Override diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java index fd708aee..b2bbc690 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/FixedOneKmsManager.java @@ -29,7 +29,9 @@ public class FixedOneKmsManager extends KmsManager { private static final Logger log = LoggerFactory.getLogger(FixedOneKmsManager.class); - public FixedOneKmsManager(String kmsWsUri) { + public FixedOneKmsManager(String kmsWsUri, LoadManager loadManager) { + super(loadManager); + KurentoClient kClient = KurentoClient.create(kmsWsUri, new KurentoConnectionListener() { @Override diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java index b7407074..3692afda 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/KmsManager.java @@ -61,7 +61,6 @@ public abstract class KmsManager { @Autowired protected SessionManager sessionManager; - @Autowired protected LoadManager loadManager; private final Logger log = LoggerFactory.getLogger(KmsManager.class); @@ -71,6 +70,10 @@ public abstract class KmsManager { private Iterator usageIterator = null; + public KmsManager(LoadManager loadManager) { + this.loadManager = loadManager; + } + public synchronized void addKms(Kms kms) { this.kmss.put(kms.getUri(), kms); } diff --git a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/LoadManager.java b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/LoadManager.java index a7754ba3..faa01143 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/LoadManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/kurento/kms/LoadManager.java @@ -17,13 +17,10 @@ package io.openvidu.server.kurento.kms; -import org.springframework.stereotype.Service; - -@Service public interface LoadManager { - double calculateLoad(Kms kms); + double calculateLoad(Kms kms); - boolean allowMoreElements(Kms kms); + boolean allowMoreElements(Kms kms); } \ No newline at end of file diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java index d3b48d96..887ce676 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java @@ -219,6 +219,11 @@ public class RecordingManager { switch (recording.getOutputMode()) { case COMPOSED: recording = this.composedRecordingService.stopRecording(session, recording, reason); + if (recording.hasVideo()) { + this.sessionManager.evictParticipant( + session.getParticipantByPublicId(ProtocolElements.RECORDER_PARTICIPANT_PUBLICID), null, null, + null); + } break; case INDIVIDUAL: recording = this.singleStreamRecordingService.stopRecording(session, recording, reason); diff --git a/pom.xml b/pom.xml index 65823d34..9ddf42df 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.openvidu openvidu-parent - 1.9.0-beta-1 + 2.0.0 pom OpenVidu