Skip to content

Commit 45756c7

Browse files
imashkanovHleb_Mashkanov
authored and
Hleb_Mashkanov
committed
Initial TMS migration: usage of local jpa entities with enhanced common dao
1 parent 92cd39d commit 45756c7

30 files changed

+889
-22
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ dependencies {
7272
implementation 'com.epam.reportportal:plugin-api'
7373
} else {
7474
println("Using snapshot dependencies")
75-
implementation 'com.github.reportportal:commons-dao:feature~EPMRPP-migrate-tms-adf0f7799b-1'
75+
implementation 'com.github.reportportal:commons-dao:5911154' //TODO add relevant version
7676
implementation 'com.github.reportportal:commons:c7041ee'
7777
implementation 'com.github.reportportal:plugin-api:8874441'
7878
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import java.util.List;
4+
5+
public class DataSet {
6+
private Long id;
7+
private String name;
8+
private List<DataSetColumn> columns;
9+
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
public class DataSetColumn {
4+
private Long id;
5+
private String key;
6+
private String value;
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.FetchType;
6+
import jakarta.persistence.GeneratedValue;
7+
import jakarta.persistence.GenerationType;
8+
import jakarta.persistence.Id;
9+
import jakarta.persistence.JoinColumn;
10+
import jakarta.persistence.ManyToOne;
11+
import jakarta.persistence.Table;
12+
import lombok.AllArgsConstructor;
13+
import lombok.Getter;
14+
import lombok.NoArgsConstructor;
15+
import lombok.Setter;
16+
17+
import java.io.Serializable;
18+
19+
@Entity
20+
@Table(name = "tms_attachment", schema = "public")
21+
@Getter
22+
@Setter
23+
@NoArgsConstructor
24+
@AllArgsConstructor
25+
public class TmsAttachment implements Serializable {
26+
27+
@Id
28+
@GeneratedValue(strategy = GenerationType.IDENTITY)
29+
@Column(name = "id")
30+
private Long id;
31+
32+
@Column(name = "file_name")
33+
private String fileName;
34+
35+
@Column(name = "file_type")
36+
private String fileType;
37+
38+
@Column(name = "file_size")
39+
private long fileSize;
40+
41+
@Column(name = "path_to_file")
42+
private String pathToFile;
43+
44+
@ManyToOne(fetch = FetchType.LAZY)
45+
@JoinColumn(name = "step_id")
46+
private TmsStep step;
47+
48+
@ManyToOne(fetch = FetchType.LAZY)
49+
@JoinColumn(name = "environment_id")
50+
private TmsEnvironment environment;
51+
52+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.GeneratedValue;
6+
import jakarta.persistence.GenerationType;
7+
import jakarta.persistence.Id;
8+
import jakarta.persistence.Table;
9+
import lombok.AllArgsConstructor;
10+
import lombok.Getter;
11+
import lombok.NoArgsConstructor;
12+
import lombok.Setter;
13+
14+
import java.io.Serializable;
15+
16+
@Entity
17+
@Table(name = "tms_attribute", schema = "public")
18+
@Getter
19+
@Setter
20+
@NoArgsConstructor
21+
@AllArgsConstructor
22+
public class TmsAttribute implements Serializable {
23+
24+
@Id
25+
@GeneratedValue(strategy = GenerationType.IDENTITY)
26+
@Column(name = "id")
27+
private Long id;
28+
29+
// TODO: Do we actually need to mark this field unique=true and nullable=false ?
30+
@Column(name = "key", nullable = false, unique = true)
31+
private String key;
32+
33+
//TODO: override equals and hashCode methods
34+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.GeneratedValue;
6+
import jakarta.persistence.GenerationType;
7+
import jakarta.persistence.Id;
8+
import jakarta.persistence.OneToMany;
9+
import jakarta.persistence.Table;
10+
import lombok.AllArgsConstructor;
11+
import lombok.Getter;
12+
import lombok.NoArgsConstructor;
13+
import lombok.Setter;
14+
15+
import java.util.Set;
16+
17+
@Entity
18+
@Table(name = "tms_environment", schema = "public")
19+
@Getter
20+
@Setter
21+
@NoArgsConstructor
22+
@AllArgsConstructor
23+
public class TmsEnvironment {
24+
25+
@Id
26+
@GeneratedValue(strategy = GenerationType.IDENTITY)
27+
@Column(name = "id")
28+
private Long id;
29+
30+
@Column(name = "name")
31+
private String name;
32+
33+
@Column(name = "test_data")
34+
private String testData;
35+
36+
@OneToMany(mappedBy = "environment")
37+
private Set<TmsAttachment> attachments;
38+
39+
@OneToMany(mappedBy = "environment")
40+
private Set<TmsTestPlan> testPlans;
41+
42+
//TODO: add link to dataset
43+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.FetchType;
6+
import jakarta.persistence.GeneratedValue;
7+
import jakarta.persistence.GenerationType;
8+
import jakarta.persistence.Id;
9+
import jakarta.persistence.JoinColumn;
10+
import jakarta.persistence.OneToMany;
11+
import jakarta.persistence.OneToOne;
12+
import jakarta.persistence.Table;
13+
import lombok.AllArgsConstructor;
14+
import lombok.Getter;
15+
import lombok.NoArgsConstructor;
16+
import lombok.Setter;
17+
18+
import java.util.Set;
19+
20+
@Entity
21+
@Table(name = "tms_manual_scenario", schema = "public")
22+
@Getter
23+
@Setter
24+
@NoArgsConstructor
25+
@AllArgsConstructor
26+
public class TmsManualScenario {
27+
28+
@Id
29+
@GeneratedValue(strategy = GenerationType.IDENTITY)
30+
@Column(name = "id")
31+
private Long id;
32+
33+
@Column(name = "execution_estimation_time")
34+
private Integer executionEstimationTime;
35+
36+
@Column(name = "link_to_requirements")
37+
private String linkToRequirements;
38+
39+
@Column(name = "preconditions")
40+
private String preconditions;
41+
42+
@OneToOne(fetch = FetchType.LAZY)
43+
@JoinColumn(name = "test_case_version_id")
44+
private TmsTestCaseVersion testCaseVersion;
45+
46+
@OneToMany(mappedBy = "manualScenario")
47+
private Set<TmsManualScenarioAttribute> attributes;
48+
49+
@OneToMany(mappedBy = "manualScenario")
50+
private Set<TmsStep> steps;
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.EmbeddedId;
5+
import jakarta.persistence.Entity;
6+
import jakarta.persistence.JoinColumn;
7+
import jakarta.persistence.ManyToOne;
8+
import jakarta.persistence.MapsId;
9+
import jakarta.persistence.Table;
10+
import lombok.AllArgsConstructor;
11+
import lombok.Getter;
12+
import lombok.NoArgsConstructor;
13+
import lombok.Setter;
14+
15+
import java.io.Serializable;
16+
17+
@Entity
18+
@Table(name = "tms_manual_scenario_attribute")
19+
@Getter
20+
@Setter
21+
@NoArgsConstructor
22+
@AllArgsConstructor
23+
public class TmsManualScenarioAttribute implements Serializable {
24+
25+
@EmbeddedId
26+
private TmsManualScenarioAttributeId id;
27+
28+
@ManyToOne
29+
@MapsId(value = "manualScenarioId")
30+
@JoinColumn(name = "manual_scenario_id")
31+
private TmsManualScenario manualScenario;
32+
33+
@ManyToOne
34+
@MapsId(value = "attributeId")
35+
@JoinColumn(name = "attribute_id")
36+
private TmsAttribute attribute;
37+
38+
@Column(name = "value")
39+
private String value;
40+
41+
//TODO: override equals and hashCode methods
42+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Embeddable;
5+
import lombok.AllArgsConstructor;
6+
import lombok.Getter;
7+
import lombok.NoArgsConstructor;
8+
import lombok.Setter;
9+
10+
import java.io.Serializable;
11+
import java.util.Objects;
12+
13+
@Embeddable
14+
@Getter
15+
@Setter
16+
@NoArgsConstructor
17+
@AllArgsConstructor
18+
public class TmsManualScenarioAttributeId implements Serializable {
19+
20+
@Column(name = "manual_scenario_id")
21+
private Long manualScenarioId;
22+
23+
@Column(name = "attribute_id")
24+
private Long attributeId;
25+
26+
@Override
27+
public boolean equals(Object o) {
28+
if (o == null || getClass() != o.getClass()) return false;
29+
TmsManualScenarioAttributeId that = (TmsManualScenarioAttributeId) o;
30+
return Objects.equals(manualScenarioId, that.manualScenarioId) && Objects.equals(attributeId, that.attributeId);
31+
}
32+
33+
@Override
34+
public int hashCode() {
35+
return Objects.hash(manualScenarioId, attributeId);
36+
}
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.GeneratedValue;
6+
import jakarta.persistence.GenerationType;
7+
import jakarta.persistence.Id;
8+
import jakarta.persistence.JoinColumn;
9+
import jakarta.persistence.ManyToOne;
10+
import jakarta.persistence.Table;
11+
import lombok.AllArgsConstructor;
12+
import lombok.Getter;
13+
import lombok.NoArgsConstructor;
14+
import lombok.Setter;
15+
16+
import java.time.LocalDateTime;
17+
18+
@Entity
19+
@Table(name = "tms_environment", schema = "public")
20+
@Getter
21+
@Setter
22+
@NoArgsConstructor
23+
@AllArgsConstructor
24+
public class TmsMilestone {
25+
26+
@Id
27+
@GeneratedValue(strategy = GenerationType.IDENTITY)
28+
@Column(name = "id")
29+
private Long id;
30+
31+
@Column(name = "name")
32+
private String name;
33+
34+
@Column(name = "type")
35+
private String type;
36+
37+
@Column(name = "start_date", columnDefinition = "TIMESTAMP")
38+
private LocalDateTime startDate;
39+
40+
@Column(name = "end_date", columnDefinition = "TIMESTAMP")
41+
private LocalDateTime endDate;
42+
43+
@ManyToOne
44+
@JoinColumn(name = "product_version_id", nullable = false)
45+
private TmsProductVersion productVersion;
46+
47+
@ManyToOne
48+
@JoinColumn(name = "test_plan_id")
49+
private TmsTestPlan testPlan;
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.epam.ta.reportportal.core.tms.db.entity;
2+
3+
import jakarta.persistence.Column;
4+
import jakarta.persistence.Entity;
5+
import jakarta.persistence.GeneratedValue;
6+
import jakarta.persistence.GenerationType;
7+
import jakarta.persistence.Id;
8+
import jakarta.persistence.OneToMany;
9+
import jakarta.persistence.Table;
10+
import lombok.AllArgsConstructor;
11+
import lombok.Getter;
12+
import lombok.NoArgsConstructor;
13+
import lombok.Setter;
14+
15+
import java.io.Serializable;
16+
import java.util.Set;
17+
18+
@Entity
19+
@Table(name = "tms_product_version", schema = "public")
20+
@Getter
21+
@Setter
22+
@NoArgsConstructor
23+
@AllArgsConstructor
24+
public class TmsProductVersion implements Serializable {
25+
26+
@Id
27+
@GeneratedValue(strategy = GenerationType.IDENTITY)
28+
@Column(name = "id")
29+
private Long id;
30+
31+
@Column(name = "version")
32+
private String version;
33+
34+
@Column(name = "documentation")
35+
private String documentation;
36+
37+
@OneToMany(mappedBy = "productVersion")
38+
private Set<TmsTestPlan> testPlans;
39+
40+
@OneToMany(mappedBy = "productVersion")
41+
private Set<TmsMilestone> milestones;
42+
//TODO test changes
43+
}

0 commit comments

Comments
 (0)