From b3b27204a77ac525ca23702d43e43bfe9f10a07e Mon Sep 17 00:00:00 2001 From: pizihao <2335715300@qq.com> Date: Mon, 7 Nov 2022 18:32:21 +0800 Subject: [PATCH] fix : test for rpc handler --- .../cn/hippo4j/rpc/client/RPCClientTest.java | 33 ++++++--- .../ClassRegistryTest.java | 2 +- .../DefaultInstanceTest.java | 29 ++++---- .../hippo4j/rpc/discovery/InstanceModel.java | 17 +++++ .../rpc/discovery/InstanceServerLoader.java | 7 ++ .../discovery/InstanceServerLoaderImpl.java | 17 +++++ .../discovery/SpringContextInstanceTest.java | 30 +++++++++ .../handler/NettyClientPoolHandlerTest.java | 67 +++++++++++++++++++ .../cn/hippo4j/rpc/handler/TestHandler.java | 21 ++++++ .../rpc/server/NettyServerConnectionTest.java | 40 +++++++++++ .../cn/hippo4j/rpc/server/RPCServerTest.java | 14 +++- .../support/NettyConnectPoolHolderTest.java | 11 ++- .../rpc/support/NettyConnectPoolTest.java | 13 +++- .../rpc/support/NettyProxyCenterTest.java | 17 ++++- ...hippo4j.rpc.discovery.InstanceServerLoader | 1 + 15 files changed, 290 insertions(+), 29 deletions(-) rename hippo4j-rpc/src/test/java/cn/hippo4j/rpc/{support => discovery}/ClassRegistryTest.java (98%) rename hippo4j-rpc/src/test/java/cn/hippo4j/rpc/{support => discovery}/DefaultInstanceTest.java (63%) create mode 100644 hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java create mode 100644 hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java create mode 100644 hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java create mode 100644 hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java create mode 100644 hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java create mode 100644 hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/TestHandler.java create mode 100644 hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java create mode 100644 hippo4j-rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java index 3db8311e..2ef50deb 100644 --- a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/client/RPCClientTest.java @@ -17,18 +17,19 @@ package cn.hippo4j.rpc.client; +import cn.hippo4j.rpc.discovery.ServerPort; import cn.hippo4j.rpc.handler.NettyClientPoolHandler; import cn.hippo4j.rpc.handler.NettyClientTakeHandler; import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.request.DefaultRequest; -import cn.hippo4j.rpc.request.Request; -import cn.hippo4j.rpc.response.Response; +import cn.hippo4j.rpc.model.DefaultRequest; +import cn.hippo4j.rpc.model.Request; +import cn.hippo4j.rpc.model.Response; import cn.hippo4j.rpc.server.NettyServerConnection; import cn.hippo4j.rpc.server.RPCServer; import cn.hippo4j.rpc.server.ServerConnection; -import cn.hippo4j.rpc.support.ClassRegistry; -import cn.hippo4j.rpc.support.DefaultInstance; -import cn.hippo4j.rpc.support.Instance; +import cn.hippo4j.rpc.discovery.ClassRegistry; +import cn.hippo4j.rpc.discovery.DefaultInstance; +import cn.hippo4j.rpc.discovery.Instance; import io.netty.channel.pool.ChannelPoolHandler; import org.junit.Assert; import org.junit.Test; @@ -40,8 +41,8 @@ import java.util.concurrent.TimeUnit; public class RPCClientTest { String host = "localhost"; - int port = 8888; - int portTest = 8889; + ServerPort port = new TestServerPort(); + ServerPort portTest = new TestPortServerPort(); @Test public void connection() throws IOException { @@ -109,4 +110,20 @@ public class RPCClientTest { rpcClient.close(); rpcServer.close(); } + + static class TestServerPort implements ServerPort { + + @Override + public int getPort() { + return 8888; + } + } + + static class TestPortServerPort implements ServerPort { + + @Override + public int getPort() { + return 8889; + } + } } \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/ClassRegistryTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/ClassRegistryTest.java similarity index 98% rename from hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/ClassRegistryTest.java rename to hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/ClassRegistryTest.java index 80fa3a53..e55c1a22 100644 --- a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/ClassRegistryTest.java +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/ClassRegistryTest.java @@ -15,7 +15,7 @@ * limitations under the License. */ -package cn.hippo4j.rpc.support; +package cn.hippo4j.rpc.discovery; import org.junit.Assert; import org.junit.Test; diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/DefaultInstanceTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java similarity index 63% rename from hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/DefaultInstanceTest.java rename to hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java index aa6dca00..0a0a9bb2 100644 --- a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/DefaultInstanceTest.java +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/DefaultInstanceTest.java @@ -15,12 +15,9 @@ * limitations under the License. */ -package cn.hippo4j.rpc.support; +package cn.hippo4j.rpc.discovery; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import cn.hippo4j.common.web.exception.IllegalException; import org.junit.Assert; import org.junit.Test; @@ -38,18 +35,26 @@ public class DefaultInstanceTest { @Test public void testGetInstance() { - String className = "cn.hippo4j.rpc.support.DefaultInstanceTest$InstanceModel"; + String className = "cn.hippo4j.rpc.discovery.InstanceModel"; Object instanceInstance = instance.getInstance(className); Assert.assertNotNull(instanceInstance); Assert.assertEquals(className, instanceInstance.getClass().getName()); } - @Setter - @Getter - @AllArgsConstructor - @NoArgsConstructor - public static class InstanceModel { + @Test(expected = IllegalException.class) + public void testGetInstanceTest() { + String className = "cn.hippo4j.rpc.discovery.InstanceModelTest"; + Object instanceInstance = instance.getInstance(className); + Assert.assertNotNull(instanceInstance); + Assert.assertEquals(className, instanceInstance.getClass().getName()); + } - String name; + @Test + public void getInstanceTest() { + Class cls = InstanceServerLoader.class; + Object instanceInstance = instance.getInstance(cls); + Assert.assertNotNull(instanceInstance); + Assert.assertEquals(InstanceServerLoaderImpl.class, instanceInstance.getClass()); } + } \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java new file mode 100644 index 00000000..c5185df1 --- /dev/null +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceModel.java @@ -0,0 +1,17 @@ +package cn.hippo4j.rpc.discovery; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.springframework.boot.test.context.TestComponent; + +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor +@TestComponent +public class InstanceModel { + + String name; +} diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java new file mode 100644 index 00000000..e8ac984c --- /dev/null +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoader.java @@ -0,0 +1,7 @@ +package cn.hippo4j.rpc.discovery; + +public interface InstanceServerLoader { + + String getName(); + +} \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java new file mode 100644 index 00000000..f6695b62 --- /dev/null +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/InstanceServerLoaderImpl.java @@ -0,0 +1,17 @@ +package cn.hippo4j.rpc.discovery; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.springframework.boot.test.context.TestComponent; + +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class InstanceServerLoaderImpl implements InstanceServerLoader { + + String name; + +} diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java new file mode 100644 index 00000000..9f51a999 --- /dev/null +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/discovery/SpringContextInstanceTest.java @@ -0,0 +1,30 @@ +package cn.hippo4j.rpc.discovery; + +import cn.hippo4j.common.config.ApplicationContextHolder; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, + classes = {InstanceModel.class, ApplicationContextHolder.class}) +@RunWith(SpringJUnit4ClassRunner.class) +public class SpringContextInstanceTest { + + Instance instance = new SpringContextInstance(); + + @Test + public void getInstance() { + Object obj = instance.getInstance(InstanceModel.class); + Assert.assertNotNull(obj); + Assert.assertEquals(obj.getClass(), InstanceModel.class); + } + + @Test + public void testGetInstance() { + Object obj = instance.getInstance("instanceModel"); + Assert.assertNotNull(obj); + Assert.assertEquals(obj.getClass(), InstanceModel.class); + } +} \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java new file mode 100644 index 00000000..98edb981 --- /dev/null +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/NettyClientPoolHandlerTest.java @@ -0,0 +1,67 @@ +package cn.hippo4j.rpc.handler; + +import io.netty.channel.ChannelHandler; +import org.junit.Assert; +import org.junit.Test; + +public class NettyClientPoolHandlerTest { + + @Test + public void testGetHandlerEntity(){ + TestHandler handler = new TestHandler(); + long order = 0; + String name = "Test"; + NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(); + HandlerManager.HandlerEntity entity = poolHandler.getHandlerEntity(order, handler, name); + Assert.assertEquals(entity.getName(),name); + Assert.assertEquals(entity.getOrder(),order); + Assert.assertEquals(entity.getHandler(),handler); + } + + @Test + public void testCompareTo(){ + TestHandler handler = new TestHandler(); + long order = 0; + String name = "Test"; + TestHandler handler1 = new TestHandler(); + long order1 = 1; + String name1 = "Test1"; + NettyClientPoolHandler poolHandler = new NettyClientPoolHandler(); + HandlerManager.HandlerEntity entity = poolHandler.getHandlerEntity(order, handler, name); + HandlerManager.HandlerEntity entity1 = poolHandler.getHandlerEntity(order1, handler1, name1); + int compare = entity.compareTo(entity1); + Assert.assertTrue(compare < 0); + } + + @Test + public void addLast() { + NettyClientPoolHandler handler = new NettyClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addLast(new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } + + @Test + public void addFirst() { + NettyClientPoolHandler handler = new NettyClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addFirst(new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } + + @Test + public void testAddLast() { + NettyClientPoolHandler handler = new NettyClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addLast("Test", new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } + + @Test + public void testAddFirst() { + NettyClientPoolHandler handler = new NettyClientPoolHandler(); + Assert.assertTrue(handler.isEmpty()); + handler.addFirst("Test", new TestHandler()); + Assert.assertFalse(handler.isEmpty()); + } +} \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/TestHandler.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/TestHandler.java new file mode 100644 index 00000000..294f69e2 --- /dev/null +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/handler/TestHandler.java @@ -0,0 +1,21 @@ +package cn.hippo4j.rpc.handler; + +import io.netty.channel.ChannelHandler; +import io.netty.channel.ChannelHandlerContext; + +public class TestHandler implements ChannelHandler { + @Override + public void handlerAdded(ChannelHandlerContext ctx) throws Exception { + + } + + @Override + public void handlerRemoved(ChannelHandlerContext ctx) throws Exception { + + } + + @Override + public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { + + } +} diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java new file mode 100644 index 00000000..6d8eb498 --- /dev/null +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/NettyServerConnectionTest.java @@ -0,0 +1,40 @@ +package cn.hippo4j.rpc.server; + +import cn.hippo4j.rpc.handler.TestHandler; +import org.junit.Assert; +import org.junit.Test; + +public class NettyServerConnectionTest { + + @Test + public void addLast() { + NettyServerConnection connection = new NettyServerConnection(); + Assert.assertTrue(connection.isEmpty()); + connection.addLast(new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } + + @Test + public void addFirst() { + NettyServerConnection connection = new NettyServerConnection(); + Assert.assertTrue(connection.isEmpty()); + connection.addFirst(new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } + + @Test + public void testAddLast() { + NettyServerConnection connection = new NettyServerConnection(); + Assert.assertTrue(connection.isEmpty()); + connection.addLast("Test", new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } + + @Test + public void testAddFirst() { + NettyServerConnection connection = new NettyServerConnection(); + Assert.assertTrue(connection.isEmpty()); + connection.addFirst("Test", new TestHandler()); + Assert.assertFalse(connection.isEmpty()); + } +} \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java index 5d06b9f8..a2cd63ec 100644 --- a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/server/RPCServerTest.java @@ -17,9 +17,10 @@ package cn.hippo4j.rpc.server; +import cn.hippo4j.rpc.discovery.ServerPort; import cn.hippo4j.rpc.handler.NettyServerTakeHandler; -import cn.hippo4j.rpc.support.DefaultInstance; -import cn.hippo4j.rpc.support.Instance; +import cn.hippo4j.rpc.discovery.DefaultInstance; +import cn.hippo4j.rpc.discovery.Instance; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import org.junit.Assert; @@ -31,7 +32,7 @@ import java.util.concurrent.TimeUnit; public class RPCServerTest { - public static int port = 8888; + public static ServerPort port = new TestServerPort(); @Test public void bind() throws IOException { @@ -69,4 +70,11 @@ public class RPCServerTest { rpcServer.close(); } + static class TestServerPort implements ServerPort { + + @Override + public int getPort() { + return 8888; + } + } } \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolHolderTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolHolderTest.java index ce68b9a0..ec576a68 100644 --- a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolHolderTest.java +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolHolderTest.java @@ -17,6 +17,7 @@ package cn.hippo4j.rpc.support; +import cn.hippo4j.rpc.discovery.ServerPort; import cn.hippo4j.rpc.handler.NettyClientPoolHandler; import cn.hippo4j.rpc.handler.NettyClientTakeHandler; import io.netty.channel.Channel; @@ -29,7 +30,7 @@ import org.junit.Test; public class NettyConnectPoolHolderTest { String host = "127.0.0.1"; - int port = 8888; + ServerPort port = new TestServerPort(); int maxCount = 8; int timeout = 5000; EventLoopGroup group = new NioEventLoopGroup(); @@ -67,4 +68,12 @@ public class NettyConnectPoolHolderTest { NettyConnectPool connectPool2 = NettyConnectPoolHolder.getPool(host, port); Assert.assertNull(connectPool2); } + + static class TestServerPort implements ServerPort { + + @Override + public int getPort() { + return 8888; + } + } } \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java index fd8457a4..70bf64b6 100644 --- a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyConnectPoolTest.java @@ -17,6 +17,9 @@ package cn.hippo4j.rpc.support; +import cn.hippo4j.rpc.discovery.DefaultInstance; +import cn.hippo4j.rpc.discovery.Instance; +import cn.hippo4j.rpc.discovery.ServerPort; import cn.hippo4j.rpc.handler.NettyClientPoolHandler; import cn.hippo4j.rpc.handler.NettyClientTakeHandler; import cn.hippo4j.rpc.handler.NettyServerTakeHandler; @@ -38,7 +41,7 @@ import java.util.concurrent.TimeUnit; public class NettyConnectPoolTest { String host = "127.0.0.1"; - int port = 8888; + ServerPort port = new TestServerPort(); int maxCount = 64; int timeout = 5000; EventLoopGroup group = new NioEventLoopGroup(); @@ -110,4 +113,12 @@ public class NettyConnectPoolTest { pool.close(); rpcServer.close(); } + + static class TestServerPort implements ServerPort { + + @Override + public int getPort() { + return 8888; + } + } } \ No newline at end of file diff --git a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java index 41d2de53..362d832e 100644 --- a/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java +++ b/hippo4j-rpc/src/test/java/cn/hippo4j/rpc/support/NettyProxyCenterTest.java @@ -18,6 +18,7 @@ package cn.hippo4j.rpc.support; import cn.hippo4j.common.web.exception.IllegalException; +import cn.hippo4j.rpc.discovery.ServerPort; import cn.hippo4j.rpc.exception.ConnectionException; import cn.hippo4j.rpc.handler.NettyClientPoolHandler; import cn.hippo4j.rpc.handler.NettyClientTakeHandler; @@ -26,24 +27,26 @@ import org.junit.Test; public class NettyProxyCenterTest { + ServerPort port = new TestServerPort(); + @Test public void getProxy() { NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ProxyInterface localhost = NettyProxyCenter.getProxy(ProxyInterface.class, "localhost", 8888, handler); + ProxyInterface localhost = NettyProxyCenter.getProxy(ProxyInterface.class, "localhost", port, handler); Assert.assertNotNull(localhost); } @Test(expected = IllegalException.class) public void getProxyTest() { NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ProxyClass localhost = NettyProxyCenter.getProxy(ProxyClass.class, "localhost", 8888, handler); + ProxyClass localhost = NettyProxyCenter.getProxy(ProxyClass.class, "localhost", port, handler); Assert.assertNotNull(localhost); } @Test(expected = ConnectionException.class) public void getProxyTestCall() { NettyClientPoolHandler handler = new NettyClientPoolHandler(new NettyClientTakeHandler()); - ProxyInterface localhost = NettyProxyCenter.getProxy(ProxyInterface.class, "localhost", 8888, handler); + ProxyInterface localhost = NettyProxyCenter.getProxy(ProxyInterface.class, "localhost", port, handler); localhost.hello(); Assert.assertNotNull(localhost); } @@ -56,4 +59,12 @@ public class NettyProxyCenterTest { static class ProxyClass { } + + static class TestServerPort implements ServerPort { + + @Override + public int getPort() { + return 8888; + } + } } \ No newline at end of file diff --git a/hippo4j-rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader b/hippo4j-rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader new file mode 100644 index 00000000..3818d6c7 --- /dev/null +++ b/hippo4j-rpc/src/test/resources/META-INF/services/cn.hippo4j.rpc.discovery.InstanceServerLoader @@ -0,0 +1 @@ +cn.hippo4j.rpc.discovery.InstanceServerLoaderImpl \ No newline at end of file