mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-12-07 17:48:40 +08:00
update dependency
This commit is contained in:
parent
0668337338
commit
e52ce85042
@ -25,8 +25,6 @@ import cn.hutool.v7.core.lang.Assert;
|
|||||||
import cn.hutool.v7.core.lang.Validator;
|
import cn.hutool.v7.core.lang.Validator;
|
||||||
import cn.hutool.v7.core.lang.mutable.Mutable;
|
import cn.hutool.v7.core.lang.mutable.Mutable;
|
||||||
import cn.hutool.v7.core.lang.mutable.MutableObj;
|
import cn.hutool.v7.core.lang.mutable.MutableObj;
|
||||||
import cn.hutool.v7.core.map.MapUtil;
|
|
||||||
import cn.hutool.v7.core.reflect.method.MethodUtil;
|
|
||||||
import cn.hutool.v7.core.text.StrUtil;
|
import cn.hutool.v7.core.text.StrUtil;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -244,37 +242,6 @@ public class ReUtil {
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据给定正则查找字符串中的匹配项,返回所有匹配的分组名对应分组值<br>
|
|
||||||
* <pre>
|
|
||||||
* pattern: (?<year>\\d+)-(?<month>\\d+)-(?<day>\\d+)
|
|
||||||
* content: 2021-10-11
|
|
||||||
* result : year: 2021, month: 10, day: 11
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* <p>jdk9+之后,此方法无效</p>
|
|
||||||
*
|
|
||||||
* @param pattern 匹配的正则
|
|
||||||
* @param content 被匹配的内容
|
|
||||||
* @return 命名捕获组,key为分组名,value为对应值
|
|
||||||
* @since 5.7.15
|
|
||||||
*/
|
|
||||||
public static Map<String, String> getAllGroupNames(final Pattern pattern, final CharSequence content) {
|
|
||||||
if (null == content || null == pattern) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final Matcher m = pattern.matcher(content);
|
|
||||||
final Map<String, String> result = MapUtil.newHashMap(m.groupCount());
|
|
||||||
if (m.find()) {
|
|
||||||
// 通过反射获取 namedGroups 方法
|
|
||||||
final Map<String, Integer> map =
|
|
||||||
//MethodHandleUtil.invokeSpecial(pattern, "namedGroups");
|
|
||||||
MethodUtil.invoke(pattern, "namedGroups");
|
|
||||||
map.forEach((key, value) -> result.put(key, m.group(value)));
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
// endregion
|
// endregion
|
||||||
|
|
||||||
// region ----- extractMulti
|
// region ----- extractMulti
|
||||||
@ -943,7 +910,7 @@ public class ReUtil {
|
|||||||
if (result) {
|
if (result) {
|
||||||
final Set<String> varNums = findAll(PatternPool.GROUP_VAR, replacementTemplate, 1,
|
final Set<String> varNums = findAll(PatternPool.GROUP_VAR, replacementTemplate, 1,
|
||||||
new TreeSet<>(StrLengthComparator.INSTANCE.reversed()));
|
new TreeSet<>(StrLengthComparator.INSTANCE.reversed()));
|
||||||
final StringBuffer sb = new StringBuffer();
|
final StringBuilder sb = new StringBuilder();
|
||||||
do {
|
do {
|
||||||
String replacement = replacementTemplate;
|
String replacement = replacementTemplate;
|
||||||
for (final String var : varNums) {
|
for (final String var : varNums) {
|
||||||
@ -1003,7 +970,7 @@ public class ReUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Matcher matcher = pattern.matcher(str);
|
final Matcher matcher = pattern.matcher(str);
|
||||||
final StringBuffer buffer = new StringBuffer();
|
final StringBuilder buffer = new StringBuilder();
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
matcher.appendReplacement(buffer, replaceFun.apply(matcher));
|
matcher.appendReplacement(buffer, replaceFun.apply(matcher));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,8 +24,6 @@ import cn.hutool.v7.core.util.ObjUtil;
|
|||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
import org.junit.jupiter.api.condition.JRE;
|
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
import java.lang.annotation.*;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@ -191,17 +189,6 @@ public class AnnotationUtilTest {
|
|||||||
Assertions.assertFalse(AnnotationUtil.isInherited(MetaAnnotationForTest.class));
|
Assertions.assertFalse(AnnotationUtil.isInherited(MetaAnnotationForTest.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = JRE.JAVA_8)
|
|
||||||
public void testSetValue() {
|
|
||||||
// jdk9+中抛出异常,须添加`--add-opens=java.base/java.lang=ALL-UNNAMED`启动参数
|
|
||||||
final AnnotationForTest annotation = ClassForTest.class.getAnnotation(AnnotationForTest.class);
|
|
||||||
final String newValue = "is a new value";
|
|
||||||
Assertions.assertNotEquals(newValue, annotation.value());
|
|
||||||
AnnotationUtil.setValue(annotation, "value", newValue);
|
|
||||||
assertEquals(newValue, annotation.value());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetAnnotationAlias() {
|
public void testGetAnnotationAlias() {
|
||||||
final MetaAnnotationForTest annotation = AnnotationUtil.getAnnotation(AnnotationForTest.class, MetaAnnotationForTest.class);
|
final MetaAnnotationForTest annotation = AnnotationUtil.getAnnotation(AnnotationForTest.class, MetaAnnotationForTest.class);
|
||||||
|
|||||||
@ -18,7 +18,6 @@ package cn.hutool.v7.core.func;
|
|||||||
|
|
||||||
import cn.hutool.v7.core.collection.ListUtil;
|
import cn.hutool.v7.core.collection.ListUtil;
|
||||||
import cn.hutool.v7.core.exception.ExceptionUtil;
|
import cn.hutool.v7.core.exception.ExceptionUtil;
|
||||||
import cn.hutool.v7.core.reflect.ConstructorUtil;
|
|
||||||
import cn.hutool.v7.core.reflect.lookup.LookupUtil;
|
import cn.hutool.v7.core.reflect.lookup.LookupUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -26,8 +25,8 @@ import lombok.Setter;
|
|||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Nested;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
|
|
||||||
import java.lang.invoke.*;
|
import java.lang.invoke.*;
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
@ -37,7 +36,6 @@ import java.util.Collection;
|
|||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.BiFunction;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
@ -46,6 +44,7 @@ import java.util.function.Supplier;
|
|||||||
*/
|
*/
|
||||||
public class LambdaFactoryTest {
|
public class LambdaFactoryTest {
|
||||||
|
|
||||||
|
@SuppressWarnings("CatchMayIgnoreException")
|
||||||
@Test
|
@Test
|
||||||
public void testMethodNotMatch() {
|
public void testMethodNotMatch() {
|
||||||
try {
|
try {
|
||||||
@ -87,7 +86,8 @@ public class LambdaFactoryTest {
|
|||||||
*
|
*
|
||||||
* @author nasodaengineer
|
* @author nasodaengineer
|
||||||
*/
|
*/
|
||||||
public static class PerformanceTest {
|
@Nested
|
||||||
|
class PerformanceTest {
|
||||||
|
|
||||||
public int count;
|
public int count;
|
||||||
|
|
||||||
@ -312,7 +312,7 @@ public class LambdaFactoryTest {
|
|||||||
|
|
||||||
public String format() {
|
public String format() {
|
||||||
final TimeUnit timeUnit = TimeUnit.NANOSECONDS;
|
final TimeUnit timeUnit = TimeUnit.NANOSECONDS;
|
||||||
return String.format("%-10s 运行%d次耗时 %d %s", name, count, timeUnit.convert(cost, TimeUnit.NANOSECONDS), timeUnit.name());
|
return String.format("%-10s 运行%d次耗时 %d %s", name, count, cost, timeUnit.name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -330,17 +330,4 @@ public class LambdaFactoryTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = org.junit.jupiter.api.condition.JRE.JAVA_8)
|
|
||||||
public void buildStringTest() {
|
|
||||||
final char[] a = "1234".toCharArray();
|
|
||||||
|
|
||||||
// JDK8下无此构造方法
|
|
||||||
final Constructor<String> constructor = ConstructorUtil.getConstructor(String.class, char[].class, boolean.class);
|
|
||||||
final BiFunction<char[], Boolean, String> function = LambdaFactory.build(BiFunction.class, constructor);
|
|
||||||
final String apply = function.apply(a, true);
|
|
||||||
Assertions.assertEquals(apply, new String(a));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,16 +16,14 @@
|
|||||||
|
|
||||||
package cn.hutool.v7.core.func;
|
package cn.hutool.v7.core.func;
|
||||||
|
|
||||||
|
import cn.hutool.v7.core.lang.tuple.Tuple;
|
||||||
|
import cn.hutool.v7.core.reflect.method.MethodUtil;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.experimental.FieldNameConstants;
|
import lombok.experimental.FieldNameConstants;
|
||||||
import cn.hutool.v7.core.lang.tuple.Tuple;
|
|
||||||
import cn.hutool.v7.core.reflect.method.MethodUtil;
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
import org.junit.jupiter.api.condition.JRE;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@ -193,19 +191,6 @@ public class LambdaUtilTest {
|
|||||||
Assertions.assertEquals(3L, (long) bean.getId());
|
Assertions.assertEquals(3L, (long) bean.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = JRE.JAVA_8)
|
|
||||||
void buildSetterWithPrimitiveTest() {
|
|
||||||
// 原始类型参数在jdk9+中构建setter异常
|
|
||||||
final Bean bean = new Bean();
|
|
||||||
bean.setId(2L);
|
|
||||||
bean.setFlag(false);
|
|
||||||
|
|
||||||
final BiConsumer<Bean, Object> setter = LambdaUtil.buildSetter(Bean.class, "flag");
|
|
||||||
setter.accept(bean, Boolean.TRUE);
|
|
||||||
Assertions.assertTrue(bean.isFlag());
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@Test
|
@Test
|
||||||
public void lambdaTest() {
|
public void lambdaTest() {
|
||||||
|
|||||||
@ -20,8 +20,6 @@ import cn.hutool.v7.core.io.resource.ClassPathResource;
|
|||||||
import cn.hutool.v7.core.text.StrUtil;
|
import cn.hutool.v7.core.text.StrUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
import org.junit.jupiter.api.condition.JRE;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
@ -40,26 +38,6 @@ public class ClassPathResourceTest {
|
|||||||
Assertions.assertTrue(StrUtil.isNotEmpty(content));
|
Assertions.assertTrue(StrUtil.isNotEmpty(content));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test()
|
|
||||||
@EnabledForJreRange(max = JRE.JAVA_8)
|
|
||||||
public void readStringTest2() {
|
|
||||||
// JDK9+中因为模块的加入,根路径读取可能为空
|
|
||||||
// 读取classpath根目录测试
|
|
||||||
final ClassPathResource resource = new ClassPathResource("/");
|
|
||||||
final String content = resource.readUtf8Str();
|
|
||||||
Assertions.assertTrue(StrUtil.isNotEmpty(content));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test()
|
|
||||||
@EnabledForJreRange(min = JRE.JAVA_9)
|
|
||||||
public void readStringTestForJdk9() {
|
|
||||||
// JDK9+中因为模块的加入,根路径读取可能为空
|
|
||||||
// 读取classpath根目录测试
|
|
||||||
final ClassPathResource resource = new ClassPathResource("/");
|
|
||||||
final String content = resource.readUtf8Str();
|
|
||||||
Assertions.assertNotNull(content);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void readTest() throws IOException {
|
public void readTest() throws IOException {
|
||||||
final ClassPathResource resource = new ClassPathResource("test.properties");
|
final ClassPathResource resource = new ClassPathResource("test.properties");
|
||||||
|
|||||||
@ -23,8 +23,6 @@ import cn.hutool.v7.core.util.SystemUtil;
|
|||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
import org.junit.jupiter.api.condition.JRE;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
@ -220,20 +218,6 @@ public class FileUtilTest {
|
|||||||
Assertions.assertEquals("", subPath);
|
Assertions.assertEquals("", subPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = JRE.JAVA_8)
|
|
||||||
public void listFileNamesTest() {
|
|
||||||
// JDK9+中,由于模块化问题,获取的classoath路径非项目下,而是junit下的。
|
|
||||||
List<String> names = FileUtil.listFileNames("classpath:");
|
|
||||||
assertTrue(names.contains("hutool.jpg"));
|
|
||||||
|
|
||||||
names = FileUtil.listFileNames("");
|
|
||||||
assertTrue(names.contains("hutool.jpg"));
|
|
||||||
|
|
||||||
names = FileUtil.listFileNames(".");
|
|
||||||
assertTrue(names.contains("hutool.jpg"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Disabled
|
@Disabled
|
||||||
public void listFileNamesInJarTest() {
|
public void listFileNamesInJarTest() {
|
||||||
@ -379,15 +363,6 @@ public class FileUtilTest {
|
|||||||
Assertions.assertEquals("tar.xz", mainName);
|
Assertions.assertEquals("tar.xz", mainName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = JRE.JAVA_8)
|
|
||||||
public void getWebRootTest() {
|
|
||||||
// JDK9+环境中,由于模块问题,junit获取的classpath路径和实际不同
|
|
||||||
final File webRoot = FileUtil.getWebRoot();
|
|
||||||
Assertions.assertNotNull(webRoot);
|
|
||||||
Assertions.assertEquals("hutool-core", webRoot.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getMimeTypeTest() {
|
public void getMimeTypeTest() {
|
||||||
String mimeType = FileUtil.getMimeType("test2Write.jpg");
|
String mimeType = FileUtil.getMimeType("test2Write.jpg");
|
||||||
|
|||||||
@ -38,7 +38,6 @@ public class SingletonTest {
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("resource")
|
@SuppressWarnings("resource")
|
||||||
@Test
|
@Test
|
||||||
@DisabledOnJre(JRE.JAVA_8)
|
|
||||||
public void getTest(){
|
public void getTest(){
|
||||||
// 此测试中使用1000个线程获取单例对象,其间对象只被创建一次
|
// 此测试中使用1000个线程获取单例对象,其间对象只被创建一次
|
||||||
ThreadUtil.concurrencyTest(1000, ()-> Singleton.get(TestBean.class));
|
ThreadUtil.concurrencyTest(1000, ()-> Singleton.get(TestBean.class));
|
||||||
|
|||||||
@ -18,14 +18,12 @@ package cn.hutool.v7.core.map;
|
|||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class Issue2349Test {
|
public class Issue2349Test {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@EnabledForJreRange(min = org.junit.jupiter.api.condition.JRE.JAVA_9)
|
|
||||||
public void issue11986ForJava17Test() {
|
public void issue11986ForJava17Test() {
|
||||||
// https://github.com/apache/dubbo/issues/11986
|
// https://github.com/apache/dubbo/issues/11986
|
||||||
final ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
|
final ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
|
||||||
|
|||||||
@ -18,9 +18,8 @@ package cn.hutool.v7.core.math;
|
|||||||
|
|
||||||
import cn.hutool.v7.core.lang.Console;
|
import cn.hutool.v7.core.lang.Console;
|
||||||
import cn.hutool.v7.core.text.StrUtil;
|
import cn.hutool.v7.core.text.StrUtil;
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
import org.junit.jupiter.api.condition.JRE;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
@ -274,43 +273,43 @@ public class NumberUtilTest {
|
|||||||
@Test
|
@Test
|
||||||
public void roundStrTest() {
|
public void roundStrTest() {
|
||||||
final String roundStr = NumberUtil.roundStr(2.647, 2);
|
final String roundStr = NumberUtil.roundStr(2.647, 2);
|
||||||
assertEquals(roundStr, "2.65");
|
assertEquals("2.65", roundStr);
|
||||||
|
|
||||||
final String roundStr1 = NumberUtil.roundStr(0, 10);
|
final String roundStr1 = NumberUtil.roundStr(0, 10);
|
||||||
assertEquals(roundStr1, "0.0000000000");
|
assertEquals("0.0000000000", roundStr1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void roundHalfEvenTest() {
|
public void roundHalfEvenTest() {
|
||||||
String roundStr = NumberUtil.roundHalfEven(4.245, 2).toString();
|
String roundStr = NumberUtil.roundHalfEven(4.245, 2).toString();
|
||||||
assertEquals(roundStr, "4.24");
|
assertEquals("4.24", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(4.2450, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(4.2450, 2).toString();
|
||||||
assertEquals(roundStr, "4.24");
|
assertEquals("4.24", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(4.2451, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(4.2451, 2).toString();
|
||||||
assertEquals(roundStr, "4.25");
|
assertEquals("4.25", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(4.2250, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(4.2250, 2).toString();
|
||||||
assertEquals(roundStr, "4.22");
|
assertEquals("4.22", roundStr);
|
||||||
|
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2050, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2050, 2).toString();
|
||||||
assertEquals(roundStr, "1.20");
|
assertEquals("1.20", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2150, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2150, 2).toString();
|
||||||
assertEquals(roundStr, "1.22");
|
assertEquals("1.22", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2250, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2250, 2).toString();
|
||||||
assertEquals(roundStr, "1.22");
|
assertEquals("1.22", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2350, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2350, 2).toString();
|
||||||
assertEquals(roundStr, "1.24");
|
assertEquals("1.24", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2450, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2450, 2).toString();
|
||||||
assertEquals(roundStr, "1.24");
|
assertEquals("1.24", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2550, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2550, 2).toString();
|
||||||
assertEquals(roundStr, "1.26");
|
assertEquals("1.26", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2650, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2650, 2).toString();
|
||||||
assertEquals(roundStr, "1.26");
|
assertEquals("1.26", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2750, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2750, 2).toString();
|
||||||
assertEquals(roundStr, "1.28");
|
assertEquals("1.28", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2850, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2850, 2).toString();
|
||||||
assertEquals(roundStr, "1.28");
|
assertEquals("1.28", roundStr);
|
||||||
roundStr = NumberUtil.roundHalfEven(1.2950, 2).toString();
|
roundStr = NumberUtil.roundHalfEven(1.2950, 2).toString();
|
||||||
assertEquals(roundStr, "1.30");
|
assertEquals("1.30", roundStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -773,12 +772,9 @@ public class NumberUtilTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@EnabledForJreRange(max = JRE.JAVA_8)
|
void numberFormatTest() throws ParseException {
|
||||||
void numberFormatTest() {
|
final Number naN = NumberFormat.getInstance().parse("NaN");
|
||||||
// JDK8下,NaN解析报错,JDK9+中返回0
|
Assertions.assertEquals(0, naN.intValue());
|
||||||
assertThrows(ParseException.class, ()->{
|
|
||||||
NumberFormat.getInstance().parse("NaN");
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@ -18,9 +18,7 @@ package cn.hutool.v7.core.reflect;
|
|||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -80,32 +78,6 @@ public class ModifierUtilTest {
|
|||||||
private static void ddd() {
|
private static void ddd() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = org.junit.jupiter.api.condition.JRE.JAVA_8)
|
|
||||||
void removeFinalModifyTest() {
|
|
||||||
final String fieldName = "DIALECTS";
|
|
||||||
final Field field = FieldUtil.getField(JdbcDialects.class, fieldName);
|
|
||||||
ModifierUtil.removeFinalModify(field);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = org.junit.jupiter.api.condition.JRE.JAVA_8)
|
|
||||||
public void setFinalFieldValueTest() {
|
|
||||||
final String fieldName = "DIALECTS";
|
|
||||||
final List<Number> dialects =
|
|
||||||
Arrays.asList(
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3,
|
|
||||||
99
|
|
||||||
);
|
|
||||||
final Field field = FieldUtil.getField(JdbcDialects.class, fieldName);
|
|
||||||
ModifierUtil.removeFinalModify(field);
|
|
||||||
FieldUtil.setFieldValue(JdbcDialects.class, fieldName, dialects);
|
|
||||||
|
|
||||||
Assertions.assertEquals(dialects, FieldUtil.getFieldValue(JdbcDialects.class, fieldName));
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public static class JdbcDialects {
|
public static class JdbcDialects {
|
||||||
private static final List<Number> DIALECTS =
|
private static final List<Number> DIALECTS =
|
||||||
|
|||||||
@ -21,11 +21,9 @@ import cn.hutool.v7.core.lang.Console;
|
|||||||
import cn.hutool.v7.core.text.StrUtil;
|
import cn.hutool.v7.core.text.StrUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
@ -213,17 +211,6 @@ public class ReUtilTest {
|
|||||||
assertEquals("11", day);
|
assertEquals("11", day);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
@EnabledForJreRange(max = org.junit.jupiter.api.condition.JRE.JAVA_8)
|
|
||||||
public void getAllGroupNamesTest() {
|
|
||||||
final String content = "2021-10-11";
|
|
||||||
final String regex = "(?<year>\\d+)-(?<month>\\d+)-(?<day>\\d+)";
|
|
||||||
final Map<String, String> map = ReUtil.getAllGroupNames(PatternPool.get(regex, Pattern.DOTALL), content);
|
|
||||||
assertEquals(map.get("year"), "2021");
|
|
||||||
assertEquals(map.get("month"), "10");
|
|
||||||
assertEquals(map.get("day"), "11");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void issuesI5TQDRTest(){
|
public void issuesI5TQDRTest(){
|
||||||
final Pattern patternIp = Pattern.compile("((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})\\.((2(5[0-5]|[0-4]\\d))"
|
final Pattern patternIp = Pattern.compile("((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})\\.((2(5[0-5]|[0-4]\\d))"
|
||||||
|
|||||||
@ -50,6 +50,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.quartz-scheduler</groupId>
|
<groupId>org.quartz-scheduler</groupId>
|
||||||
<artifactId>quartz</artifactId>
|
<artifactId>quartz</artifactId>
|
||||||
|
<!-- 2.5.0有bug,只能使用2.4.0,见:https://github.com/quartz-scheduler/quartz/issues/1298 -->
|
||||||
<version>2.4.0</version>
|
<version>2.4.0</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package cn.hutool.v7.cron.pattern;
|
|||||||
|
|
||||||
import cn.hutool.v7.core.date.DateTime;
|
import cn.hutool.v7.core.date.DateTime;
|
||||||
import cn.hutool.v7.core.date.DateUtil;
|
import cn.hutool.v7.core.date.DateUtil;
|
||||||
|
import cn.hutool.v7.core.text.StrUtil;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.quartz.CronExpression;
|
import org.quartz.CronExpression;
|
||||||
@ -123,9 +124,9 @@ public class Issue4056Test {
|
|||||||
final CronPattern hutoolCorn = new CronPattern(cron);
|
final CronPattern hutoolCorn = new CronPattern(cron);
|
||||||
final CronExpression quartzCorn = new CronExpression(cron);
|
final CronExpression quartzCorn = new CronExpression(cron);
|
||||||
for (final DateTime judgeTime : judgeTimes) {
|
for (final DateTime judgeTime : judgeTimes) {
|
||||||
final Date quartzDate = quartzCorn.getNextValidTimeAfter(judgeTime);
|
final Date quartzDate = DateUtil.date(quartzCorn.getNextValidTimeAfter(judgeTime));
|
||||||
final Date hutoolDate = CronPatternUtil.nextDateAfter(hutoolCorn, judgeTime);
|
final Date hutoolDate = CronPatternUtil.nextDateAfter(hutoolCorn, judgeTime);
|
||||||
Assertions.assertEquals(quartzDate, hutoolDate);
|
Assertions.assertEquals(quartzDate, hutoolDate, StrUtil.format("cron:{}, judgeTime:{}", cron, judgeTime.toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,12 +35,12 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<Automatic-Module-Name>cn.hutool.v7.db</Automatic-Module-Name>
|
<Automatic-Module-Name>cn.hutool.v7.db</Automatic-Module-Name>
|
||||||
<!-- versions -->
|
<!-- versions -->
|
||||||
<c3p0.version>0.10.1</c3p0.version>
|
<c3p0.version>0.11.2</c3p0.version>
|
||||||
<dbcp2.version>2.12.0</dbcp2.version>
|
<dbcp2.version>2.13.0</dbcp2.version>
|
||||||
<tomcat-jdbc.version>11.0.6</tomcat-jdbc.version>
|
<tomcat-jdbc.version>11.0.12</tomcat-jdbc.version>
|
||||||
<druid.version>1.2.23</druid.version>
|
<druid.version>1.2.27</druid.version>
|
||||||
<hikariCP.version>6.3.0</hikariCP.version>
|
<hikariCP.version>7.0.2</hikariCP.version>
|
||||||
<sqlite.version>3.46.0.0</sqlite.version>
|
<sqlite.version>3.50.3.0</sqlite.version>
|
||||||
<hsqldb.version>2.7.4</hsqldb.version>
|
<hsqldb.version>2.7.4</hsqldb.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
@ -78,12 +78,6 @@
|
|||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
<artifactId>HikariCP</artifactId>
|
<artifactId>HikariCP</artifactId>
|
||||||
<version>${hikariCP.version}</version>
|
<version>${hikariCP.version}</version>
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -95,7 +89,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.chris2018998</groupId>
|
<groupId>com.github.chris2018998</groupId>
|
||||||
<artifactId>beecp</artifactId>
|
<artifactId>beecp</artifactId>
|
||||||
<version>4.1.3</version>
|
<version>5.0.0</version>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
@ -127,13 +121,13 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.mysql</groupId>
|
<groupId>com.mysql</groupId>
|
||||||
<artifactId>mysql-connector-j</artifactId>
|
<artifactId>mysql-connector-j</artifactId>
|
||||||
<version>9.3.0</version>
|
<version>9.4.0</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.h2database</groupId>
|
<groupId>com.h2database</groupId>
|
||||||
<artifactId>h2</artifactId>
|
<artifactId>h2</artifactId>
|
||||||
<version>2.3.232</version>
|
<version>2.4.240</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -145,19 +139,19 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.oracle.database.jdbc</groupId>
|
<groupId>com.oracle.database.jdbc</groupId>
|
||||||
<artifactId>ojdbc8</artifactId>
|
<artifactId>ojdbc8</artifactId>
|
||||||
<version>23.6.0.24.10</version>
|
<version>23.9.0.25.07</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.oceanbase</groupId>
|
<groupId>com.oceanbase</groupId>
|
||||||
<artifactId>oceanbase-client</artifactId>
|
<artifactId>oceanbase-client</artifactId>
|
||||||
<version>2.4.12</version>
|
<version>2.4.15</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sap.cloud.db.jdbc</groupId>
|
<groupId>com.sap.cloud.db.jdbc</groupId>
|
||||||
<artifactId>ngdbc</artifactId>
|
<artifactId>ngdbc</artifactId>
|
||||||
<version>2.24.7</version>
|
<version>2.26.6</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@ -37,38 +37,39 @@
|
|||||||
|
|
||||||
<!-- template versions -->
|
<!-- template versions -->
|
||||||
<velocity.version>2.4.1</velocity.version>
|
<velocity.version>2.4.1</velocity.version>
|
||||||
<beetl.version>3.19.1.RELEASE</beetl.version>
|
<beetl.version>3.19.2.RELEASE</beetl.version>
|
||||||
<rythm.version>1.4.2</rythm.version>
|
<rythm.version>1.4.2</rythm.version>
|
||||||
<freemarker.version>2.3.34</freemarker.version>
|
<freemarker.version>2.3.34</freemarker.version>
|
||||||
<enjoy.version>5.2.2</enjoy.version>
|
<enjoy.version>5.2.5</enjoy.version>
|
||||||
<thymeleaf.version>3.1.3.RELEASE</thymeleaf.version>
|
<thymeleaf.version>3.1.3.RELEASE</thymeleaf.version>
|
||||||
<jte.version>3.2.0</jte.version>
|
<jte.version>3.2.1</jte.version>
|
||||||
|
<!-- 保持2.1.10,关联的antlr4与Beetl有兼容问题 -->
|
||||||
<jetbrick-template.version>2.1.10</jetbrick-template.version>
|
<jetbrick-template.version>2.1.10</jetbrick-template.version>
|
||||||
<pebble.version>3.2.4</pebble.version>
|
<pebble.version>3.2.4</pebble.version>
|
||||||
<wit-core.version>2.6.0</wit-core.version>
|
<wit-core.version>2.6.0</wit-core.version>
|
||||||
|
|
||||||
<!-- mail versions -->
|
<!-- mail versions -->
|
||||||
<mail-api.version>2.1.3</mail-api.version>
|
<mail-api.version>2.1.5</mail-api.version>
|
||||||
<jakarta.mail.version>2.0.3</jakarta.mail.version>
|
<jakarta.mail.version>2.0.5</jakarta.mail.version>
|
||||||
|
|
||||||
<!-- ssh versions -->
|
<!-- ssh versions -->
|
||||||
<jsch.version>0.2.21</jsch.version>
|
<jsch.version>2.27.3</jsch.version>
|
||||||
<sshj.version>0.40.0</sshj.version>
|
<sshj.version>0.40.0</sshj.version>
|
||||||
<sshd.version>2.15.0</sshd.version>
|
<sshd.version>2.16.0</sshd.version>
|
||||||
<ganymed-ssh2.version>262</ganymed-ssh2.version>
|
<ganymed-ssh2.version>262</ganymed-ssh2.version>
|
||||||
|
|
||||||
<net.version>3.11.1</net.version>
|
<net.version>3.11.1</net.version>
|
||||||
<emoji-java.version>5.1.1</emoji-java.version>
|
<emoji-java.version>5.1.1</emoji-java.version>
|
||||||
<spring-boot.version>3.5.3</spring-boot.version>
|
<spring-boot.version>3.5.3</spring-boot.version>
|
||||||
<oshi.version>6.8.1</oshi.version>
|
<oshi.version>6.9.0</oshi.version>
|
||||||
<byte-buddy.version>1.17.5</byte-buddy.version>
|
<byte-buddy.version>1.17.8</byte-buddy.version>
|
||||||
<commons-compress.version>1.27.1</commons-compress.version>
|
<commons-compress.version>1.28.0</commons-compress.version>
|
||||||
<smartcn.version>8.11.4</smartcn.version>
|
<smartcn.version>8.11.4</smartcn.version>
|
||||||
<jaxb-runtime.version>3.0.2</jaxb-runtime.version>
|
<jaxb-runtime.version>4.0.6</jaxb-runtime.version>
|
||||||
|
|
||||||
<!-- mq client versions -->
|
<!-- mq client versions -->
|
||||||
<kafka.version>4.0.0</kafka.version>
|
<kafka.version>4.1.0</kafka.version>
|
||||||
<rabbitmq.version>5.25.0</rabbitmq.version>
|
<rabbitmq.version>5.26.0</rabbitmq.version>
|
||||||
<rocketmq.version>5.3.3</rocketmq.version>
|
<rocketmq.version>5.3.3</rocketmq.version>
|
||||||
<activemq.version>6.1.7</activemq.version>
|
<activemq.version>6.1.7</activemq.version>
|
||||||
</properties>
|
</properties>
|
||||||
@ -189,10 +190,6 @@
|
|||||||
<artifactId>jetbrick-template</artifactId>
|
<artifactId>jetbrick-template</artifactId>
|
||||||
<version>${jetbrick-template.version}</version>
|
<version>${jetbrick-template.version}</version>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
|
||||||
<artifactId>slf4j-api</artifactId>
|
|
||||||
<groupId>org.slf4j</groupId>
|
|
||||||
</exclusion>
|
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<artifactId>antlr4-runtime</artifactId>
|
<artifactId>antlr4-runtime</artifactId>
|
||||||
<groupId>org.antlr</groupId>
|
<groupId>org.antlr</groupId>
|
||||||
@ -467,14 +464,14 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.validation</groupId>
|
<groupId>jakarta.validation</groupId>
|
||||||
<artifactId>jakarta.validation-api</artifactId>
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
<version>3.1.0</version>
|
<version>3.1.1</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate.validator</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<version>8.0.2.Final</version>
|
<version>9.0.1.Final</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
@ -520,7 +517,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.xml.bind</groupId>
|
<groupId>jakarta.xml.bind</groupId>
|
||||||
<artifactId>jakarta.xml.bind-api</artifactId>
|
<artifactId>jakarta.xml.bind-api</artifactId>
|
||||||
<version>3.0.1</version>
|
<version>4.0.4</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
|
|||||||
@ -16,17 +16,14 @@
|
|||||||
|
|
||||||
package cn.hutool.v7.extra.spring.cglib;
|
package cn.hutool.v7.extra.spring.cglib;
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import cn.hutool.v7.core.convert.ConvertUtil;
|
import cn.hutool.v7.core.convert.ConvertUtil;
|
||||||
|
import lombok.Data;
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.jupiter.api.condition.EnabledForJreRange;
|
|
||||||
import org.junit.jupiter.api.condition.JRE;
|
|
||||||
|
|
||||||
public class CglibUtilTest {
|
public class CglibUtilTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@EnabledForJreRange(max = JRE.JAVA_8)
|
|
||||||
public void copyTest() {
|
public void copyTest() {
|
||||||
final SampleBean bean = new SampleBean();
|
final SampleBean bean = new SampleBean();
|
||||||
OtherSampleBean otherBean = new OtherSampleBean();
|
OtherSampleBean otherBean = new OtherSampleBean();
|
||||||
|
|||||||
@ -34,12 +34,12 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<Automatic-Module-Name>cn.hutool.v7.http</Automatic-Module-Name>
|
<Automatic-Module-Name>cn.hutool.v7.http</Automatic-Module-Name>
|
||||||
<httpclient5.version>5.5</httpclient5.version>
|
<httpclient5.version>5.5.1</httpclient5.version>
|
||||||
<httpclient4.version>4.5.14</httpclient4.version>
|
<httpclient4.version>4.5.14</httpclient4.version>
|
||||||
<okhttp.version>5.0.0-alpha.14</okhttp.version>
|
<okhttp.version>5.2.1</okhttp.version>
|
||||||
<undertow.version>2.3.18.Final</undertow.version>
|
<undertow.version>2.3.18.Final</undertow.version>
|
||||||
<jetty.version>12.0.19</jetty.version>
|
<jetty.version>12.1.2</jetty.version>
|
||||||
<tomcat.version>11.0.8</tomcat.version>
|
<tomcat.version>11.0.12</tomcat.version>
|
||||||
<smartboot.version>1.4.3</smartboot.version>
|
<smartboot.version>1.4.3</smartboot.version>
|
||||||
<jakarta.servlet-api.version>6.1.0</jakarta.servlet-api.version>
|
<jakarta.servlet-api.version>6.1.0</jakarta.servlet-api.version>
|
||||||
<jakarta.xml.soap-api.version>3.0.2</jakarta.xml.soap-api.version>
|
<jakarta.xml.soap-api.version>3.0.2</jakarta.xml.soap-api.version>
|
||||||
|
|||||||
@ -35,10 +35,10 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<Automatic-Module-Name>cn.hutool.v7.json</Automatic-Module-Name>
|
<Automatic-Module-Name>cn.hutool.v7.json</Automatic-Module-Name>
|
||||||
<!-- versions -->
|
<!-- versions -->
|
||||||
<jjwt.version>0.12.6</jjwt.version>
|
<jjwt.version>0.13.0</jjwt.version>
|
||||||
<jackson.version>2.19.1</jackson.version>
|
<jackson.version>2.20.0</jackson.version>
|
||||||
<fastjson2.version>2.0.53</fastjson2.version>
|
<fastjson2.version>2.0.59</fastjson2.version>
|
||||||
<gson.version>2.13.1</gson.version>
|
<gson.version>2.13.2</gson.version>
|
||||||
<moshi.version>1.15.2</moshi.version>
|
<moshi.version>1.15.2</moshi.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
<Automatic-Module-Name>cn.hutool.v7.log</Automatic-Module-Name>
|
<Automatic-Module-Name>cn.hutool.v7.log</Automatic-Module-Name>
|
||||||
<!-- versions -->
|
<!-- versions -->
|
||||||
<slf4j.version>2.0.17</slf4j.version>
|
<slf4j.version>2.0.17</slf4j.version>
|
||||||
<logback.version>1.5.18</logback.version>
|
<logback.version>1.5.19</logback.version>
|
||||||
<log4j.version>1.2.17</log4j.version>
|
<log4j.version>1.2.17</log4j.version>
|
||||||
<log4j2.version>2.25.0</log4j2.version>
|
<log4j2.version>2.25.0</log4j2.version>
|
||||||
<commons-logging.version>1.3.5</commons-logging.version>
|
<commons-logging.version>1.3.5</commons-logging.version>
|
||||||
|
|||||||
@ -57,7 +57,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.ofdrw</groupId>
|
<groupId>org.ofdrw</groupId>
|
||||||
<artifactId>ofdrw-full</artifactId>
|
<artifactId>ofdrw-full</artifactId>
|
||||||
<version>2.3.6</version>
|
<version>2.3.7</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<Automatic-Module-Name>cn.hutool.v7.setting</Automatic-Module-Name>
|
<Automatic-Module-Name>cn.hutool.v7.setting</Automatic-Module-Name>
|
||||||
<snakeyaml.version> 2.4</snakeyaml.version>
|
<snakeyaml.version> 2.5</snakeyaml.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
8
pom.xml
8
pom.xml
@ -56,10 +56,10 @@
|
|||||||
|
|
||||||
<!-- versions -->
|
<!-- versions -->
|
||||||
<compile.version>17</compile.version>
|
<compile.version>17</compile.version>
|
||||||
<junit.version>5.13.1</junit.version>
|
<junit.version>6.0.0</junit.version>
|
||||||
<lombok.version>1.18.38</lombok.version>
|
<lombok.version>1.18.42</lombok.version>
|
||||||
<kotlin-version>2.1.20</kotlin-version>
|
<kotlin-version>2.2.20</kotlin-version>
|
||||||
<bouncycastle.version>1.80</bouncycastle.version>
|
<bouncycastle.version>1.82</bouncycastle.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user