Merge branch 'develop' into fix/createThreadPoll_contentNotChange

pull/1414/head
smily 2 years ago
commit 032a4aced2

@ -120,7 +120,8 @@ For full documentation & more details, visit: [Docs](https://www.hippo4j.cn)
- [[ JavaGuide ]](https://github.com/Snailclimb/JavaGuide):一份涵盖大部分 Java 程序员所需要掌握的核心知识。
- [[ toBeBetterJavaer ]](https://github.com/itwanger/toBeBetterJavaer):一份通俗易懂、风趣幽默的 Java 学习指南。
- [[ Jpom ]](https://gitee.com/dromara/Jpom):简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。
- [[ CongoMall ]](https://gitee.com/opengoofy/congomall):作者的另一个开源项目刚果商城,包含了商城业务和基础架构两大模块。
- [[ 12306 ]](https://gitee.com/nageoffer/12306):完成高仿 12306 用户+抢票+订单+支付服务,帮助学生主打就业的项目。
- [[ CongoMall ]](https://gitee.com/nageoffer/congomall):企业级商城,基于 DDD 领域驱动模型开发,包含商城业务和基础架构。
### 贡献者

@ -116,8 +116,8 @@ const config = {
position: 'left',
},
{
href: 'https://gitee.com/opengoofy/congomall',
label: '👉 刚果商城',
href: 'https://magestack.cn',
label: '🚀 拿个offer',
position: 'left',
},
{
@ -195,10 +195,6 @@ const config = {
{
title: 'Links',
items: [
{
label: '书源',
href: 'https://bookyuan.cn/',
},
{
label: '推广合作',
href: 'https://hippo4j.cn/docs/user_docs/other/operation',
@ -206,7 +202,7 @@ const config = {
],
},
],
copyright: `Copyright © 2021-2022 马丁版权所有 <a href="https://beian.miit.gov.cn">京ICP备2021038095号
copyright: `Copyright © 2021-2023 马丁版权所有 <a href="https://beian.miit.gov.cn">京ICP备2021038095号
</a>`,
},
prism: {

@ -5,7 +5,7 @@ title: 采用公司
## 谁在使用 Hippo4j
共计 39+ 家公司生产接入 Hippo4j按照公司登记时间排序。
共计 42+ 家公司生产接入 Hippo4j按照公司登记时间排序。
- [身边云](https://serviceshare.com)
- [思派健康科技](https://www.medbanks.cn)
@ -46,6 +46,9 @@ title: 采用公司
- [广联达科技股份有限公司](https://www.glodon.com)
- [天健联创控股集团有限公司](https://www.tjlc.com.cn)
- [知乎](https://www.zhihu.com/)
- [广东谷通科技有限公司](https://www.duofriend.com)
- [成都全域智旅科技有限公司](http://qyzl.com)
- [深圳市华云中盛科技股份有限公司](http://www.hua-cloud.cn)
## 登记

@ -5,7 +5,7 @@ title: 采用公司
## 谁在使用 Hippo4j
共计 39+ 家公司生产接入 Hippo4j按照公司登记时间排序。
共计 42+ 家公司生产接入 Hippo4j按照公司登记时间排序。
- [身边云](https://serviceshare.com)
- [思派健康科技](https://www.medbanks.cn)
@ -46,6 +46,9 @@ title: 采用公司
- [广联达科技股份有限公司](https://www.glodon.com)
- [天健联创控股集团有限公司](https://www.tjlc.com.cn)
- [知乎](https://www.zhihu.com/)
- [广东谷通科技有限公司](https://www.duofriend.com)
- [成都全域智旅科技有限公司](http://qyzl.com)
- [深圳市华云中盛科技股份有限公司](http://www.hua-cloud.cn)
## 登记

@ -0,0 +1,95 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.hippo4j.common.executor.support;
import cn.hippo4j.common.toolkit.ThreadPoolExecutorUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* Thread pool executor util test
*/
@Slf4j
public class ThreadPoolExecutorUtilTest {
private ThreadPoolExecutor executor;
private int corePoolSize;
private int maxPoolSize;
@Before
public void testSafeSetPoolSize() {
corePoolSize = 2;
maxPoolSize = 4;
executor = new ThreadPoolExecutor(
corePoolSize,
maxPoolSize,
1L,
TimeUnit.SECONDS,
new ArrayBlockingQueue<>(10)
);
}
@Test
public void testEquals(){
// Test when the new core pool size equals the original maximum pool size.
int newCorePoolSize1 = maxPoolSize;
int newMaxPoolSize1 = 6;
ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize1, newMaxPoolSize1);
Assert.assertEquals(newCorePoolSize1, executor.getCorePoolSize());
Assert.assertEquals(newMaxPoolSize1, executor.getMaximumPoolSize());
}
@Test
public void testGreater(){
// Test when the new core pool size is greater than the original maximum pool size.
int newCorePoolSize2 = 8;
int newMaxPoolSize2 = 10;
ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize2, newMaxPoolSize2);
Assert.assertEquals(newCorePoolSize2, executor.getCorePoolSize());
Assert.assertEquals(newMaxPoolSize2, executor.getMaximumPoolSize());
}
@Test
public void testLess(){
// Test when the new core pool size is less than the original maximum pool size.
int newCorePoolSize3 = 3;
int newMaxPoolSize3 = 5;
ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize3, newMaxPoolSize3);
Assert.assertEquals(newCorePoolSize3, executor.getCorePoolSize());
Assert.assertEquals(newMaxPoolSize3, executor.getMaximumPoolSize());
}
@Test
public void testException(){
// Test when the new core pool size is greater than the new maximum pool size, which should throw an IllegalArgumentException.
int newCorePoolSize4 = 6;
int newMaxPoolSize4 = 4;
try {
ThreadPoolExecutorUtil.safeSetPoolSize(executor, newCorePoolSize4, newMaxPoolSize4);
} catch (IllegalArgumentException e) {
// Expected to throw an exception.
Assert.assertEquals("newCorePoolSize must be smaller than newMaximumPoolSize", e.getMessage());
log.error("newCorePoolSize must be smaller than newMaximumPoolSize;{}",e.getMessage());
}
}
}

@ -45,6 +45,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@ -136,7 +137,7 @@ public class ReportingEventExecutor implements Runnable, CommandLineRunner, Disp
properties.getCollectInterval(),
TimeUnit.MILLISECONDS);
Integer bufferSize = properties.getTaskBufferSize();
messageCollectVessel = new ArrayBlockingQueue(bufferSize);
messageCollectVessel = new LinkedBlockingQueue(bufferSize);
// Get all data collection components, currently only historical operation data collection.
collectors = ApplicationContextHolder.getBeansOfType(Collector.class);
// Start reporting monitoring data thread.

@ -0,0 +1,100 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.hippo4j.server.common.base;
import cn.hippo4j.common.toolkit.Assert;
import cn.hippo4j.server.common.base.exception.ErrorCode;
import cn.hippo4j.server.common.base.exception.ErrorCodeEnum;
import cn.hippo4j.server.common.base.exception.ServiceException;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import org.checkerframework.checker.units.qual.A;
import org.junit.jupiter.api.Test;
import java.util.Objects;
/**
* Service exception test
*/
public class ServiceExceptionTest {
@Test
public void ServiceExceptionTest1(){
ServiceException serviceException = new ServiceException();
Assert.isTrue(Objects.equals(serviceException.getErrorCode().getCode(), "3"));
Assert.isTrue(Objects.equals(serviceException.getMessage(), "SERVICE_ERROR"));
}
@Test
public void ServiceExceptionTest2(){
ErrorCode errorCode = ErrorCodeEnum.LOGIN_TIMEOUT;
ServiceException serviceException = new ServiceException(errorCode);
Assert.isTrue(Objects.equals(serviceException.getErrorCode().getCode(), ErrorCodeEnum.LOGIN_TIMEOUT.getCode()));
Assert.isTrue(Objects.equals(serviceException.getMessage(), ErrorCodeEnum.LOGIN_TIMEOUT.getMessage()));
}
@Test
public void ServiceExceptionTest3(){
String message = ErrorCodeEnum.SERVICE_ERROR.getMessage();
ServiceException serviceException = new ServiceException(message);
Assert.isTrue(Objects.equals(serviceException.getMessage(), message));
}
@Test
public void ServiceExceptionTest4(){
Throwable cause = new Throwable();
ServiceException serviceException = new ServiceException(cause);
Assert.isTrue(Objects.equals(serviceException.getCause().getMessage(), cause.getMessage()));
}
@Test
public void ServiceExceptionTest5(){
String message = ErrorCodeEnum.SERVICE_ERROR.getMessage();
Throwable cause = new Throwable();
ServiceException serviceException = new ServiceException(message, cause);
Assert.isTrue(Objects.equals(serviceException.getCause().getMessage(), cause.getMessage()));
Assert.isTrue(Objects.equals(serviceException.getMessage(), message));
}
@Test
public void ServiceExceptionTest6(){
String message = ErrorCodeEnum.SERVICE_ERROR.getMessage();
Throwable cause = new Throwable();
ServiceException serviceException = new ServiceException(cause, message);
Assert.isTrue(Objects.equals(serviceException.getCause().getMessage(), cause.getMessage()));
Assert.isTrue(Objects.equals(serviceException.getMessage(), message));
}
@Test
public void ServiceExceptionTest7(){
Throwable cause = new Throwable();
ErrorCode errorCode = ErrorCodeEnum.LOGIN_TIMEOUT;
ServiceException serviceException = new ServiceException(cause, errorCode);
Assert.isTrue(Objects.equals(serviceException.getCause().getMessage(), cause.getMessage()));
Assert.isTrue(Objects.equals(serviceException.getErrorCode().getCode(), ErrorCodeEnum.LOGIN_TIMEOUT.getCode()));
}
@Test
public void ServiceExceptionTest8(){
Throwable cause = new Throwable();
ErrorCode errorCode = ErrorCodeEnum.LOGIN_TIMEOUT;
String message = ErrorCodeEnum.SERVICE_ERROR.getMessage();
ServiceException serviceException = new ServiceException(message, cause, errorCode);
Assert.isTrue(Objects.equals(serviceException.getCause().getMessage(), cause.getMessage()));
Assert.isTrue(Objects.equals(serviceException.getErrorCode().getCode(), ErrorCodeEnum.LOGIN_TIMEOUT.getCode()));
Assert.isTrue(Objects.equals(serviceException.getMessage(), message));
}
}
Loading…
Cancel
Save