You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by se...@apache.org on 2022/06/18 23:33:52 UTC

[openmeetings] branch feature/openmeetings-2742-add-maven-mediaserver-module created (now 5b0997b43)

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

sebawagner pushed a change to branch feature/openmeetings-2742-add-maven-mediaserver-module
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


      at 5b0997b43 OPENMEETINGS-2742 Introduce openmeetings-mdeiaserver module.

This branch includes the following new commits:

     new 5b0997b43 OPENMEETINGS-2742 Introduce openmeetings-mdeiaserver module.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[openmeetings] 01/01: OPENMEETINGS-2742 Introduce openmeetings-mdeiaserver module.

Posted by se...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

sebawagner pushed a commit to branch feature/openmeetings-2742-add-maven-mediaserver-module
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 5b0997b4313c266a1fc1ad4b603dd4e18c4f33df
Author: Sebastian <se...@apache.org>
AuthorDate: Sun Jun 19 11:33:34 2022 +1200

    OPENMEETINGS-2742 Introduce openmeetings-mdeiaserver module.
---
 openmeetings-core/pom.xml                          |  8 +--
 .../pom.xml                                        | 74 +++-------------------
 .../mediaserver}/remote/AbstractStream.java        |  2 +-
 .../mediaserver}/remote/IStreamProcessor.java      |  2 +-
 .../openmeetings/mediaserver}/remote/KRoom.java    |  6 +-
 .../openmeetings/mediaserver}/remote/KStream.java  | 14 ++--
 .../mediaserver}/remote/KTestStream.java           | 14 ++--
 .../mediaserver}/remote/KurentoHandler.java        |  2 +-
 .../mediaserver}/remote/StreamProcessor.java       |  8 +--
 .../remote/StreamProcessorActions.java             |  6 +-
 .../mediaserver}/remote/TestStreamProcessor.java   | 10 +--
 .../mediaserver}/remote/BaseMockedTest.java        | 10 ++-
 .../remote/TestNotConnectedMocked.java             |  2 +-
 .../remote/TestRecordingFlowMocked.java            |  2 +-
 .../mediaserver}/remote/TestRoomFlowMocked.java    |  2 +-
 .../mediaserver}/remote/TestSetupFlowMocked.java   |  9 +--
 openmeetings-web/pom.xml                           |  4 ++
 .../web/admin/connection/ConnectionsPanel.java     |  4 +-
 .../web/admin/connection/KStreamDto.java           |  2 +-
 .../apache/openmeetings/web/app/Application.java   |  2 +-
 .../apache/openmeetings/web/app/ClientManager.java |  2 +-
 .../apache/openmeetings/web/app/TimerService.java  |  2 +-
 .../openmeetings/web/common/OmWebSocketPanel.java  |  4 +-
 .../apache/openmeetings/web/room/RoomPanel.java    |  6 +-
 .../openmeetings/web/room/menu/RoomMenuPanel.java  |  4 +-
 .../openmeetings/web/room/sidebar/RoomSidebar.java |  2 +-
 .../openmeetings/web/room/wb/InterviewWbPanel.java |  2 +-
 pom.xml                                            | 12 ++++
 28 files changed, 93 insertions(+), 124 deletions(-)

diff --git a/openmeetings-core/pom.xml b/openmeetings-core/pom.xml
index 3cabb9d76..c634aefdb 100644
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-core/pom.xml
@@ -89,10 +89,6 @@
 			<groupId>org.springframework</groupId>
 			<artifactId>spring-webmvc</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>org.kurento</groupId>
-			<artifactId>kurento-client</artifactId>
-		</dependency>
 		<dependency>
 			<groupId>org.asteriskjava</groupId>
 			<artifactId>asterisk-java</artifactId>
@@ -101,6 +97,10 @@
 			<groupId>javax.sip</groupId>
 			<artifactId>jain-sip-ri</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>javax.annotation</groupId>
+			<artifactId>javax.annotation-api</artifactId>
+		</dependency>
 		<!-- Test dependencies -->
 		<dependency>
 			<groupId>org.junit.jupiter</groupId>
diff --git a/openmeetings-core/pom.xml b/openmeetings-mediaserver/pom.xml
similarity index 51%
copy from openmeetings-core/pom.xml
copy to openmeetings-mediaserver/pom.xml
index 3cabb9d76..fd0a0fe2a 100644
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-mediaserver/pom.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0"?>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +15,8 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<project xmlns="http://maven.apache.org/POM/4.0.0" 
+		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 		xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 	<parent>
@@ -25,29 +25,14 @@
 		<version>7.0.0-SNAPSHOT</version>
 		<relativePath>..</relativePath>
 	</parent>
