From a863cbc86679eb5284a9eedd1643b62f5e55d587 Mon Sep 17 00:00:00 2001 From: patrick Date: Tue, 20 Aug 2024 13:28:59 +0800 Subject: [PATCH] refine fluent builtin and add some test cases --- .../builtin/annotation/NotThreadSafe.java | 3 + .../io/fluent/builtin/annotation/WithBug.java | 3 + .../io/fluent/builtin/config/AppConfig.java | 103 +++--- .../builtin/config/ConfigGroupName.java | 3 + .../fluent/builtin/config/DotEnvConfig.java | 3 + .../{constant => constants}/CharsetConst.java | 2 +- .../PunctuationConst.java | 2 +- .../RegexpConstant.java | 2 +- .../{constant => constants}/SystemConst.java | 2 +- .../enums/LangEnum.java | 2 +- .../enums/ProxyTypeEnum.java | 2 +- .../file/FileOptionConst.java | 2 +- .../file/FileProtocolConst.java | 2 +- .../file/FileTypeConst.java | 2 +- .../file/ImageTypeConstant.java | 2 +- .../exception/WrapMessageException.java | 1 - .../io/fluent/builtin/meta/GenericsUtils.java | 341 +++++++++--------- .../builtin/{ => meta}/reflection/Assert.java | 2 +- .../{ => meta}/reflection/ClassUtils.java | 2 +- .../{ => meta}/reflection/ClassValues.java | 2 +- .../{ => meta}/reflection/MethodCaptor.java | 2 +- .../reflection/MethodSignature.java | 2 +- .../reflection/PropertyDescriptorCache.java | 2 +- .../{ => meta}/reflection/PropertyGetter.java | 2 +- .../{ => meta}/reflection/PropertyUtils.java | 2 +- .../{ => meta}/reflection/RecordSupport.java | 2 +- .../{ => meta}/reflection/RecordUtils.java | 5 +- .../ReflectionRuntimeException.java | 2 +- .../reflection/TypedPropertyGetter.java | 2 +- .../{ => meta}/reflection/VoidMethod.java | 2 +- .../GenericImmutableProxyForwarder.java | 4 +- .../meta/reflection/immutable/Immutable.java | 3 + .../reflection/immutable/ImmutableProxy.java | 19 +- .../ImmutableProxyForwarderBoolean.java | 2 +- .../ImmutableProxyForwarderInteger.java | 2 +- .../ImmutableProxyForwarderLong.java | 2 +- .../ImmutableProxyForwarderString.java | 2 +- .../immutable/ImmutableProxyOption.java | 2 +- .../reflection/immutable/ReadOnly.java | 2 +- .../collection/DeepImmutableCollection.java | 6 +- .../collection/DeepImmutableEntrySet.java | 2 +- .../collection/DeepImmutableList.java | 2 +- .../collection/DeepImmutableMap.java | 6 +- .../collection/DeepImmutableSet.java | 2 +- .../collection/ImmutableIterator.java | 2 +- .../collection/ImmutableListIterator.java | 2 +- .../reflection/immutable/Immutable.java | 3 - .../config/AppConfigExceptionTest.java | 17 + .../fluent/builtin/config/PropUtilsTest.java | 13 + .../builtin/meta/GenericsUtilsTest.java | 44 +++ .../builtin/meta/ReflectionUtilsTest.java | 136 +++++++ .../fluent/builtin/meta/TargetTypeTest.java | 16 + .../builtin/strings/NamingUtilsTest.java | 9 +- pom.xml | 2 +- 54 files changed, 529 insertions(+), 277 deletions(-) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/CharsetConst.java (87%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/PunctuationConst.java (97%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/RegexpConstant.java (82%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/SystemConst.java (98%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/enums/LangEnum.java (99%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/enums/ProxyTypeEnum.java (80%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/file/FileOptionConst.java (96%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/file/FileProtocolConst.java (89%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/file/FileTypeConst.java (94%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{constant => constants}/file/ImageTypeConstant.java (79%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/Assert.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/ClassUtils.java (99%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/ClassValues.java (88%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/MethodCaptor.java (98%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/MethodSignature.java (97%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/PropertyDescriptorCache.java (99%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/PropertyGetter.java (69%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/PropertyUtils.java (99%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/RecordSupport.java (99%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/RecordUtils.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/ReflectionRuntimeException.java (87%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/TypedPropertyGetter.java (66%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/VoidMethod.java (69%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/GenericImmutableProxyForwarder.java (97%) create mode 100644 components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/Immutable.java rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/ImmutableProxy.java (95%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/ImmutableProxyForwarderBoolean.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/ImmutableProxyForwarderInteger.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/ImmutableProxyForwarderLong.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/ImmutableProxyForwarderString.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/ImmutableProxyOption.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/ReadOnly.java (85%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/collection/DeepImmutableCollection.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/collection/DeepImmutableEntrySet.java (95%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/collection/DeepImmutableList.java (97%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/collection/DeepImmutableMap.java (87%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/collection/DeepImmutableSet.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/collection/ImmutableIterator.java (92%) rename components/fluent-builtin/src/main/java/io/fluent/builtin/{ => meta}/reflection/immutable/collection/ImmutableListIterator.java (95%) delete mode 100644 components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/Immutable.java create mode 100644 components/fluent-builtin/src/test/java/io/fluent/builtin/config/AppConfigExceptionTest.java create mode 100644 components/fluent-builtin/src/test/java/io/fluent/builtin/config/PropUtilsTest.java create mode 100644 components/fluent-builtin/src/test/java/io/fluent/builtin/meta/GenericsUtilsTest.java create mode 100644 components/fluent-builtin/src/test/java/io/fluent/builtin/meta/ReflectionUtilsTest.java create mode 100644 components/fluent-builtin/src/test/java/io/fluent/builtin/meta/TargetTypeTest.java diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/NotThreadSafe.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/NotThreadSafe.java index db4d231..270503d 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/NotThreadSafe.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/NotThreadSafe.java @@ -2,6 +2,9 @@ import java.lang.annotation.*; +/*** + * Not Thread Safe Notification + */ @Documented @Inherited @Target({ElementType.TYPE, ElementType.METHOD}) diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/WithBug.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/WithBug.java index e17ea4d..5f5cccb 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/WithBug.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/annotation/WithBug.java @@ -5,6 +5,9 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +/** + * Bug Notification + */ @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface WithBug { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/config/AppConfig.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/config/AppConfig.java index 877fe9e..b495a90 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/config/AppConfig.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/config/AppConfig.java @@ -4,56 +4,61 @@ import cn.hutool.setting.Setting; import io.fluent.builtin.StringUtils; import io.fluent.builtin.meta.ReflectionUtils; + import java.util.HashMap; +/** + * Application Configuration + */ public class AppConfig { - Setting setting; - - private AppConfig() {} - - private static final String DEFAULT_SETTING_PATH = "config/app.setting"; - - public static AppConfig create() { - return create(DEFAULT_SETTING_PATH); - } - - /** - * Create Setting by setting Paths - * - * @param settingPath - * @return - */ - public static AppConfig create(String settingPath) { - AppConfig config = new AppConfig(); - config.setting = new Setting(settingPath); - config.setting.autoLoad(true); - return config; - } - - public void addSystemProperties() { - setting.putAll(PropUtils.getSystemProps().toBean(HashMap.class)); - } - - public Setting getSetting() { - return setting; - } - - public Setting getConfigSetByGroupName(String groupName) { - return this.setting.getSetting(groupName); - } - - public T getConfigSetBean(String groupName, Class beanType) { - var groupSetting = getConfigSetByGroupName(groupName); - return BeanUtil.toBean(groupSetting, beanType); - } - - public T getConfigSetBean(Class beanType) { - ConfigGroupName groupName = - ReflectionUtils.getClassLevelAnnotation(beanType, ConfigGroupName.class); - if (groupName != null && StringUtils.isBlank(groupName.name())) { - throw new AppConfigException(beanType.getName() + "is not annotated by ConfigGroupName"); - } - var groupSetting = getConfigSetByGroupName(groupName.name()); - return BeanUtil.toBean(groupSetting, beanType); - } + Setting setting; + + private AppConfig() { + } + + private static final String DEFAULT_SETTING_PATH = "config/app.setting"; + + public static AppConfig create() { + return create(DEFAULT_SETTING_PATH); + } + + /** + * Create Setting by setting Paths + * + * @param settingPath + * @return + */ + public static AppConfig create(String settingPath) { + AppConfig config = new AppConfig(); + config.setting = new Setting(settingPath); + config.setting.autoLoad(true); + return config; + } + + public void addSystemProperties() { + setting.putAll(PropUtils.getSystemProps().toBean(HashMap.class)); + } + + public Setting getSetting() { + return setting; + } + + public Setting getConfigSetByGroupName(String groupName) { + return this.setting.getSetting(groupName); + } + + public T getConfigSetBean(String groupName, Class beanType) { + var groupSetting = getConfigSetByGroupName(groupName); + return BeanUtil.toBean(groupSetting, beanType); + } + + public T getConfigSetBean(Class beanType) { + ConfigGroupName groupName = + ReflectionUtils.getClassLevelAnnotation(beanType, ConfigGroupName.class); + if (groupName != null && StringUtils.isBlank(groupName.name())) { + throw new AppConfigException(beanType.getName() + "is not annotated by ConfigGroupName"); + } + var groupSetting = getConfigSetByGroupName(groupName.name()); + return BeanUtil.toBean(groupSetting, beanType); + } } diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/config/ConfigGroupName.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/config/ConfigGroupName.java index ac11829..56fa75c 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/config/ConfigGroupName.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/config/ConfigGroupName.java @@ -2,6 +2,9 @@ import java.lang.annotation.*; +/** + * configuration group tag + */ @Documented @Inherited @Target({ElementType.TYPE, ElementType.METHOD}) diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/config/DotEnvConfig.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/config/DotEnvConfig.java index 878725b..34ed0ca 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/config/DotEnvConfig.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/config/DotEnvConfig.java @@ -2,6 +2,9 @@ import io.github.cdimascio.dotenv.Dotenv; +/** + * For .env configuration + */ public class DotEnvConfig { static Dotenv dotenv = Dotenv.load(); diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/CharsetConst.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/CharsetConst.java similarity index 87% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/CharsetConst.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/CharsetConst.java index 5dcddc0..c674b41 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/CharsetConst.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/CharsetConst.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant; +package io.fluent.builtin.constants; /** 编码常量 */ public final class CharsetConst { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/PunctuationConst.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/PunctuationConst.java similarity index 97% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/PunctuationConst.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/PunctuationConst.java index cf4e2dc..735eb61 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/PunctuationConst.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/PunctuationConst.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant; +package io.fluent.builtin.constants; /** 标点符号常量 */ public final class PunctuationConst { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/RegexpConstant.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/RegexpConstant.java similarity index 82% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/RegexpConstant.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/RegexpConstant.java index 63e989a..8a8c6d3 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/RegexpConstant.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/RegexpConstant.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant; +package io.fluent.builtin.constants; public interface RegexpConstant { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/SystemConst.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/SystemConst.java similarity index 98% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/SystemConst.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/SystemConst.java index d45edb4..05a76eb 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/SystemConst.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/SystemConst.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant; +package io.fluent.builtin.constants; /** * 系统常量 diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/enums/LangEnum.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/enums/LangEnum.java similarity index 99% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/enums/LangEnum.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/enums/LangEnum.java index 5ba909b..6dd4d5c 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/enums/LangEnum.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/enums/LangEnum.java @@ -3,7 +3,7 @@ * gen-comment-plugin All rights reserved. */ -package io.fluent.builtin.constant.enums; +package io.fluent.builtin.constants.enums; /** 翻译语言枚举 */ public enum LangEnum { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/enums/ProxyTypeEnum.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/enums/ProxyTypeEnum.java similarity index 80% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/enums/ProxyTypeEnum.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/enums/ProxyTypeEnum.java index c8ec9e5..3adebdd 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/enums/ProxyTypeEnum.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/enums/ProxyTypeEnum.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant.enums; +package io.fluent.builtin.constants.enums; /** 代理类型枚举 */ public enum ProxyTypeEnum { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileOptionConst.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileOptionConst.java similarity index 96% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileOptionConst.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileOptionConst.java index de668a4..784ef9e 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileOptionConst.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileOptionConst.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant.file; +package io.fluent.builtin.constants.file; /** 文件操作常量 可以结合 {@link java.io.RandomAccessFile} 随机访问文件使用 */ public final class FileOptionConst { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileProtocolConst.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileProtocolConst.java similarity index 89% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileProtocolConst.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileProtocolConst.java index b886d2d..722b23e 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileProtocolConst.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileProtocolConst.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant.file; +package io.fluent.builtin.constants.file; /** 文件协议常量 */ public final class FileProtocolConst { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileTypeConst.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileTypeConst.java similarity index 94% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileTypeConst.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileTypeConst.java index 1cb7a60..65b0890 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/FileTypeConst.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/FileTypeConst.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant.file; +package io.fluent.builtin.constants.file; /** 文件类型常量 */ public final class FileTypeConst { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/ImageTypeConstant.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/ImageTypeConstant.java similarity index 79% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/ImageTypeConstant.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/ImageTypeConstant.java index fcbc9af..dec2c4e 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/constant/file/ImageTypeConstant.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/constants/file/ImageTypeConstant.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.constant.file; +package io.fluent.builtin.constants.file; public interface ImageTypeConstant { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/exception/WrapMessageException.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/exception/WrapMessageException.java index 40ed0e3..59a983f 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/exception/WrapMessageException.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/exception/WrapMessageException.java @@ -2,7 +2,6 @@ /** * 只包装了 错误信息 的 {@link RuntimeException}. - * 用于 {@link com.sprainkle.spring.cloud.advance.common.core.exception.assertion.Assert} 中用于包装自定义异常信息 * */ diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/GenericsUtils.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/GenericsUtils.java index cbb2b2c..17610c8 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/GenericsUtils.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/GenericsUtils.java @@ -1,6 +1,7 @@ package io.fluent.builtin.meta; import cn.hutool.core.lang.ParameterizedTypeImpl; + import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.ParameterizedType; @@ -8,193 +9,195 @@ import java.util.ArrayList; import java.util.List; -/** 泛型工具类 */ +/** + * 泛型工具类 + */ public class GenericsUtils { - /** - * 根据传入class查询它实现第一个**接口**的泛型里的第一个入参的类型 - * - * @param clazz - * @return - */ - public static Class getGenericType(Class clazz) { - - Type[] types = clazz.getGenericInterfaces(); - if (types.length == 0) { - return getSuperClassGenricType(clazz); - } - if (types[0] instanceof ParameterizedType) { - Type[] types2 = ((ParameterizedTypeImpl) types[0]).getActualTypeArguments(); - if (types2.length == 0) { + /** + * 根据传入class查询它实现第一个**接口**的泛型里的第一个入参的类型 + * + * @param clazz + * @return + */ + public static Class getGenericType(Class clazz) { + + Type[] types = clazz.getGenericInterfaces(); + if (types.length == 0) { + return getSuperClassGenricType(clazz); + } + if (types[0] instanceof ParameterizedType) { + Type[] types2 = ((ParameterizedTypeImpl) types[0]).getActualTypeArguments(); + if (types2.length == 0) { + return getSuperClassGenricType(clazz); + } + + Class entityClz = (Class) types2[0]; + return entityClz; + } return getSuperClassGenricType(clazz); - } - - Class entityClz = (Class) types2[0]; - return entityClz; } - return getSuperClassGenricType(clazz); - } - /** - * 通过反射,获得指定类的父类的泛型参数的实际类型. 如DaoSupport - * - * @param clazz clazz 需要反射的类,该类必须继承范型父类 - * @param index 泛型参数所在索引,从0开始. - * @return 范型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class - */ - @SuppressWarnings("unchecked") - public static Class getSuperClassGenricType(Class clazz, int index) { + /** + * 通过反射,获得指定类的父类的泛型参数的实际类型. 如DaoSupport + * + * @param clazz clazz 需要反射的类,该类必须继承范型父类 + * @param index 泛型参数所在索引,从0开始. + * @return 范型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class + */ + @SuppressWarnings("unchecked") + public static Class getSuperClassGenricType(Class clazz, int index) { + + Type genType = clazz.getGenericSuperclass(); - Type genType = clazz.getGenericSuperclass(); + if (!(genType instanceof ParameterizedType)) { - if (!(genType instanceof ParameterizedType)) { + return Object.class; + } - return Object.class; + Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); + if (index >= params.length || index < 0) { + + throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); + } + if (!(params[index] instanceof Class)) { + + return Object.class; + } + return (Class) params[index]; } - Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); - if (index >= params.length || index < 0) { + /** + * 通过反射,获得指定类的父类的第一个泛型参数的实际类型. 如DaoSupport + * + * @param clazz clazz 需要反射的类,该类必须继承泛型父类 + * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class + */ + @SuppressWarnings("unchecked") + public static Class getSuperClassGenricType(Class clazz) { - throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); + return getSuperClassGenricType(clazz, 0); } - if (!(params[index] instanceof Class)) { - return Object.class; + /** + * 通过反射,获得方法返回值泛型参数的实际类型. 如: public Map getNames(){} + * + * @param Method method 方法 + * @param int index 泛型参数所在索引,从0开始. + * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class + */ + @SuppressWarnings("unchecked") + public static Class getMethodGenericReturnType(Method method, int index) { + + Type returnType = method.getGenericReturnType(); + + if (returnType instanceof ParameterizedType) { + + ParameterizedType type = (ParameterizedType) returnType; + Type[] typeArguments = type.getActualTypeArguments(); + + if (index >= typeArguments.length || index < 0) { + + throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); + } + return (Class) typeArguments[index]; + } + return Object.class; } - return (Class) params[index]; - } - - /** - * 通过反射,获得指定类的父类的第一个泛型参数的实际类型. 如DaoSupport - * - * @param clazz clazz 需要反射的类,该类必须继承泛型父类 - * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class - */ - @SuppressWarnings("unchecked") - public static Class getSuperClassGenricType(Class clazz) { - - return getSuperClassGenricType(clazz, 0); - } - - /** - * 通过反射,获得方法返回值泛型参数的实际类型. 如: public Map getNames(){} - * - * @param Method method 方法 - * @param int index 泛型参数所在索引,从0开始. - * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class - */ - @SuppressWarnings("unchecked") - public static Class getMethodGenericReturnType(Method method, int index) { - - Type returnType = method.getGenericReturnType(); - - if (returnType instanceof ParameterizedType) { - - ParameterizedType type = (ParameterizedType) returnType; - Type[] typeArguments = type.getActualTypeArguments(); - - if (index >= typeArguments.length || index < 0) { - - throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); - } - return (Class) typeArguments[index]; + + /** + * 通过反射,获得方法返回值第一个泛型参数的实际类型. 如: public Map getNames(){} + * + * @param Method method 方法 + * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class + */ + @SuppressWarnings("unchecked") + public static Class getMethodGenericReturnType(Method method) { + + return getMethodGenericReturnType(method, 0); } - return Object.class; - } - - /** - * 通过反射,获得方法返回值第一个泛型参数的实际类型. 如: public Map getNames(){} - * - * @param Method method 方法 - * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class - */ - @SuppressWarnings("unchecked") - public static Class getMethodGenericReturnType(Method method) { - - return getMethodGenericReturnType(method, 0); - } - - /** - * 通过反射,获得方法输入参数第index个输入参数的所有泛型参数的实际类型. 如: public void add(Map maps, List - * names){} - * - * @param Method method 方法 - * @param int index 第几个输入参数 - * @return 输入参数的泛型参数的实际类型集合, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回空集合 - */ - @SuppressWarnings("unchecked") - public static List getMethodGenericParameterTypes(Method method, int index) { - - List results = new ArrayList(); - Type[] genericParameterTypes = method.getGenericParameterTypes(); - - if (index >= genericParameterTypes.length || index < 0) { - - throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); + + /** + * 通过反射,获得方法输入参数第index个输入参数的所有泛型参数的实际类型. 如: public void add(Map maps, List + * names){} + * + * @param Method method 方法 + * @param int index 第几个输入参数 + * @return 输入参数的泛型参数的实际类型集合, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回空集合 + */ + @SuppressWarnings("unchecked") + public static List getMethodGenericParameterTypes(Method method, int index) { + + List results = new ArrayList(); + Type[] genericParameterTypes = method.getGenericParameterTypes(); + + if (index >= genericParameterTypes.length || index < 0) { + + throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); + } + Type genericParameterType = genericParameterTypes[index]; + + if (genericParameterType instanceof ParameterizedType) { + + ParameterizedType aType = (ParameterizedType) genericParameterType; + Type[] parameterArgTypes = aType.getActualTypeArguments(); + for (Type parameterArgType : parameterArgTypes) { + Class parameterArgClass = (Class) parameterArgType; + results.add(parameterArgClass); + } + return results; + } + return results; } - Type genericParameterType = genericParameterTypes[index]; - if (genericParameterType instanceof ParameterizedType) { + /** + * 通过反射,获得方法输入参数第一个输入参数的所有泛型参数的实际类型. 如: public void add(Map maps, List + * names){} + * + * @param Method method 方法 + * @return 输入参数的泛型参数的实际类型集合, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回空集合 + */ + @SuppressWarnings("unchecked") + public static List getMethodGenericParameterTypes(Method method) { + + return getMethodGenericParameterTypes(method, 0); + } - ParameterizedType aType = (ParameterizedType) genericParameterType; - Type[] parameterArgTypes = aType.getActualTypeArguments(); - for (Type parameterArgType : parameterArgTypes) { - Class parameterArgClass = (Class) parameterArgType; - results.add(parameterArgClass); - } - return results; + /** + * 通过反射,获得Field泛型参数的实际类型. 如: public Map names; + * + * @param Field field 字段 + * @param int index 泛型参数所在索引,从0开始. + * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class + */ + @SuppressWarnings("unchecked") + public static Class getFieldGenericType(Field field, int index) { + + Type genericFieldType = field.getGenericType(); + + if (genericFieldType instanceof ParameterizedType) { + + ParameterizedType aType = (ParameterizedType) genericFieldType; + Type[] fieldArgTypes = aType.getActualTypeArguments(); + if (index >= fieldArgTypes.length || index < 0) { + + throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); + } + return (Class) fieldArgTypes[index]; + } + return Object.class; } - return results; - } - - /** - * 通过反射,获得方法输入参数第一个输入参数的所有泛型参数的实际类型. 如: public void add(Map maps, List - * names){} - * - * @param Method method 方法 - * @return 输入参数的泛型参数的实际类型集合, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回空集合 - */ - @SuppressWarnings("unchecked") - public static List getMethodGenericParameterTypes(Method method) { - - return getMethodGenericParameterTypes(method, 0); - } - - /** - * 通过反射,获得Field泛型参数的实际类型. 如: public Map names; - * - * @param Field field 字段 - * @param int index 泛型参数所在索引,从0开始. - * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class - */ - @SuppressWarnings("unchecked") - public static Class getFieldGenericType(Field field, int index) { - - Type genericFieldType = field.getGenericType(); - - if (genericFieldType instanceof ParameterizedType) { - - ParameterizedType aType = (ParameterizedType) genericFieldType; - Type[] fieldArgTypes = aType.getActualTypeArguments(); - if (index >= fieldArgTypes.length || index < 0) { - - throw new RuntimeException("你输入的索引" + (index < 0 ? "不能小于0" : "超出了参数的总数")); - } - return (Class) fieldArgTypes[index]; + + /** + * 通过反射,获得Field泛型参数的实际类型. 如: public Map names; + * + * @param Field field 字段 + * @param int index 泛型参数所在索引,从0开始. + * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class + */ + @SuppressWarnings("unchecked") + public static Class getFieldGenericType(Field field) { + + return getFieldGenericType(field, 0); } - return Object.class; - } - - /** - * 通过反射,获得Field泛型参数的实际类型. 如: public Map names; - * - * @param Field field 字段 - * @param int index 泛型参数所在索引,从0开始. - * @return 泛型参数的实际类型, 如果没有实现ParameterizedType接口,即不支持泛型,所以直接返回 Object.class - */ - @SuppressWarnings("unchecked") - public static Class getFieldGenericType(Field field) { - - return getFieldGenericType(field, 0); - } } diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/Assert.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/Assert.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/Assert.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/Assert.java index b079023..92243ba 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/Assert.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/Assert.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import java.util.function.Supplier; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ClassUtils.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ClassUtils.java similarity index 99% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ClassUtils.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ClassUtils.java index 820655e..62437f8 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ClassUtils.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ClassUtils.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ClassValues.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ClassValues.java similarity index 88% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ClassValues.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ClassValues.java index a4950f2..34b90f0 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ClassValues.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ClassValues.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import java.util.function.Function; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/MethodCaptor.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/MethodCaptor.java similarity index 98% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/MethodCaptor.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/MethodCaptor.java index 2e223a7..3b710b2 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/MethodCaptor.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/MethodCaptor.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import static net.bytebuddy.matcher.ElementMatchers.*; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/MethodSignature.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/MethodSignature.java similarity index 97% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/MethodSignature.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/MethodSignature.java index a64b218..9d12694 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/MethodSignature.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/MethodSignature.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import java.lang.reflect.Method; import java.util.Arrays; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyDescriptorCache.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyDescriptorCache.java similarity index 99% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyDescriptorCache.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyDescriptorCache.java index 7497fc1..2aa5181 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyDescriptorCache.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyDescriptorCache.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import java.beans.BeanInfo; import java.beans.IntrospectionException; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyGetter.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyGetter.java similarity index 69% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyGetter.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyGetter.java index 903f7a5..386d570 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyGetter.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyGetter.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; @FunctionalInterface public interface PropertyGetter extends TypedPropertyGetter {} diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyUtils.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyUtils.java similarity index 99% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyUtils.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyUtils.java index d06855a..e2231ec 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/PropertyUtils.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/PropertyUtils.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import java.beans.PropertyDescriptor; import java.lang.annotation.Annotation; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/RecordSupport.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/RecordSupport.java similarity index 99% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/RecordSupport.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/RecordSupport.java index d8d92bf..8733f49 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/RecordSupport.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/RecordSupport.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; import java.beans.BeanInfo; import java.beans.IntrospectionException; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/RecordUtils.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/RecordUtils.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/RecordUtils.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/RecordUtils.java index 576d148..0e9d9a0 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/RecordUtils.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/RecordUtils.java @@ -1,6 +1,7 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; + +import io.fluent.builtin.meta.reflection.immutable.ImmutableProxy; -import io.fluent.builtin.reflection.immutable.ImmutableProxy; import java.lang.reflect.Constructor; import java.util.function.Function; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ReflectionRuntimeException.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ReflectionRuntimeException.java similarity index 87% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ReflectionRuntimeException.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ReflectionRuntimeException.java index ba21f3b..71017ad 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/ReflectionRuntimeException.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/ReflectionRuntimeException.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; public class ReflectionRuntimeException extends RuntimeException { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/TypedPropertyGetter.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/TypedPropertyGetter.java similarity index 66% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/TypedPropertyGetter.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/TypedPropertyGetter.java index 05c3ab5..e8797c5 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/TypedPropertyGetter.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/TypedPropertyGetter.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; @FunctionalInterface public interface TypedPropertyGetter { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/VoidMethod.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/VoidMethod.java similarity index 69% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/VoidMethod.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/VoidMethod.java index 3459de9..70b0fda 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/VoidMethod.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/VoidMethod.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection; +package io.fluent.builtin.meta.reflection; @FunctionalInterface public interface VoidMethod { diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/GenericImmutableProxyForwarder.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/GenericImmutableProxyForwarder.java similarity index 97% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/GenericImmutableProxyForwarder.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/GenericImmutableProxyForwarder.java index b65af2d..283ec45 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/GenericImmutableProxyForwarder.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/GenericImmutableProxyForwarder.java @@ -1,6 +1,6 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; -import io.fluent.builtin.reflection.ClassUtils; +import io.fluent.builtin.meta.reflection.ClassUtils; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collection; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/Immutable.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/Immutable.java new file mode 100644 index 0000000..bfa1e58 --- /dev/null +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/Immutable.java @@ -0,0 +1,3 @@ +package io.fluent.builtin.meta.reflection.immutable; + +public interface Immutable {} diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxy.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxy.java similarity index 95% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxy.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxy.java index 62ec040..0d27297 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxy.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxy.java @@ -1,15 +1,16 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; import static net.bytebuddy.matcher.ElementMatchers.*; -import io.fluent.builtin.reflection.ClassUtils; -import io.fluent.builtin.reflection.ClassValues; -import io.fluent.builtin.reflection.PropertyUtils; -import io.fluent.builtin.reflection.RecordUtils; -import io.fluent.builtin.reflection.immutable.collection.DeepImmutableCollection; -import io.fluent.builtin.reflection.immutable.collection.DeepImmutableList; -import io.fluent.builtin.reflection.immutable.collection.DeepImmutableMap; -import io.fluent.builtin.reflection.immutable.collection.DeepImmutableSet; +import io.fluent.builtin.meta.reflection.immutable.collection.DeepImmutableCollection; +import io.fluent.builtin.meta.reflection.immutable.collection.DeepImmutableList; +import io.fluent.builtin.meta.reflection.immutable.collection.DeepImmutableMap; +import io.fluent.builtin.meta.reflection.immutable.collection.DeepImmutableSet; +import io.fluent.builtin.meta.reflection.ClassUtils; +import io.fluent.builtin.meta.reflection.ClassValues; +import io.fluent.builtin.meta.reflection.PropertyUtils; +import io.fluent.builtin.meta.reflection.RecordUtils; + import java.io.File; import java.lang.annotation.Annotation; import java.lang.reflect.Method; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderBoolean.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderBoolean.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderBoolean.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderBoolean.java index 07149f8..2799d2c 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderBoolean.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderBoolean.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderInteger.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderInteger.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderInteger.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderInteger.java index f069d3d..b08d80d 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderInteger.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderInteger.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderLong.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderLong.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderLong.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderLong.java index b2421b2..de63984 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderLong.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderLong.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderString.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderString.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderString.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderString.java index f04e35e..44a2af7 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyForwarderString.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyForwarderString.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyOption.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyOption.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyOption.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyOption.java index 81e97a0..86d1873 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ImmutableProxyOption.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ImmutableProxyOption.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; public enum ImmutableProxyOption { /** diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ReadOnly.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ReadOnly.java similarity index 85% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ReadOnly.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ReadOnly.java index fbbdddd..5d5f602 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/ReadOnly.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/ReadOnly.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable; +package io.fluent.builtin.meta.reflection.immutable; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableCollection.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableCollection.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableCollection.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableCollection.java index 2b81d9b..d2ae551 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableCollection.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableCollection.java @@ -1,7 +1,7 @@ -package io.fluent.builtin.reflection.immutable.collection; +package io.fluent.builtin.meta.reflection.immutable.collection; -import io.fluent.builtin.reflection.immutable.Immutable; -import io.fluent.builtin.reflection.immutable.ImmutableProxy; +import io.fluent.builtin.meta.reflection.immutable.Immutable; +import io.fluent.builtin.meta.reflection.immutable.ImmutableProxy; import java.io.Serializable; import java.util.AbstractCollection; import java.util.Collection; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableEntrySet.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableEntrySet.java similarity index 95% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableEntrySet.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableEntrySet.java index 93be7e0..b65ba96 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableEntrySet.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableEntrySet.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable.collection; +package io.fluent.builtin.meta.reflection.immutable.collection; import java.util.Map.Entry; import java.util.Set; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableList.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableList.java similarity index 97% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableList.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableList.java index ef00d7e..25206e1 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableList.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableList.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable.collection; +package io.fluent.builtin.meta.reflection.immutable.collection; import java.util.Arrays; import java.util.Collection; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableMap.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableMap.java similarity index 87% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableMap.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableMap.java index 1ab37e0..522454b 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableMap.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableMap.java @@ -1,7 +1,7 @@ -package io.fluent.builtin.reflection.immutable.collection; +package io.fluent.builtin.meta.reflection.immutable.collection; -import io.fluent.builtin.reflection.immutable.Immutable; -import io.fluent.builtin.reflection.immutable.ImmutableProxy; +import io.fluent.builtin.meta.reflection.immutable.Immutable; +import io.fluent.builtin.meta.reflection.immutable.ImmutableProxy; import java.io.Serializable; import java.util.AbstractMap; import java.util.IdentityHashMap; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableSet.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableSet.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableSet.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableSet.java index fb72f2a..d146764 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/DeepImmutableSet.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/DeepImmutableSet.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable.collection; +package io.fluent.builtin.meta.reflection.immutable.collection; import java.util.Arrays; import java.util.Collections; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/ImmutableIterator.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/ImmutableIterator.java similarity index 92% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/ImmutableIterator.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/ImmutableIterator.java index 86b6295..543a311 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/ImmutableIterator.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/ImmutableIterator.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable.collection; +package io.fluent.builtin.meta.reflection.immutable.collection; import java.util.Iterator; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/ImmutableListIterator.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/ImmutableListIterator.java similarity index 95% rename from components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/ImmutableListIterator.java rename to components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/ImmutableListIterator.java index ebfbeaf..17bdcdc 100644 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/collection/ImmutableListIterator.java +++ b/components/fluent-builtin/src/main/java/io/fluent/builtin/meta/reflection/immutable/collection/ImmutableListIterator.java @@ -1,4 +1,4 @@ -package io.fluent.builtin.reflection.immutable.collection; +package io.fluent.builtin.meta.reflection.immutable.collection; import java.util.ListIterator; diff --git a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/Immutable.java b/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/Immutable.java deleted file mode 100644 index d1d31b4..0000000 --- a/components/fluent-builtin/src/main/java/io/fluent/builtin/reflection/immutable/Immutable.java +++ /dev/null @@ -1,3 +0,0 @@ -package io.fluent.builtin.reflection.immutable; - -public interface Immutable {} diff --git a/components/fluent-builtin/src/test/java/io/fluent/builtin/config/AppConfigExceptionTest.java b/components/fluent-builtin/src/test/java/io/fluent/builtin/config/AppConfigExceptionTest.java new file mode 100644 index 0000000..aa95747 --- /dev/null +++ b/components/fluent-builtin/src/test/java/io/fluent/builtin/config/AppConfigExceptionTest.java @@ -0,0 +1,17 @@ +package io.fluent.builtin.config; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class AppConfigExceptionTest { + + @Test + public void testAppConfigException() { + AppConfigException appConfigException = new AppConfigException( + "this is appconfig exception" + ); + assertEquals("this is appconfig exception", appConfigException.getMessage()); + } + +} \ No newline at end of file diff --git a/components/fluent-builtin/src/test/java/io/fluent/builtin/config/PropUtilsTest.java b/components/fluent-builtin/src/test/java/io/fluent/builtin/config/PropUtilsTest.java new file mode 100644 index 0000000..808c211 --- /dev/null +++ b/components/fluent-builtin/src/test/java/io/fluent/builtin/config/PropUtilsTest.java @@ -0,0 +1,13 @@ +package io.fluent.builtin.config; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class PropUtilsTest { + @Test + public void testToProps(){ + var result = PropUtils.toProperties("test=key"); + assert result.get("test").equals("key"); + } +} \ No newline at end of file diff --git a/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/GenericsUtilsTest.java b/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/GenericsUtilsTest.java new file mode 100644 index 0000000..6a9e4e3 --- /dev/null +++ b/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/GenericsUtilsTest.java @@ -0,0 +1,44 @@ +package io.fluent.builtin.meta; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class GenericsUtilsTest { + + @Test + void getGenericType() { + } + + @Test + void getSuperClassGenricType() { + } + + @Test + void testGetSuperClassGenricType() { + } + + @Test + void getMethodGenericReturnType() { + } + + @Test + void testGetMethodGenericReturnType() { + } + + @Test + void getMethodGenericParameterTypes() { + } + + @Test + void testGetMethodGenericParameterTypes() { + } + + @Test + void getFieldGenericType() { + } + + @Test + void testGetFieldGenericType() { + } +} \ No newline at end of file diff --git a/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/ReflectionUtilsTest.java b/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/ReflectionUtilsTest.java new file mode 100644 index 0000000..a2ae085 --- /dev/null +++ b/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/ReflectionUtilsTest.java @@ -0,0 +1,136 @@ +package io.fluent.builtin.meta; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ReflectionUtilsTest { + + @Test + void invokeMethod() { + } + + @Test + void invokeGetter() { + } + + @Test + void invokeSetter() { + } + + @Test + void getFieldValue() { + } + + @Test + void testGetFieldValue() { + } + + @Test + void setFieldValue() { + } + + @Test + void testInvokeMethod() { + } + + @Test + void invokeMethodByName() { + } + + @Test + void getAccessibleField() { + } + + @Test + void getAccessibleFields() { + } + + @Test + void getAccessibleFieldTypeName() { + } + + @Test + void getFieldTypeAndValue() { + } + + @Test + void getAccessibleMethod() { + } + + @Test + void getAccessibleMethodByName() { + } + + @Test + void makeAccessible() { + } + + @Test + void testMakeAccessible() { + } + + @Test + void getClassGenericType() { + } + + @Test + void isParameterizedList() { + } + + @Test + void evalAssignableClass() { + } + + @Test + void hasGenericParameter() { + } + + @Test + void getGenericParameterClass() { + } + + @Test + void testGetGenericParameterClass() { + } + + @Test + void getGenericParameterClassList() { + } + + @Test + void testGetClassGenericType() { + } + + @Test + void getUserClass() { + } + + @Test + void convertReflectionExceptionToUnchecked() { + } + + @Test + void isGivenClass() { + } + + @Test + void testIsGivenClass() { + } + + @Test + void isGivenClassInstance() { + } + + @Test + void isGivenClassList() { + } + + @Test + void getClassLevelAnnotation() { + } + + @Test + void testGetClassLevelAnnotation() { + } +} \ No newline at end of file diff --git a/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/TargetTypeTest.java b/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/TargetTypeTest.java new file mode 100644 index 0000000..3c71093 --- /dev/null +++ b/components/fluent-builtin/src/test/java/io/fluent/builtin/meta/TargetTypeTest.java @@ -0,0 +1,16 @@ +package io.fluent.builtin.meta; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class TargetTypeTest { + + @Test + void getType() { + } + + @Test + void getClassType() { + } +} \ No newline at end of file diff --git a/components/fluent-builtin/src/test/java/io/fluent/builtin/strings/NamingUtilsTest.java b/components/fluent-builtin/src/test/java/io/fluent/builtin/strings/NamingUtilsTest.java index c69af4f..1ed5cdc 100644 --- a/components/fluent-builtin/src/test/java/io/fluent/builtin/strings/NamingUtilsTest.java +++ b/components/fluent-builtin/src/test/java/io/fluent/builtin/strings/NamingUtilsTest.java @@ -1,11 +1,16 @@ package io.fluent.builtin.strings; +import io.fluent.builtin.NamingUtils; import org.junit.jupiter.api.Test; -class NamingUtilsTest { +public class NamingUtilsTest { @Test - void underscoreToCamel() {} + void underscoreToCamel() { + + var result = NamingUtils.underscoreToCamel("test_nice_new"); + assert result.equalsIgnoreCase("testNiceNew"); + } @Test void camelToUnderscore() {} diff --git a/pom.xml b/pom.xml index ddc49a9..eb3ee7e 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 1.0-SNAPSHOT 42.5.1 UTF-8 - 5.8.24 + 5.8.31 warning ./ci/checkstyle.xml