[AB-192] removing second level cache

changing assignable role place module name
fixing starboard retrieving the starstats incorrectly
fixing removing user assigned roles when removing a role from assignable role place
fixing not being able to remove external emote for assignable role place
This commit is contained in:
Sheldan
2021-02-13 14:48:56 +01:00
parent 047c574319
commit 34b9bca7ac
114 changed files with 88 additions and 460 deletions

View File

@@ -3,7 +3,6 @@ package dev.sheldan.abstracto.core.command.models.database;
import dev.sheldan.abstracto.core.models.database.AChannelGroupCommand;
import dev.sheldan.abstracto.core.models.database.AFeature;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -17,9 +16,7 @@ import java.util.List;
@AllArgsConstructor
@Getter
@Setter
@Cacheable
@EqualsAndHashCode
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ACommand implements Serializable {
@Id
@Column(name = "id")

View File

@@ -3,7 +3,6 @@ package dev.sheldan.abstracto.core.command.models.database;
import dev.sheldan.abstracto.core.models.database.ARole;
import dev.sheldan.abstracto.core.models.database.AServer;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -17,8 +16,6 @@ import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ACommandInAServer implements Serializable {
@Id
@@ -40,7 +37,6 @@ public class ACommandInAServer implements Serializable {
joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"),
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
@Getter
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ARole> allowedRoles;
@ManyToMany
@@ -49,7 +45,6 @@ public class ACommandInAServer implements Serializable {
joinColumns = @JoinColumn(name = "command_in_server_id", referencedColumnName = "command_in_server_id"),
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
@Getter
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ARole> immuneRoles;
@Getter

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.command.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -16,8 +15,6 @@ import java.util.List;
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AModule implements Serializable {
@Id
@@ -32,7 +29,6 @@ public class AModule implements Serializable {
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
orphanRemoval = true, mappedBy = "module")
@Builder.Default
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ACommand> commands = new ArrayList<>();
@Column(name = "created")

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database;
import dev.sheldan.abstracto.core.models.SnowFlake;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AChannel implements SnowFlake, Serializable {
@Id
@@ -26,7 +23,6 @@ public class AChannel implements SnowFlake, Serializable {
@Getter
@ManyToMany(mappedBy = "channels")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AChannelGroup> groups;
@ManyToOne(fetch = FetchType.LAZY)

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -16,8 +15,6 @@ import java.util.List;
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AChannelGroup implements Serializable {
@Id
@@ -50,7 +47,6 @@ public class AChannelGroup implements Serializable {
name = "channel_in_group",
joinColumns = @JoinColumn(name = "group_id"),
inverseJoinColumns = @JoinColumn(name = "channel_id"))
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AChannel> channels;

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.time.Instant;
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AChannelGroupCommand implements Serializable {
@Id

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.time.Instant;
@Getter
@Setter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AConfig implements Serializable {
@Id

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database;
import dev.sheldan.abstracto.core.models.Fakeable;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.time.Instant;
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AEmote implements Serializable, Fakeable {
@javax.persistence.Id

View File

@@ -3,7 +3,6 @@ package dev.sheldan.abstracto.core.models.database;
import dev.sheldan.abstracto.core.command.models.database.ACommand;
import dev.sheldan.abstracto.core.models.SnowFlake;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -16,8 +15,6 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AFeature implements SnowFlake, Serializable {
@Id
@@ -34,7 +31,6 @@ public class AFeature implements SnowFlake, Serializable {
@Getter
@Setter
@OneToMany(fetch = FetchType.LAZY, mappedBy = "feature")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ACommand> commands;
@Column(name = "created")

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -16,8 +15,6 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AFeatureFlag implements Serializable {
@Id
@@ -34,7 +31,6 @@ public class AFeatureFlag implements Serializable {
private AFeature feature;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "featureFlag")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AFeatureMode> modes;
@Column(name = "enabled")

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.time.Instant;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AFeatureMode implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database;
import dev.sheldan.abstracto.core.models.SnowFlake;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -14,8 +13,6 @@ import java.time.Instant;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ARole implements SnowFlake, Serializable {
@Id

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database;
import dev.sheldan.abstracto.core.models.SnowFlake;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -17,8 +16,6 @@ import java.util.List;
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AServer implements SnowFlake, Serializable {
@Id
@@ -44,7 +41,6 @@ public class AServer implements SnowFlake, Serializable {
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
mappedBy = "server")
@Builder.Default
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<ARole> roles = new ArrayList<>();
@OneToMany(
@@ -53,7 +49,6 @@ public class AServer implements SnowFlake, Serializable {
orphanRemoval = true,
mappedBy = "server")
@Builder.Default
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AChannel> channels = new ArrayList<>();
@OneToMany(
@@ -62,7 +57,6 @@ public class AServer implements SnowFlake, Serializable {
orphanRemoval = true,
mappedBy = "server")
@Builder.Default
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AChannelGroup> channelGroups = new ArrayList<>();
@OneToMany(
@@ -71,7 +65,6 @@ public class AServer implements SnowFlake, Serializable {
orphanRemoval = true,
mappedBy = "serverReference")
@Builder.Default
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AUserInAServer> users = new ArrayList<>();
@OneToMany(
@@ -80,7 +73,6 @@ public class AServer implements SnowFlake, Serializable {
orphanRemoval = true,
mappedBy = "serverRef")
@Builder.Default
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AEmote> emotes = new ArrayList<>();

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.util.List;
@NoArgsConstructor
@Getter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AUser implements Serializable {
@Id
@@ -27,7 +24,6 @@ public class AUser implements Serializable {
fetch = FetchType.LAZY,
cascade = {CascadeType.PERSIST, CascadeType.MERGE},
mappedBy = "serverReference")
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<AUserInAServer> servers;
@Column(name = "created")

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.time.Instant;
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AUserInAServer implements Serializable {
@Id

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -13,11 +12,9 @@ import java.time.Instant;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
@Cacheable
@Getter
@Setter
@ToString
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class AllowedMention implements Serializable {
@Id

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.time.Instant;
@@ -14,8 +13,6 @@ import java.time.Instant;
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class ChannelGroupType {
@Id

View File

@@ -2,7 +2,6 @@ package dev.sheldan.abstracto.core.models.database;
import dev.sheldan.abstracto.core.models.CounterId;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -15,8 +14,6 @@ import java.io.Serializable;
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Counter implements Serializable {
@EmbeddedId

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -14,8 +13,6 @@ import java.time.Instant;
@AllArgsConstructor
@Getter
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class DefaultEmote implements Serializable {
@javax.persistence.Id

View File

@@ -1,7 +1,6 @@
package dev.sheldan.abstracto.core.models.database;
import lombok.*;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
@@ -13,8 +12,6 @@ import java.time.Instant;
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class PostTarget implements Serializable {
@Id

View File

@@ -33,5 +33,6 @@ public interface MessageService {
CompletableFuture<Message> loadMessage(Long serverId, Long channelId, Long messageId);
MessageAction editMessage(Message message, MessageEmbed messageEmbed);
MessageAction editMessage(Message message, String text, MessageEmbed messageEmbed);
AuditableRestAction<Void> deleteMessage(Message message);
AuditableRestAction<Void> deleteMessageWithAction(Message message);
CompletableFuture<Void> deleteMessage(Message message);
}

View File

@@ -1,5 +1,7 @@
package dev.sheldan.abstracto.core.service;
import dev.sheldan.abstracto.core.models.ServerUser;
import dev.sheldan.abstracto.core.models.cache.CachedEmote;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.cache.CachedReaction;
import dev.sheldan.abstracto.core.models.database.AEmote;
@@ -26,6 +28,8 @@ public interface ReactionService {
CompletableFuture<Void> removeReaction(Message message, String key, User user);
CompletableFuture<Void> removeReaction(Message message, Emote emoteById);
CompletableFuture<Void> removeReaction(Message message, Emote emoteById, User user);
CompletableFuture<Void> removeReaction(Message message, CachedEmote cachedEmote, User user);
CompletableFuture<Void> removeReaction(CachedMessage message, CachedEmote cachedEmote, ServerUser user);
CompletableFuture<Void> removeReactionFromMessageWithFuture(AEmote emote, Message message);
CompletableFuture<Void> clearReactionFromMessageWithFuture(AEmote emote, Message message);
CompletableFuture<Void> clearReaction(Message message, String key);