diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/ExcelUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/ExcelUtils.java index 2e11315f314a25744d25252e437d85526ecfcbfa..4ea156319898709e4512b80c888ce15cb8651be3 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/ExcelUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/ExcelUtils.java @@ -1,5 +1,6 @@ package com.schbrain.common.util; +import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.excel.EasyExcel; import com.schbrain.common.util.support.excel.bean.ExcelReadResult; import com.schbrain.common.util.support.excel.exception.ExcelException; @@ -21,7 +22,7 @@ import java.util.Map; * @author liaozan * @since 2022/1/6 */ -public class ExcelUtils { +public class ExcelUtils extends ExcelUtil { // file public static ExcelReadResult> read(File excelFile) { @@ -132,4 +133,4 @@ public class ExcelUtils { return readListener.getReadResult(); } -} \ No newline at end of file +} diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/PortUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/PortUtils.java index e22ec129b776d8d892e7b89c0d264a848b9ed578..6fc4dfe93a212e89e69b4c7f38e76d36e923bee6 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/PortUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/PortUtils.java @@ -23,7 +23,7 @@ public class PortUtils { portTmp++; } } - throw new BaseException("no available port."); + throw new BaseException("No available port."); } public static boolean isPortUsed(int port) { @@ -32,7 +32,7 @@ public class PortUtils { try { serverSocket = new ServerSocket(port); } catch (IOException e) { - log.warn("current port[{}] is in use", port); + log.warn("Current port[{}] is in use", port); used = true; } finally { if (serverSocket != null) { diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/SpelUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/SpelUtils.java index 98280f301b07af31b7cb5e5fd4bc2109c50f00c6..ba851c8652d7f3cb0df37d200aabd061f31d0a2c 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/SpelUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/SpelUtils.java @@ -1,6 +1,8 @@ package com.schbrain.common.util; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.context.expression.BeanFactoryResolver; import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; @@ -16,8 +18,9 @@ public class SpelUtils { private static final ConcurrentHashMap expressionCache = new ConcurrentHashMap<>(); - public static T parse(String express, Map variables, Class valueType) { + public static T parse(String express, Map variables, Class valueType, BeanFactory beanFactory) { StandardEvaluationContext ctx = new StandardEvaluationContext(); + ctx.setBeanResolver(new BeanFactoryResolver(beanFactory)); ctx.setVariables(variables); return parse(express, ctx, valueType); } @@ -38,4 +41,4 @@ public class SpelUtils { return expression; } -} \ No newline at end of file +} diff --git a/commons/common/src/main/java/com/schbrain/common/enums/BooleanEnum.java b/commons/common/src/main/java/com/schbrain/common/enums/BooleanEnum.java index 8d345b5cd3b52e31ce4ffef96ab11170402429cb..9b2acd09e1e960cf50d658944356ba75f0f83e1d 100644 --- a/commons/common/src/main/java/com/schbrain/common/enums/BooleanEnum.java +++ b/commons/common/src/main/java/com/schbrain/common/enums/BooleanEnum.java @@ -3,6 +3,8 @@ package com.schbrain.common.enums; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.Objects; + /** * @author huangxi * @since 2022/08/23 @@ -23,12 +25,7 @@ public enum BooleanEnum { private final Integer value; public static boolean validate(Integer value) { - for (BooleanEnum booleanEnum : values()) { - if (booleanEnum.getValue().equals(value)) { - return true; - } - } - return false; + return Objects.equals(TRUE.value, value); } -} \ No newline at end of file +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java b/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java index 2ed3129d51532f18f56ed09b3865dae04b942d73..9f3af3b1e12ec7c3ebd9916802c1b9620a0cb315 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/exception/GlobalExceptionHandler.java @@ -4,7 +4,6 @@ import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.util.StrUtil; import com.schbrain.common.constants.ResponseActionConstants; import com.schbrain.common.exception.BaseException; -import com.schbrain.common.util.support.ValidationMessageBuilder; import com.schbrain.common.web.result.ResponseDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DataAccessException; @@ -31,6 +30,8 @@ import java.util.List; import static com.schbrain.common.constants.ResponseCodeConstants.PARAM_INVALID; import static com.schbrain.common.constants.ResponseCodeConstants.SERVER_ERROR; +import static com.schbrain.common.util.support.ValidationMessageBuilder.buildBindingErrorMsg; +import static com.schbrain.common.util.support.ValidationMessageBuilder.buildConstraintViolationErrorMsg; /** * @author liaozan @@ -183,14 +184,14 @@ public class GlobalExceptionHandler { /************************************* Parameter Binding Exception Handing *************************************/ @ExceptionHandler(BindException.class) public ResponseDTO handleBindException(BindException ex) { - String errorMsg = ValidationMessageBuilder.buildBindingErrorMsg(ex.getBindingResult()); + String errorMsg = buildBindingErrorMsg(ex.getBindingResult()); log.error(errorMsg); return buildResponse(ex, PARAM_INVALID, errorMsg); } @ExceptionHandler(ConstraintViolationException.class) public ResponseDTO handleConstraintViolationException(ConstraintViolationException ex) { - String errorMsg = ValidationMessageBuilder.buildConstraintViolationErrorMsg(ex.getConstraintViolations()); + String errorMsg = buildConstraintViolationErrorMsg(ex.getConstraintViolations()); log.error(errorMsg); return buildResponse(ex, PARAM_INVALID, errorMsg); } @@ -228,4 +229,4 @@ public class GlobalExceptionHandler { log.error(exMsg, throwable); } -} \ No newline at end of file +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java b/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java index 5b57256571b9115e1e5ed45e622297d9e41919e7..df4e77dba8df545402c46eb60cfa0bdc35d3407f 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/servlet/RequestLoggingFilter.java @@ -3,9 +3,9 @@ package com.schbrain.common.web.servlet; import cn.hutool.core.text.CharPool; import cn.hutool.core.util.ArrayUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.boot.web.servlet.filter.OrderedFilter; import org.springframework.core.Ordered; -import org.springframework.util.StringUtils; import org.springframework.web.cors.CorsUtils; import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.util.ContentCachingRequestWrapper; @@ -61,10 +61,10 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere String body = getRequestBody(request); StringBuilder builder = new StringBuilder(); builder.append("requestUri: ").append(method).append(CharPool.SPACE).append(requestUri); - if (StringUtils.hasText(queryString)) { + if (StringUtils.isNotBlank(queryString)) { builder.append(", queryString: ").append(queryString); } - if (StringUtils.hasText(body)) { + if (StringUtils.isNotBlank(body)) { builder.append(", body: ").append(body); } builder.append(", startTime: ").append(startTime); @@ -91,4 +91,4 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere } } -} \ No newline at end of file +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java index 8c088f411859e958108774420c80c5437778a2cb..3089a56452a7d47dc729c4db69328678947e22f3 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimitAspect.java @@ -1,30 +1,29 @@ package com.schbrain.common.web.support.concurrent; -import cn.hutool.extra.spring.SpringUtil; import com.schbrain.common.exception.BaseException; import com.schbrain.common.util.ApplicationName; -import com.schbrain.common.util.ParameterDiscoverUtils; import com.schbrain.common.util.SpelUtils; -import com.schbrain.common.web.utils.ServletUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.MapUtils; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.reflect.Advice; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.BeanFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.BoundValueOperations; import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.util.CollectionUtils; -import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; +import static com.schbrain.common.util.ParameterDiscoverUtils.getMethodArgsMap; + /** * @author liaozan * @see com.schbrain.common.web.support.concurrent.RateLimiter @@ -39,11 +38,12 @@ public class RateLimitAspect { private final Map, RateLimitCacheKeyVariablesContributor> contributorMap = new ConcurrentHashMap<>(); private final String keyPrefix; - + private final BeanFactory beanFactory; private final StringRedisTemplate stringRedisTemplate; - public RateLimitAspect(StringRedisTemplate stringRedisTemplate) { + public RateLimitAspect(StringRedisTemplate stringRedisTemplate, BeanFactory beanFactory) { this.keyPrefix = ApplicationName.get(); + this.beanFactory = beanFactory; this.stringRedisTemplate = stringRedisTemplate; } @@ -56,7 +56,7 @@ public class RateLimitAspect { protected void doRateLimit(RateLimiter rateLimiter, JoinPoint joinPoint, MethodSignature signature) { Map variables = prepareVariables(rateLimiter, joinPoint, signature); - String cacheKey = SpelUtils.parse(rateLimiter.cacheKey(), variables, String.class); + String cacheKey = SpelUtils.parse(rateLimiter.cacheKey(), variables, String.class, beanFactory); if (cacheKey == null) { throw new BaseException("cacheKey should not be null"); } @@ -67,7 +67,7 @@ public class RateLimitAspect { try { long accessCount = Optional.ofNullable(rateLimitOps.increment()).orElse(1L); if (accessCount > rateLimiter.permits()) { - throw new BaseException("访问频次太快,请稍后再试。"); + throw new BaseException("The access frequency is too fast, please try again later"); } if (accessCount <= 1) { @@ -81,27 +81,12 @@ public class RateLimitAspect { } } - protected Map createEvaluationVariables(MethodSignature methodSignature, Object[] args) { - Map variables = new HashMap<>(); - Map methodArgsMap = ParameterDiscoverUtils.getMethodArgsMap(methodSignature.getMethod(), args); - if (!CollectionUtils.isEmpty(methodArgsMap)) { - variables.putAll(methodArgsMap); - } - - variables.put("request", ServletUtils.getRequest()); - variables.put("response", ServletUtils.getResponse()); - variables.put("applicationContext", SpringUtil.getApplicationContext()); - variables.put("beanFactory", SpringUtil.getBeanFactory()); - variables.put("args", args); - return variables; - } - protected String formatCacheKey(String cacheKey) { return "rateLimit:" + keyPrefix + ":" + cacheKey; } private Map prepareVariables(RateLimiter rateLimiter, JoinPoint joinPoint, MethodSignature signature) { - Map variables = createEvaluationVariables(signature, joinPoint.getArgs()); + Map variables = getMethodArgsMap(signature.getMethod(), joinPoint.getArgs()); Class contributorClass = rateLimiter.contributor(); if (contributorClass == null || contributorClass == NoOpRateLimitCacheKeyVariablesContributor.class) { return variables; @@ -113,10 +98,10 @@ public class RateLimitAspect { contributorMap.put(contributorClass, contributor); } Map contributeVariables = contributor.contribute(rateLimiter, joinPoint, signature); - if (!CollectionUtils.isEmpty(contributeVariables)) { + if (MapUtils.isNotEmpty(contributeVariables)) { variables.putAll(contributeVariables); } return variables; } -} \ No newline at end of file +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimiter.java b/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimiter.java index 8308c798cf9cc0a4a7714469f3d82f8065dbdb7a..64b0067d4cfb4a9c324204ec2a069677933efdb3 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimiter.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/support/concurrent/RateLimiter.java @@ -1,7 +1,5 @@ package com.schbrain.common.web.support.concurrent; -import org.aspectj.lang.reflect.MethodSignature; - import java.lang.annotation.*; import java.util.concurrent.TimeUnit; @@ -30,9 +28,7 @@ public @interface RateLimiter { int permits() default 3; /** - * 缓存的 key,使用 spel 进行解析 - *

- * 可用的变量 {@link RateLimitAspect#createEvaluationVariables(MethodSignature, Object[])} + * 缓存的 key,使用 spring el 进行解析 */ String cacheKey(); @@ -41,4 +37,4 @@ public @interface RateLimiter { */ Class contributor() default NoOpRateLimitCacheKeyVariablesContributor.class; -} \ No newline at end of file +} diff --git a/commons/web-common/src/main/java/com/schbrain/common/web/utils/ServletUtils.java b/commons/web-common/src/main/java/com/schbrain/common/web/utils/ServletUtils.java index d3397a6fc429858c5b0d3e026aebca378a626aae..e46610f5787ca775fee70d61202127e3aad591cd 100644 --- a/commons/web-common/src/main/java/com/schbrain/common/web/utils/ServletUtils.java +++ b/commons/web-common/src/main/java/com/schbrain/common/web/utils/ServletUtils.java @@ -1,5 +1,6 @@ package com.schbrain.common.web.utils; +import cn.hutool.extra.servlet.ServletUtil; import com.schbrain.common.exception.BaseException; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -12,7 +13,7 @@ import javax.servlet.http.HttpServletResponse; * @author liaozan * @since 2022/1/6 */ -public class ServletUtils { +public class ServletUtils extends ServletUtil { public static HttpServletRequest getRequest() { ServletRequestAttributes requestAttributes = getRequestAttributes(); @@ -35,4 +36,4 @@ public class ServletUtils { return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); } -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index 2f7e4334fdf0da49063801a369dd76488251a9ad..879340dbc73a0466694078ef8aade99a5df5fa05 100644 --- a/pom.xml +++ b/pom.xml @@ -752,4 +752,4 @@ - \ No newline at end of file + diff --git a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java index 58c8e29a67bf851a0fcbd1ad3e71e6e56582049c..0bca0c2d32844b92220aeb3f22be819b001164f7 100644 --- a/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java +++ b/starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java @@ -5,12 +5,12 @@ import com.schbrain.common.util.ApplicationName; import com.schbrain.common.util.EnvUtils; import com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor; import com.schbrain.framework.support.spring.defaults.DefaultPropertiesEnvironmentPostProcessor; +import org.apache.commons.lang3.StringUtils; import org.springframework.boot.ConfigurableBootstrapContext; import org.springframework.boot.SpringApplication; import org.springframework.boot.logging.DeferredLogFactory; import org.springframework.core.Ordered; import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.util.StringUtils; import java.util.LinkedHashMap; import java.util.Map; @@ -109,21 +109,21 @@ public class ApolloConfigurationInitializerEnvironmentPostProcessor extends Logg // {env}.meta String searchKey = fallbackKey; String apolloUrl = environment.getProperty(searchKey); - if (StringUtils.hasText(apolloUrl)) { + if (StringUtils.isNotBlank(apolloUrl)) { return apolloUrl; } // apollo.meta.{env} searchKey = APOLLO_META_KEY + "." + env; apolloUrl = environment.getProperty(searchKey); - if (StringUtils.hasText(apolloUrl)) { + if (StringUtils.isNotBlank(apolloUrl)) { return apolloUrl; } // apollo.meta searchKey = APOLLO_META_KEY; apolloUrl = environment.getProperty(searchKey); - if (StringUtils.hasText(apolloUrl)) { + if (StringUtils.isNotBlank(apolloUrl)) { return apolloUrl; } @@ -154,4 +154,4 @@ public class ApolloConfigurationInitializerEnvironmentPostProcessor extends Logg } } -} \ No newline at end of file +} diff --git a/starters/cache-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/cache/provider/redis/RedisCacheConfiguration.java b/starters/cache-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/cache/provider/redis/RedisCacheConfiguration.java index dba1bb4e994201395272bd481566b4befd263c6c..b00d4f10e1bfb8c91e4d3f167b6a884bcd91cc5a 100644 --- a/starters/cache-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/cache/provider/redis/RedisCacheConfiguration.java +++ b/starters/cache-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/cache/provider/redis/RedisCacheConfiguration.java @@ -1,6 +1,5 @@ package com.schbrain.framework.autoconfigure.cache.provider.redis; -import com.schbrain.framework.autoconfigure.cache.provider.CacheProvider; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -23,9 +22,9 @@ public class RedisCacheConfiguration { @Bean @ConditionalOnBean(RedisConnectionFactory.class) @ConditionalOnMissingBean(RedisCacheProvider.class) - public CacheProvider redisCacheProvider(RedisConnectionFactory redisConnectionFactory, ObjectProvider redisTemplate) { + public RedisCacheProvider redisCacheProvider(RedisConnectionFactory redisConnectionFactory, ObjectProvider redisTemplate) { StringRedisTemplate stringRedisTemplate = redisTemplate.getIfAvailable(() -> new StringRedisTemplate(redisConnectionFactory)); return new RedisCacheProvider(stringRedisTemplate); } -} \ No newline at end of file +} diff --git a/starters/dubbo-spring-boot-starter/pom.xml b/starters/dubbo-spring-boot-starter/pom.xml index 64ac0bbdcf57cbed91f5c67e5011edd678a5de31..cf65bd0375791a295b77a01ba20de68c9ae4dac9 100644 --- a/starters/dubbo-spring-boot-starter/pom.xml +++ b/starters/dubbo-spring-boot-starter/pom.xml @@ -74,14 +74,10 @@ org.apache.dubbo dubbo-serialization-hessian2 - - org.apache.dubbo - dubbo-serialization-fastjson2 - org.apache.dubbo dubbo-metadata-report-zookeeper - \ No newline at end of file + diff --git a/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/DubboExceptionFilter.java b/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/DubboExceptionFilter.java index fab9a82443a98e2ba72293105c0e369b57aeb098..40eaaf5ddb9adef86fbb352a075c7fa6b60a8ca5 100644 --- a/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/DubboExceptionFilter.java +++ b/starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/filter/DubboExceptionFilter.java @@ -3,7 +3,6 @@ package com.schbrain.framework.autoconfigure.dubbo.filter; import cn.hutool.core.exceptions.ExceptionUtil; import com.schbrain.common.exception.BaseException; import com.schbrain.common.exception.ParamInvalidException; -import com.schbrain.common.util.support.ValidationMessageBuilder; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.extension.Activate; @@ -14,6 +13,8 @@ import org.apache.dubbo.rpc.service.GenericService; import javax.validation.ConstraintViolationException; import java.util.Arrays; +import static com.schbrain.common.util.support.ValidationMessageBuilder.buildConstraintViolationErrorMsg; + /** * @author liaozan * @since 2022/1/19 @@ -47,7 +48,7 @@ public class DubboExceptionFilter extends ExceptionFilter { protected ParamInvalidException createParamInvalidException(Invocation invocation, ConstraintViolationException cause) { String serviceName = invocation.getInvoker().getInterface().getSimpleName(); String methodName = invocation.getMethodName(); - String errorMsg = ValidationMessageBuilder.buildConstraintViolationErrorMsg(cause.getConstraintViolations()); + String errorMsg = buildConstraintViolationErrorMsg(cause.getConstraintViolations()); return new ParamInvalidException(String.format("%s.%s %s", serviceName, methodName, errorMsg)); } @@ -62,4 +63,4 @@ public class DubboExceptionFilter extends ExceptionFilter { log.error("Catch rpc exception: {}, client: {}@{}, target: {}#{}, args: {}", errorMessage, remoteApplication, remoteHost, serviceName, methodName, arguments, exception); } -} \ No newline at end of file +} diff --git a/starters/elasticsearch-spring-boot-starter/pom.xml b/starters/elasticsearch-spring-boot-starter/pom.xml index 577e71bff14334ec2cf0c11d0e03d0c4f6ca3ed9..0f10bc94ec5be4680f052db739ebff167de8b1e3 100644 --- a/starters/elasticsearch-spring-boot-starter/pom.xml +++ b/starters/elasticsearch-spring-boot-starter/pom.xml @@ -24,4 +24,4 @@ - \ No newline at end of file + diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/LoggerConfigurationInitializer.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/LoggerConfigurationInitializer.java index 61b4fd687b8d61cf0b9179768190652b9c465240..209bb5029858c46ccc91abe24f77a9e355b2d129 100644 --- a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/LoggerConfigurationInitializer.java +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/LoggerConfigurationInitializer.java @@ -20,11 +20,11 @@ import net.logstash.logback.appender.LogstashTcpSocketAppender; import net.logstash.logback.encoder.LogstashEncoder; import net.logstash.logback.fieldnames.ShortenedFieldNames; import org.apache.commons.collections4.IteratorUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.LoggerFactory; import org.springframework.boot.cloud.CloudPlatform; import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.util.CollectionUtils; -import org.springframework.util.StringUtils; import java.nio.file.Paths; import java.util.List; @@ -86,7 +86,7 @@ public class LoggerConfigurationInitializer { } if (properties.isEnableJsonLogWriteToLogstash() || EnvUtils.runningOnCloudPlatform(environment)) { - if (!StringUtils.hasText(properties.getLogstashAddress())) { + if (StringUtils.isBlank(properties.getLogstashAddress())) { log.warn("logstash address is unset, will NOT write log to logstash"); return; } @@ -158,4 +158,4 @@ public class LoggerConfigurationInitializer { return rollingPolicy; } -} \ No newline at end of file +} diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/DynamicLoggerConfiguration.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/DynamicLoggerConfiguration.java index 41ac9e43e4be57ebde90d3f1153f59d3325a3526..735c53f3ff3ad841cd3cce57a1c30a5717eb662a 100644 --- a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/DynamicLoggerConfiguration.java +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/DynamicLoggerConfiguration.java @@ -2,11 +2,10 @@ package com.schbrain.framework.autoconfigure.logger.apollo; import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.ConfigService; -import com.schbrain.framework.autoconfigure.logger.apollo.listener.LoggingLevelChangeListener; import com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.boot.logging.LoggingSystem; -import org.springframework.util.StringUtils; /** * 动态日志配置 @@ -23,7 +22,7 @@ public class DynamicLoggerConfiguration { private void listenToLoggingLevelChange(LoggingSystem loggingSystem, LoggerProperties loggerProperties) { String loggerNamespace = loggerProperties.getNamespace(); - if (!StringUtils.hasText(loggerNamespace)) { + if (StringUtils.isBlank(loggerNamespace)) { log.debug("logger level reload is disabled"); return; } @@ -37,4 +36,4 @@ public class DynamicLoggerConfiguration { config.addChangeListener(new LoggingLevelChangeListener(loggingSystem)); } -} \ No newline at end of file +} diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/listener/LoggingLevelChangeListener.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java similarity index 97% rename from starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/listener/LoggingLevelChangeListener.java rename to starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java index 6e03997d75014790d17643a030baff971035d0e3..9d42bbd928c2bfb4543065608e374307a76874ae 100644 --- a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/listener/LoggingLevelChangeListener.java +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/LoggingLevelChangeListener.java @@ -1,4 +1,4 @@ -package com.schbrain.framework.autoconfigure.logger.apollo.listener; +package com.schbrain.framework.autoconfigure.logger.apollo; import com.ctrip.framework.apollo.ConfigChangeListener; import com.ctrip.framework.apollo.enums.PropertyChangeType; @@ -75,4 +75,4 @@ public class LoggingLevelChangeListener implements ConfigChangeListener { return configuration; } -} \ No newline at end of file +} diff --git a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/listener/LoggerConfigLoadedEventListener.java b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/listener/LoggerConfigLoadedEventListener.java index cf5816a2000524959c47f0f743f97224e41b4aa1..96d13c1549c195620b603d86fcd15449aca8d364 100644 --- a/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/listener/LoggerConfigLoadedEventListener.java +++ b/starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/listener/LoggerConfigLoadedEventListener.java @@ -12,12 +12,12 @@ import com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent; import com.schbrain.framework.autoconfigure.apollo.event.listener.GenericConfigLoadedEventListener; import com.schbrain.framework.autoconfigure.logger.LoggerConfigurationInitializer; import com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties; +import org.apache.commons.lang3.StringUtils; import org.springframework.boot.context.logging.LoggingApplicationListener; import org.springframework.boot.logging.LogFile; import org.springframework.boot.logging.LoggingSystem; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.util.StringUtils; import java.io.IOException; import java.nio.file.Files; @@ -71,7 +71,7 @@ public class LoggerConfigLoadedEventListener extends GenericConfigLoadedEventLis } ConfigFile loggingConfiguration = ConfigService.getConfigFile(logConfigNamespace, ConfigFileFormat.XML); String content = loggingConfiguration.getContent(); - if (!StringUtils.hasText(content)) { + if (StringUtils.isBlank(content)) { log.warn("empty logging configuration, reinitialize loggingSystem is disabled"); return; } @@ -92,4 +92,4 @@ public class LoggerConfigLoadedEventListener extends GenericConfigLoadedEventLis log.debug(String.format("%s is set to %s", CONFIG_PROPERTY, loggerConfigurationLocation)); } -} \ No newline at end of file +} diff --git a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java index 48cff99aa229e8813dfb5cd45f3a023ded3c7405..f463bb3082c107f2f608ca21ab066054a4207b89 100644 --- a/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java +++ b/starters/oss-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/oss/util/OssUtils.java @@ -22,7 +22,7 @@ import com.schbrain.framework.autoconfigure.oss.exception.OssException; import com.schbrain.framework.autoconfigure.oss.properties.OssProperties; import com.schbrain.framework.autoconfigure.oss.properties.OssProperties.StsProperties; import lombok.extern.slf4j.Slf4j; -import org.springframework.util.StringUtils; +import org.apache.commons.lang3.StringUtils; import java.io.File; import java.io.InputStream; @@ -210,7 +210,7 @@ public class OssUtils { } public static String replaceWithDomain(String domain, String ossUrl) { - if (!StringUtils.hasText(domain)) { + if (StringUtils.isBlank(domain)) { return ossUrl; } domain = URLUtil.normalize(domain); @@ -268,7 +268,7 @@ public class OssUtils { ValidateUtils.notEmpty(bucket, "bucket can not be empty"); ValidateUtils.notEmpty(objectKeys, "objectKeys can not be empty"); String notExistKeys = objectKeys.stream().filter(key -> !exist(bucket, key)).collect(Collectors.joining(",")); - if (StringUtils.hasText(notExistKeys)) { + if (StringUtils.isNotBlank(notExistKeys)) { String errorMsg = StrFormatter.format("objectKeys:[{}] not exist", notExistKeys); return DeleteResult.fail(bucket, objectKeys, errorMsg); }