From 550e86ea48f3260a4388efdf88490701617ec562 Mon Sep 17 00:00:00 2001 From: mbussolotto Date: Tue, 28 Jan 2025 11:44:38 +0100 Subject: [PATCH] annotations for Token --- .../com/redhat/rhn/domain/Identifiable.java | 4 +- .../com/redhat/rhn/domain/token/Token.java | 105 ++++++++++++++++-- .../rhn/domain/token/Token_legacyUser.hbm.xml | 70 ------------ 3 files changed, 97 insertions(+), 82 deletions(-) diff --git a/java/code/src/com/redhat/rhn/domain/Identifiable.java b/java/code/src/com/redhat/rhn/domain/Identifiable.java index 2a3d072ba6e0..5dfac4bf488f 100644 --- a/java/code/src/com/redhat/rhn/domain/Identifiable.java +++ b/java/code/src/com/redhat/rhn/domain/Identifiable.java @@ -16,12 +16,14 @@ package com.redhat.rhn.domain; +import java.io.Serializable; + /** * Simple interface that a domain object can implement if it wants to provide a * common way to give back an id field. * */ -public interface Identifiable { +public interface Identifiable extends Serializable { /** * Get the database id of this Object. diff --git a/java/code/src/com/redhat/rhn/domain/token/Token.java b/java/code/src/com/redhat/rhn/domain/token/Token.java index b8cae1747d2c..28863d355d99 100644 --- a/java/code/src/com/redhat/rhn/domain/token/Token.java +++ b/java/code/src/com/redhat/rhn/domain/token/Token.java @@ -27,38 +27,121 @@ import com.redhat.rhn.domain.server.ServerGroup; import com.redhat.rhn.domain.server.ServerGroupType; import com.redhat.rhn.domain.user.User; +import com.redhat.rhn.domain.user.legacy.UserImpl; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.hibernate.annotations.Type; +import java.util.ArrayList; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; import java.util.Objects; import java.util.Set; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.OrderColumn; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; + /** * Token */ +@Entity +@Table(name = "rhnRegToken") public class Token implements Identifiable { + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "token_seq") + @SequenceGenerator(name = "token_seq", sequenceName = "RHN_REG_TOKEN_SEQ", allocationSize = 1) + @Column(name = "id") private Long id; + + @Column(name = "note", length = 2048) private String note; + + @Column(name = "disabled") private Long disabled; + + @Column(name = "deploy_configs") + @Type(type = "yes_no") private boolean deployConfigs; + + @Column(name = "usage_limit") private Long usageLimit; + + @ManyToOne + @JoinColumn(name = "org_id") private Org org; - private User creator; + + @ManyToOne + @JoinColumn(name = "user_id") + private UserImpl creator; + + @ManyToOne + @JoinColumn(name = "server_id") private Server server; + + @ManyToOne + @JoinColumn(name = "contact_method_id") private ContactMethod contactMethod; - private Set activatedSystems = new HashSet<>(); - private List configChannels = new LinkedList<>(); + + @ManyToMany + @JoinTable( + name = "rhnRegTokenEntitlement", + joinColumns = @JoinColumn(name = "reg_token_id"), + inverseJoinColumns = @JoinColumn(name = "server_group_type_id") + ) private Set entitlements = new HashSet<>(); - private Set channels = new HashSet<>(); - private Set serverGroups = new HashSet<>(); - private Set packages = new HashSet<>(); - private Set appStreams = new HashSet<>(); + @ManyToMany + @JoinTable( + name = "rhnRegTokenChannels", + joinColumns = @JoinColumn(name = "token_id"), + inverseJoinColumns = @JoinColumn(name = "channel_id") + ) + private Set channels = new HashSet<>(); + + @OneToMany(mappedBy = "token", cascade = CascadeType.ALL, orphanRemoval = true) + private Set appStreams = new HashSet<>(); + + @ManyToMany + @JoinTable( + name = "rhnRegTokenGroups", + joinColumns = @JoinColumn(name = "token_id"), + inverseJoinColumns = @JoinColumn(name = "server_group_id") + ) + private Set serverGroups = new HashSet<>(); + + @OneToMany(mappedBy = "token", cascade = CascadeType.ALL, orphanRemoval = true) + private Set packages = new HashSet<>(); + + @ManyToMany + @JoinTable( + name = "rhnServerTokenRegs", + joinColumns = @JoinColumn(name = "token_id"), + inverseJoinColumns = @JoinColumn(name = "server_id") + ) + private Set activatedServers = new HashSet<>(); + + @ManyToMany + @JoinTable( + name = "rhnRegTokenConfigChannels", + joinColumns = @JoinColumn(name = "token_id"), + inverseJoinColumns = @JoinColumn(name = "config_channel_id") + ) + @OrderColumn(name = "position") // Handles list indexing. + private List configChannels = new ArrayList<>(); /** * @return Returns the entitlements. */ @@ -234,7 +317,7 @@ public User getCreator() { * @param u The user to set. */ public void setCreator(User u) { - this.creator = u; + this.creator = (UserImpl) u; } /** @@ -465,14 +548,14 @@ public void clearPackages() { * @return Returns the activated systems */ public Set getActivatedServers() { - return activatedSystems; + return activatedServers; } /** * @param servers the activated servers to set. */ protected void setActivatedServers(Set servers) { - this.activatedSystems = servers; + this.activatedServers = servers; } /** diff --git a/java/code/src/com/redhat/rhn/domain/token/Token_legacyUser.hbm.xml b/java/code/src/com/redhat/rhn/domain/token/Token_legacyUser.hbm.xml index b5c1006041b9..8839a0116af0 100644 --- a/java/code/src/com/redhat/rhn/domain/token/Token_legacyUser.hbm.xml +++ b/java/code/src/com/redhat/rhn/domain/token/Token_legacyUser.hbm.xml @@ -3,76 +3,6 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> - - - protected - - RHN_REG_TOKEN_SEQ - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -