From d8ac9a0ef4e76996321cf26593d37d4246c1f90b Mon Sep 17 00:00:00 2001 From: JamesChenX Date: Wed, 13 Dec 2023 22:22:41 +0800 Subject: [PATCH] Trivial code quality improvements --- turms-client-dart/test/turms_client_test.dart | 3 +-- .../cluster/service/rpc/exception/RpcException.java | 8 +++----- .../common/infra/collection/CollectionUtil.java | 10 ++++------ .../server/common/infra/validation/Validator.java | 6 ++++-- .../server/common/storage/mongo/MongoContext.java | 11 ++++++++--- 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/turms-client-dart/test/turms_client_test.dart b/turms-client-dart/test/turms_client_test.dart index 0796d5d0af..4f8ffb2b3c 100644 --- a/turms-client-dart/test/turms_client_test.dart +++ b/turms-client-dart/test/turms_client_test.dart @@ -2,8 +2,7 @@ import 'package:test/test.dart'; import 'package:turms_client_dart/src/turms_client.dart'; void main() { - final client = TurmsClient(); - + TurmsClient(); group('Test', () { test('Test', () {}); }); diff --git a/turms-server-common/src/main/java/im/turms/server/common/infra/cluster/service/rpc/exception/RpcException.java b/turms-server-common/src/main/java/im/turms/server/common/infra/cluster/service/rpc/exception/RpcException.java index f2a4a58b4a..2b222b703a 100644 --- a/turms-server-common/src/main/java/im/turms/server/common/infra/cluster/service/rpc/exception/RpcException.java +++ b/turms-server-common/src/main/java/im/turms/server/common/infra/cluster/service/rpc/exception/RpcException.java @@ -95,11 +95,9 @@ public static RpcException get( } public static boolean isErrorCode(Throwable throwable, RpcErrorCode code) { - if (throwable instanceof RpcException e) { - return e.getErrorCode() - .equals(code); - } - return false; + return throwable instanceof RpcException e + && e.getErrorCode() + .equals(code); } private static String getErrorMessage( diff --git a/turms-server-common/src/main/java/im/turms/server/common/infra/collection/CollectionUtil.java b/turms-server-common/src/main/java/im/turms/server/common/infra/collection/CollectionUtil.java index 81031c465b..75b6ddabd1 100644 --- a/turms-server-common/src/main/java/im/turms/server/common/infra/collection/CollectionUtil.java +++ b/turms-server-common/src/main/java/im/turms/server/common/infra/collection/CollectionUtil.java @@ -237,10 +237,7 @@ public static boolean isImmutableSet(Iterable iterable) { // region contains public static boolean contains(@Nullable List list, T value) { - if (list == null) { - return false; - } - return list.contains(value); + return list != null && list.contains(value); } public static boolean contains(@Nullable Collection values, Predicate predicate) { @@ -602,8 +599,9 @@ public static Map deepMerge( if (!existingValues.containsAll(valuesToMerge)) { existingValues.addAll(valuesToMerge); } - } else if (existingValue instanceof Map && valueToMerge instanceof Map) { - deepMerge((Map) existingValue, (Map) valueToMerge, appendCollectionElements); + } else if (existingValue instanceof Map existingValueMap + && valueToMerge instanceof Map valueToMergeMap) { + deepMerge(existingValueMap, valueToMergeMap, appendCollectionElements); } else if (existingValue == null || !existingValue.equals(valueToMerge)) { baseMap.put(key, valueToMerge); } diff --git a/turms-server-common/src/main/java/im/turms/server/common/infra/validation/Validator.java b/turms-server-common/src/main/java/im/turms/server/common/infra/validation/Validator.java index f79ac16214..b008c53259 100644 --- a/turms-server-common/src/main/java/im/turms/server/common/infra/validation/Validator.java +++ b/turms-server-common/src/main/java/im/turms/server/common/infra/validation/Validator.java @@ -18,7 +18,7 @@ package im.turms.server.common.infra.validation; import java.lang.reflect.Array; -import java.net.URL; +import java.net.URI; import java.util.Collection; import java.util.Date; import java.util.Map; @@ -367,10 +367,12 @@ public static void ip(@Nullable byte[] ip, String name) { } } + @Nullable public static Exception url(@Nullable String url) { if (url != null) { try { - new URL(url).toURI(); + URI.create(url) + .toURL(); } catch (Exception e) { return e; } diff --git a/turms-server-common/src/main/java/im/turms/server/common/storage/mongo/MongoContext.java b/turms-server-common/src/main/java/im/turms/server/common/storage/mongo/MongoContext.java index 2bd1bbb1e2..308fdfa77c 100644 --- a/turms-server-common/src/main/java/im/turms/server/common/storage/mongo/MongoContext.java +++ b/turms-server-common/src/main/java/im/turms/server/common/storage/mongo/MongoContext.java @@ -27,7 +27,7 @@ import com.mongodb.ConnectionString; import com.mongodb.MongoClientSettings; import com.mongodb.connection.ServerDescription; -import com.mongodb.connection.netty.NettyStreamFactoryFactory; +import com.mongodb.connection.TransportSettings; import com.mongodb.event.ClusterDescriptionChangedEvent; import com.mongodb.event.ClusterListener; import com.mongodb.reactivestreams.client.MongoClient; @@ -47,6 +47,7 @@ import reactor.core.publisher.Mono; import im.turms.server.common.infra.lang.Pair; +import im.turms.server.common.infra.lang.StringUtil; import im.turms.server.common.infra.thread.ThreadNameConst; import im.turms.server.common.storage.mongo.entity.MongoEntity; import im.turms.server.common.storage.mongo.entity.MongoEntityFactory; @@ -101,14 +102,18 @@ public void clusterDescriptionChanged( // com.mongodb.connection.AsynchronousSocketChannelStreamFactory, // which use a heap buffer pool "bufferProvider" for BsonWriter for NIO. // They should go back to school to learn how to code efficiently. - .streamFactoryFactory(NettyStreamFactoryFactory.builder() + .transportSettings(TransportSettings.nettyBuilder() .allocator(PooledByteBufAllocator.DEFAULT) .eventLoopGroup(eventLoopGroup) .socketChannelClass(NioSocketChannel.class) .build()) .build(); client = MongoClients.create(settings); - database = client.getDatabase(connectionSettings.getDatabase()); + String settingsDatabase = connectionSettings.getDatabase(); + if (StringUtil.isBlank(settingsDatabase)) { + throw new IllegalArgumentException("The connection string does not specify a database"); + } + database = client.getDatabase(settingsDatabase); adminDatabase = client.getDatabase("admin"); configDatabase = client.getDatabase("config"); }