@venusdrogon venusdrogon released this Aug 14, 2018 · 8 commits to master since this release

Assets 2
:bookmark:upgrade-version-1.12.8

@venusdrogon venusdrogon released this Aug 10, 2018 · 11 commits to master since this release

Assets 2

1.12.7

@venusdrogon venusdrogon released this Aug 6, 2018 · 14 commits to master since this release

Assets 2

#763 完善 MapUtil.removeKeys(Map<K, V>, K...) javadoc Javadoc

@venusdrogon venusdrogon released this Jul 26, 2018 · 19 commits to master since this release

Assets 2
:bookmark:upgrade-version-1.12.4

@venusdrogon venusdrogon released this Jul 18, 2018 · 24 commits to master since this release

Assets 2

feilong-core 1.12.1 发布了,feilong-core 是一个让 Java 开发更简便的工具包。

  1. 让你从大量重复的底层代码中脱身,提高工作效率;
  2. 让你的代码更简炼,易写、易读、易于维护;

文档地址: http://feilong-core.mydoc.io/

单元测试数 增加至 2045 个, 单元测试覆盖率 增加至 91% ,javadoc 比率 83%

本次升级共有 1 处变更, 具体参见 1.12.1 milestone

[Feature] 🆕

  • none

[Update]

  • none

[版本升级]

  • none

[Remove]

  • none

[Fix Bug] 🐛

  • #760 PropertyUtil.getProperty(Object, String) 对于 map 排序异常 bug

[Javadoc]

  • none

[Junit Test]

  • none

@venusdrogon venusdrogon released this Jul 13, 2018 · 25 commits to master since this release

Assets 2

feilong-core 1.12.0 发布了,feilong-core 是一个让 Java 开发更简便的工具包。

  1. 让你从大量重复的底层代码中脱身,提高工作效率;
  2. 让你的代码更简炼,易写、易读、易于维护;

文档地址: http://feilong-core.mydoc.io/

单元测试数 增加至 2045 个, 单元测试覆盖率 增加至 91% ,javadoc 比率 83%

本次升级共有 7 处变更, 具体参见 1.12.0 milestone

[Feature] 🆕

  • #645 大幅度提高 CollectionsUtil.getPropertyValueList 性能

对于以下user list

List<User>  list = buildUser(1000);

private static final List<User> buildUser(int size){
    List<User> returnList = newArrayList();
    for (int i = 0, j = size; i < j; ++i){
        returnList.add(new User("张三" + i, i));
    }
    return returnList;
}

现在要取到每个user 的age ,组成list集合返回,直接调用

List<Integer> ageList = CollectionsUtil.getPropertyValueList(list, "age");

1.12.0 VS 1.11.5 性能对比

image

在循环 50000 次 , 1.12.0 速度上提升了 20

[Update]

  • #755 CollectionsUtil.getPropertyValueSet(Iterable<O>, String) 初始化set 大小
  • #754 CollectionsUtil.getPropertyValueList(Iterable<O>, String) 初始化 list大小

[版本升级]

  • commons-collections4 升级到 4.2 ⬆️

[Remove]

  • none

[Fix Bug] 🐛

  • none

[Javadoc]

  • #759 完善 BeanUtil javadoc
  • #758 完善 CollectionsUtil.getPropertyValueSet(Iterable<O>, String) javadoc ,增加对 beanIterable 的说明
  • #757 完善 CollectionsUtil.getPropertyValueList(Iterable<O>, String) javadoc ,增加对 beanIterable 的说明

[Junit Test]

  • #756 添加 GetPropertyValueListPropertyNameTest 单元测试类

@venusdrogon venusdrogon released this Jul 8, 2018 · 37 commits to master since this release

Assets 2

本次升级共有 15 处变更, 具体参见 1.11.5 milestone

1.11.5 文档地址: http://feilong-core.mydoc.io/

[Feature] 🆕

  • #666 com.feilong.core.lang.NumberUtil.getAddValue(Number...) 要允许null值

所有数加起来.

