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>