Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Serializable class fields #1061

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,53 +23,53 @@ public class AdminStatistics {
@Id
@GeneratedValue(generator = "adminStatisticsSeq")
@SequenceGenerator(name = "adminStatisticsSeq", sequenceName = "admin_statistics_seq")
long id;
private long id;

int year;
private int year;

int month;
private int month;

long extensions;
private long extensions;

long downloads;
private long downloads;

long downloadsTotal;
private long downloadsTotal;

long publishers;
private long publishers;

double averageReviewsPerExtension;
private double averageReviewsPerExtension;

long namespaceOwners;
private long namespaceOwners;

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "rating")
@Column(name = "extensions")
Map<Integer, Integer> extensionsByRating;
private Map<Integer, Integer> extensionsByRating;

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "extensions_published")
@Column(name = "publishers")
Map<Integer, Integer> publishersByExtensionsPublished;
private Map<Integer, Integer> publishersByExtensionsPublished;

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "login_name")
@Column(name = "extension_version_count")
Map<String, Integer> topMostActivePublishingUsers;
private Map<String, Integer> topMostActivePublishingUsers;

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "namespace")
@Column(name = "extension_count")
Map<String, Integer> topNamespaceExtensions;
private Map<String, Integer> topNamespaceExtensions;

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "namespace")
@Column(name = "extension_version_count")
Map<String, Integer> topNamespaceExtensionVersions;
private Map<String, Integer> topNamespaceExtensionVersions;

@ElementCollection(fetch = FetchType.EAGER)
@MapKeyColumn(name = "extension_identifier")
@Column(name = "downloads")
Map<String, Long> topMostDownloadedExtensions;
private Map<String, Long> topMostDownloadedExtensions;