说明:

  • 支持跳过null 元素相加 (since 1.11.5)
  • 但是如果所有元素都是null ,将会抛出 IllegalArgumentException

示例:

 NumberUtil.getAddValue(2, 4, 5)              =   11
 NumberUtil.getAddValue(new BigDecimal(6), 5) =   11
 NumberUtil.getAddValue(new BigDecimal(6), null) =   6
  • #751 新建 feilong runtime exception DefaultRuntimeException

主要作用,是在异常message 中追加 cause exception信息,方便查看排查问题

对比

empty message

如下代码

    public void testRuntimeException(){
        try{
            int i = 1 / 0;
        }catch (Exception e){
            throw new RuntimeException("", e);
        }
    }

抛出的异常情况在控制台是这样的

java.lang.RuntimeException:
	at com.feilong.core.DefaultRuntimeExceptionTest.testRuntimeException(DefaultRuntimeExceptionTest.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at java.lang.reflect.Method.invoke(Method.java:606)
Caused by: java.lang.ArithmeticException: / by zero
	at com.feilong.core.DefaultRuntimeExceptionTest.testRuntimeException(DefaultRuntimeExceptionTest.java:61)
	... 23 more

而如果使用 DefaultRuntimeException

    public void testDefaultRuntimeException(){
        try{
            int i = 1 / 0;
        }catch (Exception e){
            throw new DefaultRuntimeException("", e);
        }
    }

抛出来的信息是这样的

com.feilong.core.DefaultRuntimeException: **java.lang.ArithmeticException: / by zero**
	at com.feilong.core.DefaultRuntimeExceptionTest.testDefaultRuntimeException(DefaultRuntimeExceptionTest.java:53)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

Caused by: java.lang.ArithmeticException: / by zero
	at com.feilong.core.DefaultRuntimeExceptionTest.testDefaultRuntimeException(DefaultRuntimeExceptionTest.java:51)
	... 23 more

[Update]

  • #747 MethodUtil.invokeStaticMethod(Class<?>, String, Object[], Class<?>[]) 支持 私有的静态方法

[Remove]

  • none

[Fix Bug] 🐛

  • none

[javadoc]

  • #742 ConvertUtil 修改 toBoolean(Object toBeConvertedValue) javadoc

[test]

  • #753 CollectionsUtil new 相关方法添加单元测试

[help wanted]

  • #750 修改 FieldUtil 异常信息
  • #746 修改 PropertyUtil 异常信息
  • #749 修改 ConstructorUtil 异常消息
  • #748 修改 ClassUtil 类异常提示
  • #739 更改 com.feilong.core.bean.BeanUtil 异常提示
  • #745 修改 Stringutil getBytes 异常提示信息
  • #744 修改 URLUtil 异常提示信息
  • #743 修改 URIUtil 相关异常message
  • #742 修改 SortUtil parsePropertyNameAndOrder 方法异常message
  • #741 修改 DateUtil toDate 的报错异常信息

@venusdrogon venusdrogon released this Jun 25, 2018 · 62 commits to master since this release

Assets 2
:bookmark:upgrade-version-1.11.4

@venusdrogon venusdrogon released this Jun 10, 2018 · 67 commits to master since this release

Assets 2
:bookmark:upgrade-version-1.11.3

@venusdrogon venusdrogon released this Jun 7, 2018 · 70 commits to master since this release

Assets 2

本次升级共有 5 处变更, 具体参见 1.11.2 milestone

1.11.2 文档地址: http://feilong-core.mydoc.io/

[Feature] 🆕

  • #737 ConvertUtil 新建 registerSimpleDateLocaleConverter
  • #734 ConvertUtil 新建 registerStandardDefaultNull 方法

[Update]

  • none

[Remove]

  • #738 ReturnResult 和 ReturnResultBuilder 移动到 feilong-context项目中 remove

[Fix Bug] 🐛

  • #735 修改 ConvertUtil.toBoolean(Object) 默认实现 bug
  • #736 Caused by: org.apache.commons.beanutils.ConversionException: No value specified for 'Date'

[javadoc]

  • none

[test]

  • none

[help wanted]

  • none