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 2021/03/09 03:19:00 UTC
[openmeetings] branch spring-configurable updated: Another bunch of
classes is covered
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch spring-configurable
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/spring-configurable by this push:
new 9ae3165 Another bunch of classes is covered
9ae3165 is described below
commit 9ae31653424afc196e9eb3e6cabfb6ef4d39e760
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Mar 9 10:18:46 2021 +0700
Another bunch of classes is covered
---
.../org/apache/openmeetings/core/remote/KRoom.java | 53 ++++++++++++----------
.../apache/openmeetings/core/remote/KStream.java | 7 ++-
.../openmeetings/core/remote/KTestStream.java | 16 +++++--
.../openmeetings/core/remote/KurentoHandler.java | 17 +------
.../openmeetings/core/remote/StreamProcessor.java | 17 +------
.../core/remote/TestStreamProcessor.java | 2 +-
.../apache/openmeetings/core/sip/SipManager.java | 2 +-
.../openmeetings/core/sip/SipStackProcessor.java | 11 +++--
.../util/crypt/SCryptImplementation.java | 2 +-
pom.xml | 14 +++++-
10 files changed, 71 insertions(+), 70 deletions(-)
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
index 99cedfd..a5e5b75 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
@@ -30,7 +30,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.commons.lang3.time.FastDateFormat;
import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.util.WebSocketHelper;
-import org.apache.openmeetings.db.dao.record.RecordingChunkDao;
+import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.basic.Client.Activity;
import org.apache.openmeetings.db.entity.basic.Client.StreamDesc;
@@ -45,6 +45,9 @@ import org.apache.openmeetings.db.util.ws.RoomMessage;
import org.apache.openmeetings.db.util.ws.TextRoomMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowire;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Configurable;
import com.github.openjson.JSONObject;
@@ -52,11 +55,19 @@ import com.github.openjson.JSONObject;
* Dynamically created object representing a conference room on the MediaServer
*
*/
+@Configurable(autowire = Autowire.BY_TYPE)
public class KRoom {
private static final Logger log = LoggerFactory.getLogger(KRoom.class);
- private final StreamProcessor processor;
- private final RecordingChunkDao chunkDao;
+ @Autowired
+ private KurentoHandler kHandler;
+ @Autowired
+ private StreamProcessor processor;
+ @Autowired
+ private RecordingDao recDao;
+ @Autowired
+ private IClientManager cm;
+
private final Room room;
private final AtomicBoolean recordingStarted = new AtomicBoolean(false);
private final AtomicBoolean sharingStarted = new AtomicBoolean(false);
@@ -65,9 +76,7 @@ public class KRoom {
private JSONObject recordingUser = new JSONObject();
private JSONObject sharingUser = new JSONObject();
- public KRoom(KurentoHandler handler, Room r) {
- this.processor = handler.getStreamProcessor();
- this.chunkDao = handler.getChunkDao();
+ public KRoom(Room r) {
this.room = r;
log.info("ROOM {} has been created", room.getId());
}
@@ -80,10 +89,6 @@ public class KRoom {
return recordingId;
}
- public RecordingChunkDao getChunkDao() {
- return chunkDao;
- }
-
public KStream join(final StreamDesc sd) {
log.info("ROOM {}: join client {}, stream: {}", room.getId(), sd.getClient(), sd.getUid());
final KStream stream = new KStream(sd, this);
@@ -144,11 +149,11 @@ public class KRoom {
Optional<StreamDesc> osd = c.getScreenStream();
if (osd.isPresent()) {
osd.get().addActivity(Activity.RECORD);
- processor.getClientManager().update(c);
+ cm.update(c);
rec.setWidth(osd.get().getWidth());
rec.setHeight(osd.get().getHeight());
}
- rec = processor.getRecordingDao().update(rec);
+ rec = recDao.update(rec);
// Receive recordingId
recordingId = rec.getId();
processor.getByRoom(room.getId()).forEach(KStream::startRecord);
@@ -163,9 +168,9 @@ public class KRoom {
if (recordingStarted.compareAndSet(true, false)) {
log.debug("##REC:: recording in room {} is stopping {} ::", room.getId(), recordingId);
processor.getByRoom(room.getId()).forEach(KStream::stopRecord);
- Recording rec = processor.getRecordingDao().get(recordingId);
+ Recording rec = recDao.get(recordingId);
rec.setRecordEnd(new Date());
- rec = processor.getRecordingDao().update(rec);
+ rec = recDao.update(rec);
recordingUser = new JSONObject();
recordingId = null;
@@ -178,8 +183,8 @@ public class KRoom {
Optional<StreamDesc> osd = c.getScreenStream();
if (osd.isPresent()) {
osd.get().removeActivity(Activity.RECORD);
- processor.getClientManager().update(c);
- processor.getHandler().sendShareUpdated(osd.get());
+ cm.update(c);
+ kHandler.sendShareUpdated(osd.get());
}
}
// Send notification to all users that the recording has been started
@@ -203,29 +208,28 @@ public class KRoom {
return new JSONObject(sharingUser.toString());
}
- public void startSharing(StreamProcessor processor, IClientManager cm, Client c, Optional<StreamDesc> osd, JSONObject msg, Activity a) {
+ public void startSharing(Client c, Optional<StreamDesc> osd, JSONObject msg, Activity a) {
StreamDesc sd;
- KurentoHandler h = processor.getHandler();
if (sharingStarted.compareAndSet(false, true)) {
sharingUser.put("sid", c.getSid());
sd = c.addStream(StreamType.SCREEN, a);
cm.update(c);
log.debug("Stream.UID {}: sharing has been started, activity: {}", sd.getUid(), a);
- h.sendClient(sd.getSid(), newKurentoMsg()
+ kHandler.sendClient(sd.getSid(), newKurentoMsg()
.put("id", "broadcast")
.put("stream", sd.toJson()
.put("shareType", msg.getString("shareType"))
.put("fps", msg.getString("fps")))
- .put(PARAM_ICE, h.getTurnServers(c)));
+ .put(PARAM_ICE, kHandler.getTurnServers(c)));
} else if (osd.isPresent() && !osd.get().hasActivity(a)) {
sd = osd.get();
sd.addActivity(a);
cm.update(c);
- h.sendShareUpdated(sd);
+ kHandler.sendShareUpdated(sd);
WebSocketHelper.sendRoom(new TextRoomMessage(c.getRoomId(), c, RoomMessage.Type.RIGHT_UPDATED, c.getUid()));
WebSocketHelper.sendRoomOthers(room.getId(), c.getUid(), newKurentoMsg()
.put("id", "newStream")
- .put(PARAM_ICE, processor.getHandler().getTurnServers(c))
+ .put(PARAM_ICE, kHandler.getTurnServers(c))
.put("stream", sd.toJson()));
}
}
@@ -245,8 +249,7 @@ public class KRoom {
if (count != sipCount) {
processor.getByRoom(room.getId()).forEach(stream -> stream.addSipProcessor(count));
if (sipCount == 0) {
- processor.getClientManager()
- .streamByRoom(room.getId())
+ cm.streamByRoom(room.getId())
.filter(Client::isSip)
.findAny()
.ifPresent(c -> {
@@ -255,7 +258,7 @@ public class KRoom {
c.restoreActivities(sd);
KStream stream = join(sd);
stream.startBroadcast(sd, "", () -> {});
- processor.getClientManager().update(c);
+ cm.update(c);
});
}
sipCount = count;
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
index 4fa6c80..0028a79 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KStream.java
@@ -47,6 +47,7 @@ import org.apache.openmeetings.core.sip.ISipCallbacks;
import org.apache.openmeetings.core.sip.SipManager;
import org.apache.openmeetings.core.sip.SipStackProcessor;
import org.apache.openmeetings.core.util.WebSocketHelper;
+import org.apache.openmeetings.db.dao.record.RecordingChunkDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.basic.Client.Activity;
import org.apache.openmeetings.db.entity.basic.Client.StreamDesc;
@@ -85,6 +86,8 @@ public class KStream extends AbstractStream implements ISipCallbacks {
@Autowired
private StreamProcessor processor;
@Autowired
+ private RecordingChunkDao chunkDao;
+ @Autowired
private SipManager sipManager;
private final KRoom kRoom;
@@ -348,8 +351,8 @@ public class KStream extends AbstractStream implements ISipCallbacks {
recorder = createRecorderEndpoint(pipeline, getRecUri(getRecordingChunk(getRoomId(), chunkUid)), profile);
setTags(recorder, uid);
- recorder.addRecordingListener(evt -> chunkId = kRoom.getChunkDao().start(kRoom.getRecordingId(), type, chunkUid, sid));
- recorder.addStoppedListener(evt -> kRoom.getChunkDao().stop(chunkId));
+ recorder.addRecordingListener(evt -> chunkId = chunkDao.start(kRoom.getRecordingId(), type, chunkUid, sid));
+ recorder.addStoppedListener(evt -> chunkDao.stop(chunkId));
switch (profile) {
case WEBM:
outgoingMedia.connect(recorder, MediaType.AUDIO);
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KTestStream.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KTestStream.java
index 741c1f6..b511b93 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KTestStream.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KTestStream.java
@@ -49,13 +49,22 @@ import org.kurento.client.RecorderEndpoint;
import org.kurento.client.WebRtcEndpoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowire;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Configurable;
import com.github.openjson.JSONObject;
+@Configurable(autowire = Autowire.BY_TYPE)
public class KTestStream extends AbstractStream {
private static final Logger log = LoggerFactory.getLogger(KTestStream.class);
private static final Map<String, String> TAGS = Map.of(TAG_MODE, MODE_TEST, TAG_ROOM, MODE_TEST);
- private final KurentoHandler kHandler;
+
+ @Autowired
+ private KurentoHandler kHandler;
+ @Autowired
+ private TestStreamProcessor processor;
+
private MediaPipeline pipeline;
private WebRtcEndpoint webRtcEndpoint;
private PlayerEndpoint player;
@@ -65,9 +74,8 @@ public class KTestStream extends AbstractStream {
private ScheduledFuture<?> recHandle;
private int recTime;
- public KTestStream(IWsClient c, JSONObject msg, KurentoHandler kHandler) {
+ public KTestStream(IWsClient c, JSONObject msg) {
super(null, c.getUid());
- this.kHandler = kHandler;
createPipeline(() -> startTestRecording(c, msg));
}
@@ -251,7 +259,7 @@ public class KTestStream extends AbstractStream {
releasePlayer();
releaseRecorder();
if (remove) {
- kHandler.getTestProcessor().release(this, true);
+ processor.release(this, true);
}
}
}
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 1a24bc9..a301dce 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
@@ -42,7 +42,6 @@ import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.openmeetings.core.util.WebSocketHelper;
-import org.apache.openmeetings.db.dao.record.RecordingChunkDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.basic.Client.Activity;
@@ -124,8 +123,6 @@ public class KurentoHandler {
@Autowired
private RoomDao roomDao;
@Autowired
- private RecordingChunkDao chunkDao;
- @Autowired
private TestStreamProcessor testProcessor;
@Autowired
private StreamProcessor streamProcessor;
@@ -306,7 +303,7 @@ public class KurentoHandler {
return rooms.computeIfAbsent(roomId, k -> {
log.debug("Room {} does not exist. Will create now!", roomId);
Room r = roomDao.get(roomId);
- return new KRoom(this, r);
+ return new KRoom(r);
});
}
@@ -394,18 +391,6 @@ public class KurentoHandler {
return kuid;
}
- public TestStreamProcessor getTestProcessor() {
- return testProcessor;
- }
-
- StreamProcessor getStreamProcessor() {
- return streamProcessor;
- }
-
- RecordingChunkDao getChunkDao() {
- return chunkDao;
- }
-
static int getFlowoutTimeout() {
return flowoutTimeout;
}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
index 3771c0c..f6330d8 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/StreamProcessor.java
@@ -37,7 +37,6 @@ import org.apache.openmeetings.core.converter.IRecordingConverter;
import org.apache.openmeetings.core.converter.InterviewConverter;
import org.apache.openmeetings.core.converter.RecordingConverter;
import org.apache.openmeetings.core.util.WebSocketHelper;
-import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.basic.Client.Activity;
import org.apache.openmeetings.db.entity.basic.Client.StreamDesc;
@@ -70,8 +69,6 @@ public class StreamProcessor implements IStreamProcessor {
@Autowired
private IClientManager cm;
@Autowired
- private RecordingDao recDao;
- @Autowired
private KurentoHandler kHandler;
@Autowired
private TaskExecutor taskExecutor;
@@ -322,7 +319,7 @@ public class StreamProcessor implements IStreamProcessor {
private void startSharing(Client c, Optional<StreamDesc> osd, JSONObject msg, Activity a) {
if (kHandler.isConnected() && c.getRoomId() != null) {
- kHandler.getRoom(c.getRoomId()).startSharing(this, cm, c, osd, msg, a);
+ kHandler.getRoom(c.getRoomId()).startSharing(c, osd, msg, a);
}
}
@@ -486,18 +483,6 @@ public class StreamProcessor implements IStreamProcessor {
return uid == null ? null : streamByUid.get(uid);
}
- KurentoHandler getHandler() {
- return kHandler;
- }
-
- IClientManager getClientManager() {
- return cm;
- }
-
- RecordingDao getRecordingDao() {
- return recDao;
- }
-
@Override
public void release(AbstractStream stream, boolean releaseStream) {
final String uid = stream.getUid();
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/TestStreamProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/TestStreamProcessor.java
index 499d772..3bd7bde 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/TestStreamProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/TestStreamProcessor.java
@@ -56,7 +56,7 @@ class TestStreamProcessor implements IStreamProcessor {
if (user != null) {
user.release();
}
- user = new KTestStream(c, msg, kHandler);
+ user = new KTestStream(c, msg);
streamByUid.put(c.getUid(), user);
break;
case "iceCandidate":
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
index 5d23437..bb4c881 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
@@ -299,7 +299,7 @@ public class SipManager implements ISipManager {
ports.flip(free);
port = minLocalWsPort + free;
}
- return Optional.of(new SipStackProcessor(this, name, port, callbacks));
+ return Optional.of(new SipStackProcessor(name, port, callbacks));
}
void freePort(int port) {
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipStackProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipStackProcessor.java
index dc22235..e8b82fe 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipStackProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipStackProcessor.java
@@ -59,6 +59,9 @@ import javax.sip.message.Response;
import org.apache.openmeetings.db.entity.room.Room;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowire;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Configurable;
import gov.nist.javax.sip.DialogTimeoutEvent;
import gov.nist.javax.sip.SipListenerExt;
@@ -69,6 +72,7 @@ import gov.nist.javax.sip.clientauthutils.AuthenticationHelper;
import gov.nist.javax.sip.clientauthutils.UserCredentials;
import gov.nist.javax.sip.stack.NioMessageProcessorFactory;
+@Configurable(autowire = Autowire.BY_TYPE, preConstruction = true)
public class SipStackProcessor implements SipListenerExt {
private static final Logger log = LoggerFactory.getLogger(SipStackProcessor.class);
private static final String SIP_TRANSPORT = "ws";
@@ -76,7 +80,9 @@ public class SipStackProcessor implements SipListenerExt {
return t -> {};
}
- private final SipManager manager;
+ @Autowired
+ private SipManager manager;
+
private final ISipCallbacks callbacks;
private final String sipHost;
private final int wsPort;
@@ -96,8 +102,7 @@ public class SipStackProcessor implements SipListenerExt {
private final Random rnd = new Random();
private Dialog dialog;
- SipStackProcessor(SipManager manager, String name, int localWsPort, ISipCallbacks callbacks) throws Exception {
- this.manager = manager;
+ SipStackProcessor(String name, int localWsPort, ISipCallbacks callbacks) throws Exception {
this.callbacks = callbacks;
this.sipHost = manager.getSipHostname();
this.wsPort = manager.getWsPort();
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/SCryptImplementation.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/SCryptImplementation.java
index 560d824..1a07506 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/SCryptImplementation.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/crypt/SCryptImplementation.java
@@ -60,7 +60,7 @@ public class SCryptImplementation implements ICrypt {
props.load(is);
cost = Integer.valueOf(props.getProperty("scrypt.cost", "" + cost));
} catch (Exception e) {
- log.error("Failed to initialize the cost", e);
+ log.error("Failed to load custom crypt cost: {}", e.getMessage());
}
}
diff --git a/pom.xml b/pom.xml
index 457b0b2..8f0e4ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -76,6 +76,7 @@
<forbiddenapis.version>3.1</forbiddenapis.version>
<maven-checkstyle-plugin.version>3.1.1</maven-checkstyle-plugin.version>
<frontend-maven-plugin.version>1.11.0</frontend-maven-plugin.version>
+ <aspectj-maven-plugin.version>1.12.6</aspectj-maven-plugin.version>
<!-- dependency versions -->
<junit.version>5.7.1</junit.version>
<wicket.version>9.2.0</wicket.version>
@@ -125,6 +126,7 @@
<jain-sip.version>1.2.307</jain-sip.version><!-- other versions are broken! -->
<jasny-bootstrap.version>3.1.3-2</jasny-bootstrap.version>
<jodconverter.version>4.4.2</jodconverter.version>
+ <aspectj.version>1.9.6</aspectj.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>
@@ -696,6 +698,11 @@
<version>${jain-sip.version}</version>
</dependency>
<dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ <version>${aspectj.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>${mockito.version}</version>
@@ -752,6 +759,10 @@
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.aspectj</groupId>
+ <artifactId>aspectjrt</artifactId>
+ </dependency>
</dependencies>
<build>
<plugins>
@@ -1178,7 +1189,7 @@
<plugin>
<groupId>com.nickwongdev</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
- <version>1.12.6</version>
+ <version>${aspectj-maven-plugin.version}</version>
<configuration>
<complianceLevel>${jdk.version}</complianceLevel>
<Xlint>ignore</Xlint>
@@ -1193,6 +1204,7 @@
<execution>
<goals>
<goal>compile</goal>
+ <goal>test-compile</goal>
</goals>
</execution>
</executions>