diff --git a/hutool-core/src/main/java/cn/hutool/core/thread/ExecutorBuilder.java b/hutool-core/src/main/java/cn/hutool/core/thread/ExecutorBuilder.java index d6f634f9a..228951a2e 100644 --- a/hutool-core/src/main/java/cn/hutool/core/thread/ExecutorBuilder.java +++ b/hutool-core/src/main/java/cn/hutool/core/thread/ExecutorBuilder.java @@ -1,5 +1,8 @@ package cn.hutool.core.thread; +import cn.hutool.core.builder.Builder; +import cn.hutool.core.util.ObjectUtil; + import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutorService; @@ -11,12 +14,16 @@ import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import cn.hutool.core.builder.Builder; -import cn.hutool.core.util.ObjectUtil; - /** * {@link ThreadPoolExecutor} 建造者 * + *
+ * 1. 如果池中任务数 < corePoolSize -》 放入立即执行 + * 2. 如果池中任务数 > corePoolSize -》 放入队列等待 + * 3. 队列满 -》 新建线程立即执行 + * 4. 执行中的线程 > maxPoolSize -》 触发handler(RejectedExecutionHandler)异常 + *+ * * @author looly * @since 4.1.9 */ @@ -39,7 +46,7 @@ public class ExecutorBuilder implements Builder
* 1. {@link SynchronousQueue} 它将任务直接提交给线程而不保持它们。当运行线程小于maxPoolSize时会创建新线程,否则触发异常策略 - * 2. {@link LinkedBlockingQueue} 默认无界队列,当运行线程大于corePoolSize时始终放入此队列,此时maximumPoolSize无效。 + * 2. {@link LinkedBlockingQueue} 默认无界队列,当运行线程大于corePoolSize时始终放入此队列,此时maxPoolSize无效。 * 当构造LinkedBlockingQueue对象时传入参数,变为有界队列,队列满时,运行线程小于maxPoolSize时会创建新线程,否则触发异常策略 * 3. {@link ArrayBlockingQueue} 有界队列,相对无界队列有利于控制队列大小,队列满时,运行线程小于maxPoolSize时会创建新线程,否则触发异常策略 *diff --git a/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java b/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java index ab8ba9ef1..b7a5fe9db 100644 --- a/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/thread/ThreadUtil.java @@ -31,7 +31,7 @@ public class ThreadUtil { * @param corePoolSize 同时执行的线程数大小 * @return ExecutorService */ - public static ExecutorService newExecutor(int corePoolSize) { + public static ExecutorService newExecutor(int corePoolSize) { ExecutorBuilder builder = ExecutorBuilder.create(); if (corePoolSize > 0) { builder.setCorePoolSize(corePoolSize); diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/ECIESTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/ECIESTest.java similarity index 90% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/ECIESTest.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/ECIESTest.java index ca83c61ad..1b83fe4f0 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/ECIESTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/ECIESTest.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.asymmetric; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.asymmetric.ECIES; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/RSATest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/RSATest.java similarity index 97% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/RSATest.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/RSATest.java index fcb9faa70..f8c309612 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/RSATest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/RSATest.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.asymmetric; import cn.hutool.core.codec.Base64; import cn.hutool.core.util.ArrayUtil; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/SM2Test.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SM2Test.java similarity index 90% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/SM2Test.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SM2Test.java index a5ed710d8..56abb282d 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/SM2Test.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SM2Test.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.asymmetric; import cn.hutool.core.codec.Base64; import cn.hutool.core.util.CharsetUtil; @@ -19,9 +19,8 @@ import java.security.PublicKey; /** * SM2算法单元测试 - * - * @author Looly, Gsealy * + * @author Looly, Gsealy */ public class SM2Test { @@ -71,7 +70,7 @@ public class SM2Test { byte[] decrypt = sm2.decrypt(encrypt, KeyType.PrivateKey); Assert.assertEquals("我是一段测试aaaa", StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8)); } - + @Test public void sm2BcdTest() { String text = "我是一段测试aaaa"; @@ -138,6 +137,19 @@ public class SM2Test { KeyPair pair = SecureUtil.generateKeyPair("SM2"); + final SM2 sm2 = new SM2(pair.getPrivate(), pair.getPublic()); + + byte[] sign = sm2.sign(content.getBytes()); + boolean verify = sm2.verify(content.getBytes(), sign); + Assert.assertTrue(verify); + } + + @Test + public void sm2SignAndVerifyUseKeyTest2() { + String content = "我是Hanley."; + + KeyPair pair = SecureUtil.generateKeyPair("SM2"); + final SM2 sm2 = new SM2(// HexUtil.encodeHexStr(pair.getPrivate().getEncoded()), // HexUtil.encodeHexStr(pair.getPublic().getEncoded())// @@ -162,7 +174,7 @@ public class SM2Test { } @Test - public void sm2WithPointTest(){ + public void sm2WithPointTest() { String d = "FAB8BBE670FAE338C9E9382B9FB6485225C11A3ECB84C938F10F20A93B6215F0"; String x = "9EF573019D9A03B16B0BE44FC8A5B4E8E098F56034C97B312282DD0B4810AFC3"; String y = "CC759673ED0FC9B9DC7E6FA38F0E2B121E02654BF37EA6B63FAF2A0D6013EADF"; @@ -176,7 +188,7 @@ public class SM2Test { } @Test - public void sm2PlainWithPointTest(){ + public void sm2PlainWithPointTest() { // 测试地址:https://i.goto327.top/CryptTools/SM2.aspx?tdsourcetag=s_pctim_aiomsg String d = "FAB8BBE670FAE338C9E9382B9FB6485225C11A3ECB84C938F10F20A93B6215F0"; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/SignTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SignTest.java similarity index 96% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/SignTest.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SignTest.java index 33d88203e..a16d4f562 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/SignTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/asymmetric/SignTest.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.asymmetric; import cn.hutool.core.map.MapUtil; import org.junit.Assert; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/HmacTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/digest/HmacTest.java similarity index 94% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/HmacTest.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/digest/HmacTest.java index 1fd247926..b29e6d47a 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/HmacTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/digest/HmacTest.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.digest; import org.junit.Assert; import org.junit.Test; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/AESTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/AESTest.java similarity index 88% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/AESTest.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/AESTest.java index 87dd38f2f..f89c9cfc2 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/AESTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/AESTest.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.symmetric; import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/DesTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/DesTest.java similarity index 92% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/DesTest.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/DesTest.java index 649c35d2c..34554aeda 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/DesTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/DesTest.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.symmetric; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.Mode; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/RC4Test.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/RC4Test.java similarity index 92% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/RC4Test.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/RC4Test.java index 5785182af..7869edc6a 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/RC4Test.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/RC4Test.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.symmetric; import org.junit.Assert; import org.junit.Test; diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/test/SymmetricTest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/SymmetricTest.java similarity index 95% rename from hutool-crypto/src/test/java/cn/hutool/crypto/test/SymmetricTest.java rename to hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/SymmetricTest.java index 0580ac3fd..7b490c816 100644 --- a/hutool-crypto/src/test/java/cn/hutool/crypto/test/SymmetricTest.java +++ b/hutool-crypto/src/test/java/cn/hutool/crypto/test/symmetric/SymmetricTest.java @@ -1,4 +1,4 @@ -package cn.hutool.crypto.test; +package cn.hutool.crypto.test.symmetric; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.RandomUtil;