Commit 77232905 authored by liaozan's avatar liaozan 🏀

Replace Spring' StringUtils with Commons-lang3 StringUtils

parent 02db5708
package com.schbrain.common.util; package com.schbrain.common.util;
import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.schbrain.common.util.support.excel.bean.ExcelReadResult; import com.schbrain.common.util.support.excel.bean.ExcelReadResult;
import com.schbrain.common.util.support.excel.exception.ExcelException; import com.schbrain.common.util.support.excel.exception.ExcelException;
...@@ -21,7 +22,7 @@ import java.util.Map; ...@@ -21,7 +22,7 @@ import java.util.Map;
* @author liaozan * @author liaozan
* @since 2022/1/6 * @since 2022/1/6
*/ */
public class ExcelUtils { public class ExcelUtils extends ExcelUtil {
// file // file
public static ExcelReadResult<Map<Integer, Object>> read(File excelFile) { public static ExcelReadResult<Map<Integer, Object>> read(File excelFile) {
...@@ -132,4 +133,4 @@ public class ExcelUtils { ...@@ -132,4 +133,4 @@ public class ExcelUtils {
return readListener.getReadResult(); return readListener.getReadResult();
} }
} }
\ No newline at end of file
...@@ -23,7 +23,7 @@ public class PortUtils { ...@@ -23,7 +23,7 @@ public class PortUtils {
portTmp++; portTmp++;
} }
} }
throw new BaseException("no available port."); throw new BaseException("No available port.");
} }
public static boolean isPortUsed(int port) { public static boolean isPortUsed(int port) {
...@@ -32,7 +32,7 @@ public class PortUtils { ...@@ -32,7 +32,7 @@ public class PortUtils {
try { try {
serverSocket = new ServerSocket(port); serverSocket = new ServerSocket(port);
} catch (IOException e) { } catch (IOException e) {
log.warn("current port[{}] is in use", port); log.warn("Current port[{}] is in use", port);
used = true; used = true;
} finally { } finally {
if (serverSocket != null) { if (serverSocket != null) {
......
package com.schbrain.common.util; package com.schbrain.common.util;
import org.apache.commons.lang3.StringUtils; 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.EvaluationContext;
import org.springframework.expression.Expression; import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser; import org.springframework.expression.ExpressionParser;
...@@ -16,8 +18,9 @@ public class SpelUtils { ...@@ -16,8 +18,9 @@ public class SpelUtils {
private static final ConcurrentHashMap<String, Expression> expressionCache = new ConcurrentHashMap<>(); private static final ConcurrentHashMap<String, Expression> expressionCache = new ConcurrentHashMap<>();
public static <T> T parse(String express, Map<String, Object> variables, Class<T> valueType) { public static <T> T parse(String express, Map<String, Object> variables, Class<T> valueType, BeanFactory beanFactory) {
StandardEvaluationContext ctx = new StandardEvaluationContext(); StandardEvaluationContext ctx = new StandardEvaluationContext();
ctx.setBeanResolver(new BeanFactoryResolver(beanFactory));
ctx.setVariables(variables); ctx.setVariables(variables);
return parse(express, ctx, valueType); return parse(express, ctx, valueType);
} }
...@@ -38,4 +41,4 @@ public class SpelUtils { ...@@ -38,4 +41,4 @@ public class SpelUtils {
return expression; return expression;
} }
} }
\ No newline at end of file
...@@ -3,6 +3,8 @@ package com.schbrain.common.enums; ...@@ -3,6 +3,8 @@ package com.schbrain.common.enums;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import java.util.Objects;
/** /**
* @author huangxi * @author huangxi
* @since 2022/08/23 * @since 2022/08/23
...@@ -23,12 +25,7 @@ public enum BooleanEnum { ...@@ -23,12 +25,7 @@ public enum BooleanEnum {
private final Integer value; private final Integer value;
public static boolean validate(Integer value) { public static boolean validate(Integer value) {
for (BooleanEnum booleanEnum : values()) { return Objects.equals(TRUE.value, value);
if (booleanEnum.getValue().equals(value)) {
return true;
}
}
return false;
} }
} }
\ No newline at end of file
...@@ -4,7 +4,6 @@ import cn.hutool.core.exceptions.ExceptionUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.schbrain.common.constants.ResponseActionConstants; import com.schbrain.common.constants.ResponseActionConstants;
import com.schbrain.common.exception.BaseException; import com.schbrain.common.exception.BaseException;
import com.schbrain.common.util.support.ValidationMessageBuilder;
import com.schbrain.common.web.result.ResponseDTO; import com.schbrain.common.web.result.ResponseDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
...@@ -31,6 +30,8 @@ import java.util.List; ...@@ -31,6 +30,8 @@ import java.util.List;
import static com.schbrain.common.constants.ResponseCodeConstants.PARAM_INVALID; import static com.schbrain.common.constants.ResponseCodeConstants.PARAM_INVALID;
import static com.schbrain.common.constants.ResponseCodeConstants.SERVER_ERROR; 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 * @author liaozan
...@@ -183,14 +184,14 @@ public class GlobalExceptionHandler { ...@@ -183,14 +184,14 @@ public class GlobalExceptionHandler {
/************************************* Parameter Binding Exception Handing *************************************/ /************************************* Parameter Binding Exception Handing *************************************/
@ExceptionHandler(BindException.class) @ExceptionHandler(BindException.class)
public ResponseDTO<String> handleBindException(BindException ex) { public ResponseDTO<String> handleBindException(BindException ex) {
String errorMsg = ValidationMessageBuilder.buildBindingErrorMsg(ex.getBindingResult()); String errorMsg = buildBindingErrorMsg(ex.getBindingResult());
log.error(errorMsg); log.error(errorMsg);
return buildResponse(ex, PARAM_INVALID, errorMsg); return buildResponse(ex, PARAM_INVALID, errorMsg);
} }
@ExceptionHandler(ConstraintViolationException.class) @ExceptionHandler(ConstraintViolationException.class)
public ResponseDTO<String> handleConstraintViolationException(ConstraintViolationException ex) { public ResponseDTO<String> handleConstraintViolationException(ConstraintViolationException ex) {
String errorMsg = ValidationMessageBuilder.buildConstraintViolationErrorMsg(ex.getConstraintViolations()); String errorMsg = buildConstraintViolationErrorMsg(ex.getConstraintViolations());
log.error(errorMsg); log.error(errorMsg);
return buildResponse(ex, PARAM_INVALID, errorMsg); return buildResponse(ex, PARAM_INVALID, errorMsg);
} }
...@@ -228,4 +229,4 @@ public class GlobalExceptionHandler { ...@@ -228,4 +229,4 @@ public class GlobalExceptionHandler {
log.error(exMsg, throwable); log.error(exMsg, throwable);
} }
} }
\ No newline at end of file
...@@ -3,9 +3,9 @@ package com.schbrain.common.web.servlet; ...@@ -3,9 +3,9 @@ package com.schbrain.common.web.servlet;
import cn.hutool.core.text.CharPool; import cn.hutool.core.text.CharPool;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.web.servlet.filter.OrderedFilter; import org.springframework.boot.web.servlet.filter.OrderedFilter;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
import org.springframework.util.StringUtils;
import org.springframework.web.cors.CorsUtils; import org.springframework.web.cors.CorsUtils;
import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.util.ContentCachingRequestWrapper; import org.springframework.web.util.ContentCachingRequestWrapper;
...@@ -61,10 +61,10 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere ...@@ -61,10 +61,10 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere
String body = getRequestBody(request); String body = getRequestBody(request);
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.append("requestUri: ").append(method).append(CharPool.SPACE).append(requestUri); builder.append("requestUri: ").append(method).append(CharPool.SPACE).append(requestUri);
if (StringUtils.hasText(queryString)) { if (StringUtils.isNotBlank(queryString)) {
builder.append(", queryString: ").append(queryString); builder.append(", queryString: ").append(queryString);
} }
if (StringUtils.hasText(body)) { if (StringUtils.isNotBlank(body)) {
builder.append(", body: ").append(body); builder.append(", body: ").append(body);
} }
builder.append(", startTime: ").append(startTime); builder.append(", startTime: ").append(startTime);
...@@ -91,4 +91,4 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere ...@@ -91,4 +91,4 @@ public class RequestLoggingFilter extends OncePerRequestFilter implements Ordere
} }
} }
} }
\ No newline at end of file
package com.schbrain.common.web.support.concurrent; package com.schbrain.common.web.support.concurrent;
import cn.hutool.extra.spring.SpringUtil;
import com.schbrain.common.exception.BaseException; import com.schbrain.common.exception.BaseException;
import com.schbrain.common.util.ApplicationName; import com.schbrain.common.util.ApplicationName;
import com.schbrain.common.util.ParameterDiscoverUtils;
import com.schbrain.common.util.SpelUtils; import com.schbrain.common.util.SpelUtils;
import com.schbrain.common.web.utils.ServletUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.reflect.Advice; import org.aspectj.lang.reflect.Advice;
import org.aspectj.lang.reflect.MethodSignature; import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.BoundValueOperations; import org.springframework.data.redis.core.BoundValueOperations;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import static com.schbrain.common.util.ParameterDiscoverUtils.getMethodArgsMap;
/** /**
* @author liaozan * @author liaozan
* @see com.schbrain.common.web.support.concurrent.RateLimiter * @see com.schbrain.common.web.support.concurrent.RateLimiter
...@@ -39,11 +38,12 @@ public class RateLimitAspect { ...@@ -39,11 +38,12 @@ public class RateLimitAspect {
private final Map<Class<?>, RateLimitCacheKeyVariablesContributor> contributorMap = new ConcurrentHashMap<>(); private final Map<Class<?>, RateLimitCacheKeyVariablesContributor> contributorMap = new ConcurrentHashMap<>();
private final String keyPrefix; private final String keyPrefix;
private final BeanFactory beanFactory;
private final StringRedisTemplate stringRedisTemplate; private final StringRedisTemplate stringRedisTemplate;
public RateLimitAspect(StringRedisTemplate stringRedisTemplate) { public RateLimitAspect(StringRedisTemplate stringRedisTemplate, BeanFactory beanFactory) {
this.keyPrefix = ApplicationName.get(); this.keyPrefix = ApplicationName.get();
this.beanFactory = beanFactory;
this.stringRedisTemplate = stringRedisTemplate; this.stringRedisTemplate = stringRedisTemplate;
} }
...@@ -56,7 +56,7 @@ public class RateLimitAspect { ...@@ -56,7 +56,7 @@ public class RateLimitAspect {
protected void doRateLimit(RateLimiter rateLimiter, JoinPoint joinPoint, MethodSignature signature) { protected void doRateLimit(RateLimiter rateLimiter, JoinPoint joinPoint, MethodSignature signature) {
Map<String, Object> variables = prepareVariables(rateLimiter, joinPoint, signature); Map<String, Object> 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) { if (cacheKey == null) {
throw new BaseException("cacheKey should not be null"); throw new BaseException("cacheKey should not be null");
} }
...@@ -67,7 +67,7 @@ public class RateLimitAspect { ...@@ -67,7 +67,7 @@ public class RateLimitAspect {
try { try {
long accessCount = Optional.ofNullable(rateLimitOps.increment()).orElse(1L); long accessCount = Optional.ofNullable(rateLimitOps.increment()).orElse(1L);
if (accessCount > rateLimiter.permits()) { if (accessCount > rateLimiter.permits()) {
throw new BaseException("访问频次太快,请稍后再试。"); throw new BaseException("The access frequency is too fast, please try again later");
} }
if (accessCount <= 1) { if (accessCount <= 1) {
...@@ -81,27 +81,12 @@ public class RateLimitAspect { ...@@ -81,27 +81,12 @@ public class RateLimitAspect {
} }
} }
protected Map<String, Object> createEvaluationVariables(MethodSignature methodSignature, Object[] args) {
Map<String, Object> variables = new HashMap<>();
Map<String, Object> 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) { protected String formatCacheKey(String cacheKey) {
return "rateLimit:" + keyPrefix + ":" + cacheKey; return "rateLimit:" + keyPrefix + ":" + cacheKey;
} }
private Map<String, Object> prepareVariables(RateLimiter rateLimiter, JoinPoint joinPoint, MethodSignature signature) { private Map<String, Object> prepareVariables(RateLimiter rateLimiter, JoinPoint joinPoint, MethodSignature signature) {
Map<String, Object> variables = createEvaluationVariables(signature, joinPoint.getArgs()); Map<String, Object> variables = getMethodArgsMap(signature.getMethod(), joinPoint.getArgs());
Class<? extends RateLimitCacheKeyVariablesContributor> contributorClass = rateLimiter.contributor(); Class<? extends RateLimitCacheKeyVariablesContributor> contributorClass = rateLimiter.contributor();
if (contributorClass == null || contributorClass == NoOpRateLimitCacheKeyVariablesContributor.class) { if (contributorClass == null || contributorClass == NoOpRateLimitCacheKeyVariablesContributor.class) {
return variables; return variables;
...@@ -113,10 +98,10 @@ public class RateLimitAspect { ...@@ -113,10 +98,10 @@ public class RateLimitAspect {
contributorMap.put(contributorClass, contributor); contributorMap.put(contributorClass, contributor);
} }
Map<String, Object> contributeVariables = contributor.contribute(rateLimiter, joinPoint, signature); Map<String, Object> contributeVariables = contributor.contribute(rateLimiter, joinPoint, signature);
if (!CollectionUtils.isEmpty(contributeVariables)) { if (MapUtils.isNotEmpty(contributeVariables)) {
variables.putAll(contributeVariables); variables.putAll(contributeVariables);
} }
return variables; return variables;
} }
} }
\ No newline at end of file
package com.schbrain.common.web.support.concurrent; package com.schbrain.common.web.support.concurrent;
import org.aspectj.lang.reflect.MethodSignature;
import java.lang.annotation.*; import java.lang.annotation.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
...@@ -30,9 +28,7 @@ public @interface RateLimiter { ...@@ -30,9 +28,7 @@ public @interface RateLimiter {
int permits() default 3; int permits() default 3;
/** /**
* 缓存的 key,使用 spel 进行解析 * 缓存的 key,使用 spring el 进行解析
* <p>
* 可用的变量 {@link RateLimitAspect#createEvaluationVariables(MethodSignature, Object[])}
*/ */
String cacheKey(); String cacheKey();
...@@ -41,4 +37,4 @@ public @interface RateLimiter { ...@@ -41,4 +37,4 @@ public @interface RateLimiter {
*/ */
Class<? extends RateLimitCacheKeyVariablesContributor> contributor() default NoOpRateLimitCacheKeyVariablesContributor.class; Class<? extends RateLimitCacheKeyVariablesContributor> contributor() default NoOpRateLimitCacheKeyVariablesContributor.class;
} }
\ No newline at end of file
package com.schbrain.common.web.utils; package com.schbrain.common.web.utils;
import cn.hutool.extra.servlet.ServletUtil;
import com.schbrain.common.exception.BaseException; import com.schbrain.common.exception.BaseException;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
...@@ -12,7 +13,7 @@ import javax.servlet.http.HttpServletResponse; ...@@ -12,7 +13,7 @@ import javax.servlet.http.HttpServletResponse;
* @author liaozan * @author liaozan
* @since 2022/1/6 * @since 2022/1/6
*/ */
public class ServletUtils { public class ServletUtils extends ServletUtil {
public static HttpServletRequest getRequest() { public static HttpServletRequest getRequest() {
ServletRequestAttributes requestAttributes = getRequestAttributes(); ServletRequestAttributes requestAttributes = getRequestAttributes();
...@@ -35,4 +36,4 @@ public class ServletUtils { ...@@ -35,4 +36,4 @@ public class ServletUtils {
return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
} }
} }
\ No newline at end of file
...@@ -752,4 +752,4 @@ ...@@ -752,4 +752,4 @@
</profile> </profile>
</profiles> </profiles>
</project> </project>
\ No newline at end of file
...@@ -5,12 +5,12 @@ import com.schbrain.common.util.ApplicationName; ...@@ -5,12 +5,12 @@ import com.schbrain.common.util.ApplicationName;
import com.schbrain.common.util.EnvUtils; import com.schbrain.common.util.EnvUtils;
import com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor; import com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor;
import com.schbrain.framework.support.spring.defaults.DefaultPropertiesEnvironmentPostProcessor; import com.schbrain.framework.support.spring.defaults.DefaultPropertiesEnvironmentPostProcessor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.ConfigurableBootstrapContext; import org.springframework.boot.ConfigurableBootstrapContext;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.logging.DeferredLogFactory; import org.springframework.boot.logging.DeferredLogFactory;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.util.StringUtils;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
...@@ -109,21 +109,21 @@ public class ApolloConfigurationInitializerEnvironmentPostProcessor extends Logg ...@@ -109,21 +109,21 @@ public class ApolloConfigurationInitializerEnvironmentPostProcessor extends Logg
// {env}.meta // {env}.meta
String searchKey = fallbackKey; String searchKey = fallbackKey;
String apolloUrl = environment.getProperty(searchKey); String apolloUrl = environment.getProperty(searchKey);
if (StringUtils.hasText(apolloUrl)) { if (StringUtils.isNotBlank(apolloUrl)) {
return apolloUrl; return apolloUrl;
} }
// apollo.meta.{env} // apollo.meta.{env}
searchKey = APOLLO_META_KEY + "." + env; searchKey = APOLLO_META_KEY + "." + env;
apolloUrl = environment.getProperty(searchKey); apolloUrl = environment.getProperty(searchKey);
if (StringUtils.hasText(apolloUrl)) { if (StringUtils.isNotBlank(apolloUrl)) {
return apolloUrl; return apolloUrl;
} }
// apollo.meta // apollo.meta
searchKey = APOLLO_META_KEY; searchKey = APOLLO_META_KEY;
apolloUrl = environment.getProperty(searchKey); apolloUrl = environment.getProperty(searchKey);
if (StringUtils.hasText(apolloUrl)) { if (StringUtils.isNotBlank(apolloUrl)) {
return apolloUrl; return apolloUrl;
} }
...@@ -154,4 +154,4 @@ public class ApolloConfigurationInitializerEnvironmentPostProcessor extends Logg ...@@ -154,4 +154,4 @@ public class ApolloConfigurationInitializerEnvironmentPostProcessor extends Logg
} }
} }
} }
\ No newline at end of file
package com.schbrain.framework.autoconfigure.cache.provider.redis; 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.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
...@@ -23,9 +22,9 @@ public class RedisCacheConfiguration { ...@@ -23,9 +22,9 @@ public class RedisCacheConfiguration {
@Bean @Bean
@ConditionalOnBean(RedisConnectionFactory.class) @ConditionalOnBean(RedisConnectionFactory.class)
@ConditionalOnMissingBean(RedisCacheProvider.class) @ConditionalOnMissingBean(RedisCacheProvider.class)
public CacheProvider redisCacheProvider(RedisConnectionFactory redisConnectionFactory, ObjectProvider<StringRedisTemplate> redisTemplate) { public RedisCacheProvider redisCacheProvider(RedisConnectionFactory redisConnectionFactory, ObjectProvider<StringRedisTemplate> redisTemplate) {
StringRedisTemplate stringRedisTemplate = redisTemplate.getIfAvailable(() -> new StringRedisTemplate(redisConnectionFactory)); StringRedisTemplate stringRedisTemplate = redisTemplate.getIfAvailable(() -> new StringRedisTemplate(redisConnectionFactory));
return new RedisCacheProvider(stringRedisTemplate); return new RedisCacheProvider(stringRedisTemplate);
} }
} }
\ No newline at end of file
...@@ -74,14 +74,10 @@ ...@@ -74,14 +74,10 @@
<groupId>org.apache.dubbo</groupId> <groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-serialization-hessian2</artifactId> <artifactId>dubbo-serialization-hessian2</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-serialization-fastjson2</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.apache.dubbo</groupId> <groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metadata-report-zookeeper</artifactId> <artifactId>dubbo-metadata-report-zookeeper</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -3,7 +3,6 @@ package com.schbrain.framework.autoconfigure.dubbo.filter; ...@@ -3,7 +3,6 @@ package com.schbrain.framework.autoconfigure.dubbo.filter;
import cn.hutool.core.exceptions.ExceptionUtil; import cn.hutool.core.exceptions.ExceptionUtil;
import com.schbrain.common.exception.BaseException; import com.schbrain.common.exception.BaseException;
import com.schbrain.common.exception.ParamInvalidException; import com.schbrain.common.exception.ParamInvalidException;
import com.schbrain.common.util.support.ValidationMessageBuilder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.constants.CommonConstants;
import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.common.extension.Activate;
...@@ -14,6 +13,8 @@ import org.apache.dubbo.rpc.service.GenericService; ...@@ -14,6 +13,8 @@ import org.apache.dubbo.rpc.service.GenericService;
import javax.validation.ConstraintViolationException; import javax.validation.ConstraintViolationException;
import java.util.Arrays; import java.util.Arrays;
import static com.schbrain.common.util.support.ValidationMessageBuilder.buildConstraintViolationErrorMsg;
/** /**
* @author liaozan * @author liaozan
* @since 2022/1/19 * @since 2022/1/19
...@@ -47,7 +48,7 @@ public class DubboExceptionFilter extends ExceptionFilter { ...@@ -47,7 +48,7 @@ public class DubboExceptionFilter extends ExceptionFilter {
protected ParamInvalidException createParamInvalidException(Invocation invocation, ConstraintViolationException cause) { protected ParamInvalidException createParamInvalidException(Invocation invocation, ConstraintViolationException cause) {
String serviceName = invocation.getInvoker().getInterface().getSimpleName(); String serviceName = invocation.getInvoker().getInterface().getSimpleName();
String methodName = invocation.getMethodName(); 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)); return new ParamInvalidException(String.format("%s.%s %s", serviceName, methodName, errorMsg));
} }
...@@ -62,4 +63,4 @@ public class DubboExceptionFilter extends ExceptionFilter { ...@@ -62,4 +63,4 @@ public class DubboExceptionFilter extends ExceptionFilter {
log.error("Catch rpc exception: {}, client: {}@{}, target: {}#{}, args: {}", errorMessage, remoteApplication, remoteHost, serviceName, methodName, arguments, exception); log.error("Catch rpc exception: {}, client: {}@{}, target: {}#{}, args: {}", errorMessage, remoteApplication, remoteHost, serviceName, methodName, arguments, exception);
} }
} }
\ No newline at end of file
...@@ -24,4 +24,4 @@ ...@@ -24,4 +24,4 @@
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -20,11 +20,11 @@ import net.logstash.logback.appender.LogstashTcpSocketAppender; ...@@ -20,11 +20,11 @@ import net.logstash.logback.appender.LogstashTcpSocketAppender;
import net.logstash.logback.encoder.LogstashEncoder; import net.logstash.logback.encoder.LogstashEncoder;
import net.logstash.logback.fieldnames.ShortenedFieldNames; import net.logstash.logback.fieldnames.ShortenedFieldNames;
import org.apache.commons.collections4.IteratorUtils; import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.boot.cloud.CloudPlatform; import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.List; import java.util.List;
...@@ -86,7 +86,7 @@ public class LoggerConfigurationInitializer { ...@@ -86,7 +86,7 @@ public class LoggerConfigurationInitializer {
} }
if (properties.isEnableJsonLogWriteToLogstash() || EnvUtils.runningOnCloudPlatform(environment)) { 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"); log.warn("logstash address is unset, will NOT write log to logstash");
return; return;
} }
...@@ -158,4 +158,4 @@ public class LoggerConfigurationInitializer { ...@@ -158,4 +158,4 @@ public class LoggerConfigurationInitializer {
return rollingPolicy; return rollingPolicy;
} }
} }
\ No newline at end of file
...@@ -2,11 +2,10 @@ package com.schbrain.framework.autoconfigure.logger.apollo; ...@@ -2,11 +2,10 @@ package com.schbrain.framework.autoconfigure.logger.apollo;
import com.ctrip.framework.apollo.Config; import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigService; import com.ctrip.framework.apollo.ConfigService;
import com.schbrain.framework.autoconfigure.logger.apollo.listener.LoggingLevelChangeListener;
import com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties; import com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.logging.LoggingSystem; import org.springframework.boot.logging.LoggingSystem;
import org.springframework.util.StringUtils;
/** /**
* 动态日志配置 * 动态日志配置
...@@ -23,7 +22,7 @@ public class DynamicLoggerConfiguration { ...@@ -23,7 +22,7 @@ public class DynamicLoggerConfiguration {
private void listenToLoggingLevelChange(LoggingSystem loggingSystem, LoggerProperties loggerProperties) { private void listenToLoggingLevelChange(LoggingSystem loggingSystem, LoggerProperties loggerProperties) {
String loggerNamespace = loggerProperties.getNamespace(); String loggerNamespace = loggerProperties.getNamespace();
if (!StringUtils.hasText(loggerNamespace)) { if (StringUtils.isBlank(loggerNamespace)) {
log.debug("logger level reload is disabled"); log.debug("logger level reload is disabled");
return; return;
} }
...@@ -37,4 +36,4 @@ public class DynamicLoggerConfiguration { ...@@ -37,4 +36,4 @@ public class DynamicLoggerConfiguration {
config.addChangeListener(new LoggingLevelChangeListener(loggingSystem)); config.addChangeListener(new LoggingLevelChangeListener(loggingSystem));
} }
} }
\ No newline at end of file
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.ConfigChangeListener;
import com.ctrip.framework.apollo.enums.PropertyChangeType; import com.ctrip.framework.apollo.enums.PropertyChangeType;
...@@ -75,4 +75,4 @@ public class LoggingLevelChangeListener implements ConfigChangeListener { ...@@ -75,4 +75,4 @@ public class LoggingLevelChangeListener implements ConfigChangeListener {
return configuration; return configuration;
} }
} }
\ No newline at end of file
...@@ -12,12 +12,12 @@ import com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent; ...@@ -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.apollo.event.listener.GenericConfigLoadedEventListener;
import com.schbrain.framework.autoconfigure.logger.LoggerConfigurationInitializer; import com.schbrain.framework.autoconfigure.logger.LoggerConfigurationInitializer;
import com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties; 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.context.logging.LoggingApplicationListener;
import org.springframework.boot.logging.LogFile; import org.springframework.boot.logging.LogFile;
import org.springframework.boot.logging.LoggingSystem; import org.springframework.boot.logging.LoggingSystem;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.util.StringUtils;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
...@@ -71,7 +71,7 @@ public class LoggerConfigLoadedEventListener extends GenericConfigLoadedEventLis ...@@ -71,7 +71,7 @@ public class LoggerConfigLoadedEventListener extends GenericConfigLoadedEventLis
} }
ConfigFile loggingConfiguration = ConfigService.getConfigFile(logConfigNamespace, ConfigFileFormat.XML); ConfigFile loggingConfiguration = ConfigService.getConfigFile(logConfigNamespace, ConfigFileFormat.XML);
String content = loggingConfiguration.getContent(); String content = loggingConfiguration.getContent();
if (!StringUtils.hasText(content)) { if (StringUtils.isBlank(content)) {
log.warn("empty logging configuration, reinitialize loggingSystem is disabled"); log.warn("empty logging configuration, reinitialize loggingSystem is disabled");
return; return;
} }
...@@ -92,4 +92,4 @@ public class LoggerConfigLoadedEventListener extends GenericConfigLoadedEventLis ...@@ -92,4 +92,4 @@ public class LoggerConfigLoadedEventListener extends GenericConfigLoadedEventLis
log.debug(String.format("%s is set to %s", CONFIG_PROPERTY, loggerConfigurationLocation)); log.debug(String.format("%s is set to %s", CONFIG_PROPERTY, loggerConfigurationLocation));
} }
} }
\ No newline at end of file
...@@ -22,7 +22,7 @@ import com.schbrain.framework.autoconfigure.oss.exception.OssException; ...@@ -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;
import com.schbrain.framework.autoconfigure.oss.properties.OssProperties.StsProperties; import com.schbrain.framework.autoconfigure.oss.properties.OssProperties.StsProperties;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils; import org.apache.commons.lang3.StringUtils;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
...@@ -210,7 +210,7 @@ public class OssUtils { ...@@ -210,7 +210,7 @@ public class OssUtils {
} }
public static String replaceWithDomain(String domain, String ossUrl) { public static String replaceWithDomain(String domain, String ossUrl) {
if (!StringUtils.hasText(domain)) { if (StringUtils.isBlank(domain)) {
return ossUrl; return ossUrl;
} }
domain = URLUtil.normalize(domain); domain = URLUtil.normalize(domain);
...@@ -268,7 +268,7 @@ public class OssUtils { ...@@ -268,7 +268,7 @@ public class OssUtils {
ValidateUtils.notEmpty(bucket, "bucket can not be empty"); ValidateUtils.notEmpty(bucket, "bucket can not be empty");
ValidateUtils.notEmpty(objectKeys, "objectKeys can not be empty"); ValidateUtils.notEmpty(objectKeys, "objectKeys can not be empty");
String notExistKeys = objectKeys.stream().filter(key -> !exist(bucket, key)).collect(Collectors.joining(",")); 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); String errorMsg = StrFormatter.format("objectKeys:[{}] not exist", notExistKeys);
return DeleteResult.fail(bucket, objectKeys, errorMsg); return DeleteResult.fail(bucket, objectKeys, errorMsg);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment