From edf8067b07910c2edad24779fc21f7dfea65c0f9 Mon Sep 17 00:00:00 2001 From: Yu Zhang Date: Thu, 7 Dec 2017 15:46:50 -0500 Subject: [PATCH 1/7] DI-968 database schema changes --- IRCT-API/pom.xml | 152 ++++++++----- .../event/EventConverterImplementation.java | 3 +- .../dbmi/bd2k/irct/model/join/IRCTJoin.java | 4 +- .../hms/dbmi/bd2k/irct/model/join/Join.java | 23 +- .../dbmi/bd2k/irct/model/ontology/Entity.java | 3 +- .../bd2k/irct/model/process/IRCTProcess.java | 3 +- .../bd2k/irct/model/query/ClauseAbstract.java | 3 +- .../dbmi/bd2k/irct/model/query/JoinType.java | 3 +- .../bd2k/irct/model/query/PredicateType.java | 3 +- .../hms/dbmi/bd2k/irct/model/query/Query.java | 8 +- .../irct/model/query/SelectOperationType.java | 3 +- .../irct/model/query/SortOperationType.java | 3 +- .../dbmi/bd2k/irct/model/resource/Field.java | 3 +- .../bd2k/irct/model/resource/Resource.java | 3 +- .../result/DataConverterImplementation.java | 3 +- .../dbmi/bd2k/irct/model/result/Result.java | 5 +- .../dbmi/bd2k/irct/model/security/User.java | 5 +- .../dbmi/bd2k/irct/db/changelog-master.xml | 12 + .../irct/db/changelogs/changelog-0.1.0.xml | 214 ++++++++++++++++++ .../dbmi/bd2k/irct/db/liquibase.properties | 8 + .../hms/dbmi/bd2k/irct/IRCTBaseTest.java | 62 +++++ .../hms/dbmi/bd2k/irct/IRCTQueryTest.java | 43 ++++ .../main/resources/META-INF/persistence.xml | 1 + 23 files changed, 478 insertions(+), 92 deletions(-) create mode 100755 IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelog-master.xml create mode 100755 IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml create mode 100755 IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/liquibase.properties create mode 100755 IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTBaseTest.java create mode 100755 IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTQueryTest.java diff --git a/IRCT-API/pom.xml b/IRCT-API/pom.xml index 25b2723a..8d9dab05 100644 --- a/IRCT-API/pom.xml +++ b/IRCT-API/pom.xml @@ -1,4 +1,5 @@ - + 4.0.0 edu.harvard.hms.dbmi.bd2k.irct @@ -7,6 +8,13 @@ IRCT-API INTER-RESOURCE COMMUNICATION TOOL : API + + + 3.5.3 + 1.7 + 5.1.45 + + @@ -39,63 +47,99 @@ junit - - org.powermock - powermock-api-mockito - test - - - org.powermock - powermock-module-junit4 - test - - + + org.powermock + powermock-api-mockito + test + + + org.powermock + powermock-module-junit4 + test + + + src/main/java + + + src/main/resources + + + IRCT-API - - - org.apache.maven.plugins - maven-eclipse-plugin - - true - true - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - org.apache.maven.plugins - maven-compiler-plugin - - 1.7 - 1.7 - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - copy-dependencies - package - - copy-dependencies - - - runtime - ${project.build.directory}/dependency-jars/ - - - - - + + + + org.apache.maven.plugins + maven-eclipse-plugin + + true + true + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${maven.compiler.version} + ${maven.compiler.version} + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-dependencies + package + + copy-dependencies + + + runtime + ${project.build.directory}/dependency-jars/ + + + + + + org.liquibase + liquibase-maven-plugin + ${liquibase.version} + + true + edu/harvard/hms/dbmi/bd2k/irct/db/liquibase.properties + edu/harvard/hms/dbmi/bd2k/irct/db/changelog-master.xml + + + + process-resources + + update + + + + + + + + mysql + mysql-connector-java + ${mysql-version} + + + + + diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/event/EventConverterImplementation.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/event/EventConverterImplementation.java index bb3f48bc..e9d55f54 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/event/EventConverterImplementation.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/event/EventConverterImplementation.java @@ -13,6 +13,7 @@ import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.MapKeyColumn; @@ -31,7 +32,7 @@ public class EventConverterImplementation implements Serializable { private static final long serialVersionUID = -8700481468758389000L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/IRCTJoin.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/IRCTJoin.java index 53629c71..7b7f00a1 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/IRCTJoin.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/IRCTJoin.java @@ -14,10 +14,10 @@ import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; -import edu.harvard.hms.dbmi.bd2k.irct.model.join.JoinImplementation; import edu.harvard.hms.dbmi.bd2k.irct.model.resource.Field; import edu.harvard.hms.dbmi.bd2k.irct.util.converter.JoinImplementationConverter; @@ -34,7 +34,7 @@ public class IRCTJoin implements Serializable { private static final long serialVersionUID = 5173414123049320818L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/Join.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/Join.java index 685bd683..e63548b1 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/Join.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/join/Join.java @@ -7,34 +7,25 @@ import java.util.HashMap; import java.util.Map; -import javax.persistence.CollectionTable; -import javax.persistence.Column; -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.MapKeyColumn; import javax.persistence.Transient; -@Entity +//@Entity public class Join implements Serializable { private static final long serialVersionUID = 4869490865776072674L; - @Id - @GeneratedValue +// @Id +// @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private JoinImplementation joinImplementation; private IRCTJoin joinType; - @ElementCollection(fetch = FetchType.EAGER) - @MapKeyColumn(name = "name") - @Column(name = "value") - @CollectionTable(name = "where_values", joinColumns = @JoinColumn(name = "where_id")) +// @ElementCollection(fetch = FetchType.EAGER) +// @MapKeyColumn(name = "name") +// @Column(name = "value") +// @CollectionTable(name = "where_values", joinColumns = @JoinColumn(name = "where_id")) private Map stringValues; @Transient diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/ontology/Entity.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/ontology/Entity.java index a4ab238a..3465b20e 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/ontology/Entity.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/ontology/Entity.java @@ -14,6 +14,7 @@ import javax.json.JsonObjectBuilder; import javax.persistence.Convert; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Transient; @@ -30,7 +31,7 @@ public class Entity { @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String pui; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/process/IRCTProcess.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/process/IRCTProcess.java index aba2a297..53940e0e 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/process/IRCTProcess.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/process/IRCTProcess.java @@ -14,6 +14,7 @@ import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; @@ -35,7 +36,7 @@ public class IRCTProcess implements Serializable { private static final long serialVersionUID = -1805899138692864630L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/ClauseAbstract.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/ClauseAbstract.java index 8c1d9b58..e9b22f56 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/ClauseAbstract.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/ClauseAbstract.java @@ -8,6 +8,7 @@ import javax.json.JsonObjectBuilder; import javax.persistence.Entity; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; /** @@ -21,7 +22,7 @@ public abstract class ClauseAbstract { @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; /** diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/JoinType.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/JoinType.java index e7d0761d..9eba15df 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/JoinType.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/JoinType.java @@ -15,6 +15,7 @@ import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; @@ -27,7 +28,7 @@ public class JoinType implements Serializable { private static final long serialVersionUID = 7650772906469344618L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/PredicateType.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/PredicateType.java index 2747eb76..71889711 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/PredicateType.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/PredicateType.java @@ -14,6 +14,7 @@ import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; @@ -33,7 +34,7 @@ public class PredicateType implements Serializable { private static final long serialVersionUID = -8767223525164395205L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java index 191c0569..4462b49b 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java @@ -18,6 +18,7 @@ import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; @@ -34,12 +35,12 @@ * */ @Entity -@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) +@Inheritance(strategy = InheritanceType.JOINED) public class Query implements Serializable { private static final long serialVersionUID = -407606258205399129L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @@ -141,6 +142,7 @@ public String toString() { + where; } + @SuppressWarnings("unchecked") public List getClausesOfType( Class clauseType) { List returns = new ArrayList(); @@ -226,7 +228,7 @@ public final SubQuery getSubQuery(String id) { * SubQuery ID */ public final void removeSubQuery(Long id) { - this.subQueries.remove(id); + this.subQueries.remove(Long.toString(id)); } /** diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SelectOperationType.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SelectOperationType.java index c8362d10..4b807ef5 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SelectOperationType.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SelectOperationType.java @@ -14,6 +14,7 @@ import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; @@ -33,7 +34,7 @@ public class SelectOperationType implements Serializable { private static final long serialVersionUID = -2715703805087374126L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SortOperationType.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SortOperationType.java index ec8e392e..abd26b9e 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SortOperationType.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/SortOperationType.java @@ -16,6 +16,7 @@ import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.OneToMany; @@ -35,7 +36,7 @@ public class SortOperationType implements Serializable { private static final long serialVersionUID = -2715703805087374126L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Field.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Field.java index f987a887..63d4351a 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Field.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Field.java @@ -14,6 +14,7 @@ import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import edu.harvard.hms.dbmi.bd2k.irct.model.ontology.DataType; @@ -33,7 +34,7 @@ public class Field implements Serializable { private static final long serialVersionUID = -2150406406694041615L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java index c7348ed6..edce83e4 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java @@ -21,6 +21,7 @@ import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.MapKeyColumn; @@ -53,7 +54,7 @@ public class Resource implements Serializable { private static final long serialVersionUID = 8099637983212553759L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String name; diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/DataConverterImplementation.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/DataConverterImplementation.java index 24b26971..f5db0161 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/DataConverterImplementation.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/DataConverterImplementation.java @@ -10,6 +10,7 @@ import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import edu.harvard.hms.dbmi.bd2k.irct.dataconverter.ResultDataConverter; @@ -28,7 +29,7 @@ public class DataConverterImplementation implements Serializable { private static final long serialVersionUID = -8700481468758389000L; @Id - @GeneratedValue + @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @Enumerated(EnumType.STRING) diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java index ccd8f321..8fe9ed60 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java @@ -16,9 +16,9 @@ import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; -import javax.persistence.SequenceGenerator; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; @@ -40,8 +40,7 @@ @Entity public class Result { @Id - @GeneratedValue(generator = "resultSequencer") - @SequenceGenerator(name = "resultSequencer", sequenceName = "resSeq") + @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @Transient diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java index 853ee52e..4146420d 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java @@ -8,10 +8,10 @@ import javax.persistence.Entity; import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; -import javax.persistence.SequenceGenerator; /** * A basic user representation. It can be associated with a session in EE 7. The @@ -23,8 +23,7 @@ public class User implements Principal, Serializable { private static final long serialVersionUID = 225027371671010450L; @Id - @GeneratedValue(generator = "userSequencer") - @SequenceGenerator(name = "userSequencer", sequenceName = "userSeq") + @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; private String userId; diff --git a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelog-master.xml b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelog-master.xml new file mode 100755 index 00000000..ca09de94 --- /dev/null +++ b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelog-master.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml new file mode 100755 index 00000000..69693830 --- /dev/null +++ b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + alter table `irct`.`EventConverterImplementation` change column `id` `id` BIGINT(20) not null + + + + + + + + + + + + + + + + + + + + + + + + alter table `irct`.`IRCTJoin` change column `id` `id` BIGINT(20) not null + + + + + + + + + + + + + + + + + + + + + + + + + + alter table `irct`.`Entity` change column `id` `id` BIGINT(20) not null + + + + + + + + + + + + + + + + + + + + + + + + alter table `irct`.`IRCTProcess` change column `id` `id` BIGINT(20) not null + + + + + + + + + + + + + + + + alter table `irct`.`Result` change column `id` `id` BIGINT(20) not null + + + + + + + + + + + + + + + + + + + + + + alter table `irct`.`User` change column `id` `id` BIGINT(20) not null + + + + + + + + + + + + + + + + + + + + insert into Query (id, name, payload) + select id, name, payload + from SubQuery + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/liquibase.properties b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/liquibase.properties new file mode 100755 index 00000000..d6e99414 --- /dev/null +++ b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/liquibase.properties @@ -0,0 +1,8 @@ +#Liquibase.properties +#driver: already specified in maven -> liquibase plugin -> dependencies +#changeLogFile: already specified in maven +url: jdbc:mysql://localhost:3306/irct?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&autoReconnectForPools=true +username: root +password: root +verbose: true +dropFirst: false \ No newline at end of file diff --git a/IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTBaseTest.java b/IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTBaseTest.java new file mode 100755 index 00000000..d94e3e26 --- /dev/null +++ b/IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTBaseTest.java @@ -0,0 +1,62 @@ +/** + * + */ +package edu.harvard.hms.dbmi.bd2k.irct; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +/** + * @author Yu + * + */ +public class IRCTBaseTest { + + private static final EntityManagerFactory emf ; + private static final ThreadLocal threadLocal; + EntityManager em; + + static { + emf = Persistence.createEntityManagerFactory("primary"); + threadLocal = new ThreadLocal(); + } + + public static EntityManager getEntityManager() { + EntityManager em = threadLocal.get(); + + if (em == null) { + em = emf.createEntityManager(); + // set your flush mode here + threadLocal.set(em); + } + return em; + } + + public static void closeEntityManager() { + EntityManager em = threadLocal.get(); + if (em != null) { + em.close(); + threadLocal.set(null); + } + } + + public static void closeEntityManagerFactory() { + emf.close(); + } + + public static void beginTransaction() { + getEntityManager().getTransaction().begin(); + } + + public static void rollback() { + getEntityManager().getTransaction().rollback(); + } + + public static void commit() { + getEntityManager().getTransaction().commit(); + } + + + + +} diff --git a/IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTQueryTest.java b/IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTQueryTest.java new file mode 100755 index 00000000..f1695936 --- /dev/null +++ b/IRCT-API/src/test/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTQueryTest.java @@ -0,0 +1,43 @@ +package edu.harvard.hms.dbmi.bd2k.irct; + +import static org.junit.Assert.*; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import edu.harvard.hms.dbmi.bd2k.irct.model.query.Query; +import edu.harvard.hms.dbmi.bd2k.irct.model.query.SubQuery; + +public class IRCTQueryTest extends IRCTBaseTest{ + + +// @Before +// public void before() { +// em = getEntityManager(); +// } +// +// @Test +// public void test() { +// em.getTransaction().begin(); +// Query query = new Query(); +// query.setId(2999l); +// query.setName("parent test query"); +// query.setPayload(" "); +// +// SubQuery sq = new SubQuery(); +// sq.setId(3111l); +// sq.setName("sub query test"); +// sq.setPayload(" "); +// query.getSubQueries().put(Long.toString(sq.getId()), sq); +// +// +// em.getTransaction().commit(); +// } +// +// @After +// public void after() { +// closeEntityManager(); +// } + +} diff --git a/IRCT-CL/src/main/resources/META-INF/persistence.xml b/IRCT-CL/src/main/resources/META-INF/persistence.xml index d997aa45..7661521d 100644 --- a/IRCT-CL/src/main/resources/META-INF/persistence.xml +++ b/IRCT-CL/src/main/resources/META-INF/persistence.xml @@ -47,6 +47,7 @@ + From 7792858b1b683233a3c99727b0a93570817bc0e7 Mon Sep 17 00:00:00 2001 From: Yu Zhang Date: Thu, 7 Dec 2017 16:15:51 -0500 Subject: [PATCH 2/7] DI-968 made changes to the persistence.xml ddl auto field to validate --- .../java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java | 2 +- IRCT-CL/src/main/resources/META-INF/persistence.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java index c2205683..0cf29249 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java @@ -195,7 +195,7 @@ private void loadResources() { CriteriaQuery criteria = cb.createQuery(Resource.class); Root load = criteria.from(Resource.class); criteria.select(load); - criteria.where(cb.equal(load.get("ontologyType"),"TREE")); +// criteria.where(cb.equal(load.get("ontologyType"),"TREE")); for (Resource resource : oem.createQuery(criteria).getResultList()) { try { diff --git a/IRCT-CL/src/main/resources/META-INF/persistence.xml b/IRCT-CL/src/main/resources/META-INF/persistence.xml index 7661521d..14151133 100644 --- a/IRCT-CL/src/main/resources/META-INF/persistence.xml +++ b/IRCT-CL/src/main/resources/META-INF/persistence.xml @@ -48,7 +48,7 @@ - + From 1b84fafbd327dce647054c7bd32f2ce38f44ef5f Mon Sep 17 00:00:00 2001 From: Yu Zhang Date: Fri, 8 Dec 2017 12:37:15 -0500 Subject: [PATCH 3/7] DI-968 more changes on changelog-0.1.0.xml --- .../hms/dbmi/bd2k/irct/IRCTApplication.java | 2 +- .../bd2k/irct/db/changelogs/changelog-0.1.0.xml | 17 +++++++++++++++++ .../src/main/resources/META-INF/persistence.xml | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java index 0cf29249..c2205683 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/IRCTApplication.java @@ -195,7 +195,7 @@ private void loadResources() { CriteriaQuery criteria = cb.createQuery(Resource.class); Root load = criteria.from(Resource.class); criteria.select(load); -// criteria.where(cb.equal(load.get("ontologyType"),"TREE")); + criteria.where(cb.equal(load.get("ontologyType"),"TREE")); for (Resource resource : oem.createQuery(criteria).getResultList()) { try { diff --git a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml index 69693830..6fbde7a8 100755 --- a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml +++ b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml @@ -202,7 +202,24 @@ + + + + + alter table `irct`.`Token` change column `id` `id` BIGINT(20) not null + + + + + + + diff --git a/IRCT-CL/src/main/resources/META-INF/persistence.xml b/IRCT-CL/src/main/resources/META-INF/persistence.xml index 14151133..7661521d 100644 --- a/IRCT-CL/src/main/resources/META-INF/persistence.xml +++ b/IRCT-CL/src/main/resources/META-INF/persistence.xml @@ -48,7 +48,7 @@ - + From f685e3f435c2fc60e8b8a6253eee6ceaaf033ccd Mon Sep 17 00:00:00 2001 From: Yu Zhang Date: Thu, 22 Feb 2018 15:06:35 -0500 Subject: [PATCH 4/7] DI-968 fixed merge mess --- IRCT-API/pom.xml | 21 ++------------ .../hms/dbmi/bd2k/irct/model/query/Query.java | 13 --------- .../bd2k/irct/model/resource/Resource.java | 25 ---------------- .../dbmi/bd2k/irct/model/result/Result.java | 29 +------------------ .../dbmi/bd2k/irct/model/security/User.java | 11 ------- 5 files changed, 4 insertions(+), 95 deletions(-) diff --git a/IRCT-API/pom.xml b/IRCT-API/pom.xml index 5d31011d..955f8d2a 100644 --- a/IRCT-API/pom.xml +++ b/IRCT-API/pom.xml @@ -62,10 +62,6 @@ powermock-module-junit4 test -<<<<<<< HEAD - - -======= com.fasterxml.jackson.core jackson-databind @@ -75,26 +71,15 @@ org.apache.httpcomponents httpclient - ->>>>>>> master - src/main/java -<<<<<<< HEAD - src/main/resources - + src/main/resources + true + - -======= - - src/main/resources - true - - ->>>>>>> master IRCT-API diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java index 20d24433..723dbb73 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/query/Query.java @@ -9,23 +9,10 @@ import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonObjectBuilder; -<<<<<<< HEAD -import javax.persistence.CascadeType; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.ManyToMany; -import edu.harvard.hms.dbmi.bd2k.irct.model.resource.Resource; -======= import javax.persistence.*; import java.io.Serializable; import java.util.*; ->>>>>>> master /** * The query class represents any query against any individual or group of diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java index cbd8ce3f..367817d2 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/resource/Resource.java @@ -6,35 +6,11 @@ import java.io.Serializable; import java.util.List; import java.util.Map; -import java.util.logging.Logger; - -<<<<<<< HEAD -import javax.json.Json; -import javax.json.JsonArrayBuilder; -import javax.json.JsonObject; -import javax.json.JsonObjectBuilder; -import javax.persistence.CollectionTable; -import javax.persistence.Column; -import javax.persistence.Convert; -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.MapKeyColumn; -import javax.persistence.OneToMany; -import javax.persistence.Transient; -======= import javax.persistence.*; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonSerialize; ->>>>>>> master import edu.harvard.hms.dbmi.bd2k.irct.exception.ResourceInterfaceException; import edu.harvard.hms.dbmi.bd2k.irct.model.ontology.DataType; @@ -49,7 +25,6 @@ import edu.harvard.hms.dbmi.bd2k.irct.util.converter.DataTypeConverter; import edu.harvard.hms.dbmi.bd2k.irct.util.converter.OntologyRelationshipConverter; import edu.harvard.hms.dbmi.bd2k.irct.util.converter.ResourceImplementationConverter; -import org.apache.commons.logging.impl.Log4JLogger; /** * The resource class provides a way for the IRCT application to keep track of diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java index 31082086..bb6c5491 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/result/Result.java @@ -4,7 +4,6 @@ package edu.harvard.hms.dbmi.bd2k.irct.model.result; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; import edu.harvard.hms.dbmi.bd2k.irct.executable.Executable; import edu.harvard.hms.dbmi.bd2k.irct.model.security.User; import edu.harvard.hms.dbmi.bd2k.irct.util.converter.DataConverter; @@ -13,33 +12,12 @@ import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonObjectBuilder; -<<<<<<< HEAD -import javax.persistence.CascadeType; -import javax.persistence.Convert; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.ManyToOne; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; -import javax.persistence.Transient; - -import org.apache.log4j.Logger; - -import edu.harvard.hms.dbmi.bd2k.irct.executable.Executable; -import edu.harvard.hms.dbmi.bd2k.irct.model.security.User; -import edu.harvard.hms.dbmi.bd2k.irct.util.converter.DataConverter; -======= import javax.persistence.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; ->>>>>>> master /** * The result class is created for each execution that is run on the IRCT @@ -52,13 +30,8 @@ @Entity public class Result { @Id -<<<<<<< HEAD @GeneratedValue(strategy=GenerationType.IDENTITY) -======= - @GeneratedValue(generator = "resultSequencer") - @SequenceGenerator(name = "resultSequencer", sequenceName = "resSeq") - @JsonProperty("resultId") ->>>>>>> master + private Long id; @Transient diff --git a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java index 180e748a..88721dd5 100644 --- a/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java +++ b/IRCT-API/src/main/java/edu/harvard/hms/dbmi/bd2k/irct/model/security/User.java @@ -8,17 +8,6 @@ import javax.persistence.*; import java.io.Serializable; import java.security.Principal; - -<<<<<<< HEAD -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; - -======= ->>>>>>> master /** * A basic user representation. It can be associated with a session in EE 7. The * userId, and name are the same in this implementation. From eba26e4ecfbcd58d1cef94ee565063a92b718d9a Mon Sep 17 00:00:00 2001 From: Yu Zhang Date: Fri, 2 Mar 2018 14:41:03 -0500 Subject: [PATCH 5/7] DI-968 resolved running liquibase on non-local database problem by adding false --- IRCT-API/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/IRCT-API/pom.xml b/IRCT-API/pom.xml index 955f8d2a..acc7184b 100644 --- a/IRCT-API/pom.xml +++ b/IRCT-API/pom.xml @@ -131,6 +131,7 @@ true edu/harvard/hms/dbmi/bd2k/irct/db/liquibase.properties edu/harvard/hms/dbmi/bd2k/irct/db/changelog-master.xml + false From a77704c5162a81966ffabffc961c5f9a52d91bfb Mon Sep 17 00:00:00 2001 From: Yu Zhang Date: Fri, 2 Mar 2018 15:00:14 -0500 Subject: [PATCH 6/7] DI-968 take out resource_IRCTJoin in changelog which causing problems --- .../hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml index 6fbde7a8..b6c68220 100755 --- a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml +++ b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml @@ -35,12 +35,10 @@ - - - + - - - + From fee4cb8be39feffd3e317d686c1506829898da1b Mon Sep 17 00:00:00 2001 From: Yu Zhang Date: Fri, 2 Mar 2018 15:13:10 -0500 Subject: [PATCH 7/7] DI-968 revert it back first --- .../hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml index b6c68220..eaf72be2 100755 --- a/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml +++ b/IRCT-API/src/main/resources/edu/harvard/hms/dbmi/bd2k/irct/db/changelogs/changelog-0.1.0.xml @@ -35,10 +35,12 @@ + - + + + - + +