File tree Expand file tree Collapse file tree
src/main/java/com/faforever/api/data Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22
33import com .faforever .api .data .checks .IsEntityOwner ;
44import com .faforever .api .data .checks .Prefab ;
5+ import com .faforever .api .data .listeners .ClanChangeListener ;
56import com .faforever .api .data .listeners .ClanEnricherListener ;
67import com .faforever .api .data .validation .IsLeaderInClan ;
78import com .yahoo .elide .annotation .ComputedAttribute ;
3435@ CreatePermission (expression = Prefab .ALL )
3536@ Setter
3637@ IsLeaderInClan
37- @ EntityListeners (ClanEnricherListener .class )
38+ @ EntityListeners ({ ClanEnricherListener .class , ClanChangeListener . class } )
3839public class Clan extends AbstractEntity <Clan > implements OwnableEntity {
3940
4041 public static final String TYPE_NAME = "clan" ;
Original file line number Diff line number Diff line change 11package com .faforever .api .data .domain ;
22
33import com .faforever .api .data .checks .IsClanMembershipDeletable ;
4+ import com .faforever .api .data .listeners .ClanMembershipChangeListener ;
45import com .yahoo .elide .annotation .DeletePermission ;
56import com .yahoo .elide .annotation .Include ;
67import com .yahoo .elide .annotation .UpdatePermission ;
8+
9+ import jakarta .persistence .EntityListeners ;
10+
711import lombok .Setter ;
812
913import jakarta .persistence .Entity ;
1923@ DeletePermission (expression = IsClanMembershipDeletable .EXPRESSION )
2024@ UpdatePermission (expression = IsClanMembershipDeletable .EXPRESSION )
2125@ Setter
26+ @ EntityListeners (ClanMembershipChangeListener .class )
2227public class ClanMembership extends AbstractEntity <ClanMembership > {
2328
2429 private Clan clan ;
Original file line number Diff line number Diff line change 1+ package com .faforever .api .data .listeners ;
2+
3+ import com .faforever .api .data .domain .Clan ;
4+
5+ import jakarta .persistence .PostRemove ;
6+ import jakarta .persistence .PostUpdate ;
7+
8+ import lombok .extern .slf4j .Slf4j ;
9+ import org .springframework .cache .annotation .CacheEvict ;
10+ import org .springframework .stereotype .Component ;
11+
12+ @ Component
13+ @ Slf4j
14+ public class ClanChangeListener {
15+
16+ @ CacheEvict (cacheNames = Clan .TYPE_NAME , allEntries = true )
17+ @ PostUpdate
18+ @ PostRemove
19+ public void clanChanged (Clan clan ) {
20+ log .debug ("Clan cache evicted, due to change on Clan with id: {}" , clan .getId ());
21+ }
22+ }
Original file line number Diff line number Diff line change 1+ package com .faforever .api .data .listeners ;
2+
3+ import com .faforever .api .data .domain .Clan ;
4+ import com .faforever .api .data .domain .ClanMembership ;
5+
6+ import jakarta .persistence .PostPersist ;
7+ import jakarta .persistence .PostRemove ;
8+ import jakarta .persistence .PostUpdate ;
9+
10+ import lombok .extern .slf4j .Slf4j ;
11+ import org .springframework .cache .annotation .CacheEvict ;
12+ import org .springframework .stereotype .Component ;
13+
14+ @ Component
15+ @ Slf4j
16+ public class ClanMembershipChangeListener {
17+
18+ @ CacheEvict (cacheNames = Clan .TYPE_NAME , allEntries = true )
19+ @ PostUpdate
20+ @ PostRemove
21+ @ PostPersist
22+ public void clanMembershipChanged (ClanMembership clanMembership ) {
23+ log .debug ("Clan cache evicted, due to change on ClanMembership with id: {}" ,
24+ clanMembership .getId ());
25+ }
26+ }
You can’t perform that action at this time.
0 commit comments