diff --git a/version5/krpc-core/src/main/java/com/kama/test/serializer/SpiTest.java b/version5/krpc-core/src/main/java/com/kama/test/serializer/SpiTest.java new file mode 100644 index 0000000..c0cd3a9 --- /dev/null +++ b/version5/krpc-core/src/main/java/com/kama/test/serializer/SpiTest.java @@ -0,0 +1,31 @@ +package com.kama.test.serializer; + +import common.serializer.myserializer.*; +import common.spi.SpiLoader; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +/** + * @ClassName SpiTest + * @Description spi测试 + * @Author Kano07 + * @LastChangeDate 2026-3-23 14:02 + * @Version v5.0 + */ +public class SpiTest { + @Test + public void testSpi() { + SpiLoader.loadSpi(Serializer.class); + Serializer serializer = SpiLoader.getInstance(Serializer.class, "kryo"); + assertTrue("SPI 获取的实例应该是 KryoSerializer 类型", serializer instanceof KryoSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "protobuf"); + assertTrue("SPI 获取的实例应该是 ProtostuffSerializer 类型", serializer instanceof ProtostuffSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "json"); + assertTrue("SPI 获取的实例应该是 JsonSerializer 类型", serializer instanceof JsonSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "hessian"); + assertTrue("SPI 获取的实例应该是 HessianSerializer 类型", serializer instanceof HessianSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "jdk"); + assertTrue("SPI 获取的实例应该是 ObjectSerializer 类型", serializer instanceof ObjectSerializer); + } +} diff --git a/version5/krpc-core/src/main/resources/META-INF/serializer/com.kama.common.serializer.myserializer.Serializer b/version5/krpc-core/src/main/resources/META-INF/serializer/com.kama.common.serializer.myserializer.Serializer deleted file mode 100644 index 90c3187..0000000 --- a/version5/krpc-core/src/main/resources/META-INF/serializer/com.kama.common.serializer.myserializer.Serializer +++ /dev/null @@ -1,5 +0,0 @@ -Hessian=com.kama.common.serializer.myserializer.HessianSerializer -protobuf=com.kama.common.serializer.myserializer.ProtobufSerializer -json=com.kama.common.serializer.myserializer.JsonSerializer -kryo=com.kama.common.serializer.myserializer.KryoSerializer -jdk=com.kama.common.serializer.myserializer.ObjectSerializer diff --git a/version5/krpc-core/src/main/resources/META-INF/serializer/common.serializer.myserializer.Serializer b/version5/krpc-core/src/main/resources/META-INF/serializer/common.serializer.myserializer.Serializer new file mode 100644 index 0000000..7ba9e8f --- /dev/null +++ b/version5/krpc-core/src/main/resources/META-INF/serializer/common.serializer.myserializer.Serializer @@ -0,0 +1,5 @@ +hessian=common.serializer.myserializer.HessianSerializer +protobuf=common.serializer.myserializer.ProtostuffSerializer +json=common.serializer.myserializer.JsonSerializer +kryo=common.serializer.myserializer.KryoSerializer +jdk=common.serializer.myserializer.ObjectSerializer diff --git a/version6/krpc-core/src/main/java/com/kama/test/serializer/SpiTest.java b/version6/krpc-core/src/main/java/com/kama/test/serializer/SpiTest.java new file mode 100644 index 0000000..9b3ddfe --- /dev/null +++ b/version6/krpc-core/src/main/java/com/kama/test/serializer/SpiTest.java @@ -0,0 +1,31 @@ +package com.kama.test.serializer; + +import common.serializer.myserializer.*; +import common.spi.SpiLoader; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +/** + * @ClassName SpiTest + * @Description spi测试 + * @Author Kano07 + * @LastChangeDate 2026-3-23 14:02 + * @Version v6.0 + */ +public class SpiTest { + @Test + public void testSpi() { + SpiLoader.loadSpi(Serializer.class); + Serializer serializer = SpiLoader.getInstance(Serializer.class, "kryo"); + assertTrue("SPI 获取的实例应该是 KryoSerializer 类型", serializer instanceof KryoSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "protobuf"); + assertTrue("SPI 获取的实例应该是 ProtostuffSerializer 类型", serializer instanceof ProtostuffSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "json"); + assertTrue("SPI 获取的实例应该是 JsonSerializer 类型", serializer instanceof JsonSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "hessian"); + assertTrue("SPI 获取的实例应该是 HessianSerializer 类型", serializer instanceof HessianSerializer); + serializer = SpiLoader.getInstance(Serializer.class, "jdk"); + assertTrue("SPI 获取的实例应该是 ObjectSerializer 类型", serializer instanceof ObjectSerializer); + } +} diff --git a/version6/krpc-core/src/main/resources/META-INF/serializer/com.kama.common.serializer.myserializer.Serializer b/version6/krpc-core/src/main/resources/META-INF/serializer/com.kama.common.serializer.myserializer.Serializer deleted file mode 100644 index 90c3187..0000000 --- a/version6/krpc-core/src/main/resources/META-INF/serializer/com.kama.common.serializer.myserializer.Serializer +++ /dev/null @@ -1,5 +0,0 @@ -Hessian=com.kama.common.serializer.myserializer.HessianSerializer -protobuf=com.kama.common.serializer.myserializer.ProtobufSerializer -json=com.kama.common.serializer.myserializer.JsonSerializer -kryo=com.kama.common.serializer.myserializer.KryoSerializer -jdk=com.kama.common.serializer.myserializer.ObjectSerializer diff --git a/version6/krpc-core/src/main/resources/META-INF/serializer/common.serializer.myserializer.Serializer b/version6/krpc-core/src/main/resources/META-INF/serializer/common.serializer.myserializer.Serializer new file mode 100644 index 0000000..7ba9e8f --- /dev/null +++ b/version6/krpc-core/src/main/resources/META-INF/serializer/common.serializer.myserializer.Serializer @@ -0,0 +1,5 @@ +hessian=common.serializer.myserializer.HessianSerializer +protobuf=common.serializer.myserializer.ProtostuffSerializer +json=common.serializer.myserializer.JsonSerializer +kryo=common.serializer.myserializer.KryoSerializer +jdk=common.serializer.myserializer.ObjectSerializer