From 8601121e7ee4393532dd3900eaec85131520baee Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Tue, 24 Aug 2021 23:05:54 +0300 Subject: [PATCH] executors: named fixed thread pools; tests - added executor shutdown on tearDown --- .../queue/TbMsgPackProcessingContextTest.java | 3 ++- .../server/actors/ActorSystemTest.java | 2 +- .../AbstractParallelTbQueueConsumerTemplate.java | 3 ++- .../server/transport/coap/client/NoSecClient.java | 3 ++- .../transport/coap/client/NoSecObserveClient.java | 3 ++- .../transport/coap/client/SecureClientNoAuth.java | 3 ++- .../transport/coap/client/SecureClientX509.java | 3 ++- .../dao/service/BaseDeviceProfileServiceTest.java | 3 ++- .../server/dao/sql/device/JpaDeviceDaoTest.java | 15 +++++++++++++-- 9 files changed, 28 insertions(+), 10 deletions(-) diff --git a/application/src/test/java/org/thingsboard/server/service/queue/TbMsgPackProcessingContextTest.java b/application/src/test/java/org/thingsboard/server/service/queue/TbMsgPackProcessingContextTest.java index 1659431540..4438dfc3f2 100644 --- a/application/src/test/java/org/thingsboard/server/service/queue/TbMsgPackProcessingContextTest.java +++ b/application/src/test/java/org/thingsboard/server/service/queue/TbMsgPackProcessingContextTest.java @@ -21,6 +21,7 @@ import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; +import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.common.TbProtoQueueMsg; import org.thingsboard.server.service.queue.processing.TbRuleEngineSubmitStrategy; @@ -59,7 +60,7 @@ public class TbMsgPackProcessingContextTest { //log.warn("preparing the test..."); int msgCount = 1000; int parallelCount = 5; - executorService = Executors.newFixedThreadPool(parallelCount); + executorService = Executors.newFixedThreadPool(parallelCount, ThingsBoardThreadFactory.forName(getClass().getSimpleName() + "-test-scope")); ConcurrentMap> messages = new ConcurrentHashMap<>(msgCount); for (int i = 0; i < msgCount; i++) { diff --git a/common/actor/src/test/java/org/thingsboard/server/actors/ActorSystemTest.java b/common/actor/src/test/java/org/thingsboard/server/actors/ActorSystemTest.java index f11f94dfb1..d2792dc1db 100644 --- a/common/actor/src/test/java/org/thingsboard/server/actors/ActorSystemTest.java +++ b/common/actor/src/test/java/org/thingsboard/server/actors/ActorSystemTest.java @@ -56,7 +56,7 @@ public class ActorSystemTest { parallelism = Math.max(2, cores / 2); TbActorSystemSettings settings = new TbActorSystemSettings(5, parallelism, 42); actorSystem = new DefaultTbActorSystem(settings); - submitPool = Executors.newFixedThreadPool(parallelism); //order guaranteed + submitPool = Executors.newFixedThreadPool(parallelism, ThingsBoardThreadFactory.forName(getClass().getSimpleName() + "-submit-test-scope")); //order guaranteed } @After diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/common/AbstractParallelTbQueueConsumerTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/common/AbstractParallelTbQueueConsumerTemplate.java index c1a8a82af4..deba482a28 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/common/AbstractParallelTbQueueConsumerTemplate.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/common/AbstractParallelTbQueueConsumerTemplate.java @@ -18,6 +18,7 @@ package org.thingsboard.server.queue.common; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; import lombok.extern.slf4j.Slf4j; +import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.queue.TbQueueMsg; import java.util.concurrent.Executors; @@ -41,7 +42,7 @@ public abstract class AbstractParallelTbQueueConsumerTemplate> futures = new ArrayList<>(); for (int i = 0; i < 50; i++) { diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java index ca2a0db493..9d9d128966 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/device/JpaDeviceDaoTest.java @@ -19,8 +19,10 @@ import com.datastax.oss.driver.api.core.uuid.Uuids; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; +import org.junit.After; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; +import org.thingsboard.common.util.ThingsBoardThreadFactory; import org.thingsboard.server.common.data.Device; import org.thingsboard.server.common.data.id.CustomerId; import org.thingsboard.server.common.data.id.DeviceId; @@ -47,6 +49,15 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { @Autowired private DeviceDao deviceDao; + ListeningExecutorService executor; + + @After + public void tearDown() throws Exception { + if (executor != null) { + executor.shutdownNow(); + } + } + @Test public void testFindDevicesByTenantId() { UUID tenantId1 = Uuids.timeBased(); @@ -77,8 +88,8 @@ public class JpaDeviceDaoTest extends AbstractJpaDaoTest { assertNotNull(entity); assertEquals(uuid, entity.getId().getId()); - ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10)); - ListenableFuture future = service.submit(() -> deviceDao.findById(new TenantId(tenantId), uuid)); + executor = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(10, ThingsBoardThreadFactory.forName(getClass().getSimpleName() + "-test-scope"))); + ListenableFuture future = executor.submit(() -> deviceDao.findById(new TenantId(tenantId), uuid)); Device asyncDevice = future.get(); assertNotNull("Async device expected to be not null", asyncDevice); }