Skip to content

Commit

Permalink
feat: ignore category
Browse files Browse the repository at this point in the history
  • Loading branch information
rchen9 committed Jan 14, 2024
1 parent 3381f58 commit 297d4d5
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 5 deletions.
5 changes: 3 additions & 2 deletions arex-web-api/src/main/resources/application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
spring.jackson.default-property-inclusion=non_null
spring.jackson.date-format=yyyy-MM-dd HH:mm:sss
spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER
spring.main.lazy-initialization=true
spring.main.log-startup-info=false
#spring.main.lazy-initialization=true
#spring.main.log-startup-info=false
management.endpoints.web.exposure.include=*
management.security.enabled=false
management.info.git.mode=full
Expand All @@ -21,6 +21,7 @@ arex.config.default.schedule.offsetDays=1
arex.config.default.schedule.sendMaxQps=20
arex.config.default.schedule.targetEnv=
# system config
arex.compare.ignoreCategory=DynamicClass,Redis
arex.compare.ignoredTimePrecisionMillis=2000
arex.compare.nameToLower=true
arex.compare.nullEqualsEmpty=true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,24 @@

import com.arextest.config.model.dto.application.ApplicationOperationConfiguration;
import com.arextest.config.repository.ConfigRepositoryProvider;
import com.arextest.config.repository.impl.ApplicationOperationConfigurationRepositoryImpl;
import com.arextest.model.mock.MockCategoryType;
import com.arextest.web.core.business.config.application.ApplicationOperationConfigurableHandler;
import com.arextest.web.core.repository.AppContractRepository;
import com.arextest.web.core.repository.FSInterfaceRepository;
import com.arextest.web.model.contract.contracts.common.enums.CompareConfigType;
import com.arextest.web.model.contract.contracts.common.enums.ExpirationType;
import com.arextest.web.model.contract.contracts.config.replay.ComparisonIgnoreCategoryConfiguration;
import com.arextest.web.model.dto.filesystem.FSInterfaceDto;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
Expand All @@ -27,12 +33,16 @@ public class ComparisonIgnoreCategoryConfigurableHandler
private static final Set<String> CATEGORIES =
MockCategoryType.DEFAULTS.stream().map(MockCategoryType::getName)
.collect(java.util.stream.Collectors.toSet());

@Value("${arex.compare.ignoreCategory:DynamicClass,Redis}")
private String defaultIgnoreCategory;

@Resource
FSInterfaceRepository fsInterfaceRepository;
@Resource
ApplicationOperationConfigurableHandler applicationOperationConfigurableHandler;
@Resource
private ApplicationOperationConfigurationRepositoryImpl applicationOperationConfigurationRepository;
// @Resource
// private ApplicationOperationConfigurationRepositoryImpl applicationOperationConfigurationRepository;

protected ComparisonIgnoreCategoryConfigurableHandler(
@Autowired ConfigRepositoryProvider<ComparisonIgnoreCategoryConfiguration> repositoryProvider,
Expand Down Expand Up @@ -89,4 +99,21 @@ public boolean update(ComparisonIgnoreCategoryConfiguration configuration) {
checkBeforeModify(configuration);
return super.update(configuration);
}

@Override
protected List<ComparisonIgnoreCategoryConfiguration> createFromGlobalDefault(String appId) {
List<ComparisonIgnoreCategoryConfiguration> configurations = new ArrayList<>();
List<String> categories = Optional.ofNullable(defaultIgnoreCategory)
.map(item -> Arrays.asList(item.split(",")))
.orElse(Collections.emptyList());
categories.forEach(item -> {
ComparisonIgnoreCategoryConfiguration configuration = new ComparisonIgnoreCategoryConfiguration();
configuration.setAppId(appId);
configuration.setIgnoreCategory(Collections.singletonList(item));
configuration.setExpirationType(ExpirationType.PINNED_NEVER_EXPIRED.ordinal());
configuration.setCompareConfigType(CompareConfigType.REPLAY_MAIN.getCodeValue());
configurations.add(configuration);
});
return configurations;
}
}

0 comments on commit 297d4d5

Please sign in to comment.