diff --git a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/interceptor/AuthenticationInterceptor.java b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/interceptor/AuthenticationInterceptor.java index 6e02f1fa1..62d83e196 100644 --- a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/interceptor/AuthenticationInterceptor.java +++ b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/interceptor/AuthenticationInterceptor.java @@ -8,11 +8,11 @@ import com.tencent.supersonic.common.util.S2ThreadContext; import lombok.extern.slf4j.Slf4j; import org.apache.catalina.connector.RequestFacade; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.apache.tomcat.util.http.MimeHeaders; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest; import org.springframework.web.servlet.HandlerInterceptor; + import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Field; import java.util.Arrays; @@ -33,7 +33,7 @@ public abstract class AuthenticationInterceptor implements HandlerInterceptor { protected boolean isExcludedUri(String uri) { String excludePathStr = authenticationConfig.getExcludePath(); - if (Strings.isEmpty(excludePathStr)) { + if (StringUtils.isEmpty(excludePathStr)) { return false; } List excludePaths = Arrays.asList(excludePathStr.split(",")); @@ -45,7 +45,7 @@ public abstract class AuthenticationInterceptor implements HandlerInterceptor { protected boolean isIncludedUri(String uri) { String includePathStr = authenticationConfig.getIncludePath(); - if (Strings.isEmpty(includePathStr)) { + if (StringUtils.isEmpty(includePathStr)) { return false; } List includePaths = Arrays.asList(includePathStr.split(",")); diff --git a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java index 68649bc82..0e7f3ab8a 100644 --- a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java +++ b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java @@ -9,7 +9,6 @@ import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Component; import javax.crypto.spec.SecretKeySpec; @@ -128,7 +127,6 @@ public class UserTokenUtils { return claims; } - @NotNull private static String getTokenString(String token) { return token.startsWith(TOKEN_PREFIX) ? token.substring(token.indexOf(TOKEN_PREFIX) + TOKEN_PREFIX.length()).trim() : token.trim(); diff --git a/auth/authorization/src/main/java/com/tencent/supersonic/auth/authorization/service/AuthServiceImpl.java b/auth/authorization/src/main/java/com/tencent/supersonic/auth/authorization/service/AuthServiceImpl.java index 8496e1f4a..008d6e970 100644 --- a/auth/authorization/src/main/java/com/tencent/supersonic/auth/authorization/service/AuthServiceImpl.java +++ b/auth/authorization/src/main/java/com/tencent/supersonic/auth/authorization/service/AuthServiceImpl.java @@ -1,27 +1,28 @@ package com.tencent.supersonic.auth.authorization.service; -import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.gson.Gson; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.auth.api.authentication.service.UserService; +import com.tencent.supersonic.auth.api.authorization.pojo.AuthGroup; import com.tencent.supersonic.auth.api.authorization.pojo.AuthRes; import com.tencent.supersonic.auth.api.authorization.pojo.AuthResGrp; +import com.tencent.supersonic.auth.api.authorization.pojo.AuthRule; import com.tencent.supersonic.auth.api.authorization.pojo.DimensionFilter; import com.tencent.supersonic.auth.api.authorization.request.QueryAuthResReq; import com.tencent.supersonic.auth.api.authorization.response.AuthorizedResourceResp; import com.tencent.supersonic.auth.api.authorization.service.AuthService; -import com.tencent.supersonic.auth.api.authorization.pojo.AuthGroup; -import com.tencent.supersonic.auth.api.authorization.pojo.AuthRule; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.Map; -import java.util.ArrayList; import java.util.stream.Collectors; @Service @@ -117,7 +118,8 @@ public class AuthServiceImpl implements AuthService { if (!CollectionUtils.isEmpty(authGroups)) { for (AuthGroup group : authGroups) { if (group.getDimensionFilters() != null - && group.getDimensionFilters().stream().anyMatch(expr -> !Strings.isNullOrEmpty(expr))) { + && group.getDimensionFilters().stream().anyMatch(expr -> + !StringUtils.isEmpty(expr))) { DimensionFilter df = new DimensionFilter(); df.setDescription(group.getDimensionFilterDescription()); df.setExpressions(group.getDimensionFilters()); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/PluginRepositoryImpl.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/PluginRepositoryImpl.java index 058272529..dd161d387 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/PluginRepositoryImpl.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/persistence/repository/impl/PluginRepositoryImpl.java @@ -6,7 +6,7 @@ import com.tencent.supersonic.chat.server.persistence.mapper.PluginDOMapper; import com.tencent.supersonic.chat.server.persistence.repository.PluginRepository; import com.tencent.supersonic.common.util.ContextUtils; import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import java.util.ArrayList; @@ -39,7 +39,7 @@ public class PluginRepositoryImpl implements PluginRepository { for (PluginDO pluginDO : pluginDOS) { String pattern = pluginDO.getPattern(); - if (Strings.isNotEmpty(pattern)) { + if (StringUtils.isNotEmpty(pattern)) { Pattern pluginPattern = Pattern.compile(pattern); Matcher pluginMatcher = pluginPattern.matcher(queryText); diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/ChatConfigHelper.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/ChatConfigHelper.java index 5b8735d48..82f5cdb55 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/ChatConfigHelper.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/ChatConfigHelper.java @@ -1,10 +1,6 @@ package com.tencent.supersonic.chat.server.util; -import static com.tencent.supersonic.common.pojo.Constants.ADMIN_LOWER; - import com.tencent.supersonic.auth.api.authentication.pojo.User; -import com.tencent.supersonic.headless.api.pojo.DataSetSchema; -import com.tencent.supersonic.headless.api.pojo.SchemaElement; import com.tencent.supersonic.chat.api.pojo.request.ChatAggConfigReq; import com.tencent.supersonic.chat.api.pojo.request.ChatConfigBaseReq; import com.tencent.supersonic.chat.api.pojo.request.ChatConfigEditReqReq; @@ -17,16 +13,21 @@ import com.tencent.supersonic.chat.server.persistence.dataobject.ChatConfigDO; import com.tencent.supersonic.common.pojo.RecordInfo; import com.tencent.supersonic.common.pojo.enums.StatusEnum; import com.tencent.supersonic.common.util.JsonUtil; +import com.tencent.supersonic.headless.api.pojo.DataSetSchema; +import com.tencent.supersonic.headless.api.pojo.SchemaElement; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; -import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; + +import static com.tencent.supersonic.common.pojo.Constants.ADMIN_LOWER; @Component @@ -37,7 +38,7 @@ public class ChatConfigHelper { ChatConfig chatConfig = new ChatConfig(); BeanUtils.copyProperties(extendBaseCmd, chatConfig); RecordInfo recordInfo = new RecordInfo(); - String creator = (Objects.isNull(user) || Strings.isEmpty(user.getName())) ? ADMIN_LOWER : user.getName(); + String creator = (Objects.isNull(user) || StringUtils.isEmpty(user.getName())) ? ADMIN_LOWER : user.getName(); recordInfo.createdBy(creator); chatConfig.setRecordInfo(recordInfo); chatConfig.setStatus(StatusEnum.ONLINE); @@ -49,7 +50,7 @@ public class ChatConfigHelper { BeanUtils.copyProperties(extendEditCmd, chatConfig); RecordInfo recordInfo = new RecordInfo(); - String user = (Objects.isNull(facadeUser) || Strings.isEmpty(facadeUser.getName())) + String user = (Objects.isNull(facadeUser) || StringUtils.isEmpty(facadeUser.getName())) ? ADMIN_LOWER : facadeUser.getName(); recordInfo.updatedBy(user); chatConfig.setRecordInfo(recordInfo); @@ -120,11 +121,11 @@ public class ChatConfigHelper { chatConfigDescriptor.setUpdatedAt(chatConfigDO.getUpdatedAt()); - if (Strings.isEmpty(chatConfigDO.getChatAggConfig())) { + if (StringUtils.isEmpty(chatConfigDO.getChatAggConfig())) { chatConfigDescriptor.setChatAggConfig(generateEmptyChatAggConfigResp()); } - if (Strings.isEmpty(chatConfigDO.getChatDetailConfig())) { + if (StringUtils.isEmpty(chatConfigDO.getChatDetailConfig())) { chatConfigDescriptor.setChatDetailConfig(generateEmptyChatDetailConfigResp()); } return chatConfigDescriptor; diff --git a/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/SimilarQueryManager.java b/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/SimilarQueryManager.java index 6fcc1a929..1f5eb94ad 100644 --- a/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/SimilarQueryManager.java +++ b/chat/server/src/main/java/com/tencent/supersonic/chat/server/util/SimilarQueryManager.java @@ -14,7 +14,6 @@ import dev.langchain4j.store.embedding.TextSegmentConvert; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpEntity; @@ -116,7 +115,7 @@ public class SimilarQueryManager { } private ResponseEntity doRequest(String path, String jsonBody) { - if (Strings.isEmpty(embeddingConfig.getUrl())) { + if (StringUtils.isEmpty(embeddingConfig.getUrl())) { return ResponseEntity.of(Optional.empty()); } String url = embeddingConfig.getUrl() + path; diff --git a/common/pom.xml b/common/pom.xml index e3cdf84db..7b4232110 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -173,20 +173,6 @@ dev.langchain4j langchain4j-milvus - - - org.slf4j - slf4j-simple - - - org.apache.logging.log4j - log4j-slf4j-impl - - - org.apache.logging.log4j - log4j-to-slf4j - - dev.langchain4j @@ -196,11 +182,6 @@ dev.langchain4j langchain4j-embeddings-bge-small-zh - - org.apache.logging.log4j - log4j-api - ${apache.log4j.version} - dev.langchain4j langchain4j-embeddings diff --git a/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java b/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java index ba9276252..7c7dc0327 100644 --- a/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java +++ b/common/src/main/java/com/tencent/supersonic/common/util/DateModeUtils.java @@ -1,11 +1,11 @@ package com.tencent.supersonic.common.util; -import com.google.common.base.Strings; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.ItemDateResp; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -73,8 +73,8 @@ public class DateModeUtils { */ public String hasDataModeStr(ItemDateResp dateDate, DateConf dateInfo) { if (Objects.isNull(dateDate) - || Strings.isNullOrEmpty(dateDate.getStartDate()) - || Strings.isNullOrEmpty(dateDate.getStartDate()) + || StringUtils.isEmpty(dateDate.getStartDate()) + || StringUtils.isEmpty(dateDate.getStartDate()) ) { return String.format("(%s >= '%s' and %s <= '%s')", sysDateCol, dateInfo.getStartDate(), sysDateCol, dateInfo.getEndDate()); @@ -82,7 +82,7 @@ public class DateModeUtils { log.info("dateDate:{}", dateDate); } String dateFormatStr = dateDate.getDateFormat(); - if (Strings.isNullOrEmpty(dateFormatStr)) { + if (StringUtils.isEmpty(dateFormatStr)) { dateFormatStr = DAY_FORMAT; } DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormatStr); @@ -136,7 +136,7 @@ public class DateModeUtils { public ImmutablePair recentDay(ItemDateResp dateDate, DateConf dateInfo) { String dateFormatStr = dateDate.getDateFormat(); - if (Strings.isNullOrEmpty(dateFormatStr)) { + if (StringUtils.isEmpty(dateFormatStr)) { dateFormatStr = DAY_FORMAT; } DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormatStr); @@ -207,7 +207,7 @@ public class DateModeUtils { public ImmutablePair recentWeek(ItemDateResp dateDate, DateConf dateInfo) { String dateFormatStr = dateDate.getDateFormat(); - if (Strings.isNullOrEmpty(dateFormatStr)) { + if (StringUtils.isEmpty(dateFormatStr)) { dateFormatStr = DAY_FORMAT; } DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormatStr); diff --git a/common/src/main/java/com/tencent/supersonic/common/util/SqlFilterUtils.java b/common/src/main/java/com/tencent/supersonic/common/util/SqlFilterUtils.java index fad53b84e..a5c1731cc 100644 --- a/common/src/main/java/com/tencent/supersonic/common/util/SqlFilterUtils.java +++ b/common/src/main/java/com/tencent/supersonic/common/util/SqlFilterUtils.java @@ -1,23 +1,26 @@ package com.tencent.supersonic.common.util; +import com.tencent.supersonic.common.pojo.Constants; +import com.tencent.supersonic.common.pojo.Criterion; +import com.tencent.supersonic.common.pojo.Filter; +import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.StringJoiner; +import java.util.regex.Pattern; + import static com.tencent.supersonic.common.pojo.Constants.PARENTHESES_END; import static com.tencent.supersonic.common.pojo.Constants.PARENTHESES_START; import static com.tencent.supersonic.common.pojo.Constants.SPACE; import static com.tencent.supersonic.common.pojo.Constants.SYS_VAR; -import com.tencent.supersonic.common.pojo.Constants; -import com.tencent.supersonic.common.pojo.Criterion; -import com.tencent.supersonic.common.pojo.Filter; -import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.StringJoiner; -import java.util.regex.Pattern; -import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; +; @Component @@ -41,7 +44,7 @@ public class SqlFilterUtils { private List getFilterCol(Filter filter) { List filterCols = new ArrayList<>(); if (Filter.Relation.FILTER.equals(filter.getRelation())) { - if (Strings.isNotEmpty(filter.getBizName())) { + if (StringUtils.isNotEmpty(filter.getBizName())) { filterCols.add(filter.getBizName()); } } @@ -61,7 +64,7 @@ public class SqlFilterUtils { if (!CollectionUtils.isEmpty(filters)) { filters.stream() .forEach(filter -> { - if (Strings.isNotEmpty(dealFilter(filter, isBizName))) { + if (StringUtils.isNotEmpty(dealFilter(filter, isBizName))) { joiner.add(SPACE + dealFilter(filter, isBizName) + SPACE); } }); @@ -80,7 +83,7 @@ public class SqlFilterUtils { if (Objects.isNull(filter)) { return ""; } - if (Strings.isNotEmpty(filter.getBizName()) && filter.getBizName().endsWith(SYS_VAR)) { + if (StringUtils.isNotEmpty(filter.getBizName()) && filter.getBizName().endsWith(SYS_VAR)) { return ""; } StringBuilder condition = new StringBuilder(); diff --git a/common/src/main/java/dev/langchain4j/milvus/spring/MilvusAutoConfig.java b/common/src/main/java/dev/langchain4j/milvus/spring/MilvusAutoConfig.java index 194c0d328..eeb5e9626 100644 --- a/common/src/main/java/dev/langchain4j/milvus/spring/MilvusAutoConfig.java +++ b/common/src/main/java/dev/langchain4j/milvus/spring/MilvusAutoConfig.java @@ -13,7 +13,7 @@ import static dev.langchain4j.milvus.spring.Properties.PREFIX; public class MilvusAutoConfig { @Bean - @ConditionalOnProperty(PREFIX + ".embedding-store.url") + @ConditionalOnProperty(PREFIX + ".embedding-store.uri") EmbeddingStoreFactory milvusChatModel(Properties properties) { return new MilvusEmbeddingStoreFactory(properties); } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryStructReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryStructReq.java index 5854270fb..f64bd3abf 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryStructReq.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/QueryStructReq.java @@ -2,6 +2,7 @@ package com.tencent.supersonic.headless.api.pojo.request; import com.google.common.collect.Lists; +import com.tencent.supersonic.common.jsqlparser.SqlAddHelper; import com.tencent.supersonic.common.pojo.Aggregator; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.DateConf; @@ -12,11 +13,6 @@ import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.common.util.DateModeUtils; import com.tencent.supersonic.common.util.SqlFilterUtils; -import com.tencent.supersonic.common.jsqlparser.SqlAddHelper; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import lombok.Data; import lombok.extern.slf4j.Slf4j; import net.sf.jsqlparser.JSQLParserException; @@ -36,9 +32,13 @@ import net.sf.jsqlparser.statement.select.PlainSelect; import net.sf.jsqlparser.statement.select.SelectItem; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + @Data @Slf4j @@ -56,7 +56,7 @@ public class QueryStructReq extends SemanticQueryReq { public List getGroups() { if (!CollectionUtils.isEmpty(this.groups)) { - this.groups = groups.stream().filter(group -> !Strings.isEmpty(group)).collect(Collectors.toList()); + this.groups = groups.stream().filter(group -> !StringUtils.isEmpty(group)).collect(Collectors.toList()); } if (CollectionUtils.isEmpty(this.groups)) { diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/WhereCorrector.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/WhereCorrector.java index c26e80616..8bacfe1d5 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/WhereCorrector.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/corrector/WhereCorrector.java @@ -16,7 +16,6 @@ import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.expression.Expression; import net.sf.jsqlparser.parser.CCJSqlParserUtil; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.springframework.util.CollectionUtils; import java.util.HashMap; @@ -95,7 +94,7 @@ public class WhereCorrector extends BaseSemanticCorrector { for (SchemaElement dimension : dimensions) { if (Objects.isNull(dimension) - || Strings.isEmpty(dimension.getName()) + || StringUtils.isEmpty(dimension.getName()) || CollectionUtils.isEmpty(dimension.getSchemaValueMaps())) { continue; } @@ -104,15 +103,15 @@ public class WhereCorrector extends BaseSemanticCorrector { Map aliasAndBizNameToTechName = new HashMap<>(); for (SchemaValueMap valueMap : dimension.getSchemaValueMaps()) { - if (Objects.isNull(valueMap) || Strings.isEmpty(valueMap.getTechName())) { + if (Objects.isNull(valueMap) || StringUtils.isEmpty(valueMap.getTechName())) { continue; } - if (Strings.isNotEmpty(valueMap.getBizName())) { + if (StringUtils.isNotEmpty(valueMap.getBizName())) { aliasAndBizNameToTechName.put(valueMap.getBizName(), valueMap.getTechName()); } if (!CollectionUtils.isEmpty(valueMap.getAlias())) { valueMap.getAlias().stream().forEach(alias -> { - if (Strings.isNotEmpty(alias)) { + if (StringUtils.isNotEmpty(alias)) { aliasAndBizNameToTechName.put(alias, valueMap.getTechName()); } }); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/file/FileHandlerImpl.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/file/FileHandlerImpl.java index 56807f933..c61169651 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/file/FileHandlerImpl.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/knowledge/file/FileHandlerImpl.java @@ -4,7 +4,7 @@ import com.github.pagehelper.PageInfo; import com.tencent.supersonic.headless.api.pojo.request.DictValueReq; import com.tencent.supersonic.headless.api.pojo.response.DictValueResp; import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -125,7 +125,7 @@ public class FileHandlerImpl implements FileHandler { private DictValueResp convert2Resp(String lineStr) { DictValueResp dictValueResp = new DictValueResp(); - if (Strings.isNotEmpty(lineStr)) { + if (StringUtils.isNotEmpty(lineStr)) { String[] itemArray = lineStr.split("\\s+"); if (Objects.nonNull(itemArray) && itemArray.length >= 3) { dictValueResp.setValue(itemArray[0].replace("#", " ")); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/TimeRangeParser.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/TimeRangeParser.java index 8e95d97f1..8fe5c6168 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/TimeRangeParser.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/parser/rule/TimeRangeParser.java @@ -2,16 +2,16 @@ package com.tencent.supersonic.headless.chat.parser.rule; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.DateConf; +import com.tencent.supersonic.headless.chat.ChatContext; +import com.tencent.supersonic.headless.chat.QueryContext; +import com.tencent.supersonic.headless.chat.parser.SemanticParser; import com.tencent.supersonic.headless.chat.query.QueryManager; import com.tencent.supersonic.headless.chat.query.SemanticQuery; import com.tencent.supersonic.headless.chat.query.rule.RuleSemanticQuery; -import com.tencent.supersonic.headless.chat.parser.SemanticParser; -import com.tencent.supersonic.headless.chat.ChatContext; -import com.tencent.supersonic.headless.chat.QueryContext; import com.xkzhangsan.time.nlp.TimeNLP; import com.xkzhangsan.time.nlp.TimeNLPUtil; import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import java.text.DateFormat; import java.text.ParseException; @@ -23,6 +23,8 @@ import java.util.Stack; import java.util.regex.Matcher; import java.util.regex.Pattern; +; + /** * TimeRangeParser extracts time range specified in the user query * based on keyword matching. @@ -155,7 +157,7 @@ public class TimeRangeParser implements SemanticParser { days = days * num; info.setDateMode(DateConf.DateMode.RECENT); String detectWord = "θΏ‘" + num + zhPeriod; - if (Strings.isNotEmpty(m.group("periodStr"))) { + if (StringUtils.isNotEmpty(m.group("periodStr"))) { detectWord = m.group("periodStr"); } info.setDetectWord(detectWord); diff --git a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java index 69b619e32..ad7591d35 100644 --- a/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java +++ b/headless/chat/src/main/java/com/tencent/supersonic/headless/chat/utils/QueryReqBuilder.java @@ -20,7 +20,6 @@ import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq; import com.tencent.supersonic.headless.chat.query.QueryManager; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.util.CollectionUtils; @@ -73,7 +72,7 @@ public class QueryReqBuilder { private static List getFilters(Set queryFilters) { List dimensionFilters = queryFilters.stream() - .filter(chatFilter -> Strings.isNotEmpty(chatFilter.getBizName())) + .filter(chatFilter -> StringUtils.isNotEmpty(chatFilter.getBizName())) .map(chatFilter -> new Filter(chatFilter.getBizName(), chatFilter.getOperator(), chatFilter.getValue())) .collect(Collectors.toList()); return dimensionFilters; diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/cache/CaffeineCacheManager.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/cache/CaffeineCacheManager.java index ef4b416b6..d9cdc0dae 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/cache/CaffeineCacheManager.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/cache/CaffeineCacheManager.java @@ -4,7 +4,7 @@ package com.tencent.supersonic.headless.core.cache; import com.github.benmanes.caffeine.cache.Cache; import com.google.common.base.Joiner; import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Component; @@ -36,7 +36,7 @@ public class CaffeineCacheManager implements CacheManager { @Override public String generateCacheKey(String prefix, String body) { - if (Strings.isEmpty(prefix)) { + if (StringUtils.isEmpty(prefix)) { prefix = "-1"; } return Joiner.on(":").join(cacheCommonConfig.getCacheCommonApp(), cacheCommonConfig.getCacheCommonEnv(), diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/JdbcExecutor.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/JdbcExecutor.java index ca9ccb13d..181879933 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/JdbcExecutor.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/executor/JdbcExecutor.java @@ -7,11 +7,13 @@ import com.tencent.supersonic.headless.core.pojo.QueryStatement; import com.tencent.supersonic.headless.core.utils.ComponentFactory; import com.tencent.supersonic.headless.core.utils.SqlUtils; import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import java.util.Objects; +; + @Component("JdbcExecutor") @Slf4j public class JdbcExecutor implements QueryExecutor { @@ -34,7 +36,7 @@ public class JdbcExecutor implements QueryExecutor { } SqlUtils sqlUtils = ContextUtils.getBean(SqlUtils.class); - if (Strings.isEmpty(queryStatement.getSourceId())) { + if (StringUtils.isEmpty(queryStatement.getSourceId())) { log.warn("data base id is empty"); return null; } diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DefaultSemanticTranslator.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DefaultSemanticTranslator.java index f8ee2f888..a8a04f503 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DefaultSemanticTranslator.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DefaultSemanticTranslator.java @@ -1,6 +1,5 @@ package com.tencent.supersonic.headless.core.translator; -import com.google.common.base.Strings; import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.common.util.StringUtil; import com.tencent.supersonic.headless.api.pojo.MetricTable; @@ -64,8 +63,8 @@ public class DefaultSemanticTranslator implements SemanticTranslator { queryStatement.getMetricQueryParam().setNativeQuery(queryParam.getQueryType().isNativeAggQuery()); doParse(queryStatement); } - if (Strings.isNullOrEmpty(queryStatement.getSql()) - || Strings.isNullOrEmpty(queryStatement.getSourceId())) { + if (StringUtils.isEmpty(queryStatement.getSql()) + || StringUtils.isEmpty(queryStatement.getSourceId())) { throw new RuntimeException("parse Exception: " + queryStatement.getErrMsg()); } if (StringUtils.isNotBlank(queryStatement.getSql()) diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DetailQueryOptimizer.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DetailQueryOptimizer.java index 0eeef09ce..ae679b744 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DetailQueryOptimizer.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/DetailQueryOptimizer.java @@ -1,14 +1,15 @@ package com.tencent.supersonic.headless.core.translator; -import com.google.common.base.Strings; import com.tencent.supersonic.headless.api.pojo.QueryParam; import com.tencent.supersonic.headless.core.pojo.QueryStatement; -import java.util.Objects; -import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.util.Objects; +import java.util.stream.Collectors; + /** * Remove the default metric added by the system when the query only has dimensions */ @@ -20,7 +21,7 @@ public class DetailQueryOptimizer implements QueryOptimizer { public void rewrite(QueryStatement queryStatement) { QueryParam queryParam = queryStatement.getQueryParam(); String sqlRaw = queryStatement.getSql().trim(); - if (Strings.isNullOrEmpty(sqlRaw)) { + if (StringUtils.isEmpty(sqlRaw)) { throw new RuntimeException("sql is empty or null"); } log.debug("before handleNoMetric, sql:{}", sqlRaw); diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java index eac9952b7..e5b43de55 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/utils/SqlGenerateUtils.java @@ -1,12 +1,7 @@ package com.tencent.supersonic.headless.core.utils; -import static com.tencent.supersonic.common.pojo.Constants.DAY; -import static com.tencent.supersonic.common.pojo.Constants.DAY_FORMAT; -import static com.tencent.supersonic.common.pojo.Constants.JOIN_UNDERLINE; -import static com.tencent.supersonic.common.pojo.Constants.MONTH; -import static com.tencent.supersonic.common.pojo.Constants.UNDERLINE; -import static com.tencent.supersonic.common.pojo.Constants.WEEK; - +import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper; +import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.common.pojo.Aggregator; import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.ItemDateResp; @@ -15,8 +10,6 @@ import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum; import com.tencent.supersonic.common.util.DateModeUtils; import com.tencent.supersonic.common.util.SqlFilterUtils; import com.tencent.supersonic.common.util.StringUtil; -import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper; -import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.headless.api.pojo.Measure; import com.tencent.supersonic.headless.api.pojo.QueryParam; import com.tencent.supersonic.headless.api.pojo.enums.AggOption; @@ -27,6 +20,13 @@ import com.tencent.supersonic.headless.api.pojo.response.DimSchemaResp; import com.tencent.supersonic.headless.api.pojo.response.MetricResp; import com.tencent.supersonic.headless.api.pojo.response.MetricSchemaResp; import com.tencent.supersonic.headless.core.config.ExecutorConfig; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.apache.commons.lang3.tuple.Triple; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Collections; @@ -38,13 +38,15 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Triple; -import org.apache.logging.log4j.util.Strings; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; + +import static com.tencent.supersonic.common.pojo.Constants.DAY; +import static com.tencent.supersonic.common.pojo.Constants.DAY_FORMAT; +import static com.tencent.supersonic.common.pojo.Constants.JOIN_UNDERLINE; +import static com.tencent.supersonic.common.pojo.Constants.MONTH; +import static com.tencent.supersonic.common.pojo.Constants.UNDERLINE; +import static com.tencent.supersonic.common.pojo.Constants.WEEK; + +; /** * tools functions to analyze queryStructReq @@ -167,13 +169,13 @@ public class SqlGenerateUtils { private String mergeDateWhereClause(QueryParam queryParam, String whereClauseFromFilter, String whereFromDate) { - if (Strings.isNotEmpty(whereFromDate) && Strings.isNotEmpty(whereClauseFromFilter)) { + if (StringUtils.isNotEmpty(whereFromDate) && StringUtils.isNotEmpty(whereClauseFromFilter)) { return String.format("%s AND (%s)", whereFromDate, whereClauseFromFilter); - } else if (Strings.isEmpty(whereFromDate) && Strings.isNotEmpty(whereClauseFromFilter)) { + } else if (StringUtils.isEmpty(whereFromDate) && StringUtils.isNotEmpty(whereClauseFromFilter)) { return whereClauseFromFilter; - } else if (Strings.isNotEmpty(whereFromDate) && Strings.isEmpty(whereClauseFromFilter)) { + } else if (StringUtils.isNotEmpty(whereFromDate) && StringUtils.isEmpty(whereClauseFromFilter)) { return whereFromDate; - } else if (Objects.isNull(whereFromDate) && Strings.isEmpty(whereClauseFromFilter)) { + } else if (Objects.isNull(whereFromDate) && StringUtils.isEmpty(whereClauseFromFilter)) { log.info("the current date information is empty, enter the date initialization logic"); return dateModeUtils.defaultRecentDateInfo(queryParam.getDateInfo()); } @@ -182,8 +184,8 @@ public class SqlGenerateUtils { public String getDateWhereClause(DateConf dateInfo, ItemDateResp dateDate) { if (Objects.isNull(dateDate) - || Strings.isEmpty(dateDate.getStartDate()) - && Strings.isEmpty(dateDate.getEndDate())) { + || StringUtils.isEmpty(dateDate.getStartDate()) + && StringUtils.isEmpty(dateDate.getEndDate())) { if (dateInfo.getDateMode().equals(DateConf.DateMode.LIST)) { return dateModeUtils.listDateStr(dateDate, dateInfo); } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/DimValueAspect.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/DimValueAspect.java index b064b73ae..e93037f80 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/DimValueAspect.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/DimValueAspect.java @@ -1,14 +1,14 @@ package com.tencent.supersonic.headless.server.aspect; import com.google.common.collect.Lists; +import com.tencent.supersonic.common.jsqlparser.FieldExpression; +import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper; +import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.common.pojo.Filter; import com.tencent.supersonic.common.pojo.QueryColumn; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.exception.InvalidArgumentException; import com.tencent.supersonic.common.util.JsonUtil; -import com.tencent.supersonic.common.jsqlparser.FieldExpression; -import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper; -import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.headless.api.pojo.DimValueMap; import com.tencent.supersonic.headless.api.pojo.SchemaItem; import com.tencent.supersonic.headless.api.pojo.request.QuerySqlReq; @@ -18,16 +18,8 @@ import com.tencent.supersonic.headless.api.pojo.response.DimensionResp; import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp; import com.tencent.supersonic.headless.server.pojo.MetaFilter; import com.tencent.supersonic.headless.server.web.service.DimensionService; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; -import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; @@ -36,6 +28,14 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; + @Aspect @Component @Slf4j @@ -176,7 +176,7 @@ public class DimValueAspect { Map techAndBizPair = dimAndTechNameAndBizNamePair.get(bizName); if (!CollectionUtils.isEmpty(techAndBizPair) && techAndBizPair.containsKey(techName)) { String bizValueName = techAndBizPair.get(techName); - if (Strings.isNotEmpty(bizValueName)) { + if (StringUtils.isNotEmpty(bizValueName)) { line.put(bizName, bizValueName); } } @@ -255,12 +255,12 @@ public class DimValueAspect { if (needSkipDimValue(dimValueMap)) { continue; } - if (Strings.isNotEmpty(dimValueMap.getBizName())) { + if (StringUtils.isNotEmpty(dimValueMap.getBizName())) { aliasAndBizNameToTechName.put(dimValueMap.getBizName(), dimValueMap.getTechName()); } if (!CollectionUtils.isEmpty(dimValueMap.getAlias())) { dimValueMap.getAlias().stream().forEach(alias -> { - if (Strings.isNotEmpty(alias)) { + if (StringUtils.isNotEmpty(alias)) { aliasAndBizNameToTechName.put(alias, dimValueMap.getTechName()); } }); @@ -275,7 +275,7 @@ public class DimValueAspect { } private boolean needSkipDimValue(DimValueMap dimValueMap) { - return Objects.isNull(dimValueMap) || Strings.isEmpty(dimValueMap.getTechName()); + return Objects.isNull(dimValueMap) || StringUtils.isEmpty(dimValueMap.getTechName()); } private Map> getTechNameToBizName(List dimensions) { @@ -308,7 +308,7 @@ public class DimValueAspect { } private boolean needSkipDimension(DimensionResp dimension) { - return Objects.isNull(dimension) || Strings.isEmpty(dimension.getBizName()) || CollectionUtils.isEmpty( + return Objects.isNull(dimension) || StringUtils.isEmpty(dimension.getBizName()) || CollectionUtils.isEmpty( dimension.getDimValueMaps()); } } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/S2DataPermissionAspect.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/S2DataPermissionAspect.java index ed626b8e6..d748bcb1a 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/S2DataPermissionAspect.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/aspect/S2DataPermissionAspect.java @@ -2,7 +2,6 @@ package com.tencent.supersonic.headless.server.aspect; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.tencent.supersonic.auth.api.authentication.pojo.User; @@ -101,7 +100,7 @@ public class S2DataPermissionAspect { return joinPoint.proceed(); } User user = (User) objects[1]; - if (Objects.isNull(user) || Strings.isNullOrEmpty(user.getName())) { + if (Objects.isNull(user) || StringUtils.isEmpty(user.getName())) { throw new RuntimeException("please provide user information"); } List modelIds = getModelsInDataSet(queryReq); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/ClassRepositoryImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/ClassRepositoryImpl.java index 70deb580c..afb9dd8c7 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/ClassRepositoryImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/ClassRepositoryImpl.java @@ -6,7 +6,7 @@ import com.tencent.supersonic.headless.server.persistence.mapper.ClassMapper; import com.tencent.supersonic.headless.server.persistence.repository.ClassRepository; import com.tencent.supersonic.headless.server.pojo.ClassFilter; import org.apache.commons.collections.CollectionUtils; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import java.util.List; @@ -52,7 +52,7 @@ public class ClassRepositoryImpl implements ClassRepository { if (Objects.nonNull(filter.getDataSetId())) { wrapper.lambda().eq(ClassDO::getDataSetId, filter.getDataSetId()); } - if (Strings.isNotEmpty(filter.getType())) { + if (StringUtils.isNotEmpty(filter.getType())) { wrapper.lambda().eq(ClassDO::getType, filter.getType()); } if (CollectionUtils.isNotEmpty(filter.getIds())) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/StatRepositoryImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/StatRepositoryImpl.java index ffac78b87..81969f9fa 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/StatRepositoryImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/repository/impl/StatRepositoryImpl.java @@ -10,7 +10,7 @@ import com.tencent.supersonic.headless.server.persistence.mapper.StatMapper; import com.tencent.supersonic.headless.server.persistence.repository.StatRepository; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import java.util.ArrayList; @@ -70,7 +70,7 @@ public class StatRepositoryImpl implements StatRepository { } private void updateStatMapInfo(Map map, String dimensions, String type, Long dataSetId) { - if (Strings.isNotEmpty(dimensions)) { + if (StringUtils.isNotEmpty(dimensions)) { try { List dimensionList = mapper.readValue(dimensions, new TypeReference>() { }); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java index cd0590267..e49b1137e 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DataSetSchemaBuilder.java @@ -13,7 +13,7 @@ import com.tencent.supersonic.headless.api.pojo.response.DataSetSchemaResp; import com.tencent.supersonic.headless.api.pojo.response.DimSchemaResp; import com.tencent.supersonic.headless.api.pojo.response.MetricSchemaResp; import com.tencent.supersonic.headless.api.pojo.response.TermResp; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.util.CollectionUtils; @@ -180,7 +180,7 @@ public class DataSetSchemaBuilder { List dimValueMaps = dim.getDimValueMaps(); if (!CollectionUtils.isEmpty(dimValueMaps)) { for (DimValueMap dimValueMap : dimValueMaps) { - if (Strings.isNotEmpty(dimValueMap.getBizName())) { + if (StringUtils.isNotEmpty(dimValueMap.getBizName())) { dimValueAlias.add(dimValueMap.getBizName()); } if (!CollectionUtils.isEmpty(dimValueMap.getAlias())) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java index f72e34c53..2dad5aa79 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DictUtils.java @@ -1,12 +1,5 @@ package com.tencent.supersonic.headless.server.utils; -import static com.tencent.supersonic.common.pojo.Constants.AND_UPPER; -import static com.tencent.supersonic.common.pojo.Constants.APOSTROPHE; -import static com.tencent.supersonic.common.pojo.Constants.COMMA; -import static com.tencent.supersonic.common.pojo.Constants.POUND; -import static com.tencent.supersonic.common.pojo.Constants.SPACE; - -import com.google.common.base.Strings; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.common.pojo.Aggregator; import com.tencent.supersonic.common.pojo.Constants; @@ -33,13 +26,21 @@ import com.tencent.supersonic.headless.api.pojo.response.MetricResp; import com.tencent.supersonic.headless.api.pojo.response.ModelResp; import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp; import com.tencent.supersonic.headless.api.pojo.response.TagResp; +import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService; import com.tencent.supersonic.headless.server.persistence.dataobject.DictConfDO; import com.tencent.supersonic.headless.server.persistence.dataobject.DictTaskDO; import com.tencent.supersonic.headless.server.web.service.DimensionService; import com.tencent.supersonic.headless.server.web.service.MetricService; import com.tencent.supersonic.headless.server.web.service.ModelService; -import com.tencent.supersonic.headless.server.facade.service.SemanticLayerService; import com.tencent.supersonic.headless.server.web.service.TagMetaService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -52,12 +53,12 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.StringJoiner; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; + +import static com.tencent.supersonic.common.pojo.Constants.AND_UPPER; +import static com.tencent.supersonic.common.pojo.Constants.APOSTROPHE; +import static com.tencent.supersonic.common.pojo.Constants.COMMA; +import static com.tencent.supersonic.common.pojo.Constants.POUND; +import static com.tencent.supersonic.common.pojo.Constants.SPACE; @Slf4j @Component @@ -112,7 +113,7 @@ public class DictUtils { taskDO.setConfig(JsonUtil.toString(dictItemResp.getConfig())); taskDO.setStatus(status.getStatus()); taskDO.setCreatedAt(createAt); - String creator = (Objects.isNull(user) || Strings.isNullOrEmpty(user.getName())) ? "" : user.getName(); + String creator = (Objects.isNull(user) || StringUtils.isEmpty(user.getName())) ? "" : user.getName(); taskDO.setCreatedBy(creator); return taskDO; } @@ -124,7 +125,7 @@ public class DictUtils { confDO.setConfig(JsonUtil.toString(itemValueReq.getConfig())); Date createAt = new Date(); confDO.setCreatedAt(createAt); - String creator = Strings.isNullOrEmpty(user.getName()) ? "" : user.getName(); + String creator = StringUtils.isEmpty(user.getName()) ? "" : user.getName(); confDO.setCreatedBy(creator); confDO.setStatus(itemValueReq.getStatus().name()); return confDO; @@ -180,7 +181,7 @@ public class DictUtils { metricObject = line.get(key); } } - if (!Strings.isNullOrEmpty(dimValue) && Objects.nonNull(metricObject)) { + if (!StringUtils.isEmpty(dimValue) && Objects.nonNull(metricObject)) { Long metric = Math.round(Double.parseDouble(metricObject.toString())); mergeMultivaluedValue(valueAndFrequencyPair, dimValue, metric); } @@ -201,7 +202,7 @@ public class DictUtils { } List whiteList = dictItemResp.getConfig().getWhiteList(); whiteList.forEach(white -> { - if (!Strings.isNullOrEmpty(white)) { + if (!StringUtils.isEmpty(white)) { white = white.replace(SPACE, POUND); } lines.add(String.format("%s %s %s", white, nature, itemValueWhiteFrequency)); @@ -214,7 +215,7 @@ public class DictUtils { } valueAndFrequencyPair.forEach((value, frequency) -> { - if (!Strings.isNullOrEmpty(value)) { + if (!StringUtils.isEmpty(value)) { value = value.replace(SPACE, POUND); } lines.add(String.format("%s %s %s", value, nature, frequency)); @@ -222,7 +223,7 @@ public class DictUtils { } private void mergeMultivaluedValue(Map valueAndFrequencyPair, String dimValue, Long metric) { - if (org.apache.logging.log4j.util.Strings.isEmpty(dimValue)) { + if (StringUtils.isEmpty(dimValue)) { return; } Map tmp = new HashMap<>(); @@ -252,7 +253,7 @@ public class DictUtils { String sqlPattern = "select %s, %s from tbl %s group by %s order by %s desc limit %d"; String bizName = dictItemResp.getBizName(); String whereStr = generateWhereStr(dictItemResp); - String where = Strings.isNullOrEmpty(whereStr) ? "" : "WHERE" + whereStr; + String where = StringUtils.isEmpty(whereStr) ? "" : "WHERE" + whereStr; ItemValueConfig config = dictItemResp.getConfig(); Long limit = (Objects.isNull(config) || Objects.isNull(config.getLimit())) ? itemValueMaxCount : dictItemResp.getConfig().getLimit(); @@ -293,7 +294,7 @@ public class DictUtils { String sqlPattern = "select %s,count(1) from tbl %s group by %s order by count(1) desc limit %d"; String bizName = dictItemResp.getBizName(); String whereStr = generateWhereStr(dictItemResp); - String where = Strings.isNullOrEmpty(whereStr) ? "" : "WHERE" + whereStr; + String where = StringUtils.isEmpty(whereStr) ? "" : "WHERE" + whereStr; ItemValueConfig config = dictItemResp.getConfig(); Long limit = (Objects.isNull(config) || Objects.isNull(config.getLimit())) ? itemValueMaxCount : dictItemResp.getConfig().getLimit(); @@ -365,7 +366,7 @@ public class DictUtils { return new ArrayList<>(); } String whereStr = generateWhereStr(dictItemResp); - if (Strings.isNullOrEmpty(whereStr)) { + if (StringUtils.isEmpty(whereStr)) { return new ArrayList<>(); } Filter filter = new Filter("", FilterOperatorEnum.SQL_PART, whereStr); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java index ff6865429..8b74aee9e 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java @@ -12,7 +12,7 @@ import com.tencent.supersonic.headless.api.pojo.response.DimensionResp; import com.tencent.supersonic.headless.api.pojo.response.ModelResp; import com.tencent.supersonic.headless.api.pojo.response.DataSetResp; import com.tencent.supersonic.headless.server.persistence.dataobject.DimensionDO; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.util.CollectionUtils; @@ -76,10 +76,10 @@ public class DimensionConverter { } dimensionResp.setModelFilterSql( modelRespMap.getOrDefault(dimensionResp.getModelId(), new ModelResp()).getFilterSql()); - if (Strings.isNotEmpty(dimensionDO.getDimValueMaps())) { + if (StringUtils.isNotEmpty(dimensionDO.getDimValueMaps())) { dimensionResp.setDimValueMaps(JsonUtil.toList(dimensionDO.getDimValueMaps(), DimValueMap.class)); } - if (Strings.isNotEmpty(dimensionDO.getDataType())) { + if (StringUtils.isNotEmpty(dimensionDO.getDataType())) { dimensionResp.setDataType(DataTypeEnums.of(dimensionDO.getDataType())); } if (dimensionDO.getExt() != null) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java index a950a777b..4c8cb4a56 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryReqConverter.java @@ -1,14 +1,14 @@ package com.tencent.supersonic.headless.server.utils; +import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper; +import com.tencent.supersonic.common.jsqlparser.SqlSelectFunctionHelper; +import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.common.pojo.Aggregator; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum; -import com.tencent.supersonic.common.jsqlparser.SqlReplaceHelper; -import com.tencent.supersonic.common.jsqlparser.SqlSelectFunctionHelper; -import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.headless.api.pojo.Measure; import com.tencent.supersonic.headless.api.pojo.MetricTable; import com.tencent.supersonic.headless.api.pojo.QueryParam; @@ -31,7 +31,6 @@ import com.tencent.supersonic.headless.core.utils.SqlGenerateUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -160,7 +159,7 @@ public class QueryReqConverter { return AggOption.OUTER; } long defaultAggNullCnt = metricSchemas.stream() - .filter(m -> Objects.isNull(m.getDefaultAgg()) || Strings.isBlank(m.getDefaultAgg())).count(); + .filter(m -> Objects.isNull(m.getDefaultAgg()) || StringUtils.isBlank(m.getDefaultAgg())).count(); if (defaultAggNullCnt > 0) { log.info("getAggOption find null defaultAgg metric set to NATIVE"); return AggOption.OUTER; diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryRuleConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryRuleConverter.java index 3b20cbe7d..bdd90fc42 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryRuleConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/QueryRuleConverter.java @@ -7,7 +7,7 @@ import com.tencent.supersonic.headless.api.pojo.enums.QueryRuleType; import com.tencent.supersonic.headless.api.pojo.request.QueryRuleReq; import com.tencent.supersonic.headless.api.pojo.response.QueryRuleResp; import com.tencent.supersonic.headless.server.persistence.dataobject.QueryRuleDO; -import org.apache.directory.api.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import java.util.ArrayList; @@ -33,7 +33,7 @@ public class QueryRuleConverter { BeanUtils.copyProperties(queryRuleDO, queryRuleResp); queryRuleResp.setRuleType(QueryRuleType.valueOf(queryRuleDO.getRuleType())); queryRuleResp.setRule(JsonUtil.toObject(queryRuleDO.getRule(), RuleInfo.class)); - queryRuleResp.setAction(Strings.isEmpty(queryRuleDO.getAction()) ? new ActionInfo() : + queryRuleResp.setAction(StringUtils.isEmpty(queryRuleDO.getAction()) ? new ActionInfo() : JsonUtil.toObject(queryRuleDO.getAction(), ActionInfo.class)); queryRuleResp.setExt(JsonUtil.toMap(queryRuleDO.getExt(), String.class, String.class)); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/StatUtils.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/StatUtils.java index 6e091cddd..e1c5d674e 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/StatUtils.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/StatUtils.java @@ -4,13 +4,13 @@ import com.alibaba.ttl.TransmittableThreadLocal; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.tencent.supersonic.auth.api.authentication.pojo.User; +import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.common.pojo.enums.TaskStatusEnum; import com.tencent.supersonic.common.util.SqlFilterUtils; -import com.tencent.supersonic.common.jsqlparser.SqlSelectHelper; import com.tencent.supersonic.headless.api.pojo.QueryStat; import com.tencent.supersonic.headless.api.pojo.SchemaItem; -import com.tencent.supersonic.headless.api.pojo.enums.QueryOptMode; import com.tencent.supersonic.headless.api.pojo.enums.QueryMethod; +import com.tencent.supersonic.headless.api.pojo.enums.QueryOptMode; import com.tencent.supersonic.headless.api.pojo.enums.QueryTypeBack; import com.tencent.supersonic.headless.api.pojo.request.ItemUseReq; import com.tencent.supersonic.headless.api.pojo.request.QueryMultiStructReq; @@ -22,7 +22,7 @@ import com.tencent.supersonic.headless.api.pojo.response.ItemUseResp; import com.tencent.supersonic.headless.server.persistence.repository.StatRepository; import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; @@ -33,6 +33,8 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; +; + @Component @Slf4j @@ -217,7 +219,7 @@ public class StatUtils { } private String getUserName(User facadeUser) { - return (Objects.nonNull(facadeUser) && Strings.isNotEmpty(facadeUser.getName())) ? facadeUser.getName() + return (Objects.nonNull(facadeUser) && StringUtils.isNotEmpty(facadeUser.getName())) ? facadeUser.getName() : "Admin"; } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/TagObjectConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/TagObjectConverter.java index ff7856037..632cca930 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/TagObjectConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/TagObjectConverter.java @@ -4,7 +4,7 @@ import com.tencent.supersonic.common.util.JsonUtil; import com.tencent.supersonic.headless.api.pojo.request.TagObjectReq; import com.tencent.supersonic.headless.api.pojo.response.TagObjectResp; import com.tencent.supersonic.headless.server.persistence.dataobject.TagObjectDO; -import org.apache.logging.log4j.util.Strings; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.util.CollectionUtils; @@ -24,7 +24,7 @@ public class TagObjectConverter { public static TagObjectResp convert2Resp(TagObjectDO tagObjectDO) { TagObjectResp tagObjectResp = new TagObjectResp(); BeanUtils.copyProperties(tagObjectDO, tagObjectResp); - if (Strings.isNotEmpty(tagObjectDO.getExt())) { + if (StringUtils.isNotEmpty(tagObjectDO.getExt())) { tagObjectResp.setExt(JsonUtil.objectToMapString(tagObjectDO.getExt())); } return tagObjectResp; diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/CollectServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/CollectServiceImpl.java index ee2cbdd2d..c70dabb98 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/CollectServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/CollectServiceImpl.java @@ -8,7 +8,6 @@ import com.tencent.supersonic.headless.server.persistence.mapper.CollectMapper; import com.tencent.supersonic.headless.server.web.service.CollectService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -26,7 +25,7 @@ public class CollectServiceImpl implements CollectService { @Override public Boolean collect(User user, CollectDO collectReq) { CollectDO collect = new CollectDO(); - collect.setType(Strings.isEmpty(collectReq.getType()) ? type : collectReq.getType()); + collect.setType(StringUtils.isEmpty(collectReq.getType()) ? type : collectReq.getType()); collect.setUsername(user.getName()); collect.setCollectId(collectReq.getCollectId()); collectMapper.insert(collect); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/ModelServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/ModelServiceImpl.java index c6ec89863..35a55a340 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/ModelServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/web/service/impl/ModelServiceImpl.java @@ -42,7 +42,6 @@ import com.tencent.supersonic.headless.server.utils.ModelConverter; import com.tencent.supersonic.headless.server.utils.NameCheckUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -264,10 +263,10 @@ public class ModelServiceImpl implements ModelService { String startDate1 = item.getStartDate(); String endDate1 = item.getEndDate(); List unavailableDateList1 = item.getUnavailableDateList(); - if (Strings.isNotEmpty(startDate1) && startDate1.compareTo(startDate) > 0) { + if (StringUtils.isNotEmpty(startDate1) && startDate1.compareTo(startDate) > 0) { startDate = startDate1; } - if (Strings.isNotEmpty(endDate1) && endDate1.compareTo(endDate) < 0) { + if (StringUtils.isNotEmpty(endDate1) && endDate1.compareTo(endDate) < 0) { endDate = endDate1; } if (!CollectionUtils.isEmpty(unavailableDateList1)) { diff --git a/launchers/standalone/pom.xml b/launchers/standalone/pom.xml index e9f56badc..39dd346ac 100644 --- a/launchers/standalone/pom.xml +++ b/launchers/standalone/pom.xml @@ -84,6 +84,35 @@ spring-boot-starter-test test + + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.14.1 + test + + + * + * + + + + + + org.slf4j + slf4j-reload4j + 1.7.36 + test + + + * + * + + + + + diff --git a/pom.xml b/pom.xml index 5c0ad69c5..79bf0c622 100644 --- a/pom.xml +++ b/pom.xml @@ -1,7 +1,7 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.tencent.supersonic @@ -32,7 +32,6 @@ 8 8 UTF-8 - 2.17.1 4.7 6.1.0 2.1.0 @@ -199,42 +198,16 @@ dev.langchain4j langchain4j-dashscope ${langchain4j.version} - - - org.slf4j - slf4j-simple - - dev.langchain4j langchain4j-milvus ${langchain4j.version} - - - org.slf4j - slf4j-simple - - - org.apache.logging.log4j - log4j-slf4j-impl - - - org.apache.logging.log4j - log4j-to-slf4j - - dev.langchain4j langchain4j-chatglm ${langchain4j.version} - - - org.slf4j - slf4j-simple - -