diff --git a/rpc-framework-common/src/main/java/github/javaguide/extension/ExtensionLoader.java b/rpc-framework-common/src/main/java/github/javaguide/extension/ExtensionLoader.java index fc9e116df44128ab316c7ac8c7efea70adcb4fb1..be16e9059a6d8975efef94d293e747717bf0a438 100644 --- a/rpc-framework-common/src/main/java/github/javaguide/extension/ExtensionLoader.java +++ b/rpc-framework-common/src/main/java/github/javaguide/extension/ExtensionLoader.java @@ -1,5 +1,6 @@ package github.javaguide.extension; +import github.javaguide.utils.StringUtil; import lombok.extern.slf4j.Slf4j; import java.io.BufferedReader; @@ -51,7 +52,7 @@ public final class ExtensionLoader { } public T getExtension(String name) { - if (name == null || name.isEmpty()) { + if (StringUtil.isBlank(name)) { throw new IllegalArgumentException("Extension name should not be null or empty."); } // firstly get from cache, if not hit, create one diff --git a/rpc-framework-common/src/main/java/github/javaguide/utils/CollectionUtil.java b/rpc-framework-common/src/main/java/github/javaguide/utils/CollectionUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..dc3198197706bcfd8931b917cbd1f83368e30ab1 --- /dev/null +++ b/rpc-framework-common/src/main/java/github/javaguide/utils/CollectionUtil.java @@ -0,0 +1,17 @@ +package github.javaguide.utils; + +import java.util.Collection; + +/** + * 集合工具类 + * + * @author zhanghua + * @createTime 2022/3/6 12:58 上午 + */ +public class CollectionUtil { + + public static boolean isEmpty(Collection c) { + return c == null || c.isEmpty(); + } + +} diff --git a/rpc-framework-common/src/main/java/github/javaguide/utils/StringUtil.java b/rpc-framework-common/src/main/java/github/javaguide/utils/StringUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..97a3afd87c66f79ec4d10e18b131eb9ba64ee890 --- /dev/null +++ b/rpc-framework-common/src/main/java/github/javaguide/utils/StringUtil.java @@ -0,0 +1,22 @@ +package github.javaguide.utils; + +/** + * String 工具类 + * + * @author zhanghua + * @createTime 2022/3/6 12:58 上午 + */ +public class StringUtil { + + public static boolean isBlank(String s) { + if (s == null || s.length() == 0) { + return true; + } + for (int i = 0; i < s.length(); ++i) { + if (!Character.isWhitespace(s.charAt(i))) { + return false; + } + } + return true; + } +} diff --git a/rpc-framework-common/src/main/java/github/javaguide/utils/concurrent/threadpool/ThreadPoolFactoryUtils.java b/rpc-framework-common/src/main/java/github/javaguide/utils/concurrent/threadpool/ThreadPoolFactoryUtil.java similarity index 98% rename from rpc-framework-common/src/main/java/github/javaguide/utils/concurrent/threadpool/ThreadPoolFactoryUtils.java rename to rpc-framework-common/src/main/java/github/javaguide/utils/concurrent/threadpool/ThreadPoolFactoryUtil.java index 2708f39374bd762fa458b20c2255b6c48a5b973b..016a61a38ff5e779791253c2b0d2d0d5c3c0182b 100644 --- a/rpc-framework-common/src/main/java/github/javaguide/utils/concurrent/threadpool/ThreadPoolFactoryUtils.java +++ b/rpc-framework-common/src/main/java/github/javaguide/utils/concurrent/threadpool/ThreadPoolFactoryUtil.java @@ -20,7 +20,7 @@ import java.util.concurrent.TimeUnit; * @createTime 2020年05月26日 16:00:00 */ @Slf4j -public final class ThreadPoolFactoryUtils { +public final class ThreadPoolFactoryUtil { /** * 通过 threadNamePrefix 来区分不同线程池(我们可以把相同 threadNamePrefix 的线程池看作是为同一业务场景服务)。 @@ -29,7 +29,7 @@ public final class ThreadPoolFactoryUtils { */ private static final Map THREAD_POOLS = new ConcurrentHashMap<>(); - private ThreadPoolFactoryUtils() { + private ThreadPoolFactoryUtil() { } diff --git a/rpc-framework-simple/src/main/java/github/javaguide/config/CustomShutdownHook.java b/rpc-framework-simple/src/main/java/github/javaguide/config/CustomShutdownHook.java index b126c7233b67a28d84b28d6c7e26f6ce88661bf1..eea8be1b335500eb0ec97c2e1af445adbdbd394a 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/config/CustomShutdownHook.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/config/CustomShutdownHook.java @@ -2,7 +2,7 @@ package github.javaguide.config; import github.javaguide.registry.zk.util.CuratorUtils; import github.javaguide.remoting.transport.netty.server.NettyRpcServer; -import github.javaguide.utils.concurrent.threadpool.ThreadPoolFactoryUtils; +import github.javaguide.utils.concurrent.threadpool.ThreadPoolFactoryUtil; import lombok.extern.slf4j.Slf4j; import java.net.InetAddress; @@ -31,7 +31,7 @@ public class CustomShutdownHook { CuratorUtils.clearRegistry(CuratorUtils.getZkClient(), inetSocketAddress); } catch (UnknownHostException ignored) { } - ThreadPoolFactoryUtils.shutDownAllThreadPool(); + ThreadPoolFactoryUtil.shutDownAllThreadPool(); })); } } diff --git a/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/AbstractLoadBalance.java b/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/AbstractLoadBalance.java index 29e805d2c2e9b154e8360ff321bac3e290dc083d..9febf6cc45802ee9698e029ef4413f26d9664535 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/AbstractLoadBalance.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/AbstractLoadBalance.java @@ -1,6 +1,7 @@ package github.javaguide.loadbalance; import github.javaguide.remoting.dto.RpcRequest; +import github.javaguide.utils.CollectionUtil; import java.util.List; @@ -13,7 +14,7 @@ import java.util.List; public abstract class AbstractLoadBalance implements LoadBalance { @Override public String selectServiceAddress(List serviceAddresses, RpcRequest rpcRequest) { - if (serviceAddresses == null || serviceAddresses.size() == 0) { + if (CollectionUtil.isEmpty(serviceAddresses)) { return null; } if (serviceAddresses.size() == 1) { diff --git a/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/LoadBalance.java b/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/LoadBalance.java index 4a6fa26675e2a1d6c39e0631ae38a2efbd5aebd7..0ae6ad82cd2facbb9276be0a3d2aacdb51144927 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/LoadBalance.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/loadbalance/LoadBalance.java @@ -16,8 +16,9 @@ public interface LoadBalance { /** * Choose one from the list of existing service addresses list * - * @param serviceAddresses Service address list + * @param serviceUrlList Service address list + * @param rpcRequest * @return target service address */ - String selectServiceAddress(List serviceAddresses, RpcRequest rpcRequest); + String selectServiceAddress(List serviceUrlList, RpcRequest rpcRequest); } diff --git a/rpc-framework-simple/src/main/java/github/javaguide/registry/zk/ZkServiceDiscoveryImpl.java b/rpc-framework-simple/src/main/java/github/javaguide/registry/zk/ZkServiceDiscoveryImpl.java index 0a13a4897b07289eb5bd72fe4ba9f64eae268455..73d603a10c055cfc93d15d4be196ee7b7130545b 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/registry/zk/ZkServiceDiscoveryImpl.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/registry/zk/ZkServiceDiscoveryImpl.java @@ -7,6 +7,7 @@ import github.javaguide.loadbalance.LoadBalance; import github.javaguide.registry.ServiceDiscovery; import github.javaguide.registry.zk.util.CuratorUtils; import github.javaguide.remoting.dto.RpcRequest; +import github.javaguide.utils.CollectionUtil; import lombok.extern.slf4j.Slf4j; import org.apache.curator.framework.CuratorFramework; @@ -32,7 +33,7 @@ public class ZkServiceDiscoveryImpl implements ServiceDiscovery { String rpcServiceName = rpcRequest.getRpcServiceName(); CuratorFramework zkClient = CuratorUtils.getZkClient(); List serviceUrlList = CuratorUtils.getChildrenNodes(zkClient, rpcServiceName); - if (serviceUrlList == null || serviceUrlList.size() == 0) { + if (CollectionUtil.isEmpty(serviceUrlList)) { throw new RpcException(RpcErrorMessageEnum.SERVICE_CAN_NOT_BE_FOUND, rpcServiceName); } // load balancing diff --git a/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/netty/server/NettyRpcServer.java b/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/netty/server/NettyRpcServer.java index bc90523bdad757a07e387067e49bd0bb3518b20a..428737058bc4c6358285b87422dd7634552fe804 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/netty/server/NettyRpcServer.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/netty/server/NettyRpcServer.java @@ -8,7 +8,7 @@ import github.javaguide.provider.impl.ZkServiceProviderImpl; import github.javaguide.remoting.transport.netty.codec.RpcMessageDecoder; import github.javaguide.remoting.transport.netty.codec.RpcMessageEncoder; import github.javaguide.utils.RuntimeUtil; -import github.javaguide.utils.concurrent.threadpool.ThreadPoolFactoryUtils; +import github.javaguide.utils.concurrent.threadpool.ThreadPoolFactoryUtil; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; @@ -56,7 +56,7 @@ public class NettyRpcServer { EventLoopGroup workerGroup = new NioEventLoopGroup(); DefaultEventExecutorGroup serviceHandlerGroup = new DefaultEventExecutorGroup( RuntimeUtil.cpus() * 2, - ThreadPoolFactoryUtils.createThreadFactory("service-handler-group", false) + ThreadPoolFactoryUtil.createThreadFactory("service-handler-group", false) ); try { ServerBootstrap b = new ServerBootstrap(); diff --git a/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/socket/SocketRpcServer.java b/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/socket/SocketRpcServer.java index 1426569eb11e1da1e656d5fb0f7abba884d56c0c..d2e29e4e6a11c140848b40d6ea69b2e3e9477b43 100644 --- a/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/socket/SocketRpcServer.java +++ b/rpc-framework-simple/src/main/java/github/javaguide/remoting/transport/socket/SocketRpcServer.java @@ -5,7 +5,7 @@ import github.javaguide.config.RpcServiceConfig; import github.javaguide.factory.SingletonFactory; import github.javaguide.provider.ServiceProvider; import github.javaguide.provider.impl.ZkServiceProviderImpl; -import github.javaguide.utils.concurrent.threadpool.ThreadPoolFactoryUtils; +import github.javaguide.utils.concurrent.threadpool.ThreadPoolFactoryUtil; import lombok.extern.slf4j.Slf4j; import java.io.IOException; @@ -29,7 +29,7 @@ public class SocketRpcServer { public SocketRpcServer() { - threadPool = ThreadPoolFactoryUtils.createCustomThreadPoolIfAbsent("socket-server-rpc-pool"); + threadPool = ThreadPoolFactoryUtil.createCustomThreadPoolIfAbsent("socket-server-rpc-pool"); serviceProvider = SingletonFactory.getInstance(ZkServiceProviderImpl.class); }