Skip to content

Commit 0d15d97

Browse files
authored
Merge pull request #1100 from amvanbaren/remove-file-resources
Remove FileResource of type resource
2 parents 90cbad1 + 11258db commit 0d15d97

File tree

11 files changed

+62
-167
lines changed

11 files changed

+62
-167
lines changed

server/src/main/java/org/eclipse/openvsx/ExtensionProcessor.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -318,25 +318,6 @@ public void getFileResources(ExtensionVersion extVersion, Consumer<TempFile> pro
318318
}
319319
}
320320

321-
public void processEachResource(ExtensionVersion extVersion, Consumer<TempFile> processor) {
322-
readInputStream();
323-
zipFile.stream()
324-
.filter(zipEntry -> !zipEntry.isDirectory())
325-
.forEach(zipEntry -> {
326-
try (var resourceFile = ArchiveUtil.readEntry(zipFile, zipEntry)) {
327-
var resource = new FileResource();
328-
resource.setExtension(extVersion);
329-
resource.setName(zipEntry.getName());
330-
resource.setType(FileResource.RESOURCE);
331-
resourceFile.setResource(resource);
332-
333-
processor.accept(resourceFile);
334-
} catch (IOException | ErrorResultException exc) {
335-
logger.warn(exc.getMessage());
336-
}
337-
});
338-
}
339-
340321
public FileResource getBinary(ExtensionVersion extVersion, String binaryName) {
341322
var binary = new FileResource();
342323
binary.setExtension(extVersion);

server/src/main/java/org/eclipse/openvsx/entities/FileResource.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ public class FileResource implements Serializable {
3030
public static final String README = "readme";
3131
public static final String LICENSE = "license";
3232
public static final String CHANGELOG = "changelog";
33-
public static final String RESOURCE = "resource";
3433
public static final String VSIXMANIFEST = "vsixmanifest";
3534

3635
// Storage types

server/src/main/java/org/eclipse/openvsx/migration/ExtractResourcesJobRequestHandler.java

Lines changed: 0 additions & 64 deletions
This file was deleted.

server/src/main/java/org/eclipse/openvsx/migration/ExtractResourcesJobService.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

server/src/main/java/org/eclipse/openvsx/migration/MigrationRunner.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ public MigrationRunner(
4343
@Job(name = "Run migrations", retries = 0)
4444
public void run(HandlerJobRequest<?> jobRequest) throws Exception {
4545
orphanNamespaceMigration.fixOrphanNamespaces();
46-
extractResourcesMigration();
4746
setPreReleaseMigration();
4847
renameDownloadsMigration();
4948
extractVsixManifestMigration();
@@ -53,12 +52,7 @@ public void run(HandlerJobRequest<?> jobRequest) throws Exception {
5352
checkPotentiallyMaliciousExtensionVersions();
5453
migrateLocalNamespaceLogos();
5554
migrateLocalFileResourceContent();
56-
}
57-
58-
private void extractResourcesMigration() {
59-
var jobName = "ExtractResourcesMigration";
60-
var handler = ExtractResourcesJobRequestHandler.class;
61-
repositories.findNotMigratedResources().forEach(item -> migrations.enqueueMigration(jobName, handler, item));
55+
removeFileResourceTypeResource();
6256
}
6357

6458
private void setPreReleaseMigration() {
@@ -114,4 +108,10 @@ private void migrateLocalFileResourceContent() {
114108
var handler = FileResourceContentJobRequestHandler.class;
115109
repositories.findNotMigratedLocalFileResourceContent().forEach(item -> migrations.enqueueMigration(jobName, handler, item));
116110
}
111+
112+
private void removeFileResourceTypeResource() {
113+
var jobName = "RemoveFileResourceTypeResourceMigration";
114+
var handler = RemoveFileResourceTypeResourceJobRequestHandler.class;
115+
repositories.findNotMigratedFileResourceTypeResource().forEach(item -> migrations.enqueueMigration(jobName, handler, item));
116+
}
117117
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/** ******************************************************************************
2+
* Copyright (c) 2025 Precies. Software OU and others
3+
*
4+
* This program and the accompanying materials are made available under the
5+
* terms of the Eclipse Public License v. 2.0 which is available at
6+
* http://www.eclipse.org/legal/epl-2.0.
7+
*
8+
* SPDX-License-Identifier: EPL-2.0
9+
* ****************************************************************************** */
10+
package org.eclipse.openvsx.migration;
11+
12+
import org.eclipse.openvsx.util.NamingUtil;
13+
import org.jobrunr.jobs.annotations.Job;
14+
import org.jobrunr.jobs.context.JobRunrDashboardLogger;
15+
import org.jobrunr.jobs.lambdas.JobRequestHandler;
16+
import org.slf4j.Logger;
17+
import org.slf4j.LoggerFactory;
18+
import org.springframework.stereotype.Component;
19+
20+
@Component
21+
public class RemoveFileResourceTypeResourceJobRequestHandler implements JobRequestHandler<MigrationJobRequest> {
22+
23+
protected final Logger logger = new JobRunrDashboardLogger(LoggerFactory.getLogger(RemoveFileResourceTypeResourceJobRequestHandler.class));
24+
25+
private final MigrationService migrations;
26+
27+
public RemoveFileResourceTypeResourceJobRequestHandler(MigrationService migrations) {
28+
this.migrations = migrations;
29+
}
30+
31+
@Override
32+
@Job(name = "Remove FileResource of type 'resource'", retries = 3)
33+
public void run(MigrationJobRequest jobRequest) throws Exception {
34+
var resource = migrations.getResource(jobRequest);
35+
logger.info("Removing file resource: {} {}", NamingUtil.toLogFormat(resource.getExtension()), resource.getName());
36+
migrations.removeFile(resource);
37+
migrations.deleteFileResource(resource);
38+
}
39+
}

server/src/main/java/org/eclipse/openvsx/publish/PublishExtensionVersionHandler.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,6 @@ public void publishAsync(TempFile extensionFile, ExtensionService extensionServi
233233
}
234234
}
235235

236-
processor.processEachResource(extVersion, consumer);
237236
processor.getFileResources(extVersion, consumer);
238237
try (var sha256File = processor.generateSha256Checksum(extVersion)) {
239238
consumer.accept(sha256File);

server/src/main/java/org/eclipse/openvsx/repositories/FileResourceJooqRepository.java

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -58,27 +58,6 @@ public List<FileResource> findAll(Collection<Long> extensionIds, Collection<Stri
5858
.map(this::toFileResource);
5959
}
6060

61-
public List<FileResource> findAllResources(ExtensionVersion extVersion, String prefix) {
62-
return dsl.select(
63-
FILE_RESOURCE.ID,
64-
FILE_RESOURCE.EXTENSION_ID,
65-
FILE_RESOURCE.NAME,
66-
FILE_RESOURCE.TYPE,
67-
FILE_RESOURCE.STORAGE_TYPE
68-
)
69-
.from(FILE_RESOURCE)
70-
.where(FILE_RESOURCE.TYPE.eq(FileResource.RESOURCE))
71-
.and(FILE_RESOURCE.EXTENSION_ID.eq(extVersion.getId()))
72-
.and(FILE_RESOURCE.NAME.startsWith(prefix))
73-
.fetch()
74-
.map(row -> {
75-
var fileResource = toFileResource(row);
76-
fileResource.setStorageType(row.get(FILE_RESOURCE.STORAGE_TYPE));
77-
fileResource.setExtension(extVersion);
78-
return fileResource;
79-
});
80-
}
81-
8261
private FileResource toFileResource(Record row) {
8362
var extVersion = new ExtensionVersion();
8463
extVersion.setId(row.get(FILE_RESOURCE.EXTENSION_ID));

server/src/main/java/org/eclipse/openvsx/repositories/RepositoryService.java

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -267,18 +267,10 @@ public Streamable<FileResource> findFilesByType(String type) {
267267
}
268268

269269
public FileResource findFileByType(ExtensionVersion extVersion, String type) {
270-
if(FileResource.RESOURCE.equals(type)) {
271-
throw new IllegalArgumentException("There are multiple files of type: " + FileResource.RESOURCE);
272-
}
273-
274270
return fileResourceRepo.findByExtensionAndType(extVersion, type);
275271
}
276272

277273
public FileResource findFileByType(String namespace, String extension, String targetPlatform, String version, String type) {
278-
if(FileResource.RESOURCE.equals(type)) {
279-
throw new IllegalArgumentException("There are multiple files of type: " + FileResource.RESOURCE);
280-
}
281-
282274
return fileResourceJooqRepo.findByType(namespace, extension, targetPlatform, version, type);
283275
}
284276

@@ -414,10 +406,6 @@ public List<FileResource> findFileResourcesByExtensionVersionIdAndType(Collectio
414406
return fileResourceJooqRepo.findAll(extensionVersionIds, types);
415407
}
416408

417-
public List<FileResource> findResourceFileResources(ExtensionVersion extVersion, String prefix) {
418-
return fileResourceJooqRepo.findAllResources(extVersion, prefix);
419-
}
420-
421409
public List<NamespaceMembership> findNamespaceMemberships(Collection<Long> namespaceIds) {
422410
return membershipJooqRepo.findAllByNamespaceId(namespaceIds);
423411
}
@@ -482,10 +470,6 @@ public int countVersions(Extension extension) {
482470
return extensionVersionRepo.countByExtension(extension);
483471
}
484472

485-
public Streamable<MigrationItem> findNotMigratedResources() {
486-
return findNotMigratedItems("V1_23__FileResource_Extract_Resources.sql");
487-
}
488-
489473
public Streamable<MigrationItem> findNotMigratedPreReleases() {
490474
return findNotMigratedItems("V1_26__Extension_Set_PreRelease.sql");
491475
}
@@ -518,6 +502,10 @@ public Iterable<MigrationItem> findNotMigratedLocalFileResourceContent() {
518502
return findNotMigratedItems("V1_48__Local_Storage_FileResource.sql");
519503
}
520504

505+
public Iterable<MigrationItem> findNotMigratedFileResourceTypeResource() {
506+
return findNotMigratedItems("V1_50_FileResource_Remove_Resource.sql");
507+
}
508+
521509
private Streamable<MigrationItem> findNotMigratedItems(String migrationScript) {
522510
return migrationItemRepo.findByMigrationScriptAndMigrationScheduledFalseOrderById(migrationScript);
523511
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-- don't run removed migration
2+
UPDATE migration_item SET migration_scheduled = TRUE WHERE migration_script = 'V1_23__FileResource_Extract_Resources.sql';
3+
4+
INSERT INTO migration_item(id, migration_script, entity_id, migration_scheduled)
5+
SELECT nextval('hibernate_sequence'), 'V1_50_FileResource_Remove_Resource.sql', fr.id, FALSE
6+
FROM file_resource fr
7+
JOIN extension_version ev ON ev.id = fr.extension_id
8+
JOIN extension e ON e.id = ev.extension_id
9+
WHERE fr.type = 'resource'
10+
ORDER BY e.download_count DESC;

0 commit comments

Comments
 (0)