diff --git a/hippo4j-adapter/hippo4j-adapter-alibaba-dubbo/src/main/java/cn/hippo4j/adapter/alibaba/dubbo/AlibabaDubboThreadPoolAdapter.java b/hippo4j-adapter/hippo4j-adapter-alibaba-dubbo/src/main/java/cn/hippo4j/adapter/alibaba/dubbo/AlibabaDubboThreadPoolAdapter.java index 216fab25..fed0f6ad 100644 --- a/hippo4j-adapter/hippo4j-adapter-alibaba-dubbo/src/main/java/cn/hippo4j/adapter/alibaba/dubbo/AlibabaDubboThreadPoolAdapter.java +++ b/hippo4j-adapter/hippo4j-adapter-alibaba-dubbo/src/main/java/cn/hippo4j/adapter/alibaba/dubbo/AlibabaDubboThreadPoolAdapter.java @@ -22,12 +22,12 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; import com.alibaba.dubbo.common.extension.ExtensionLoader; import com.alibaba.dubbo.common.store.DataStore; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; @@ -41,7 +41,7 @@ import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMI @Slf4j public class AlibabaDubboThreadPoolAdapter implements ThreadPoolAdapter, ApplicationListener { - private final Map DUBBO_PROTOCOL_EXECUTOR = Maps.newHashMap(); + private final Map DUBBO_PROTOCOL_EXECUTOR = new HashMap<>(); @Override public String mark() { diff --git a/hippo4j-adapter/hippo4j-adapter-base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java b/hippo4j-adapter/hippo4j-adapter-base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java index 0688192d..92d555f2 100644 --- a/hippo4j-adapter/hippo4j-adapter-base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java +++ b/hippo4j-adapter/hippo4j-adapter-base/src/main/java/cn/hippo4j/adapter/base/ThreadPoolAdapterBeanContainer.java @@ -18,10 +18,10 @@ package cn.hippo4j.adapter.base; import cn.hippo4j.common.config.ApplicationContextHolder; -import com.google.common.collect.Maps; import org.springframework.beans.factory.InitializingBean; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Thread-pool adapter bean container. @@ -31,7 +31,7 @@ public class ThreadPoolAdapterBeanContainer implements InitializingBean { /** * Store three-party thread pool framework bean instances. */ - public static final Map THREAD_POOL_ADAPTER_BEAN_CONTAINER = Maps.newConcurrentMap(); + public static final Map THREAD_POOL_ADAPTER_BEAN_CONTAINER = new ConcurrentHashMap<>(); @Override public void afterPropertiesSet() throws Exception { diff --git a/hippo4j-adapter/hippo4j-adapter-dubbo/src/main/java/cn/hippo4j/adapter/dubbo/DubboThreadPoolAdapter.java b/hippo4j-adapter/hippo4j-adapter-dubbo/src/main/java/cn/hippo4j/adapter/dubbo/DubboThreadPoolAdapter.java index dfbaeb33..f11d8ee1 100644 --- a/hippo4j-adapter/hippo4j-adapter-dubbo/src/main/java/cn/hippo4j/adapter/dubbo/DubboThreadPoolAdapter.java +++ b/hippo4j-adapter/hippo4j-adapter-dubbo/src/main/java/cn/hippo4j/adapter/dubbo/DubboThreadPoolAdapter.java @@ -21,7 +21,6 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; import cn.hippo4j.common.toolkit.ReflectUtil; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.Version; import org.apache.dubbo.common.extension.ExtensionLoader; @@ -31,6 +30,7 @@ import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentMap; @@ -45,7 +45,7 @@ import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMI @Slf4j public class DubboThreadPoolAdapter implements ThreadPoolAdapter, ApplicationListener { - private final Map DUBBO_PROTOCOL_EXECUTOR = Maps.newHashMap(); + private final Map DUBBO_PROTOCOL_EXECUTOR = new HashMap<>(); @Override public String mark() { diff --git a/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter.java b/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter.java index 34e01088..ef5002f7 100644 --- a/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter.java +++ b/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/HystrixThreadPoolAdapter.java @@ -20,8 +20,6 @@ package cn.hippo4j.adapter.hystrix; import cn.hippo4j.adapter.base.*; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import com.netflix.hystrix.HystrixThreadPool; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.context.event.ApplicationStartedEvent; @@ -29,6 +27,7 @@ import org.springframework.context.ApplicationListener; import java.lang.reflect.Field; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -49,7 +48,7 @@ public class HystrixThreadPoolAdapter implements ThreadPoolAdapter, ApplicationL private static final String THREAD_POOLS_FIELD = "threadPools"; - private final Map HYSTRIX_CONSUME_EXECUTOR = Maps.newHashMap(); + private final Map HYSTRIX_CONSUME_EXECUTOR = new HashMap<>(); private ThreadPoolAdapterScheduler threadPoolAdapterScheduler; @@ -112,7 +111,7 @@ public class HystrixThreadPoolAdapter implements ThreadPoolAdapter, ApplicationL // Periodically refresh registration. ThreadPoolAdapterRegisterAction threadPoolAdapterRegisterAction = ApplicationContextHolder.getBean(ThreadPoolAdapterRegisterAction.class); Map beansOfType = ApplicationContextHolder.getBeansOfType(this.getClass()); - Map map = Maps.newHashMap(beansOfType); + Map map = new HashMap<>(beansOfType); ThreadPoolAdapterRegisterTask threadPoolAdapterRegisterTask = new ThreadPoolAdapterRegisterTask(scheduler, taskIntervalSeconds, map, threadPoolAdapterRegisterAction); scheduler.schedule(threadPoolAdapterRegisterTask, threadPoolAdapterScheduler.getTaskIntervalSeconds(), TimeUnit.SECONDS); } @@ -207,7 +206,7 @@ public class HystrixThreadPoolAdapter implements ThreadPoolAdapter, ApplicationL ThreadPoolAdapterRegisterAction threadPoolAdapterRegisterAction; - private List cacheConfigList = Lists.newArrayList(); + private List cacheConfigList = new ArrayList<>(); public ThreadPoolAdapterRegisterTask(ScheduledExecutorService scheduler, int taskIntervalSeconds, Map threadPoolAdapterMap, diff --git a/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java b/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java index c3063b7e..41f5db22 100644 --- a/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java +++ b/hippo4j-adapter/hippo4j-adapter-hystrix/src/main/java/cn/hippo4j/adapter/hystrix/ThreadPoolAdapterScheduler.java @@ -17,7 +17,7 @@ package cn.hippo4j.adapter.hystrix; -import com.google.common.util.concurrent.ThreadFactoryBuilder; +import cn.hutool.core.thread.ThreadFactoryBuilder; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ScheduledExecutorService; @@ -36,7 +36,7 @@ public class ThreadPoolAdapterScheduler { public ThreadPoolAdapterScheduler() { scheduler = new ScheduledThreadPoolExecutor(2, new ThreadFactoryBuilder() - .setNameFormat("threadPoolAdapter") + .setNamePrefix("threadPoolAdapter") .setDaemon(true) .build()); } diff --git a/hippo4j-adapter/hippo4j-adapter-rabbitmq/src/main/java/cn/hippo4j/adapter/rabbitmq/RabbitMQThreadPoolAdapter.java b/hippo4j-adapter/hippo4j-adapter-rabbitmq/src/main/java/cn/hippo4j/adapter/rabbitmq/RabbitMQThreadPoolAdapter.java index ba7521a8..ccaab2b1 100644 --- a/hippo4j-adapter/hippo4j-adapter-rabbitmq/src/main/java/cn/hippo4j/adapter/rabbitmq/RabbitMQThreadPoolAdapter.java +++ b/hippo4j-adapter/hippo4j-adapter-rabbitmq/src/main/java/cn/hippo4j/adapter/rabbitmq/RabbitMQThreadPoolAdapter.java @@ -21,17 +21,13 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapter; import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; import cn.hippo4j.common.toolkit.ReflectUtil; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.connection.AbstractConnectionFactory; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.ThreadPoolExecutor; @@ -50,7 +46,7 @@ public class RabbitMQThreadPoolAdapter implements ThreadPoolAdapter, Application private final Map abstractConnectionFactoryMap; - private final Map RABBITMQ_THREAD_POOL_TASK_EXECUTOR = Maps.newHashMap(); + private final Map RABBITMQ_THREAD_POOL_TASK_EXECUTOR = new HashMap<>(); @Override public String mark() { @@ -71,7 +67,7 @@ public class RabbitMQThreadPoolAdapter implements ThreadPoolAdapter, Application @Override public List getThreadPoolStates() { - List adapterStateList = Lists.newArrayList(); + List adapterStateList = new ArrayList<>(); RABBITMQ_THREAD_POOL_TASK_EXECUTOR.forEach( (key, val) -> adapterStateList.add(getThreadPoolState(key))); return adapterStateList; diff --git a/hippo4j-adapter/hippo4j-adapter-rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java b/hippo4j-adapter/hippo4j-adapter-rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java index d1f7b093..88e2a869 100644 --- a/hippo4j-adapter/hippo4j-adapter-rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java +++ b/hippo4j-adapter/hippo4j-adapter-rocketmq/src/main/java/cn/hippo4j/adapter/rocketmq/RocketMQThreadPoolAdapter.java @@ -22,14 +22,15 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapterParameter; import cn.hippo4j.adapter.base.ThreadPoolAdapterState; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.ReflectUtil; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.impl.consumer.ConsumeMessageService; import org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer; import org.springframework.boot.context.event.ApplicationStartedEvent; import org.springframework.context.ApplicationListener; + +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ThreadPoolExecutor; @@ -42,7 +43,7 @@ import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMI @Slf4j public class RocketMQThreadPoolAdapter implements ThreadPoolAdapter, ApplicationListener { - private final Map ROCKET_MQ_CONSUME_EXECUTOR = Maps.newHashMap(); + private final Map ROCKET_MQ_CONSUME_EXECUTOR = new HashMap<>(); @Override public String mark() { @@ -65,7 +66,7 @@ public class RocketMQThreadPoolAdapter implements ThreadPoolAdapter, Application @Override public List getThreadPoolStates() { - List adapterStateList = Lists.newArrayList(); + List adapterStateList = new ArrayList<>(); ROCKET_MQ_CONSUME_EXECUTOR.forEach( (key, val) -> adapterStateList.add(getThreadPoolState(key))); return adapterStateList; diff --git a/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java b/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java index ca71513b..cb04cf6b 100644 --- a/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java +++ b/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rabbitmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rabbitmq/SpringCloudStreamRabbitMQThreadPoolAdapter.java @@ -23,8 +23,6 @@ import cn.hippo4j.adapter.base.ThreadPoolAdapterState; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ReflectUtil; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer; import org.springframework.amqp.rabbit.listener.DirectMessageListenerContainer; @@ -36,10 +34,7 @@ import org.springframework.cloud.stream.binding.InputBindingLifecycle; import org.springframework.context.ApplicationListener; import org.springframework.integration.amqp.inbound.AmqpInboundChannelAdapter; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMITER; @@ -49,7 +44,7 @@ import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMI @Slf4j public class SpringCloudStreamRabbitMQThreadPoolAdapter implements ThreadPoolAdapter, ApplicationListener { - private final Map ROCKET_MQ_SPRING_CLOUD_STREAM_CONSUME_EXECUTOR = Maps.newHashMap(); + private final Map ROCKET_MQ_SPRING_CLOUD_STREAM_CONSUME_EXECUTOR = new HashMap<>(); @Override public String mark() { @@ -84,7 +79,7 @@ public class SpringCloudStreamRabbitMQThreadPoolAdapter implements ThreadPoolAda @Override public List getThreadPoolStates() { - List adapterStateList = Lists.newArrayList(); + List adapterStateList = new ArrayList<>(); ROCKET_MQ_SPRING_CLOUD_STREAM_CONSUME_EXECUTOR.forEach( (key, val) -> adapterStateList.add(getThreadPoolState(key))); return adapterStateList; diff --git a/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java b/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java index 926f0ee8..b71d7aac 100644 --- a/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java +++ b/hippo4j-adapter/hippo4j-adapter-spring-cloud-stream-rocketmq/src/main/java/cn/hippo4j/adapter/springcloud/stream/rocketmq/SpringCloudStreamRocketMQThreadPoolAdapter.java @@ -25,8 +25,6 @@ import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.ReflectUtil; import com.alibaba.cloud.stream.binder.rocketmq.consuming.RocketMQListenerBindingContainer; import com.alibaba.cloud.stream.binder.rocketmq.integration.RocketMQInboundChannelAdapter; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer; import org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService; @@ -37,10 +35,7 @@ import org.springframework.cloud.stream.binder.DefaultBinding; import org.springframework.cloud.stream.binding.InputBindingLifecycle; import org.springframework.context.ApplicationListener; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.concurrent.ThreadPoolExecutor; import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMITER; @@ -51,7 +46,7 @@ import static cn.hippo4j.common.constant.ChangeThreadPoolConstants.CHANGE_DELIMI @Slf4j public class SpringCloudStreamRocketMQThreadPoolAdapter implements ThreadPoolAdapter, ApplicationListener { - private final Map ROCKET_MQ_SPRING_CLOUD_STREAM_CONSUME_EXECUTOR = Maps.newHashMap(); + private final Map ROCKET_MQ_SPRING_CLOUD_STREAM_CONSUME_EXECUTOR = new HashMap<>(); @Override public String mark() { @@ -74,7 +69,7 @@ public class SpringCloudStreamRocketMQThreadPoolAdapter implements ThreadPoolAda @Override public List getThreadPoolStates() { - List adapterStateList = Lists.newArrayList(); + List adapterStateList = new ArrayList<>(); ROCKET_MQ_SPRING_CLOUD_STREAM_CONSUME_EXECUTOR.forEach( (key, val) -> adapterStateList.add(getThreadPoolState(key))); return adapterStateList; diff --git a/hippo4j-common/pom.xml b/hippo4j-common/pom.xml index 7b6c6fec..44b46e4d 100644 --- a/hippo4j-common/pom.xml +++ b/hippo4j-common/pom.xml @@ -61,11 +61,6 @@ spring-boot-starter-json - - com.google.guava - guava - - cn.hutool hutool-all @@ -76,6 +71,11 @@ spring-boot-starter-test test + + + com.github.ben-manes.caffeine + caffeine + diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java index 139fa7d3..c57a1db1 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/CollectionUtil.java @@ -17,10 +17,7 @@ package cn.hippo4j.common.toolkit; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Collection util. @@ -123,4 +120,43 @@ public class CollectionUtil { public static boolean isNotEmpty(Collection collection) { return !isEmpty(collection); } + + /** + * reference google guava + * + * @param elements + * @return + */ + @SafeVarargs + public static ArrayList newArrayList(E... elements) { + Objects.requireNonNull(elements);// for GWT + // Avoid integer overflow when a large array is passed in + int capacity = computeArrayListCapacity(elements.length); + ArrayList list = new ArrayList<>(capacity); + Collections.addAll(list, elements); + return list; + } + + private static int computeArrayListCapacity(int arraySize) { + checkNonnegative(arraySize); + + // TODO(kevinb): Figure out the right behavior, and document it + return saturatedCast(5L + arraySize + (arraySize / 10)); + } + + private static void checkNonnegative(int value) { + if (value < 0) { + throw new IllegalArgumentException("arraySize cannot be negative but was: " + value); + } + } + + private static int saturatedCast(long value) { + if (value > Integer.MAX_VALUE) { + return Integer.MAX_VALUE; + } + if (value < Integer.MIN_VALUE) { + return Integer.MIN_VALUE; + } + return (int) value; + } } diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java new file mode 100644 index 00000000..70dd23fa --- /dev/null +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/Joiner.java @@ -0,0 +1,90 @@ +/* + * 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.toolkit; + +import java.io.IOException; +import java.util.Arrays; +import java.util.Iterator; +import java.util.Objects; + +/** + * reference google guava + * + */ +public class Joiner { + + private final String separator; + + private Joiner(String separator) { + this.separator = Objects.requireNonNull(separator); + } + + /** Returns a joiner which automatically places {@code separator} between consecutive elements. */ + public static Joiner on(String separator) { + return new Joiner(separator); + } + + /** + * Returns a string containing the string representation of each of {@code parts}, using the + * previously configured separator between each. + * + */ + public final String join(Object[] parts) { + return join(Arrays.asList(parts)); + } + + public final String join(Iterable parts) { + return join(parts.iterator()); + } + + /** + * Returns a string containing the string representation of each of {@code parts}, using the + * previously configured separator between each. + * + */ + public final String join(Iterator parts) { + return appendTo(new StringBuilder(), parts).toString(); + } + + public final StringBuilder appendTo(StringBuilder builder, Iterator parts) { + try { + appendTo((Appendable) builder, parts); + } catch (IOException impossible) { + throw new AssertionError(impossible); + } + return builder; + } + + public A appendTo(A appendable, Iterator parts) throws IOException { + Objects.requireNonNull(appendable); + if (parts.hasNext()) { + appendable.append(toString(parts.next())); + while (parts.hasNext()) { + appendable.append(separator); + appendable.append(toString(parts.next())); + } + } + return appendable; + } + + CharSequence toString(Object part) { + Objects.requireNonNull(part); + return (part instanceof CharSequence) ? (CharSequence) part : part.toString(); + } + +} diff --git a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java index d843f5e7..74cccf9d 100644 --- a/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java +++ b/hippo4j-common/src/main/java/cn/hippo4j/common/toolkit/StringUtil.java @@ -191,4 +191,5 @@ public class StringUtil { } return sb.toString(); } + } diff --git a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java index 3a314c4d..1505d9ac 100644 --- a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java +++ b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/ArrayUtilTest.java @@ -18,8 +18,8 @@ package cn.hippo4j.common.toolkit; import cn.hippo4j.common.function.Matcher; -import com.google.common.base.Strings; import org.junit.Test; +import org.springframework.util.StringUtils; public class ArrayUtilTest { @@ -39,11 +39,11 @@ public class ArrayUtilTest { public void assertFirstMatch() { Matcher matcher = (str) -> "1".equalsIgnoreCase(str); String[] array = new String[0]; - Assert.isTrue(Strings.isNullOrEmpty(ArrayUtil.firstMatch(matcher, array))); + Assert.isTrue(StringUtils.isEmpty(ArrayUtil.firstMatch(matcher, array))); array = new String[]{"0"}; - Assert.isTrue(Strings.isNullOrEmpty(ArrayUtil.firstMatch(matcher, array))); + Assert.isTrue(StringUtils.isEmpty(ArrayUtil.firstMatch(matcher, array))); array = new String[]{"1"}; - Assert.isTrue(!Strings.isNullOrEmpty(ArrayUtil.firstMatch(matcher, array))); + Assert.isTrue(!StringUtils.isEmpty(ArrayUtil.firstMatch(matcher, array))); } @Test diff --git a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java index 78715122..04e011dd 100644 --- a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java +++ b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/CollectionUtilTest.java @@ -17,10 +17,10 @@ package cn.hippo4j.common.toolkit; -import com.google.common.collect.Maps; import org.assertj.core.util.Lists; import org.junit.Test; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -44,7 +44,7 @@ public class CollectionUtilTest { Assert.isTrue(!CollectionUtil.isEmpty(list)); Map map = null; Assert.isTrue(CollectionUtil.isEmpty(map)); - map = Maps.newHashMap(); + map = new HashMap<>(); Assert.isTrue(CollectionUtil.isEmpty(map)); map.put("key", "value"); Assert.isTrue(!CollectionUtil.isEmpty(map)); @@ -66,7 +66,7 @@ public class CollectionUtilTest { Assert.isTrue(CollectionUtil.isNotEmpty(list)); Map map = null; Assert.isTrue(!CollectionUtil.isNotEmpty(map)); - map = Maps.newHashMap(); + map = new HashMap<>(); Assert.isTrue(!CollectionUtil.isNotEmpty(map)); map.put("key", "value"); Assert.isTrue(CollectionUtil.isNotEmpty(map)); diff --git a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java index b512704a..6d6c4009 100644 --- a/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java +++ b/hippo4j-common/src/test/java/cn/hippo4j/common/toolkit/GroupKeyTest.java @@ -17,14 +17,8 @@ package cn.hippo4j.common.toolkit; -import org.checkerframework.checker.units.qual.A; import org.junit.Test; -import java.util.Arrays; -import java.util.List; - -import static org.junit.Assert.*; - public class GroupKeyTest { @Test diff --git a/hippo4j-config/pom.xml b/hippo4j-config/pom.xml index 61cd12de..c145134f 100644 --- a/hippo4j-config/pom.xml +++ b/hippo4j-config/pom.xml @@ -15,6 +15,12 @@ + + cn.hippo4j + hippo4j-common + ${revision} + + org.springframework.boot spring-boot-starter diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java b/hippo4j-config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java index 5aedb340..2dfd9a6b 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/monitor/QueryMonitorExecuteChoose.java @@ -20,10 +20,10 @@ package cn.hippo4j.config.monitor; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.monitor.MessageTypeEnum; -import com.google.common.collect.Maps; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; +import java.util.HashMap; import java.util.Map; /** @@ -35,7 +35,7 @@ public class QueryMonitorExecuteChoose implements CommandLineRunner { /** * Storage monitoring data execution container. */ - private Map monitorDataExecuteStrategyChooseMap = Maps.newHashMap(); + private Map monitorDataExecuteStrategyChooseMap = new HashMap<>(); /** * Choose by {@link cn.hippo4j.common.monitor.MessageTypeEnum}. diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java index 194e1811..3d154c72 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigCacheService.java @@ -24,6 +24,7 @@ import cn.hippo4j.common.design.observer.Observer; import cn.hippo4j.common.design.observer.ObserverMessage; import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; +import cn.hippo4j.common.toolkit.Joiner; import cn.hippo4j.common.toolkit.Md5Util; import cn.hippo4j.config.event.LocalDataChangeEvent; import cn.hippo4j.config.model.CacheItem; @@ -33,9 +34,6 @@ import cn.hippo4j.config.service.biz.ConfigService; import cn.hippo4j.config.toolkit.MapUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils; @@ -79,7 +77,7 @@ public class ConfigCacheService { * @return */ private synchronized static String getContentMd5IsNullPut(String groupKey, String clientIdentify) { - Map cacheItemMap = Optional.ofNullable(CLIENT_CONFIG_CACHE.get(groupKey)).orElse(Maps.newHashMap()); + Map cacheItemMap = Optional.ofNullable(CLIENT_CONFIG_CACHE.get(groupKey)).orElse(new HashMap<>()); CacheItem cacheItem = null; if (CollUtil.isNotEmpty(cacheItemMap) && (cacheItem = cacheItemMap.get(clientIdentify)) != null) { return cacheItem.md5; @@ -129,7 +127,7 @@ public class ConfigCacheService { return item; } CacheItem tmp = new CacheItem(groupKey); - Map cacheItemMap = Maps.newHashMap(); + Map cacheItemMap = new HashMap<>(); cacheItemMap.put(ip, tmp); CLIENT_CONFIG_CACHE.putIfAbsent(groupKey, cacheItemMap); return tmp; @@ -137,7 +135,7 @@ public class ConfigCacheService { public static Map getContent(String identification) { List identificationList = MapUtil.parseMapForFilter(CLIENT_CONFIG_CACHE, identification); - Map returnStrCacheItemMap = Maps.newHashMap(); + Map returnStrCacheItemMap = new HashMap<>(); identificationList.forEach(each -> returnStrCacheItemMap.putAll(CLIENT_CONFIG_CACHE.get(each))); return returnStrCacheItemMap; } @@ -150,13 +148,13 @@ public class ConfigCacheService { public static List getIdentifyList(String tenantId, String itemId, String threadPoolId) { List identifyList = null; - String buildKey = Joiner.on(GROUP_KEY_DELIMITER).join(Lists.newArrayList(threadPoolId, itemId, tenantId)); + String buildKey = Joiner.on(GROUP_KEY_DELIMITER).join(CollectionUtil.newArrayList(threadPoolId, itemId, tenantId)); List keys = MapUtil.parseMapForFilter(CLIENT_CONFIG_CACHE, buildKey); if (CollectionUtil.isNotEmpty(keys)) { - identifyList = new ArrayList(keys.size()); + identifyList = new ArrayList<>(keys.size()); for (String each : keys) { String[] keyArray = each.split(GROUP_KEY_DELIMITER_TRANSLATION); - if (keyArray != null && keyArray.length > 2) { + if (keyArray.length > 2) { identifyList.add(keyArray[3]); } } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigServletInner.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigServletInner.java index bbe8ee51..48457554 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigServletInner.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ConfigServletInner.java @@ -17,8 +17,8 @@ package cn.hippo4j.config.service; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; import lombok.NonNull; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -39,7 +39,7 @@ public class ConfigServletInner { @NonNull private final LongPollingService longPollingService; - private final Cache deWeightCache = CacheBuilder.newBuilder() + private final Cache deWeightCache = Caffeine.newBuilder() .maximumSize(1024) .build(); diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/LongPollingService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/LongPollingService.java index 918e6a3c..c56a9242 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/LongPollingService.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/LongPollingService.java @@ -17,6 +17,7 @@ package cn.hippo4j.config.service; +import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.toolkit.Md5Util; import cn.hippo4j.common.web.base.Results; @@ -30,7 +31,6 @@ import cn.hippo4j.config.toolkit.Md5ConfigUtil; import cn.hippo4j.config.toolkit.RequestUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.Lists; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -117,7 +117,7 @@ public class LongPollingService { for (Iterator iter = allSubs.iterator(); iter.hasNext();) { ClientLongPolling clientSub = iter.next(); String identity = groupKey + GROUP_KEY_DELIMITER + identify; - List parseMapForFilter = Lists.newArrayList(identity); + List parseMapForFilter = CollectionUtil.newArrayList(identity); if (StrUtil.isBlank(identify)) { parseMapForFilter = MapUtil.parseMapForFilter(clientSub.clientMd5Map, groupKey); } diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java index d27c04e8..4744a3ee 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/ThreadPoolAdapterService.java @@ -31,12 +31,11 @@ import cn.hippo4j.config.model.biz.adapter.ThreadPoolAdapterRespDTO; import cn.hutool.core.text.StrBuilder; import cn.hutool.http.HttpUtil; import com.fasterxml.jackson.core.type.TypeReference; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.*; +import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; import static cn.hippo4j.common.constant.Constants.HTTP_EXECUTE_TIMEOUT; @@ -52,7 +51,7 @@ public class ThreadPoolAdapterService { /** * Map>>> */ - private static final Map>>> THREAD_POOL_ADAPTER_MAP = Maps.newConcurrentMap(); + private static final Map>>> THREAD_POOL_ADAPTER_MAP = new ConcurrentHashMap<>(); static { AbstractSubjectCenter.register(AbstractSubjectCenter.SubjectType.CLEAR_CONFIG_CACHE, new ClearThreadPoolAdapterCache()); @@ -64,19 +63,19 @@ public class ThreadPoolAdapterService { String mark = each.getMark(); Map>> actual = THREAD_POOL_ADAPTER_MAP.get(mark); if (CollectionUtil.isEmpty(actual)) { - actual = Maps.newHashMap(); + actual = new HashMap<>(); THREAD_POOL_ADAPTER_MAP.put(mark, actual); } Map> tenantItemMap = actual.get(each.getTenantItemKey()); if (CollectionUtil.isEmpty(tenantItemMap)) { - tenantItemMap = Maps.newHashMap(); + tenantItemMap = new HashMap<>(); actual.put(each.getTenantItemKey(), tenantItemMap); } List threadPoolAdapterStates = each.getThreadPoolAdapterStates(); for (ThreadPoolAdapterState adapterState : threadPoolAdapterStates) { List adapterStateList = tenantItemMap.get(adapterState.getThreadPoolKey()); if (CollectionUtil.isEmpty(adapterStateList)) { - adapterStateList = Lists.newArrayList(); + adapterStateList = new ArrayList<>(); tenantItemMap.put(adapterState.getThreadPoolKey(), adapterStateList); } Optional first = adapterStateList.stream().filter(state -> Objects.equals(state.getClientAddress(), each.getClientAddress())).findFirst(); @@ -95,12 +94,12 @@ public class ThreadPoolAdapterService { List actual = Optional.ofNullable(THREAD_POOL_ADAPTER_MAP.get(requestParameter.getMark())) .map(each -> each.get(requestParameter.getTenant() + IDENTIFY_SLICER_SYMBOL + requestParameter.getItem())) .map(each -> each.get(requestParameter.getThreadPoolKey())) - .orElse(Lists.newArrayList()); + .orElse(new ArrayList<>()); List addressList = actual.stream().map(ThreadPoolAdapterState::getClientAddress).collect(Collectors.toList()); List result = new ArrayList<>(addressList.size()); addressList.forEach(each -> { String urlString = StrBuilder.create("http://", each, "/adapter/thread-pool/info").toString(); - Map param = Maps.newHashMap(); + Map param = new HashMap<>(); param.put("mark", requestParameter.getMark()); param.put("threadPoolKey", requestParameter.getThreadPoolKey()); try { diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java index 5162b11b..14bd700c 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/ConfigServiceImpl.java @@ -27,7 +27,10 @@ import cn.hippo4j.common.web.exception.ServiceException; import cn.hippo4j.config.event.LocalDataChangeEvent; import cn.hippo4j.config.mapper.ConfigInfoMapper; import cn.hippo4j.config.mapper.ConfigInstanceMapper; -import cn.hippo4j.config.model.*; +import cn.hippo4j.config.model.ConfigAllInfo; +import cn.hippo4j.config.model.ConfigInfoBase; +import cn.hippo4j.config.model.ConfigInstanceInfo; +import cn.hippo4j.config.model.LogRecordInfo; import cn.hippo4j.config.model.biz.notify.NotifyReqDTO; import cn.hippo4j.config.service.ConfigCacheService; import cn.hippo4j.config.service.ConfigChangePublisher; @@ -38,7 +41,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; -import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -152,7 +154,8 @@ public class ConfigServiceImpl implements ConfigService { } DynamicThreadPoolRegisterServerNotifyParameter serverNotifyParameter = registerWrapper.getDynamicThreadPoolRegisterServerNotifyParameter(); if (serverNotifyParameter != null) { - ArrayList notifyTypes = Lists.newArrayList("CONFIG", "ALARM"); + ArrayList notifyTypes = new ArrayList<>(); + Collections.addAll(notifyTypes, "CONFIG", "ALARM"); notifyTypes.forEach(each -> { NotifyReqDTO notifyReqDTO = new NotifyReqDTO(); notifyReqDTO.setType(each) diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java index 0466070a..a22eb9ed 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/HisRunDataServiceImpl.java @@ -36,12 +36,12 @@ import cn.hippo4j.config.toolkit.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; @@ -90,15 +90,15 @@ public class HisRunDataServiceImpl extends ServiceImpl times = Lists.newArrayList(); - List poolSizeList = Lists.newArrayList(); - List activeSizeList = Lists.newArrayList(); - List queueCapacityList = Lists.newArrayList(); - List queueSizeList = Lists.newArrayList(); - List completedTaskCountList = Lists.newArrayList(); - List rejectCountList = Lists.newArrayList(); - List queueRemainingCapacityList = Lists.newArrayList(); - List currentLoadList = Lists.newArrayList(); + List times = new ArrayList<>(); + List poolSizeList = new ArrayList<>(); + List activeSizeList = new ArrayList<>(); + List queueCapacityList = new ArrayList<>(); + List queueSizeList = new ArrayList<>(); + List completedTaskCountList = new ArrayList<>(); + List rejectCountList = new ArrayList<>(); + List queueRemainingCapacityList = new ArrayList<>(); + List currentLoadList = new ArrayList<>(); long countTemp = 0L; AtomicBoolean firstFlag = new AtomicBoolean(Boolean.TRUE); for (HisRunDataInfo each : hisRunDataInfos) { @@ -146,7 +146,7 @@ public class HisRunDataServiceImpl extends ServiceImpl runtimeMessages = message.getMessages(); - List hisRunDataInfos = Lists.newArrayList(); + List hisRunDataInfos = new ArrayList<>(); runtimeMessages.forEach(each -> { HisRunDataInfo hisRunDataInfo = BeanUtil.convert(each, HisRunDataInfo.class); String[] parseKey = GroupKey.parseKey(each.getGroupKey()); diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java index 0a597c5d..f87a1aab 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/NotifyServiceImpl.java @@ -18,6 +18,7 @@ package cn.hippo4j.config.service.biz.impl; import cn.hippo4j.common.enums.EnableEnum; +import cn.hippo4j.common.toolkit.BooleanUtil; import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.web.exception.ServiceException; import cn.hippo4j.config.mapper.NotifyInfoMapper; @@ -29,17 +30,16 @@ import cn.hippo4j.config.model.biz.notify.NotifyRespDTO; import cn.hippo4j.config.service.biz.NotifyService; import cn.hippo4j.config.toolkit.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hippo4j.common.toolkit.BooleanUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import org.springframework.dao.DuplicateKeyException; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -54,7 +54,7 @@ public class NotifyServiceImpl implements NotifyService { @Override public List listNotifyConfig(NotifyQueryReqDTO reqDTO) { - List notifyListRespList = Lists.newArrayList(); + List notifyListRespList = new ArrayList<>(); reqDTO.getGroupKeys().forEach(each -> { String[] parseKey = GroupKey.parseKey(each); List notifyInfos = listNotifyCommon("CONFIG", parseKey); @@ -93,7 +93,7 @@ public class NotifyServiceImpl implements NotifyService { if (BooleanUtil.isTrue(requestParam.getAlarmType())) { existNotify("ALARM", requestParam); } - List notifyInfos = Lists.newArrayList(); + List notifyInfos = new ArrayList<>(); if (BooleanUtil.isTrue(requestParam.getAlarmType())) { NotifyInfo alarmNotifyInfo = BeanUtil.convert(requestParam, NotifyInfo.class); alarmNotifyInfo.setType("ALARM"); diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/MapUtil.java b/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/MapUtil.java index 0df8bdac..613ec640 100644 --- a/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/MapUtil.java +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/toolkit/MapUtil.java @@ -18,8 +18,8 @@ package cn.hippo4j.config.toolkit; import cn.hutool.core.collection.CollUtil; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; @@ -53,7 +53,7 @@ public class MapUtil { * @return */ public static List parseMapForFilter(Map sourceMap, String filters) { - List resultList = Lists.newArrayList(); + List resultList = new ArrayList<>(); if (CollUtil.isEmpty(sourceMap)) { return resultList; } diff --git a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/BeanUtilTest.java b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/BeanUtilTest.java index 7f44fa32..2c393a03 100644 --- a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/BeanUtilTest.java +++ b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/BeanUtilTest.java @@ -19,9 +19,6 @@ package cn.hippo4j.config.toolkit; import cn.hippo4j.common.toolkit.Assert; import com.github.dozermapper.core.converters.ConversionException; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; import lombok.*; import org.junit.Test; @@ -50,7 +47,7 @@ public class BeanUtilTest { @Test public void mapToBeanConvertTest() { // 测试MapToBean - final HashMap map = Maps.newHashMap(); + final HashMap map = new HashMap<>(); map.put("name", "Hippo4j"); map.put("age", 1); map.put("address", "hippo4j.cn"); @@ -64,7 +61,7 @@ public class BeanUtilTest { @Test public void ListToListConvertTest() { - final List list = Lists.newArrayList(); + final List list = new ArrayList<>(); list.add(Person.builder().name("one").age(1).build()); list.add(Person.builder().name("two").age(2).build()); list.add(Person.builder().name("three").age(3).build()); @@ -75,7 +72,7 @@ public class BeanUtilTest { @Test public void SetToSetConvertTest() { - final Set sets = Sets.newHashSet(); + final Set sets = new HashSet<>(); sets.add(Person.builder().name("one").age(1).build()); sets.add(Person.builder().name("two").age(2).build()); sets.add(Person.builder().name("three").age(3).build()); diff --git a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java index e67f3910..58980692 100644 --- a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java +++ b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/MapUtilTest.java @@ -19,7 +19,6 @@ package cn.hippo4j.config.toolkit; import cn.hippo4j.common.toolkit.Assert; import cn.hutool.core.collection.CollectionUtil; -import com.google.common.collect.ImmutableMap; import org.junit.Test; import java.util.HashMap; @@ -35,14 +34,20 @@ public class MapUtilTest { @Test public void parseMapForFilterRetIsEmptyTest() { - Map map = ImmutableMap.of("abc", "123", "bcd", "456", "cde", "789"); + HashMap map = new HashMap<>(); + map.put("abc", "123"); + map.put("bcd", "456"); + map.put("cde", "789"); List ret = MapUtil.parseMapForFilter(map, "x"); Assert.isTrue(CollectionUtil.isEmpty(ret)); } @Test public void parseMapForFilterRetIsNotEmptyTest() { - Map map = ImmutableMap.of("abc", "123", "bcd", "456", "cde", "789"); + HashMap map = new HashMap<>(); + map.put("abc", "123"); + map.put("bcd", "456"); + map.put("cde", "789"); List ret = MapUtil.parseMapForFilter(map, "b"); Assert.isTrue(CollectionUtil.isNotEmpty(ret)); } diff --git a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/Md5ConfigUtilTest.java b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/Md5ConfigUtilTest.java index 28e7ebb8..5bfd5055 100644 --- a/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/Md5ConfigUtilTest.java +++ b/hippo4j-config/src/test/java/cn/hippo4j/config/toolkit/Md5ConfigUtilTest.java @@ -24,6 +24,7 @@ import org.assertj.core.util.Lists; import org.junit.Test; import java.io.IOException; +import java.util.ArrayList; import java.util.Objects; /** @@ -62,7 +63,7 @@ public class Md5ConfigUtilTest { public void compareMd5ResultStringEmptyTest() { String key = null; try { - key = Md5ConfigUtil.compareMd5ResultString(Lists.newArrayList()); + key = Md5ConfigUtil.compareMd5ResultString(new ArrayList<>()); } catch (IOException ignored) { } diff --git a/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java index 08153056..909ec0e8 100644 --- a/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java +++ b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/ThreadPoolController.java @@ -42,11 +42,11 @@ import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -131,9 +131,9 @@ public class ThreadPoolController { List> leases = baseInstanceRegistry.listInstance(itemId); Lease first = CollUtil.getFirst(leases); if (first == null) { - return Results.success(Lists.newArrayList()); + return Results.success(new ArrayList<>()); } - List returnThreadPool = Lists.newArrayList(); + List returnThreadPool = new ArrayList<>(); for (Lease each : leases) { Result poolBaseState; try { @@ -185,7 +185,7 @@ public class ThreadPoolController { List> leases = baseInstanceRegistry.listInstance(itemId); Lease first = CollUtil.getFirst(leases); if (first == null) { - return Results.success(Lists.newArrayList()); + return Results.success(new ArrayList<>()); } InstanceInfo holder = first.getHolder(); String itemTenantKey = holder.getGroupKey(); @@ -197,7 +197,7 @@ public class ThreadPoolController { Map clientBasePathMap = leases.stream().map(each -> each.getHolder()) .filter(each -> StringUtil.isNotBlank(each.getClientBasePath())) .collect(Collectors.toMap(InstanceInfo::getIdentify, InstanceInfo::getClientBasePath)); - List returnThreadPool = Lists.newArrayList(); + List returnThreadPool = new ArrayList<>(); content.forEach((key, val) -> { ThreadPoolInstanceInfo threadPoolInstanceInfo = BeanUtil.convert(val.configAllInfo, ThreadPoolInstanceInfo.class); diff --git a/hippo4j-console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java b/hippo4j-console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java index 09702b30..110a5589 100644 --- a/hippo4j-console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java +++ b/hippo4j-console/src/main/java/cn/hippo4j/console/service/impl/DashboardServiceImpl.java @@ -19,6 +19,7 @@ package cn.hippo4j.console.service.impl; import cn.hippo4j.common.enums.DelEnum; import cn.hippo4j.common.model.InstanceInfo; +import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.config.mapper.ConfigInfoMapper; import cn.hippo4j.config.mapper.HisRunDataMapper; @@ -36,7 +37,6 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Dict; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -83,11 +83,11 @@ public class DashboardServiceImpl implements DashboardService { Date currentDate = new Date(); DateTime startTime = DateUtil.offsetMinute(currentDate, -10); List threadPoolTaskRankings = hisRunDataMapper.queryThreadPoolMaxRanking(startTime.getTime(), currentDate.getTime()); - List oneList = Lists.newArrayList(); - List twoList = Lists.newArrayList(); - List threeList = Lists.newArrayList(); - List fourList = Lists.newArrayList(); - ArrayList> lists = Lists.newArrayList(oneList, twoList, threeList, fourList); + List oneList = new ArrayList<>(); + List twoList = new ArrayList<>(); + List threeList = new ArrayList<>(); + List fourList = new ArrayList<>(); + ArrayList> lists = CollectionUtil.newArrayList(oneList, twoList, threeList, fourList); for (int i = 0; i < threadPoolTaskRankings.size(); i++) { List eachList = lists.get(i); HisRunDataMapper.ThreadPoolTaskRanking taskRanking = threadPoolTaskRankings.get(i); @@ -101,7 +101,7 @@ public class DashboardServiceImpl implements DashboardService { @Override public TenantChart getTenantChart() { - List> tenantChartList = Lists.newArrayList(); + List> tenantChartList = new ArrayList<>(); List tenantInfos = tenantInfoMapper.selectList(Wrappers.lambdaQuery(TenantInfo.class).eq(TenantInfo::getDelFlag, DelEnum.NORMAL.getIntCode())); for (TenantInfo tenant : tenantInfos) { int tenantThreadPoolNum = 0; @@ -118,7 +118,7 @@ public class DashboardServiceImpl implements DashboardService { Dict dict = Dict.create().set("name", tenant.getTenantId()).set("value", tenantThreadPoolNum); tenantChartList.add(dict); } - List resultTenantChartList = tenantChartList.stream() + List> resultTenantChartList = tenantChartList.stream() .sorted((one, two) -> (int) two.get("value") - (int) one.get("value")) .limit(5) .collect(Collectors.toList()); @@ -129,7 +129,7 @@ public class DashboardServiceImpl implements DashboardService { public PieChartInfo getPieChart() { LambdaQueryWrapper itemQueryWrapper = Wrappers.lambdaQuery(ItemInfo.class).eq(ItemInfo::getDelFlag, DelEnum.NORMAL.getIntCode()).select(ItemInfo::getItemId); List itemNameList = itemInfoMapper.selectObjs(itemQueryWrapper); - List> pieDataList = Lists.newArrayList(); + List> pieDataList = new ArrayList<>(); for (Object each : itemNameList) { LambdaQueryWrapper threadPoolQueryWrapper = Wrappers.lambdaQuery(ConfigAllInfo.class) .eq(ConfigInfoBase::getItemId, each) @@ -141,7 +141,7 @@ public class DashboardServiceImpl implements DashboardService { } } pieDataList.sort((one, two) -> (int) two.get("value") - (int) one.get("value")); - List resultItemIds = Lists.newArrayList(); + List resultItemIds = new ArrayList<>(); List> resultPieDataList = pieDataList.stream() .limit(5) .map(each -> { @@ -156,7 +156,7 @@ public class DashboardServiceImpl implements DashboardService { public RankingChart getRankingChart() { Date currentDate = new Date(); DateTime tenTime = DateUtil.offsetMinute(currentDate, -10); - List resultList = Lists.newArrayList(); + List resultList = new ArrayList<>(); List threadPoolTaskRankings = hisRunDataMapper.queryThreadPoolTaskSumRanking(tenTime.getTime(), currentDate.getTime()); threadPoolTaskRankings.forEach(each -> { RankingChart.RankingChartInfo rankingChartInfo = new RankingChart.RankingChartInfo(); diff --git a/hippo4j-core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java b/hippo4j-core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java index 1fa8672b..a3800b30 100644 --- a/hippo4j-core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java +++ b/hippo4j-core/src/main/java/cn/hippo4j/core/executor/manage/GlobalThreadPoolManage.java @@ -22,8 +22,8 @@ import cn.hippo4j.common.model.ThreadPoolParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.core.executor.DynamicThreadPoolWrapper; import cn.hippo4j.core.executor.support.service.DynamicThreadPoolService; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; @@ -123,7 +123,7 @@ public class GlobalThreadPoolManage { * @return */ public static List listThreadPoolId() { - return Lists.newArrayList(EXECUTOR_MAP.keySet()); + return new ArrayList<>(EXECUTOR_MAP.keySet()); } /** diff --git a/hippo4j-core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java b/hippo4j-core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java index a01d4924..c4e18963 100644 --- a/hippo4j-core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java +++ b/hippo4j-core/src/main/java/cn/hippo4j/core/toolkit/IdentifyUtil.java @@ -18,12 +18,12 @@ package cn.hippo4j.core.toolkit; import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.common.toolkit.CollectionUtil; +import cn.hippo4j.common.toolkit.Joiner; import cn.hippo4j.common.toolkit.ThreadUtil; import cn.hippo4j.core.toolkit.inet.InetUtils; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; import org.springframework.core.env.ConfigurableEnvironment; import java.util.ArrayList; @@ -89,7 +89,7 @@ public class IdentifyUtil { * @return */ public static String getThreadPoolIdentify(String threadPoolId, String itemId, String namespace) { - ArrayList params = Lists.newArrayList(threadPoolId, itemId, namespace, getIdentify()); + ArrayList params = CollectionUtil.newArrayList(threadPoolId, itemId, namespace, getIdentify()); return Joiner.on(GROUP_KEY_DELIMITER).join(params); } } diff --git a/hippo4j-discovery/pom.xml b/hippo4j-discovery/pom.xml index 59a84cff..e1ceab7b 100644 --- a/hippo4j-discovery/pom.xml +++ b/hippo4j-discovery/pom.xml @@ -29,11 +29,6 @@ hippo4j-common ${revision} - - - com.google.guava - guava - diff --git a/hippo4j-discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java b/hippo4j-discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java index 33dcdf3c..66dcc6bd 100644 --- a/hippo4j-discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java +++ b/hippo4j-discovery/src/main/java/cn/hippo4j/discovery/core/BaseInstanceRegistry.java @@ -20,8 +20,7 @@ package cn.hippo4j.discovery.core; import cn.hippo4j.common.design.observer.AbstractSubjectCenter; import cn.hippo4j.common.model.InstanceInfo; import cn.hippo4j.common.model.InstanceInfo.InstanceStatus; -import com.google.common.collect.Lists; -import com.google.common.util.concurrent.ThreadFactoryBuilder; +import cn.hutool.core.thread.ThreadFactoryBuilder; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -57,9 +56,9 @@ public class BaseInstanceRegistry implements InstanceRegistry { public List> listInstance(String appName) { Map> appNameLeaseMap = registry.get(appName); if (CollectionUtils.isEmpty(appNameLeaseMap)) { - return Lists.newArrayList(); + return new ArrayList<>(); } - List> appNameLeaseList = Lists.newArrayList(); + List> appNameLeaseList = new ArrayList<>(); appNameLeaseMap.values().forEach(each -> appNameLeaseList.add(each)); return appNameLeaseList; } @@ -82,7 +81,7 @@ public class BaseInstanceRegistry implements InstanceRegistry { registrant = existingLease.getHolder(); } } - Lease lease = new Lease(registrant); + Lease lease = new Lease<>(registrant); if (existingLease != null) { lease.setServiceUpTimestamp(existingLease.getServiceUpTimestamp()); } @@ -190,7 +189,7 @@ public class BaseInstanceRegistry implements InstanceRegistry { new ScheduledThreadPoolExecutor( SCHEDULED_THREAD_CORE_NUM, new ThreadFactoryBuilder() - .setNameFormat("registry-eviction") + .setNamePrefix("registry-eviction") .setDaemon(true) .build()); diff --git a/hippo4j-message/pom.xml b/hippo4j-message/pom.xml index 16e80419..60de5b82 100644 --- a/hippo4j-message/pom.xml +++ b/hippo4j-message/pom.xml @@ -39,11 +39,6 @@ commons-codec - - com.google.guava - guava - - cn.hutool hutool-all diff --git a/hippo4j-message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java b/hippo4j-message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java index ad2f2a33..ee91e50c 100644 --- a/hippo4j-message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java +++ b/hippo4j-message/src/main/java/cn/hippo4j/message/platform/DingSendMessageHandler.java @@ -17,6 +17,8 @@ package cn.hippo4j.message.platform; +import cn.hippo4j.common.toolkit.CollectionUtil; +import cn.hippo4j.common.toolkit.FileUtil; import cn.hippo4j.common.toolkit.Singleton; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.message.dto.NotifyConfigDTO; @@ -25,11 +27,9 @@ import cn.hippo4j.message.platform.base.AbstractRobotSendMessageHandler; import cn.hippo4j.message.platform.base.RobotMessageActualContent; import cn.hippo4j.message.platform.base.RobotMessageExecuteDTO; import cn.hippo4j.message.platform.constant.DingAlarmConstants; -import cn.hippo4j.common.toolkit.FileUtil; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.OapiRobotSendRequest; -import com.google.common.collect.Lists; import com.taobao.api.ApiException; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; @@ -93,7 +93,7 @@ public class DingSendMessageHandler extends AbstractRobotSendMessageHandler { markdown.setTitle(Objects.equals(notifyConfig.getType(), "CONFIG") ? DING_NOTICE_TITLE : DING_ALARM_TITLE); markdown.setText(robotMessageExecuteDTO.getText()); OapiRobotSendRequest.At at = new OapiRobotSendRequest.At(); - at.setAtMobiles(Lists.newArrayList(notifyConfig.getReceives().split(","))); + at.setAtMobiles(CollectionUtil.newArrayList(notifyConfig.getReceives().split(","))); request.setAt(at); request.setMarkdown(markdown); try { diff --git a/hippo4j-message/src/main/java/cn/hippo4j/message/platform/base/AbstractRobotSendMessageHandler.java b/hippo4j-message/src/main/java/cn/hippo4j/message/platform/base/AbstractRobotSendMessageHandler.java index 12423ff3..c2d2acd2 100644 --- a/hippo4j-message/src/main/java/cn/hippo4j/message/platform/base/AbstractRobotSendMessageHandler.java +++ b/hippo4j-message/src/main/java/cn/hippo4j/message/platform/base/AbstractRobotSendMessageHandler.java @@ -17,6 +17,7 @@ package cn.hippo4j.message.platform.base; +import cn.hippo4j.common.toolkit.Joiner; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.enums.NotifyTypeEnum; @@ -25,7 +26,6 @@ import cn.hippo4j.message.request.ChangeParameterNotifyRequest; import cn.hippo4j.message.service.SendMessageHandler; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.base.Joiner; import java.util.Objects; diff --git a/hippo4j-message/src/main/java/cn/hippo4j/message/service/AlarmControlHandler.java b/hippo4j-message/src/main/java/cn/hippo4j/message/service/AlarmControlHandler.java index 6d33522f..c0f0c500 100644 --- a/hippo4j-message/src/main/java/cn/hippo4j/message/service/AlarmControlHandler.java +++ b/hippo4j-message/src/main/java/cn/hippo4j/message/service/AlarmControlHandler.java @@ -21,11 +21,12 @@ import cn.hippo4j.common.constant.Constants; import cn.hippo4j.message.dto.AlarmControlDTO; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import com.google.common.collect.Maps; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; +import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; @@ -34,9 +35,9 @@ import java.util.concurrent.locks.ReentrantLock; */ public class AlarmControlHandler { - private final Map threadPoolLock = Maps.newHashMap(); + private final Map threadPoolLock = new HashMap<>(); - private final Map> threadPoolAlarmCache = Maps.newConcurrentMap(); + private final Map> threadPoolAlarmCache = new ConcurrentHashMap<>(); /** * Control message push alarm frequency. @@ -77,7 +78,7 @@ public class AlarmControlHandler { */ public void initCacheAndLock(String threadPoolId, String platform, Integer interval) { String threadPoolKey = StrUtil.builder(threadPoolId, Constants.GROUP_KEY_DELIMITER, platform).toString(); - Cache cache = CacheBuilder.newBuilder() + Cache cache = Caffeine.newBuilder() .expireAfterWrite(interval, TimeUnit.MINUTES) .build(); threadPoolAlarmCache.put(threadPoolKey, cache); diff --git a/hippo4j-message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java b/hippo4j-message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java index f73de9c8..c6c98242 100644 --- a/hippo4j-message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java +++ b/hippo4j-message/src/main/java/cn/hippo4j/message/service/Hippo4jBaseSendMessageService.java @@ -17,8 +17,8 @@ package cn.hippo4j.message.service; -import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.message.dto.AlarmControlDTO; import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.enums.NotifyTypeEnum; @@ -26,12 +26,12 @@ import cn.hippo4j.message.request.AlarmNotifyRequest; import cn.hippo4j.message.request.ChangeParameterNotifyRequest; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.Maps; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -47,9 +47,9 @@ public class Hippo4jBaseSendMessageService implements Hippo4jSendMessageService, private final AlarmControlHandler alarmControlHandler; @Getter - public final Map> notifyConfigs = Maps.newHashMap(); + public final Map> notifyConfigs = new HashMap<>(); - private final Map sendMessageHandlers = Maps.newHashMap(); + private final Map sendMessageHandlers = new HashMap<>(); @Override public void sendAlarmMessage(NotifyTypeEnum typeEnum, AlarmNotifyRequest alarmNotifyRequest) { diff --git a/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java b/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java index 5b524648..dbbe5b00 100644 --- a/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java +++ b/hippo4j-monitor/hippo4j-monitor-elasticsearch/src/main/java/cn/hippo4j/monitor/es/EsClientHolder.java @@ -19,8 +19,6 @@ package cn.hippo4j.monitor.es; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.toolkit.StringUtil; -import com.google.common.base.Throwables; -import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; @@ -30,6 +28,9 @@ import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.springframework.core.env.Environment; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.ArrayList; import java.util.List; /** @@ -65,7 +66,9 @@ public class EsClientHolder { log.info("[ES RestHighLevelClient] success to connect es!host:{},scheme:{}", host, scheme); return client; } catch (Exception ex) { - log.error("[ES RestHighLevelClient] fail to connect es! cause:{}", Throwables.getStackTraceAsString(ex)); + StringWriter stackTrace = new StringWriter(); + ex.printStackTrace(new PrintWriter(stackTrace)); + log.error("[ES RestHighLevelClient] fail to connect es! cause:{}", stackTrace); } return null; } @@ -86,7 +89,7 @@ public class EsClientHolder { private static List parseHosts() { String[] hostAndPorts = host.split(","); - List hosts = Lists.newArrayList(); + List hosts = new ArrayList<>(); for (String hostAndPort : hostAndPorts) { hostAndPort = hostAndPort.trim(); hosts.add(new HttpHost(hostAndPort.split(":")[0], Integer.parseInt(hostAndPort.split(":")[1]), scheme)); diff --git a/hippo4j-monitor/hippo4j-monitor-micrometer/src/main/java/cn/hippo4j/monitor/micrometer/MicrometerMonitorHandler.java b/hippo4j-monitor/hippo4j-monitor-micrometer/src/main/java/cn/hippo4j/monitor/micrometer/MicrometerMonitorHandler.java index a9ee5bbf..7c1b930c 100644 --- a/hippo4j-monitor/hippo4j-monitor-micrometer/src/main/java/cn/hippo4j/monitor/micrometer/MicrometerMonitorHandler.java +++ b/hippo4j-monitor/hippo4j-monitor-micrometer/src/main/java/cn/hippo4j/monitor/micrometer/MicrometerMonitorHandler.java @@ -19,17 +19,17 @@ package cn.hippo4j.monitor.micrometer; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.model.ThreadPoolRunStateInfo; +import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.core.executor.state.ThreadPoolRunStateHandler; -import cn.hutool.core.bean.BeanUtil; import cn.hippo4j.monitor.base.AbstractDynamicThreadPoolMonitor; import cn.hippo4j.monitor.base.MonitorTypeEnum; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import cn.hutool.core.bean.BeanUtil; import io.micrometer.core.instrument.Metrics; import io.micrometer.core.instrument.Tag; import org.springframework.core.env.Environment; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Micrometer monitor handler. @@ -42,7 +42,7 @@ public class MicrometerMonitorHandler extends AbstractDynamicThreadPoolMonitor { private final static String APPLICATION_NAME_TAG = "application.name"; - private final Map RUN_STATE_CACHE = Maps.newConcurrentMap(); + private final Map RUN_STATE_CACHE = new ConcurrentHashMap<>(); public MicrometerMonitorHandler(ThreadPoolRunStateHandler threadPoolRunStateHandler) { super(threadPoolRunStateHandler); @@ -58,7 +58,7 @@ public class MicrometerMonitorHandler extends AbstractDynamicThreadPoolMonitor { } Environment environment = ApplicationContextHolder.getInstance().getEnvironment(); String applicationName = environment.getProperty("spring.application.name", "application"); - Iterable tags = Lists.newArrayList( + Iterable tags = CollectionUtil.newArrayList( Tag.of(DYNAMIC_THREAD_POOL_ID_TAG, poolRunStateInfo.getTpId()), Tag.of(APPLICATION_NAME_TAG, applicationName)); Metrics.gauge(metricName("current.load"), tags, poolRunStateInfo, ThreadPoolRunStateInfo::getSimpleCurrentLoad); diff --git a/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java b/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java index fc3283c4..447000b8 100644 --- a/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java +++ b/hippo4j-server/src/main/java/cn/hippo4j/server/init/LocalDataSourceLoader.java @@ -18,7 +18,6 @@ package cn.hippo4j.server.init; import cn.hippo4j.server.config.DataBaseProperties; -import com.google.common.base.Splitter; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.io.Resources; @@ -37,7 +36,6 @@ import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.StandardCharsets; import java.sql.*; -import java.util.List; import java.util.Objects; /** @@ -105,7 +103,7 @@ public class LocalDataSourceLoader implements InstantiationAwareBeanPostProcesso runner.setLogWriter(null); runner.setAutoCommit(true); Resources.setCharset(StandardCharsets.UTF_8); - List initScripts = Splitter.on(";").splitToList(script); + String[] initScripts = StringUtils.split(script, ";"); for (String sqlScript : initScripts) { if (sqlScript.startsWith(PRE_FIX)) { String sqlFile = sqlScript.substring(PRE_FIX.length()); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/DynamicThreadPoolMonitorExecutor.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/DynamicThreadPoolMonitorExecutor.java index 1bdecb95..46fa5579 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/DynamicThreadPoolMonitorExecutor.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/monitor/DynamicThreadPoolMonitorExecutor.java @@ -18,19 +18,19 @@ package cn.hippo4j.config.springboot.starter.monitor; import cn.hippo4j.common.config.ApplicationContextHolder; +import cn.hippo4j.common.spi.DynamicThreadPoolServiceLoader; import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.support.ThreadFactoryBuilder; -import cn.hippo4j.common.spi.DynamicThreadPoolServiceLoader; import cn.hippo4j.monitor.base.DynamicThreadPoolMonitor; import cn.hippo4j.monitor.base.ThreadPoolMonitor; -import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -59,7 +59,7 @@ public class DynamicThreadPoolMonitorExecutor implements ApplicationRunner { return; } log.info("Start monitoring the running status of dynamic thread pool."); - threadPoolMonitors = Lists.newArrayList(); + threadPoolMonitors = new ArrayList<>(); collectExecutor = new ScheduledThreadPoolExecutor( new Integer(1), ThreadFactoryBuilder.builder().daemon(true).prefix("client.scheduled.collect.data").build()); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/notify/CoreNotifyConfigBuilder.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/notify/CoreNotifyConfigBuilder.java index e4ae0a30..d66e994d 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/notify/CoreNotifyConfigBuilder.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/notify/CoreNotifyConfigBuilder.java @@ -22,18 +22,14 @@ import cn.hippo4j.common.toolkit.StringUtil; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.config.springboot.starter.config.ExecutorProperties; import cn.hippo4j.config.springboot.starter.config.NotifyPlatformProperties; -import cn.hippo4j.message.service.AlarmControlHandler; -import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.api.NotifyConfigBuilder; +import cn.hippo4j.message.dto.NotifyConfigDTO; +import cn.hippo4j.message.service.AlarmControlHandler; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -49,7 +45,7 @@ public class CoreNotifyConfigBuilder implements NotifyConfigBuilder { @Override public Map> buildNotify() { - Map> resultMap = Maps.newHashMap(); + Map> resultMap = new HashMap<>(); boolean globalAlarm = Optional.ofNullable(configProperties.getDefaultExecutor()).map(each -> each.getAlarm()).orElse(true); List executors = configProperties.getExecutors(); if (CollectionUtil.isEmpty(executors)) { @@ -75,10 +71,10 @@ public class CoreNotifyConfigBuilder implements NotifyConfigBuilder { * @return */ public Map> buildSingleNotifyConfig(ExecutorProperties executorProperties) { - Map> resultMap = Maps.newHashMap(); + Map> resultMap = new HashMap<>(); String threadPoolId = executorProperties.getThreadPoolId(); String alarmBuildKey = threadPoolId + "+ALARM"; - List alarmNotifyConfigs = Lists.newArrayList(); + List alarmNotifyConfigs = new ArrayList<>(); List notifyPlatforms = configProperties.getNotifyPlatforms(); for (NotifyPlatformProperties platformProperties : notifyPlatforms) { NotifyConfigDTO notifyConfig = new NotifyConfigDTO(); @@ -96,7 +92,7 @@ public class CoreNotifyConfigBuilder implements NotifyConfigBuilder { } resultMap.put(alarmBuildKey, alarmNotifyConfigs); String changeBuildKey = threadPoolId + "+CONFIG"; - List changeNotifyConfigs = Lists.newArrayList(); + List changeNotifyConfigs = new ArrayList<>(); for (NotifyPlatformProperties platformProperties : notifyPlatforms) { NotifyConfigDTO notifyConfig = new NotifyConfigDTO(); notifyConfig.setPlatform(platformProperties.getPlatform()); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java index c1ae1182..61eb3056 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/ConfigParserHandler.java @@ -17,20 +17,15 @@ package cn.hippo4j.config.springboot.starter.parser; -import com.google.common.collect.Lists; - import java.io.IOException; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.ServiceLoader; +import java.util.*; /** * Config parser handler. */ public class ConfigParserHandler { - private static final List PARSERS = Lists.newArrayList(); + private static final List PARSERS = new ArrayList<>(); private ConfigParserHandler() { ServiceLoader loader = ServiceLoader.load(ConfigParser.class); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java index 211fe13c..1a2260df 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/PropertiesConfigParser.java @@ -17,7 +17,7 @@ package cn.hippo4j.config.springboot.starter.parser; -import com.google.common.collect.Lists; +import cn.hippo4j.common.toolkit.CollectionUtil; import java.io.IOException; import java.io.StringReader; @@ -39,6 +39,6 @@ public class PropertiesConfigParser extends AbstractConfigParser { @Override public List getConfigFileTypes() { - return Lists.newArrayList(ConfigFileTypeEnum.PROPERTIES); + return CollectionUtil.newArrayList(ConfigFileTypeEnum.PROPERTIES); } } diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java index 75a8abbb..9613e882 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/parser/YamlConfigParser.java @@ -17,14 +17,12 @@ package cn.hippo4j.config.springboot.starter.parser; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import cn.hippo4j.common.toolkit.CollectionUtil; import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.core.io.ByteArrayResource; import org.springframework.util.StringUtils; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Yaml config parser. @@ -34,7 +32,7 @@ public class YamlConfigParser extends AbstractConfigParser { @Override public Map doParse(String content) { if (StringUtils.isEmpty(content)) { - return Maps.newHashMapWithExpectedSize(0); + return new HashMap<>(1); } YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean(); yamlPropertiesFactoryBean.setResources(new ByteArrayResource(content.getBytes())); @@ -43,6 +41,6 @@ public class YamlConfigParser extends AbstractConfigParser { @Override public List getConfigFileTypes() { - return Lists.newArrayList(ConfigFileTypeEnum.YML, ConfigFileTypeEnum.YAML); + return CollectionUtil.newArrayList(ConfigFileTypeEnum.YML, ConfigFileTypeEnum.YAML); } } diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java index 90425870..6233bd82 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ApolloRefresherHandler.java @@ -24,10 +24,10 @@ import com.ctrip.framework.apollo.ConfigFile; import com.ctrip.framework.apollo.ConfigService; import com.ctrip.framework.apollo.core.enums.ConfigFileFormat; import com.ctrip.framework.apollo.model.ConfigChange; -import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import java.util.HashMap; import java.util.Map; /** @@ -60,7 +60,7 @@ public class ApolloRefresherHandler extends AbstractConfigThreadPoolDynamicRefre String namespace = this.namespace.replaceAll("." + bootstrapConfigProperties.getConfigFileType().getValue(), ""); ConfigFileFormat configFileFormat = ConfigFileFormat.fromString(bootstrapConfigProperties.getConfigFileType().getValue()); ConfigFile configFile = ConfigService.getConfigFile(namespace, configFileFormat); - Map newChangeValueMap = Maps.newHashMap(); + Map newChangeValueMap = new HashMap<>(); configChangeEvent.changedKeys().stream().filter(each -> each.contains(BootstrapConfigProperties.PREFIX)).forEach(each -> { ConfigChange change = configChangeEvent.getChange(each); String newValue = change.getNewValue(); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java index 433c6535..f5e84f22 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/BootstrapConfigPropertiesBinderAdapt.java @@ -25,13 +25,13 @@ import cn.hippo4j.config.springboot.starter.config.ExecutorProperties; import cn.hippo4j.config.springboot.starter.config.NotifyPlatformProperties; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import org.springframework.boot.context.properties.bind.Bindable; import org.springframework.boot.context.properties.bind.Binder; import org.springframework.boot.context.properties.source.ConfigurationPropertySource; import org.springframework.boot.context.properties.source.MapConfigurationPropertySource; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -74,7 +74,7 @@ public class BootstrapConfigPropertiesBinderAdapt { BootstrapConfigProperties bindableConfigProperties; try { // filter - Map targetMap = Maps.newHashMap(); + Map targetMap = new HashMap<>(); configInfo.forEach((key, val) -> { boolean containFlag = key != null && StringUtil.isNotBlank((String) key) @@ -87,12 +87,12 @@ public class BootstrapConfigPropertiesBinderAdapt { } }); // convert - List executorPropertiesList = Lists.newArrayList(); - List notifyPropertiesList = Lists.newArrayList(); + List executorPropertiesList = new ArrayList<>(); + List notifyPropertiesList = new ArrayList<>(); for (int i = 0; i < Integer.MAX_VALUE; i++) { - Map executorSingleMap = Maps.newHashMap(); - Map platformSingleMap = Maps.newHashMap(); - Map notifySingleMap = Maps.newHashMap(); + Map executorSingleMap = new HashMap<>(); + Map platformSingleMap = new HashMap<>(); + Map notifySingleMap = new HashMap<>(); for (Map.Entry entry : targetMap.entrySet()) { String key = entry.getKey().toString(); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java index c2825ed2..48d03fe4 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/PolarisRefresherHandler.java @@ -17,18 +17,17 @@ package cn.hippo4j.config.springboot.starter.refresher; -import java.util.Map; -import java.util.Objects; - -import com.google.common.collect.Maps; import com.tencent.polaris.configuration.api.core.ConfigFileService; import com.tencent.polaris.configuration.api.core.ConfigKVFile; import com.tencent.polaris.configuration.api.core.ConfigKVFileChangeListener; import com.tencent.polaris.configuration.api.core.ConfigPropertyChangeInfo; import lombok.RequiredArgsConstructor; - import org.springframework.beans.factory.annotation.Value; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + /** *@author : wh *@date : 2022/10/1 15:24 @@ -68,7 +67,7 @@ public class PolarisRefresherHandler extends AbstractConfigThreadPoolDynamicRefr ConfigKVFile configFile = getConfigKVFile(); configFile.addChangeListener((ConfigKVFileChangeListener) event -> { String content = configFile.getContent(); - Map newChangeValueMap = Maps.newHashMap(); + Map newChangeValueMap = new HashMap<>(); for (String key : event.changedKeys()) { ConfigPropertyChangeInfo changeInfo = event.getChangeInfo(key); newChangeValueMap.put(key, changeInfo.getNewValue()); diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java index fe886001..c62da963 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/ZookeeperRefresherHandler.java @@ -19,7 +19,6 @@ package cn.hippo4j.config.springboot.starter.refresher; import cn.hippo4j.core.executor.manage.GlobalNotifyAlarmManage; import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; -import com.google.common.base.Charsets; import lombok.extern.slf4j.Slf4j; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; @@ -32,6 +31,7 @@ import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.utils.ZKPaths; import org.apache.zookeeper.WatchedEvent; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; @@ -121,7 +121,7 @@ public class ZookeeperRefresherHandler extends AbstractConfigThreadPoolDynamicRe final GetDataBuilder data = curatorFramework.getData(); String value = ""; try { - value = new String(data.watched().forPath(n), Charsets.UTF_8); + value = new String(data.watched().forPath(n), StandardCharsets.UTF_8); } catch (Exception ex) { log.error("Load zookeeper node error", ex); } diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java index 1bf61464..e570caa4 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/refresher/event/DynamicThreadPoolRefreshListener.java @@ -21,7 +21,6 @@ import cn.hippo4j.common.executor.support.BlockingQueueTypeEnum; import cn.hippo4j.common.executor.support.RejectedPolicyTypeEnum; import cn.hippo4j.common.executor.support.ResizableCapacityLinkedBlockingQueue; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.config.springboot.starter.config.AdapterExecutorProperties; import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.config.springboot.starter.config.ExecutorProperties; import cn.hippo4j.config.springboot.starter.notify.CoreNotifyConfigBuilder; @@ -36,15 +35,11 @@ import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.request.ChangeParameterNotifyRequest; import cn.hippo4j.message.service.Hippo4jBaseSendMessageService; import cn.hippo4j.message.service.ThreadPoolNotifyAlarm; -import com.google.common.collect.Lists; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -160,7 +155,7 @@ public class DynamicThreadPoolRefreshListener extends AbstractRefreshListener changeKeys = Lists.newArrayList(); + List changeKeys = new ArrayList<>(); Map> newDynamicThreadPoolNotifyMap = coreNotifyConfigBuilder.buildSingleNotifyConfig(executorProperties); Map> notifyConfigs = hippo4jBaseSendMessageService.getNotifyConfigs(); if (CollectionUtil.isNotEmpty(notifyConfigs)) { diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolAdapterRegister.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolAdapterRegister.java index 5d9f6979..ba4c96ef 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolAdapterRegister.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/DynamicThreadPoolAdapterRegister.java @@ -18,9 +18,8 @@ package cn.hippo4j.config.springboot.starter.support; import cn.hippo4j.common.toolkit.CollectionUtil; -import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import cn.hippo4j.config.springboot.starter.config.AdapterExecutorProperties; -import com.google.common.collect.Maps; +import cn.hippo4j.config.springboot.starter.config.BootstrapConfigProperties; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; @@ -28,6 +27,7 @@ import org.springframework.boot.ApplicationRunner; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import static cn.hippo4j.common.constant.Constants.IDENTIFY_SLICER_SYMBOL; @@ -40,7 +40,7 @@ public class DynamicThreadPoolAdapterRegister implements ApplicationRunner { private final BootstrapConfigProperties bootstrapConfigProperties; - public static final Map ADAPTER_EXECUTORS_MAP = Maps.newConcurrentMap(); + public static final Map ADAPTER_EXECUTORS_MAP = new ConcurrentHashMap<>(); @Override public void run(ApplicationArguments args) throws Exception { diff --git a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java index fc8b88a9..bef01cac 100644 --- a/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java +++ b/hippo4j-spring-boot/hippo4j-config-spring-boot-starter/src/main/java/cn/hippo4j/config/springboot/starter/support/GlobalCoreThreadPoolManage.java @@ -18,16 +18,16 @@ package cn.hippo4j.config.springboot.starter.support; import cn.hippo4j.config.springboot.starter.config.ExecutorProperties; -import com.google.common.collect.Maps; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Global core thread-pool manage. */ public class GlobalCoreThreadPoolManage { - private static final Map EXECUTOR_PROPERTIES = Maps.newConcurrentMap(); + private static final Map EXECUTOR_PROPERTIES = new ConcurrentHashMap<>(); /** * Get properties. diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java index d520e0c3..a5def8e0 100644 --- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java +++ b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/core/ThreadPoolAdapterRegister.java @@ -29,13 +29,13 @@ import cn.hippo4j.core.toolkit.inet.InetUtils; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.springboot.starter.remote.HttpAgent; import cn.hippo4j.springboot.starter.toolkit.CloudCommonIdUtil; -import com.google.common.collect.Lists; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.env.ConfigurableEnvironment; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -64,7 +64,7 @@ public class ThreadPoolAdapterRegister implements ApplicationRunner, ThreadPoolA @Override public List getThreadPoolAdapterCacheConfigs(Map threadPoolAdapterMap) { - List adapterCacheConfigList = Lists.newArrayList(); + List adapterCacheConfigList = new ArrayList<>(); for (Map.Entry threadPoolAdapterEntry : threadPoolAdapterMap.entrySet()) { ThreadPoolAdapter threadPoolAdapter = threadPoolAdapterEntry.getValue(); List threadPoolStates = threadPoolAdapter.getThreadPoolStates(); diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java index b4d5706b..cbbf8293 100644 --- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java +++ b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/ReportingEventExecutor.java @@ -33,7 +33,6 @@ import cn.hippo4j.springboot.starter.monitor.collect.Collector; import cn.hippo4j.springboot.starter.monitor.send.MessageSender; import cn.hippo4j.springboot.starter.remote.ServerHealthCheck; import cn.hutool.core.collection.CollUtil; -import com.google.common.collect.Lists; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -41,10 +40,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.DisposableBean; import org.springframework.boot.CommandLineRunner; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -110,7 +106,7 @@ public class ReportingEventExecutor implements Runnable, CommandLineRunner, Disp if (!properties.getCollect()) { return; } - threadPoolMonitors = Lists.newArrayList(); + threadPoolMonitors = new ArrayList<>(); String collectType = Optional.ofNullable(StringUtil.emptyToNull(properties.getCollectType())).orElse(MonitorTypeEnum.SERVER.name().toLowerCase()); collectVesselExecutor = new ScheduledThreadPoolExecutor( new Integer(collectType.split(",").length), diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java index d38b3ed6..c09b57f7 100644 --- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java +++ b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/monitor/collect/RunTimeInfoCollector.java @@ -22,13 +22,13 @@ import cn.hippo4j.common.monitor.AbstractMessage; import cn.hippo4j.common.monitor.Message; import cn.hippo4j.common.monitor.MessageTypeEnum; import cn.hippo4j.common.monitor.RuntimeMessage; -import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; import cn.hippo4j.core.executor.state.AbstractThreadPoolRuntime; +import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hutool.core.bean.BeanUtil; -import com.google.common.collect.Lists; import lombok.AllArgsConstructor; +import java.util.ArrayList; import java.util.List; import static cn.hippo4j.core.toolkit.IdentifyUtil.getThreadPoolIdentify; @@ -44,7 +44,7 @@ public class RunTimeInfoCollector extends AbstractThreadPoolRuntime implements C @Override public Message collectMessage() { AbstractMessage message = new RuntimeMessage(); - List runtimeMessages = Lists.newArrayList(); + List runtimeMessages = new ArrayList<>(); List listThreadPoolId = GlobalThreadPoolManage.listThreadPoolId(); for (String each : listThreadPoolId) { ThreadPoolRunStateInfo poolRunState = getPoolRunState(each); diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/notify/ServerNotifyConfigBuilder.java b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/notify/ServerNotifyConfigBuilder.java index 4065b27c..8aeade7a 100644 --- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/notify/ServerNotifyConfigBuilder.java +++ b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/notify/ServerNotifyConfigBuilder.java @@ -21,20 +21,20 @@ import cn.hippo4j.common.toolkit.GroupKey; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.web.base.Result; import cn.hippo4j.core.executor.manage.GlobalThreadPoolManage; -import cn.hippo4j.message.service.AlarmControlHandler; +import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.message.dto.NotifyConfigDTO; import cn.hippo4j.message.dto.ThreadPoolNotifyDTO; -import cn.hippo4j.message.api.NotifyConfigBuilder; import cn.hippo4j.message.request.ThreadPoolNotifyRequest; +import cn.hippo4j.message.service.AlarmControlHandler; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.springboot.starter.remote.HttpAgent; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -58,14 +58,14 @@ public class ServerNotifyConfigBuilder implements NotifyConfigBuilder { List threadPoolIds = GlobalThreadPoolManage.listThreadPoolId(); if (CollUtil.isEmpty(threadPoolIds)) { log.warn("The client does not have a dynamic thread pool instance configured."); - return Maps.newHashMap(); + return new HashMap<>(); } return getAndInitNotify(threadPoolIds); } public Map> getAndInitNotify(List threadPoolIds) { - Map> resultMap = Maps.newHashMap(); - List groupKeys = Lists.newArrayList(); + Map> resultMap = new HashMap<>(); + List groupKeys = new ArrayList<>(); threadPoolIds.forEach(each -> { String groupKey = GroupKey.getKeyTenant(each, properties.getItemId(), properties.getNamespace()); groupKeys.add(groupKey); diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java index 9cd62075..3a02f4cb 100644 --- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java +++ b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/remote/ServerHttpAgent.java @@ -20,13 +20,13 @@ package cn.hippo4j.springboot.starter.remote; import cn.hippo4j.common.config.ApplicationContextHolder; import cn.hippo4j.common.constant.Constants; import cn.hippo4j.common.web.base.Result; +import cn.hippo4j.core.executor.support.ThreadFactoryBuilder; import cn.hippo4j.springboot.starter.config.BootstrapProperties; import cn.hippo4j.springboot.starter.security.SecurityProxy; import cn.hippo4j.springboot.starter.toolkit.HttpClientUtil; -import cn.hippo4j.core.executor.support.ThreadFactoryBuilder; import cn.hutool.core.util.StrUtil; -import com.google.common.collect.Maps; +import java.util.HashMap; import java.util.Map; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -141,7 +141,7 @@ public class ServerHttpAgent implements HttpAgent { @Deprecated private String injectSecurityInfoByPath(String path) { - String resultPath = httpClientUtil.buildUrl(path, injectSecurityInfo(Maps.newHashMap())); + String resultPath = httpClientUtil.buildUrl(path, injectSecurityInfo(new HashMap<>())); return resultPath; } } diff --git a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java index f4230eec..ae4e1c23 100644 --- a/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java +++ b/hippo4j-spring-boot/hippo4j-spring-boot-starter/src/main/java/cn/hippo4j/springboot/starter/support/DynamicThreadPoolConfigService.java @@ -22,6 +22,7 @@ import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterParameter; import cn.hippo4j.common.model.register.DynamicThreadPoolRegisterWrapper; import cn.hippo4j.common.toolkit.Assert; import cn.hippo4j.common.toolkit.BooleanUtil; +import cn.hippo4j.common.toolkit.CollectionUtil; import cn.hippo4j.common.toolkit.JSONUtil; import cn.hippo4j.common.web.base.Result; import cn.hippo4j.common.web.exception.ServiceException; @@ -38,8 +39,6 @@ import cn.hippo4j.springboot.starter.core.DynamicThreadPoolSubscribeConfig; import cn.hippo4j.springboot.starter.event.ApplicationCompleteEvent; import cn.hippo4j.springboot.starter.notify.ServerNotifyConfigBuilder; import cn.hippo4j.springboot.starter.remote.HttpAgent; -import com.google.common.collect.Lists; -import cn.hippo4j.springboot.starter.remote.HttpAgent; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationListener; @@ -117,7 +116,7 @@ public class DynamicThreadPoolConfigService extends AbstractDynamicThreadPoolSer registerParameter.getActiveAlarm(), registerParameter.getCapacityAlarm()); GlobalNotifyAlarmManage.put(registerParameter.getThreadPoolId(), threadPoolNotifyAlarm); - Map> builderNotify = notifyConfigBuilder.getAndInitNotify(Lists.newArrayList(registerParameter.getThreadPoolId())); + Map> builderNotify = notifyConfigBuilder.getAndInitNotify(CollectionUtil.newArrayList(registerParameter.getThreadPoolId())); hippo4jBaseSendMessageService.putPlatform(builderNotify); } diff --git a/pom.xml b/pom.xml index 0ab7d6c6..63e9cf33 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,7 @@ 1.4.2-SNAPSHOT 6.5.0 + 2.9.3 30.0-jre 3.12.0 5.4.7 @@ -124,6 +125,12 @@ dozer-core ${dozer.version} + + com.github.ben-manes.caffeine + caffeine + ${caffeine.version} + + com.google.guava guava