-	<artifactId>openmeetings-core</artifactId>
+	<artifactId>openmeetings-mediaserver</artifactId>
 	<packaging>jar</packaging>
-	<name>Openmeetings Core</name>
-	<description>Module for OpenMeetings core classes and services</description>
+	<name>Openmeetings MediaServer</name>
+	<description>Module for OpenMeetings MediaServer classes and services</description>
 	<properties>
 		<site.basedir>${project.parent.basedir}</site.basedir>
 		<autoModuleName>apache.openmeetings.core</autoModuleName>
 	</properties>
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>test-jar</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
 	<dependencies>
 		<dependency>
 			<groupId>org.apache.openmeetings</groupId>
@@ -55,57 +40,16 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.openmeetings</groupId>
-			<artifactId>openmeetings-db</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-core</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.commons</groupId>
-			<artifactId>commons-collections4</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>com.thoughtworks.xstream</groupId>
-			<artifactId>xstream</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.wicket</groupId>
-			<artifactId>wicket-core</artifactId>
+			<artifactId>openmeetings-core</artifactId>
 		</dependency>
 		<dependency>
-			<groupId>org.apache.wicket</groupId>
-			<artifactId>wicket-ioc</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.directory.api</groupId>
-			<artifactId>api-all</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.jodconverter</groupId>
-			<artifactId>jodconverter-local</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-webmvc</artifactId>
+			<groupId>org.apache.openmeetings</groupId>
+			<artifactId>openmeetings-db</artifactId>
 		</dependency>
 		<dependency>
 			<groupId>org.kurento</groupId>
 			<artifactId>kurento-client</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>org.asteriskjava</groupId>
