Skip to content

Commit

Permalink
feat: adjust function position (#136)
Browse files Browse the repository at this point in the history
Co-authored-by: wildeslam <[email protected]>
  • Loading branch information
wildeslam and wildeslam authored Dec 21, 2023
1 parent db437c1 commit 606527a
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 38 deletions.
2 changes: 1 addition & 1 deletion arex-storage-config/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<parent>
<artifactId>arex-storage-service</artifactId>
<groupId>com.arextest</groupId>
<version>1.0.53</version>
<version>1.0.54</version>
</parent>

<properties>
Expand Down
2 changes: 1 addition & 1 deletion arex-storage-model/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<artifactId>arex-storage-service</artifactId>
<groupId>com.arextest</groupId>
<version>1.0.53</version>
<version>1.0.54</version>
</parent>

<profiles>
Expand Down
2 changes: 1 addition & 1 deletion arex-storage-web-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
<parent>
<artifactId>arex-storage-service</artifactId>
<groupId>com.arextest</groupId>
<version>1.0.53</version>
<version>1.0.54</version>
</parent>

<profiles>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@


public final class CacheKeyUtils {
public static final String DASH = "_";
// private static final int SERVICE_TYPE_NORMAL = 4;
public static final String SERVICE_MAPPINGS_PREFIX = "service_mappings_";


public static final byte[] EMPTY_BYTE = new byte[]{};

Expand Down
Original file line number Diff line number Diff line change
@@ -1,30 +1,25 @@
package com.arextest.storage.service;

import static com.arextest.storage.cache.CacheKeyUtils.DASH;
import static com.arextest.storage.cache.CacheKeyUtils.SERVICE_MAPPINGS_PREFIX;
import com.arextest.common.cache.CacheProvider;
import com.arextest.config.model.dto.StatusType;
import com.arextest.config.model.dto.application.ApplicationOperationConfiguration;
import com.arextest.config.model.dto.application.ApplicationOperationConfiguration.Fields;
import com.arextest.config.model.dto.application.ApplicationServiceConfiguration;
import com.arextest.config.repository.impl.ApplicationOperationConfigurationRepositoryImpl;
import com.arextest.config.repository.impl.ApplicationServiceConfigurationRepositoryImpl;
import com.arextest.model.mock.Mocker;
import com.arextest.storage.cache.CacheKeyUtils;
import com.arextest.storage.mock.MockResultContext;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.NotNull;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

@Slf4j
public class AutoDiscoveryEntryPointListener implements AgentWorkingListener {

private static final String DASH = "_";
// private static final int SERVICE_TYPE_NORMAL = 4;
private static final String SERVICE_MAPPINGS_PREFIX = "service_mappings_";
private static final byte[] EMPTY_BYTE_ARRAY = CacheKeyUtils.toUtf8Bytes(StringUtils.EMPTY);
private final ApplicationServiceConfigurationRepositoryImpl serviceRepository;
private final ApplicationOperationConfigurationRepositoryImpl serviceOperationRepository;
Expand Down Expand Up @@ -83,28 +78,4 @@ public boolean onRecordSaving(Mocker instance) {
public boolean onRecordMocking(Mocker instance, MockResultContext context) {
return false;
}

public boolean removeAllCacheByAppId(String appId) {
byte[] appServiceKey = CacheKeyUtils.toUtf8Bytes(SERVICE_MAPPINGS_PREFIX + appId);
byte[] appServiceValue = cacheProvider.get(appServiceKey);
if (appServiceValue == null) {
return true;
}
String serviceId = CacheKeyUtils.fromUtf8Bytes(appServiceValue);
cacheProvider.remove(appServiceKey);

Map<String, Object> conditions = new HashMap<>();
conditions.put(Fields.appId, appId);
List<ApplicationOperationConfiguration> applicationOperationConfigurations =
serviceOperationRepository.queryByMultiCondition(conditions);

applicationOperationConfigurations.forEach(operation -> {
String operationName = operation.getOperationName();
String operationType = operation.getOperationType();
byte[] operationKey = CacheKeyUtils.toUtf8Bytes(SERVICE_MAPPINGS_PREFIX + serviceId + DASH
+ operationName + DASH + operationType);
cacheProvider.remove(operationKey);
});
return true;
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package com.arextest.storage.service.config;

import static com.arextest.storage.cache.CacheKeyUtils.DASH;
import static com.arextest.storage.cache.CacheKeyUtils.SERVICE_MAPPINGS_PREFIX;
import com.arextest.common.cache.CacheProvider;
import com.arextest.config.model.dto.StatusType;
import com.arextest.config.model.dto.application.ApplicationConfiguration;
import com.arextest.config.model.dto.application.ApplicationOperationConfiguration;
import com.arextest.config.model.dto.application.ApplicationOperationConfiguration.Fields;
import com.arextest.config.model.vo.AddApplicationRequest;
import com.arextest.config.model.vo.AddApplicationResponse;
import com.arextest.config.model.vo.DeleteApplicationRequest;
Expand All @@ -11,12 +15,13 @@
import com.arextest.config.repository.impl.ApplicationOperationConfigurationRepositoryImpl;
import com.arextest.storage.cache.CacheKeyUtils;
import com.arextest.storage.repository.ProviderNames;
import com.arextest.storage.service.AutoDiscoveryEntryPointListener;
import com.arextest.storage.service.MockSourceEditionService;
import com.arextest.storage.utils.RandomUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
Expand Down Expand Up @@ -50,7 +55,7 @@ public class ApplicationService {
@Resource
private MockSourceEditionService mockSourceEditionService;
@Resource
private AutoDiscoveryEntryPointListener autoDiscoveryEntryPointListener;
private ApplicationOperationConfigurationRepositoryImpl serviceOperationRepository;

public AddApplicationResponse addApplication(AddApplicationRequest request) {
AddApplicationResponse response = new AddApplicationResponse();
Expand Down Expand Up @@ -106,7 +111,7 @@ public boolean deleteApplication(DeleteApplicationRequest request) {
PROVIDERS.forEach(provider -> mockSourceEditionService.removeAllByAppId(provider, appId));

// remove redis
autoDiscoveryEntryPointListener.removeAllCacheByAppId(appId);
removeAllCacheByAppId(appId);

// remove ServiceOperation
applicationOperationRepository.removeByAppId(appId);
Expand All @@ -116,6 +121,29 @@ public boolean deleteApplication(DeleteApplicationRequest request) {
return true;
}

private void removeAllCacheByAppId(String appId) {
byte[] appServiceKey = CacheKeyUtils.toUtf8Bytes(SERVICE_MAPPINGS_PREFIX + appId);
byte[] appServiceValue = redisCacheProvider.get(appServiceKey);
if (appServiceValue == null) {
return;
}
String serviceId = CacheKeyUtils.fromUtf8Bytes(appServiceValue);
redisCacheProvider.remove(appServiceKey);

Map<String, Object> conditions = new HashMap<>();
conditions.put(Fields.appId, appId);
List<ApplicationOperationConfiguration> applicationOperationConfigurations =
serviceOperationRepository.queryByMultiCondition(conditions);

applicationOperationConfigurations.forEach(operation -> {
String operationName = operation.getOperationName();
String operationType = operation.getOperationType();
byte[] operationKey = CacheKeyUtils.toUtf8Bytes(SERVICE_MAPPINGS_PREFIX + serviceId + DASH
+ operationName + DASH + operationType);
redisCacheProvider.remove(operationKey);
});
}


public boolean putAppOwnersCache(String appId, Set<String> owners) {
try {
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -408,5 +408,5 @@
<url>https://github.com/arextest/arex-storage</url>


<version>1.0.53</version>
<version>1.0.54</version>
</project>

0 comments on commit 606527a

Please sign in to comment.