public String toCsv() {
var ratings = 5;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ public class AzureDownloadCountProcessedItem {
@Id
@GeneratedValue(generator = "azureDownloadCountProcessedItemSeq")
@SequenceGenerator(name = "azureDownloadCountProcessedItemSeq", sequenceName = "azure_download_count_processed_item_seq")
long id;
private long id;

String name;
private String name;

LocalDateTime processedOn;
private LocalDateTime processedOn;

int executionTime;
private int executionTime;

boolean success;
private boolean success;

public long getId() {
return id;
Expand Down
32 changes: 18 additions & 14 deletions server/src/main/java/org/eclipse/openvsx/entities/Extension.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.eclipse.openvsx.search.ExtensionSearch;
import org.eclipse.openvsx.util.NamingUtil;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
Expand All @@ -27,40 +28,43 @@
})
public class Extension implements Serializable {

@Serial
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(generator = "extensionSeq")
@SequenceGenerator(name = "extensionSeq", sequenceName = "extension_seq")
long id;
private long id;

@Column(length = 128)
String publicId;
private String publicId;

String name;
private String name;

@ManyToOne
Namespace namespace;
private Namespace namespace;

@OneToMany(mappedBy = "extension")
List<ExtensionVersion> versions;
private List<ExtensionVersion> versions;

boolean active;
private boolean active;

Double averageRating;
private Double averageRating;

Long reviewCount;
private Long reviewCount;

int downloadCount;
private int downloadCount;

LocalDateTime publishedDate;
private LocalDateTime publishedDate;

LocalDateTime lastUpdatedDate;
private LocalDateTime lastUpdatedDate;

boolean deprecated;
private boolean deprecated;

@OneToOne
Extension replacement;
private Extension replacement;

boolean downloadable;
private boolean downloadable;

/**
* Convert to a search entity for Elasticsearch.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,24 +22,24 @@ public class ExtensionReview {
@Id
@GeneratedValue(generator = "extensionReviewSeq")
@SequenceGenerator(name = "extensionReviewSeq", sequenceName = "extension_review_seq")
long id;
private long id;

@ManyToOne
Extension extension;
private Extension extension;

boolean active;
private boolean active;

LocalDateTime timestamp;
private LocalDateTime timestamp;

@ManyToOne
UserData user;
private UserData user;

String title;
private String title;

@Column(length = 2048)
String comment;
private String comment;

int rating;
private int rating;


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.eclipse.openvsx.util.TargetPlatform;
import org.eclipse.openvsx.util.TimeUtil;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.*;
Expand All @@ -27,6 +28,9 @@
@Table(uniqueConstraints = { @UniqueConstraint(columnNames = { "targetPlatform", "version" })})
public class ExtensionVersion implements Serializable {

@Serial
private static final long serialVersionUID = 1L;

public static final Comparator<ExtensionVersion> SORT_COMPARATOR =
Comparator.comparing(ExtensionVersion::getSemanticVersion)
.thenComparing(ExtensionVersion::isUniversalTargetPlatform, Comparator.reverseOrder())
Expand All @@ -42,16 +46,16 @@ public enum Type {
@Id
@GeneratedValue(generator = "extensionVersionSeq")
@SequenceGenerator(name = "extensionVersionSeq", sequenceName = "extension_version_seq")
long id;
private long id;

@ManyToOne
Extension extension;
private Extension extension;

String version;
private String version;

String targetPlatform;
private String targetPlatform;

boolean universalTargetPlatform;
private boolean universalTargetPlatform;

@Embedded
@AttributeOverride(name = "major", column = @Column(name = "semver_major"))
Expand All @@ -60,80 +64,80 @@ public enum Type {
@AttributeOverride(name = "preRelease", column = @Column(name = "semver_pre_release"))
@AttributeOverride(name = "isPreRelease", column = @Column(name = "semver_is_pre_release"))
@AttributeOverride(name = "buildMetadata", column = @Column(name = "semver_build_metadata"))
SemanticVersion semver;
private SemanticVersion semver;

boolean preRelease;
private boolean preRelease;

boolean preview;
private boolean preview;

LocalDateTime timestamp;
private LocalDateTime timestamp;

@ManyToOne
PersonalAccessToken publishedWith;
private PersonalAccessToken publishedWith;

boolean active;
private boolean active;

boolean potentiallyMalicious;
private boolean potentiallyMalicious;

String displayName;
private String displayName;

@Column(length = 2048)
String description;
private String description;

@Column(length = 2048)
@Convert(converter = ListOfStringConverter.class)
List<String> engines;
private List<String> engines;

@Column(length = 2048)
@Convert(converter = ListOfStringConverter.class)
List<String> categories;
private List<String> categories;

@Column(length = 16384)
@Convert(converter = ListOfStringConverter.class)
List<String> tags;
private List<String> tags;

@Column
@Convert(converter = ListOfStringConverter.class)
List<String> extensionKind;
private List<String> extensionKind;

String license;
private String license;

String homepage;
private String homepage;

String repository;
private String repository;

String sponsorLink;
private String sponsorLink;

String bugs;
private String bugs;

@Column(length = 16)
String markdown;
private String markdown;

@Column(length = 16)
String galleryColor;
private String galleryColor;

@Column(length = 16)
String galleryTheme;
private String galleryTheme;

@Column
@Convert(converter = ListOfStringConverter.class)
List<String> localizedLanguages;
private List<String> localizedLanguages;

String qna;
private String qna;

@Column(length = 2048)
@Convert(converter = ListOfStringConverter.class)
List<String> dependencies;
private List<String> dependencies;

@Column(length = 2048)
@Convert(converter = ListOfStringConverter.class)
List<String> bundledExtensions;
private List<String> bundledExtensions;

@ManyToOne
SignatureKeyPair signatureKeyPair;
private SignatureKeyPair signatureKeyPair;

@Transient
Type type;
private Type type;

/**
* Convert to a JSON object without URLs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,14 @@

import jakarta.persistence.*;

import java.io.Serial;
import java.io.Serializable;

@Entity
public class FileResource {
public class FileResource implements Serializable {

@Serial
private static final long serialVersionUID = 1L;

// Resource types
public static final String DOWNLOAD = "download";
Expand All @@ -35,21 +41,21 @@ public class FileResource {
@Id
@GeneratedValue(generator = "fileResourceSeq")
@SequenceGenerator(name = "fileResourceSeq", sequenceName = "file_resource_seq")
long id;
private long id;

@OneToOne
ExtensionVersion extension;
private ExtensionVersion extension;

String name;
private String name;

@Column(length = 32)
String type;
private String type;

@Basic(fetch = FetchType.LAZY)
byte[] content;
private byte[] content;

@Column(length = 32)
String storageType;
private String storageType;

public long getId() {
return id;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ public class MigrationItem {
@Id
@GeneratedValue(generator = "migrationItemSeq")
@SequenceGenerator(name = "migrationItemSeq", sequenceName = "migration_item_seq")
long id;
private long id;

String migrationScript;
private String migrationScript;

long entityId;
private long entityId;

boolean migrationScheduled;
private boolean migrationScheduled;

public long getId() {
return id;
Expand Down
Loading
Loading