-			<artifactId>asterisk-java</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>javax.sip</groupId>
-			<artifactId>jain-sip-ri</artifactId>
-		</dependency>
-		<!-- Test dependencies -->
-		<dependency>
-			<groupId>org.junit.jupiter</groupId>
-			<artifactId>junit-jupiter-params</artifactId>
-		</dependency>
 		<dependency>
 			<groupId>org.apache.openmeetings</groupId>
 			<artifactId>openmeetings-util</artifactId>
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/AbstractStream.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/AbstractStream.java
similarity index 98%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/AbstractStream.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/AbstractStream.java
index f07e051d2..0dc76efc8 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/AbstractStream.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/AbstractStream.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import org.kurento.client.CertificateKeyType;
 import org.kurento.client.MediaPipeline;
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/IStreamProcessor.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/IStreamProcessor.java
similarity index 94%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/IStreamProcessor.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/IStreamProcessor.java
index f14228573..eacf0e402 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/IStreamProcessor.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/IStreamProcessor.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 public interface IStreamProcessor {
 	void release(AbstractStream stream, boolean releaseStream);
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KRoom.java
similarity index 97%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KRoom.java
index 04c9a0818..5409e243f 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KRoom.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_ICE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.newKurentoMsg;
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_ICE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.newKurentoMsg;
 
 import java.util.Date;
 import java.util.Optional;
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KStream.java
similarity index 97%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KStream.java
index 52462c8eb..447209c9c 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KStream.java
@@ -19,16 +19,16 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static java.util.UUID.randomUUID;
 import static java.util.concurrent.CompletableFuture.delayedExecutor;
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_CANDIDATE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_ICE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.TAG_ROOM;
-import static org.apache.openmeetings.core.remote.KurentoHandler.TAG_STREAM_UID;
-import static org.apache.openmeetings.core.remote.KurentoHandler.getFlowoutTimeout;
-import static org.apache.openmeetings.core.remote.KurentoHandler.newKurentoMsg;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_CANDIDATE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_ICE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.TAG_ROOM;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.TAG_STREAM_UID;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.getFlowoutTimeout;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.newKurentoMsg;
 import static org.apache.openmeetings.util.OmFileHelper.getRecUri;
 import static org.apache.openmeetings.util.OmFileHelper.getRecordingChunk;
 
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KTestStream.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KTestStream.java
similarity index 93%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KTestStream.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KTestStream.java
index a4f0f8555..24ade96e7 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KTestStream.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KTestStream.java
@@ -16,15 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.core.remote.KurentoHandler.MODE_TEST;
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_CANDIDATE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.TAG_MODE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.TAG_ROOM;
-import static org.apache.openmeetings.core.remote.KurentoHandler.sendError;
-import static org.apache.openmeetings.core.remote.TestStreamProcessor.newTestKurentoMsg;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.MODE_TEST;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_CANDIDATE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.TAG_MODE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.TAG_ROOM;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.sendError;
+import static org.apache.openmeetings.mediaserver.remote.TestStreamProcessor.newTestKurentoMsg;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_WEBM;
 import static org.apache.openmeetings.util.OmFileHelper.TEST_SETUP_PREFIX;
 import static org.apache.openmeetings.util.OmFileHelper.getStreamsDir;
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KurentoHandler.java
similarity index 99%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KurentoHandler.java
index 3c3d1300e..f13a18ced 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KurentoHandler.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/KurentoHandler.java
@@ -17,7 +17,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/StreamProcessor.java
similarity index 98%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/StreamProcessor.java
index 2ef4b79f0..8d1e2d748 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/StreamProcessor.java
@@ -17,11 +17,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_ICE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.activityAllowed;
-import static org.apache.openmeetings.core.remote.KurentoHandler.newKurentoMsg;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_ICE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.activityAllowed;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.newKurentoMsg;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.isRecordingsEnabled;
 
 import java.util.Collection;
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessorActions.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/StreamProcessorActions.java
similarity index 95%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessorActions.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/StreamProcessorActions.java
index b80a290bc..5c4cb1b59 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessorActions.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/StreamProcessorActions.java
@@ -17,10 +17,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_CANDIDATE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.sendError;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_CANDIDATE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.sendError;
 
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/TestStreamProcessor.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/TestStreamProcessor.java
similarity index 88%
rename from openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/TestStreamProcessor.java
rename to openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/TestStreamProcessor.java
index 3bd7bdec6..e9a8faf50 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/TestStreamProcessor.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/remote/TestStreamProcessor.java
@@ -17,12 +17,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
-import static org.apache.openmeetings.core.remote.KurentoHandler.MODE_TEST;
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_CANDIDATE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_ICE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.TAG_MODE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.MODE_TEST;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_CANDIDATE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_ICE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.TAG_MODE;
 
 import java.util.Map;
 import java.util.Map.Entry;
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/BaseMockedTest.java b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/BaseMockedTest.java
similarity index 91%
rename from openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/BaseMockedTest.java
rename to openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/BaseMockedTest.java
index a19a3ca6d..9644a94b7 100644
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/BaseMockedTest.java
+++ b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/BaseMockedTest.java
@@ -17,7 +17,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -41,6 +41,14 @@ import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.entity.basic.IWsClient;
 import org.apache.openmeetings.db.entity.label.OmLanguage;
 import org.apache.openmeetings.db.util.ApplicationHelper;
+import org.apache.openmeetings.mediaserver.remote.AbstractStream;
+import org.apache.openmeetings.mediaserver.remote.KRoom;
+import org.apache.openmeetings.mediaserver.remote.KStream;
+import org.apache.openmeetings.mediaserver.remote.KTestStream;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
+import org.apache.openmeetings.mediaserver.remote.StreamProcessor;
+import org.apache.openmeetings.mediaserver.remote.StreamProcessorActions;
+import org.apache.openmeetings.mediaserver.remote.TestStreamProcessor;
 import org.apache.wicket.injection.Injector;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestNotConnectedMocked.java b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestNotConnectedMocked.java
similarity index 98%
rename from openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestNotConnectedMocked.java
rename to openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestNotConnectedMocked.java
index a951ed136..80a799807 100644
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestNotConnectedMocked.java
+++ b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestNotConnectedMocked.java
@@ -17,7 +17,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestRecordingFlowMocked.java
similarity index 99%
rename from openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
rename to openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestRecordingFlowMocked.java
index b8ddf50c9..00aa5f8ad 100644
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
+++ b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestRecordingFlowMocked.java
@@ -17,7 +17,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestRoomFlowMocked.java
similarity index 98%
rename from openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
rename to openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestRoomFlowMocked.java
index 422905684..3fd44cb87 100644
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
+++ b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestRoomFlowMocked.java
@@ -17,7 +17,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestSetupFlowMocked.java b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestSetupFlowMocked.java
similarity index 90%
rename from openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestSetupFlowMocked.java
rename to openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestSetupFlowMocked.java
index bf355a5c2..ebd151795 100644
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestSetupFlowMocked.java
+++ b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/remote/TestSetupFlowMocked.java
@@ -17,11 +17,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.core.remote;
+package org.apache.openmeetings.mediaserver.remote;
 
-import static org.apache.openmeetings.core.remote.KurentoHandler.MODE_TEST;
-import static org.apache.openmeetings.core.remote.KurentoHandler.PARAM_CANDIDATE;
-import static org.apache.openmeetings.core.remote.KurentoHandler.TAG_MODE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.MODE_TEST;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.PARAM_CANDIDATE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.TAG_MODE;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 import org.apache.openmeetings.db.entity.basic.WsClient;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.kurento.client.MediaPipeline;
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 821926217..adc87bd63 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -494,6 +494,10 @@
 			<groupId>org.apache.openmeetings</groupId>
 			<artifactId>openmeetings-core</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.openmeetings</groupId>
+			<artifactId>openmeetings-mediaserver</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>org.apache.openmeetings</groupId>
 			<artifactId>openmeetings-install</artifactId>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
index c630a6454..5869cc044 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
@@ -28,8 +28,6 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Stream;
 
-import org.apache.openmeetings.core.remote.KurentoHandler;
-import org.apache.openmeetings.core.remote.StreamProcessor;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
 import org.apache.openmeetings.db.entity.basic.Client;
@@ -48,6 +46,8 @@ import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
+import org.apache.openmeetings.mediaserver.remote.StreamProcessor;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/KStreamDto.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/KStreamDto.java
index 75265a71e..fa42b5aa1 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/KStreamDto.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/KStreamDto.java
@@ -20,10 +20,10 @@ package org.apache.openmeetings.web.admin.connection;
 
 import java.util.Date;
 
-import org.apache.openmeetings.core.remote.KStream;
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
 import org.apache.openmeetings.db.entity.basic.Client.StreamType;
 import org.apache.openmeetings.db.entity.record.RecordingChunk.Type;
+import org.apache.openmeetings.mediaserver.remote.KStream;
 
 /**
  * A KStream for the Wicket UI to display. This object can be serialized, otherwise
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index 728d717c1..916be049b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -47,7 +47,6 @@ import java.util.stream.Stream;
 import javax.websocket.WebSocketContainer;
 
 import org.apache.openmeetings.IApplication;
-import org.apache.openmeetings.core.remote.KStream;
 import org.apache.openmeetings.core.sip.SipManager;
 import org.apache.openmeetings.core.util.ChatWebSocketHelper;
 import org.apache.openmeetings.core.util.WebSocketHelper;
@@ -133,6 +132,7 @@ import org.apache.wicket.settings.ExceptionSettings;
 import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.validation.validator.UrlValidator;
+import org.apache.openmeetings.mediaserver.remote.KStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
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 f447cf24e..ab4f427a8 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
@@ -35,7 +35,6 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Function;
 import java.util.stream.Stream;
 
-import org.apache.openmeetings.core.remote.KurentoHandler;
 import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.log.ConferenceLog;
@@ -43,6 +42,7 @@ import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.manager.IClientManager;
 import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.db.util.ws.TextRoomMessage;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
 import org.apache.openmeetings.web.pages.auth.SignInPage;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
index 256841e51..1e94ec5f2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
@@ -29,7 +29,6 @@ import java.util.function.Predicate;
 
 import javax.annotation.PostConstruct;
 
-import org.apache.openmeetings.core.remote.KurentoHandler;
 import org.apache.openmeetings.core.sip.SipManager;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
@@ -39,6 +38,7 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.wicket.ThreadContext;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java
index 9edecc382..4faed1687 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java
@@ -18,13 +18,12 @@
  */
 package org.apache.openmeetings.web.common;
 
-import static org.apache.openmeetings.core.remote.KurentoHandler.KURENTO_TYPE;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.KURENTO_TYPE;
 
 import java.io.IOException;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import org.apache.openmeetings.core.remote.KurentoHandler;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.basic.IWsClient;
@@ -44,6 +43,7 @@ import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
 import org.apache.wicket.protocol.ws.api.message.ErrorMessage;
 import org.apache.wicket.protocol.ws.api.message.TextMessage;
 import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
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 3a4152b35..198107737 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
@@ -20,13 +20,13 @@ package org.apache.openmeetings.web.room;
 
 import static de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal.BUTTON_MARKUP_ID;
 import static java.time.Duration.ZERO;
-import static org.apache.openmeetings.core.remote.KurentoHandler.activityAllowed;
 import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_USER_PREFIX;
 import static org.apache.openmeetings.db.entity.calendar.Appointment.allowedStart;
 import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
 import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
 import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import static org.apache.openmeetings.web.room.wb.WbPanel.WB_JS_REFERENCE;
+import static org.apache.openmeetings.mediaserver.remote.KurentoHandler.activityAllowed;
 
 import java.io.IOException;
 import java.nio.file.Files;
@@ -38,8 +38,6 @@ import java.util.Set;
 import java.util.stream.Stream;
 
 import org.apache.commons.text.StringEscapeUtils;
-import org.apache.openmeetings.core.remote.KurentoHandler;
-import org.apache.openmeetings.core.remote.StreamProcessor;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
@@ -100,6 +98,8 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.resource.FileResourceStream;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.string.Strings;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
+import org.apache.openmeetings.mediaserver.remote.StreamProcessor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index d96d16f2a..db54eebbb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -34,8 +34,6 @@ import java.util.Date;
 import java.util.List;
 
 import org.apache.commons.lang3.time.FastDateFormat;
-import org.apache.openmeetings.core.remote.KurentoHandler;
-import org.apache.openmeetings.core.remote.StreamProcessor;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
@@ -65,6 +63,8 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.request.flow.RedirectToUrlException;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
+import org.apache.openmeetings.mediaserver.remote.KurentoHandler;
+import org.apache.openmeetings.mediaserver.remote.StreamProcessor;
 
 import com.github.openjson.JSONObject;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 79101d4d8..c91659b8b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -20,7 +20,6 @@ package org.apache.openmeetings.web.room.sidebar;
 
 import static org.apache.openmeetings.web.app.Application.kickUser;
 
-import org.apache.openmeetings.core.remote.StreamProcessor;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
@@ -40,6 +39,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
+import org.apache.openmeetings.mediaserver.remote.StreamProcessor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
index f820baffd..24e708d45 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
@@ -20,13 +20,13 @@ package org.apache.openmeetings.web.room.wb;
 
 import java.io.IOException;
 
-import org.apache.openmeetings.core.remote.StreamProcessor;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.spring.injection.annot.SpringBean;
+import org.apache.openmeetings.mediaserver.remote.StreamProcessor;
 
 import com.github.openjson.JSONObject;
 
diff --git a/pom.xml b/pom.xml
index 81d463fb9..7b4a9fe39 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,6 +132,7 @@
 		<jquery-ui-touch-punch.version>0.2.3-2</jquery-ui-touch-punch.version>
 		<apacheds-test-framework.version>2.0.0.AM26</apacheds-test-framework.version>
 		<swagger.version>2.2.1</swagger.version>
+		<annotation-api.version>1.3.2</annotation-api.version>
 		<!--  Exclude all generated code  -->
 		<sonar.exclusions>file:**/generated-sources/**, file:**/jquery-ui.css, file:**/cssemoticons.js, file:**/bootstrap-confirmation.js</sonar.exclusions>
 		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
@@ -419,6 +420,11 @@
 				<artifactId>openmeetings-core</artifactId>
 				<version>${project.version}</version>
 			</dependency>
+			<dependency>
+				<groupId>org.apache.openmeetings</groupId>
+				<artifactId>openmeetings-mediaserver</artifactId>
+				<version>${project.version}</version>
+			</dependency>
 			<dependency>
 				<groupId>org.apache.openmeetings</groupId>
 				<artifactId>openmeetings-db</artifactId>
@@ -945,6 +951,11 @@
 				<artifactId>swagger-annotations</artifactId>
 				<version>${swagger.version}</version>
 			</dependency>
+			<dependency>
+				<groupId>javax.annotation</groupId>
+				<artifactId>javax.annotation-api</artifactId>
+				<version>${annotation-api.version}</version>
+			</dependency>
 
 			<!-- TESTS -->
 			<dependency>
@@ -1691,6 +1702,7 @@
 				<module>openmeetings-util</module>
 				<module>openmeetings-db</module>
 				<module>openmeetings-core</module>
+				<module>openmeetings-mediaserver</module>
 				<module>openmeetings-install</module>
 				<module>openmeetings-service</module>
 				<module>openmeetings-webservice</module>