Skip to content

Commit 45a1471

Browse files
authored
Merge pull request #1099 from amvanbaren/improve-file-cache-key
Improve file cache key
2 parents b8f25b0 + 0b7b4c0 commit 45a1471

File tree

5 files changed

+17
-4
lines changed

5 files changed

+17
-4
lines changed

server/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ buildscript {
44
}
55
dependencies {
66
classpath "org.hibernate.orm:hibernate-gradle-plugin:6.2.2.Final"
7+
classpath "com.adarshr.test-logger:com.adarshr.test-logger.gradle.plugin:4.0.0"
78
}
89
}
910
plugins {
@@ -16,6 +17,7 @@ plugins {
1617
id 'java'
1718
}
1819
apply plugin: 'org.hibernate.orm'
20+
apply plugin: 'com.adarshr.test-logger'
1921

2022
def jooqSrcDir = 'src/main/jooq-gen'
2123
def versions = [

server/src/main/java/org/eclipse/openvsx/adapter/LocalVSCodeService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ private Path getWebResource(String namespaceName, String extensionName, String t
342342
}
343343
if(!Files.exists(file)) {
344344
logger.error("File doesn't exist {}", file);
345-
cache.evictWebResourceFile(namespaceName, extensionName, null, version, name);
345+
cache.evictWebResourceFile(namespaceName, extensionName, targetPlatform, version, name);
346346
throw new NotFoundException();
347347
}
348348
return file;

server/src/main/java/org/eclipse/openvsx/adapter/WebResourceService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ public Path getWebResource(String namespace, String extension, String targetPlat
101101
return null;
102102
}
103103

104-
105104
var file = filesCacheKeyGenerator.generateCachedWebResourcePath(namespace, extension, targetPlatform, version, name, ".unpkg.json");
106105
FileUtil.writeSync(file, (p) -> {
107106
var baseUrl = UrlUtil.createApiUrl(UrlUtil.getBaseUrl(), "vscode", "unpkg", namespace, extension, version);

server/src/main/java/org/eclipse/openvsx/cache/FilesCacheKeyGenerator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.eclipse.openvsx.adapter.WebResourceService;
1414
import org.eclipse.openvsx.entities.FileResource;
1515
import org.eclipse.openvsx.storage.IStorageService;
16-
import org.eclipse.openvsx.util.UrlUtil;
1716
import org.springframework.cache.interceptor.KeyGenerator;
1817
import org.springframework.stereotype.Component;
1918

@@ -47,7 +46,7 @@ public String generate(FileResource resource) {
4746
}
4847

4948
public String generate(String namespace, String extension, String targetPlatform, String version, String name) {
50-
return UrlUtil.createApiFileUrl("", namespace, extension, targetPlatform, version, name);
49+
return String.join("|", namespace.toLowerCase(), extension.toLowerCase(), targetPlatform, version, name);
5150
}
5251

5352
public Path generateCachedExtensionPath(FileResource resource) {

server/src/test/java/org/eclipse/openvsx/IntegrationTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import com.fasterxml.jackson.databind.JsonNode;
1313
import org.eclipse.openvsx.json.*;
14+
import org.junit.jupiter.api.AfterAll;
1415
import org.junit.jupiter.api.Test;
1516
import org.slf4j.Logger;
1617
import org.slf4j.LoggerFactory;
@@ -22,11 +23,14 @@
2223
import org.springframework.http.HttpStatus;
2324
import org.springframework.test.context.ActiveProfiles;
2425

26+
import javax.cache.CacheManager;
2527
import java.io.IOException;
2628
import java.net.URI;
2729
import java.net.URISyntaxException;
2830

2931
import static org.assertj.core.api.Assertions.assertThat;
32+
import static org.eclipse.openvsx.cache.CacheService.CACHE_EXTENSION_FILES;
33+
import static org.eclipse.openvsx.cache.CacheService.CACHE_WEB_RESOURCE_FILES;
3034

3135
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
3236
@ActiveProfiles("test")
@@ -47,6 +51,15 @@ private String apiCall(String path) {
4751
return "http://localhost:" + port + path;
4852
}
4953

54+
@AfterAll
55+
static void clearFileCaches(@Autowired CacheManager cacheManager) {
56+
var cache = cacheManager.getCache(CACHE_WEB_RESOURCE_FILES);
57+
cache.removeAll();
58+
59+
cache = cacheManager.getCache(CACHE_EXTENSION_FILES);
60+
cache.removeAll();
61+
}
62+
5063
@Test
5164
void testPublishExtension() throws Exception {
5265
testService.createUser();

0 commit comments

Comments
 (0)