From 548410c43a8ef94ae573f9d4e88c13a021244064 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Thu, 5 Jan 2023 08:38:26 +0100 Subject: [PATCH] WIP --- .../database/table/TableCreateRawQuery.java | 4 +- .../database/table/TableInsertRawQuery.java | 4 +- .../database/table/columns/TableColumn.java | 8 ++-- .../table/columns/concepts/ColumnConcept.java | 45 +++++++++--------- .../columns/concepts/ColumnConceptKey.java | 16 ------- .../table/columns/concepts/Concept.java | 46 ------------------- .../Unit.java => units/ColumnUnit.java} | 4 +- fda-table-service/.dockerignore | 1 - fda-table-service/.gitignore | 4 -- fda-table-service/Dockerfile | 12 ++--- fda-table-service/README.md | 7 +++ fda-table-service/api/pom.xml | 21 --------- fda-table-service/pom.xml | 1 - fda-table-service/report/pom.xml | 7 ++- fda-table-service/rest-service/pom.xml | 8 +++- .../at/tuwien/FdaTableServiceApplication.java | 2 +- .../src/test/java/at/tuwien/BaseUnitTest.java | 4 +- .../tuwien/hibernate/DbrepoSchemaFilter.java | 2 +- .../src/test/resources/application.properties | 2 +- .../rest-service/src/test/resources/init.sql | 10 ---- .../src/test/resources/schema.sql | 2 + fda-table-service/services/pom.xml | 11 +---- .../java/at/tuwien/mapper/TableMapper.java | 8 ++-- .../repository/jpa/ConceptRepository.java | 4 +- .../tuwien/repository/jpa/UnitRepository.java | 4 +- .../tuwien/service/impl/TableServiceImpl.java | 30 ++++++------ 26 files changed, 89 insertions(+), 178 deletions(-) rename fda-table-service/api/src/main/java/at/tuwien/CreateTableRawQuery.java => fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java (81%) rename fda-table-service/api/src/main/java/at/tuwien/InsertTableRawQuery.java => fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java (75%) delete mode 100644 fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConceptKey.java delete mode 100644 fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java rename fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/{concepts/Unit.java => units/ColumnUnit.java} (94%) delete mode 100644 fda-table-service/.dockerignore create mode 100644 fda-table-service/README.md delete mode 100644 fda-table-service/api/pom.xml delete mode 100644 fda-table-service/rest-service/src/test/resources/init.sql create mode 100644 fda-table-service/rest-service/src/test/resources/schema.sql diff --git a/fda-table-service/api/src/main/java/at/tuwien/CreateTableRawQuery.java b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java similarity index 81% rename from fda-table-service/api/src/main/java/at/tuwien/CreateTableRawQuery.java rename to fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java index 2b9c7a1276..a587587d2f 100644 --- a/fda-table-service/api/src/main/java/at/tuwien/CreateTableRawQuery.java +++ b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java @@ -1,4 +1,4 @@ -package at.tuwien; +package at.tuwien.api.database.table; import lombok.*; @@ -10,7 +10,7 @@ import java.sql.PreparedStatement; @Builder @AllArgsConstructor @NoArgsConstructor -public class CreateTableRawQuery { +public class TableCreateRawQuery { private PreparedStatement preparedStatement; diff --git a/fda-table-service/api/src/main/java/at/tuwien/InsertTableRawQuery.java b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java similarity index 75% rename from fda-table-service/api/src/main/java/at/tuwien/InsertTableRawQuery.java rename to fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java index 4541a7786d..66d09bb136 100644 --- a/fda-table-service/api/src/main/java/at/tuwien/InsertTableRawQuery.java +++ b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java @@ -1,4 +1,4 @@ -package at.tuwien; +package at.tuwien.api.database.table; import lombok.*; @@ -11,7 +11,7 @@ import java.util.List; @Builder @AllArgsConstructor @NoArgsConstructor -public class InsertTableRawQuery { +public class TableInsertRawQuery { private String query; diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java index 4c0faa0029..9cf3d52728 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java @@ -2,8 +2,8 @@ package at.tuwien.entities.database.table.columns; import at.tuwien.entities.container.image.ContainerImageDate; import at.tuwien.entities.database.table.Table; -import at.tuwien.entities.database.table.columns.concepts.Concept; -import at.tuwien.entities.database.table.columns.concepts.Unit; +import at.tuwien.entities.database.table.columns.concepts.ColumnConcept; +import at.tuwien.entities.database.table.columns.units.ColumnUnit; import at.tuwien.entities.user.User; import lombok.*; import net.sf.jsqlparser.statement.select.SelectItem; @@ -123,7 +123,7 @@ public class TableColumn implements Comparable<TableColumn> { @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false) }, inverseJoinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri")) - private Concept concept; + private ColumnConcept concept; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinTable(name = "mdb_columns_units", @@ -133,7 +133,7 @@ public class TableColumn implements Comparable<TableColumn> { @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false) }, inverseJoinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri")) - private Unit unit; + private ColumnUnit unit; @Column @LastModifiedDate diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java index 711a86286e..4d0e5f6048 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java @@ -1,43 +1,46 @@ package at.tuwien.entities.database.table.columns.concepts; +import at.tuwien.entities.database.table.columns.TableColumn; import lombok.*; -import org.hibernate.annotations.GenericGenerator; +import org.springframework.data.annotation.CreatedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import javax.persistence.*; -import java.io.Serializable; +import java.time.Instant; +import java.util.List; -/** - * Join Table - */ @Data @Entity @Builder @AllArgsConstructor @NoArgsConstructor @ToString -@IdClass(ColumnConceptKey.class) @EntityListeners(AuditingEntityListener.class) @EqualsAndHashCode(onlyExplicitlyIncluded = true) -@javax.persistence.Table(name = "mdb_columns_concepts") -public class ColumnConcept implements Serializable { +@javax.persistence.Table(name = "mdb_concepts") +public class ColumnConcept { @Id @EqualsAndHashCode.Include - @GeneratedValue(generator = "columns-concepts-sequence") - @GenericGenerator(name = "columns-concepts-sequence", strategy = "increment") - @Column(updatable = false, nullable = false) - private Long cid; + @Column(nullable = false, columnDefinition = "TEXT") + private String uri; - @Id - @EqualsAndHashCode.Include - private Long tid; + @Column(name = "name", nullable = false) + private String name; - @Id - @EqualsAndHashCode.Include - private Long cdbid; + @org.springframework.data.annotation.Transient + @ToString.Exclude + @OneToMany(fetch = FetchType.LAZY) + @JoinTable(name = "mdb_columns_concepts", + joinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri", insertable = false, updatable = false), + inverseJoinColumns = { + @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false), + @JoinColumn(name = "tid", referencedColumnName = "tid", insertable = false, updatable = false), + @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false) + }) + private List<TableColumn> columns; - @EqualsAndHashCode.Include - @Column(columnDefinition = "TEXT") - private String uri; + @Column(nullable = false, updatable = false) + @CreatedDate + private Instant created; } diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConceptKey.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConceptKey.java deleted file mode 100644 index 7b0b79ee86..0000000000 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConceptKey.java +++ /dev/null @@ -1,16 +0,0 @@ -package at.tuwien.entities.database.table.columns.concepts; - -import lombok.EqualsAndHashCode; - -import java.io.Serializable; - -@EqualsAndHashCode -public class ColumnConceptKey implements Serializable { - - private Long cid; - - private Long cdbid; - - private Long tid; - -} diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java deleted file mode 100644 index 1771719c74..0000000000 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java +++ /dev/null @@ -1,46 +0,0 @@ -package at.tuwien.entities.database.table.columns.concepts; - -import at.tuwien.entities.database.table.columns.TableColumn; -import lombok.*; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import javax.persistence.*; -import java.time.Instant; -import java.util.List; - -@Data -@Entity -@Builder -@AllArgsConstructor -@NoArgsConstructor -@ToString -@EntityListeners(AuditingEntityListener.class) -@EqualsAndHashCode(onlyExplicitlyIncluded = true) -@javax.persistence.Table(name = "mdb_concepts") -public class Concept { - - @Id - @EqualsAndHashCode.Include - @Column(nullable = false, columnDefinition = "TEXT") - private String uri; - - @Column(name = "name", nullable = false) - private String name; - - @org.springframework.data.annotation.Transient - @ToString.Exclude - @OneToMany(fetch = FetchType.LAZY) - @JoinTable(name = "mdb_columns_concepts", - joinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri", insertable = false, updatable = false), - inverseJoinColumns = { - @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false), - @JoinColumn(name = "tid", referencedColumnName = "tid", insertable = false, updatable = false), - @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false) - }) - private List<TableColumn> columns; - - @Column(nullable = false, updatable = false) - @CreatedDate - private Instant created; -} diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Unit.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java similarity index 94% rename from fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Unit.java rename to fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java index 699cdf7d89..6969bc7a87 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Unit.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java @@ -1,4 +1,4 @@ -package at.tuwien.entities.database.table.columns.concepts; +package at.tuwien.entities.database.table.columns.units; import at.tuwien.entities.database.table.columns.TableColumn; import lombok.*; @@ -18,7 +18,7 @@ import java.util.List; @EntityListeners(AuditingEntityListener.class) @EqualsAndHashCode(onlyExplicitlyIncluded = true) @javax.persistence.Table(name = "mdb_units") -public class Unit { +public class ColumnUnit { @Id @EqualsAndHashCode.Include diff --git a/fda-table-service/.dockerignore b/fda-table-service/.dockerignore deleted file mode 100644 index fcdfe8de55..0000000000 --- a/fda-table-service/.dockerignore +++ /dev/null @@ -1 +0,0 @@ -rest-service/src/main/resources/*.csv \ No newline at end of file diff --git a/fda-table-service/.gitignore b/fda-table-service/.gitignore index 8e5c311b11..7731f1adf2 100644 --- a/fda-table-service/.gitignore +++ b/fda-table-service/.gitignore @@ -4,12 +4,8 @@ target/ !**/src/main/**/target/ !**/src/test/**/target/ -### Environment ### -.env - ### Generated ### ready -mapping.xml ### STS ### .apt_generated diff --git a/fda-table-service/Dockerfile b/fda-table-service/Dockerfile index ec1ab5c64e..4752a4a140 100644 --- a/fda-table-service/Dockerfile +++ b/fda-table-service/Dockerfile @@ -14,7 +14,6 @@ COPY --from=dependency /root/.m2/repository/at/tuwien /root/.m2/repository/at/tu COPY ./rest-service ./rest-service COPY ./services ./services COPY ./report ./report -COPY ./api ./api # Make sure it compiles RUN mvn -q clean package -DskipTests > /dev/null @@ -27,9 +26,8 @@ ENV METADATA_USERNAME=root ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda -ENV SEARCH_ENDPOINT=search-service -ENV GATEWAY_ENDPOINT=http://gateway-service:9095 -ENV multipart.location=/tmp +ENV SHARED_FILESYSTEM=/tmp +ENV USER_NETWORK=userdb ENV LOG_LEVEL=debug COPY ./service_ready /usr/bin @@ -37,8 +35,8 @@ RUN chmod +x /usr/bin/service_ready HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD service_ready -COPY --from=build ./rest-service/target/rest-service-*.jar ./table-service.jar +COPY --from=build ./rest-service/target/rest-service-*.jar ./container-service.jar -EXPOSE 9094 +EXPOSE 9091 -ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./table-service.jar"] +ENTRYPOINT ["java", "-Dlog4j2.formatMsgNoLookups=true", "-jar", "./container-service.jar"] diff --git a/fda-table-service/README.md b/fda-table-service/README.md new file mode 100644 index 0000000000..986b2885e1 --- /dev/null +++ b/fda-table-service/README.md @@ -0,0 +1,7 @@ +# FDA Container Service + +## Documentation + +- OpenAPI v3: http://localhost:9091/swagger-ui/index.html +- OpenAPI v3 endpoint: http://localhost:9091/v3/api-docs/ +- OpenAPI v3 YAML: http://localhost:9091/v3/api-docs.yaml \ No newline at end of file diff --git a/fda-table-service/api/pom.xml b/fda-table-service/api/pom.xml deleted file mode 100644 index 658d47e006..0000000000 --- a/fda-table-service/api/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <artifactId>fda-table-service</artifactId> - <groupId>at.tuwien</groupId> - <version>1.1.0-alpha</version> - </parent> - - <artifactId>api</artifactId> - <name>fda-table-service-api</name> - - <properties> - <jacoco.version>0.8.7</jacoco.version> - </properties> - - <dependencies /> - -</project> \ No newline at end of file diff --git a/fda-table-service/pom.xml b/fda-table-service/pom.xml index 01d11e6846..e9faf0cbb3 100644 --- a/fda-table-service/pom.xml +++ b/fda-table-service/pom.xml @@ -19,7 +19,6 @@ <module>rest-service</module> <module>services</module> <module>report</module> - <module>api</module> </modules> <properties> diff --git a/fda-table-service/report/pom.xml b/fda-table-service/report/pom.xml index 8b0c154b0f..1992c97aa9 100644 --- a/fda-table-service/report/pom.xml +++ b/fda-table-service/report/pom.xml @@ -4,13 +4,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <artifactId>fda-table-service</artifactId> <groupId>at.tuwien</groupId> + <artifactId>fda-table-service</artifactId> <version>1.1.0-alpha</version> </parent> <artifactId>report</artifactId> + <version>1.1.0-alpha</version> <name>fda-table-service-report</name> + <description> + This module is only intended for the pipeline coverage report. See the detailed report in the + respective modules + </description> <properties> <jacoco.version>0.8.7</jacoco.version> diff --git a/fda-table-service/rest-service/pom.xml b/fda-table-service/rest-service/pom.xml index b73a6ef216..0fd761d629 100644 --- a/fda-table-service/rest-service/pom.xml +++ b/fda-table-service/rest-service/pom.xml @@ -4,14 +4,18 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <artifactId>fda-table-service</artifactId> <groupId>at.tuwien</groupId> + <artifactId>fda-table-service</artifactId> <version>1.1.0-alpha</version> </parent> <artifactId>rest-service</artifactId> <version>1.1.0-alpha</version> - <name>fda-table-service-rest</name> + <name>fda-table-service-rest-service</name> + + <properties> + <jacoco.version>0.8.7</jacoco.version> + </properties> <dependencies> <dependency> diff --git a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java index 627cfa68a4..ebc2e89271 100644 --- a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java +++ b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java @@ -12,9 +12,9 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableJpaAuditing @SpringBootApplication @EnableTransactionManagement +@EntityScan(basePackages = {"at.tuwien.entities"}) @EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"}) @EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"}) -@EntityScan(basePackages = {"at.tuwien.entities"}) public class FdaTableServiceApplication { public static void main(String[] args) { diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java index ce3c4aa05d..119eaa6688 100644 --- a/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java +++ b/fda-table-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java @@ -7,7 +7,7 @@ import at.tuwien.api.database.table.columns.ColumnCreateDto; import at.tuwien.api.database.table.columns.ColumnTypeDto; import at.tuwien.api.user.UserDto; import at.tuwien.entities.container.image.*; -import at.tuwien.entities.database.table.columns.concepts.Concept; +import at.tuwien.entities.database.table.columns.concepts.ColumnConcept; import at.tuwien.entities.user.RoleType; import at.tuwien.entities.user.User; import at.tuwien.querystore.Query; @@ -744,7 +744,7 @@ public abstract class BaseUnitTest { public final static String CONCEPT_1_NAME = "Temperature"; public final static Instant CONCEPT_1_CREATED = Instant.now().minus(1, HOURS); - public final static Concept CONCEPT_1 = Concept.builder() + public final static ColumnConcept CONCEPT_1 = ColumnConcept.builder() .name(CONCEPT_1_NAME) .created(CONCEPT_1_CREATED) .uri("http://www.ontology-of-units-of-measure.org/resource/om-2/") diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java index bdbe4aebe2..1f0ad27cc0 100644 --- a/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java +++ b/fda-table-service/rest-service/src/test/java/at/tuwien/hibernate/DbrepoSchemaFilter.java @@ -6,7 +6,7 @@ import org.hibernate.mapping.Table; import org.hibernate.tool.schema.spi.SchemaFilter; /** - * Do not create table for class {@link at.tuwien.entities.database.table.columns.concepts.Concept} when using JUnit test + * Do not create table for class {@link at.tuwien.entities.database.table.columns.concepts.ColumnConcept} when using JUnit test */ public class DbrepoSchemaFilter implements SchemaFilter { diff --git a/fda-table-service/rest-service/src/test/resources/application.properties b/fda-table-service/rest-service/src/test/resources/application.properties index ef996777c5..d82af2fbd7 100644 --- a/fda-table-service/rest-service/src/test/resources/application.properties +++ b/fda-table-service/rest-service/src/test/resources/application.properties @@ -9,7 +9,7 @@ spring.cloud.config.discovery.enabled = false spring.cloud.config.enabled = false # internal datasource -spring.datasource.url=jdbc:h2:mem:testdb;DATABASE_TO_UPPER=false;DB_CLOSE_ON_EXIT=FALSE;INIT=RUNSCRIPT FROM './src/test/resources/init.sql' +spring.datasource.url=jdbc:h2:mem:fda;DATABASE_TO_UPPER=false;DB_CLOSE_ON_EXIT=FALSE;MODE=MYSQL;INIT=RUNSCRIPT FROM 'classpath:schema.sql' spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password diff --git a/fda-table-service/rest-service/src/test/resources/init.sql b/fda-table-service/rest-service/src/test/resources/init.sql deleted file mode 100644 index e25e2d0d03..0000000000 --- a/fda-table-service/rest-service/src/test/resources/init.sql +++ /dev/null @@ -1,10 +0,0 @@ -CREATE SCHEMA IF NOT EXISTS fda; -DROP TABLE IF EXISTS fda.mdb_concepts CASCADE; -CREATE TABLE IF NOT EXISTS fda.mdb_concepts -( - uri varchar(255) not null, - name VARCHAR(255), - created timestamp NOT NULL DEFAULT NOW(), - created_by bigint, - PRIMARY KEY (uri) -); \ No newline at end of file diff --git a/fda-table-service/rest-service/src/test/resources/schema.sql b/fda-table-service/rest-service/src/test/resources/schema.sql new file mode 100644 index 0000000000..095a1096ea --- /dev/null +++ b/fda-table-service/rest-service/src/test/resources/schema.sql @@ -0,0 +1,2 @@ +CREATE SCHEMA IF NOT EXISTS `fda`; +SET SCHEMA `fda`; \ No newline at end of file diff --git a/fda-table-service/services/pom.xml b/fda-table-service/services/pom.xml index 4a87bfe0d3..8deff1d33e 100644 --- a/fda-table-service/services/pom.xml +++ b/fda-table-service/services/pom.xml @@ -13,15 +13,6 @@ <version>1.1.0-alpha</version> <name>fda-table-service-services</name> - <dependencies > - <dependency> - <groupId>at.tuwien</groupId> - <artifactId>api</artifactId> - <version>1.1.0-alpha</version> - <scope>compile</scope> - </dependency> - </dependencies> - <build> <plugins> <plugin> @@ -48,4 +39,4 @@ </plugins> </build> -</project> +</project> \ No newline at end of file diff --git a/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java b/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java index c4a316dd06..a90f951708 100644 --- a/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java +++ b/fda-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java @@ -1,8 +1,8 @@ package at.tuwien.mapper; -import at.tuwien.CreateTableRawQuery; import at.tuwien.api.database.table.TableBriefDto; import at.tuwien.api.database.table.TableCreateDto; +import at.tuwien.api.database.table.TableCreateRawQuery; import at.tuwien.api.database.table.TableDto; import at.tuwien.api.database.table.columns.ColumnCreateDto; import at.tuwien.api.database.table.columns.ColumnDto; @@ -72,7 +72,7 @@ public interface TableMapper { @Mapping(source = "data.dfid", target = "dfid"), @Mapping(source = "data.lastModified", target = "lastModified"), }) - TableColumn tableColumnToTableColumn(Table table, TableColumn data, CreateTableRawQuery query); + TableColumn tableColumnToTableColumn(Table table, TableColumn data, TableCreateRawQuery query); @Named("internalMapping") default String nameToInternalName(String data) { @@ -172,7 +172,7 @@ public interface TableMapper { * @param data The table * @return The create table query */ - default CreateTableRawQuery tableToCreateTableRawQuery(Connection connection, Database database, TableCreateDto data) + default TableCreateRawQuery tableToCreateTableRawQuery(Connection connection, Database database, TableCreateDto data) throws ImageNotSupportedException, TableMalformedException, QueryMalformedException { if (!database.getContainer().getImage().getRepository().equals("mariadb")) { log.error("Currently only MariaDB is supported"); @@ -263,7 +263,7 @@ public interface TableMapper { try { final PreparedStatement pstmt = connection.prepareStatement(query.toString()); log.trace("prepared create table statement {}", query); - return CreateTableRawQuery.builder() + return TableCreateRawQuery.builder() .preparedStatement(pstmt) .generated(!primaryColumnExists) .build(); diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java index 2f29e71962..61d4cfe57e 100644 --- a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java +++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java @@ -1,10 +1,10 @@ package at.tuwien.repository.jpa; -import at.tuwien.entities.database.table.columns.concepts.Concept; +import at.tuwien.entities.database.table.columns.concepts.ColumnConcept; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface ConceptRepository extends JpaRepository<Concept, String> { +public interface ConceptRepository extends JpaRepository<ColumnConcept, String> { } diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java index 01cbeeaa41..5408cc4961 100644 --- a/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java +++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java @@ -1,10 +1,10 @@ package at.tuwien.repository.jpa; -import at.tuwien.entities.database.table.columns.concepts.Unit; +import at.tuwien.entities.database.table.columns.units.ColumnUnit; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface UnitRepository extends JpaRepository<Unit, String> { +public interface UnitRepository extends JpaRepository<ColumnUnit, String> { } diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java b/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java index 542fd15136..6c8d45d11a 100644 --- a/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java +++ b/fda-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java @@ -1,14 +1,14 @@ package at.tuwien.service.impl; -import at.tuwien.CreateTableRawQuery; import at.tuwien.api.database.table.TableCreateDto; +import at.tuwien.api.database.table.TableCreateRawQuery; import at.tuwien.api.database.table.columns.concepts.ColumnSemanticsUpdateDto; import at.tuwien.entities.container.Container; import at.tuwien.entities.database.Database; import at.tuwien.entities.database.table.Table; import at.tuwien.entities.database.table.columns.TableColumn; -import at.tuwien.entities.database.table.columns.concepts.Concept; -import at.tuwien.entities.database.table.columns.concepts.Unit; +import at.tuwien.entities.database.table.columns.concepts.ColumnConcept; +import at.tuwien.entities.database.table.columns.units.ColumnUnit; import at.tuwien.entities.user.User; import at.tuwien.exception.*; import at.tuwien.mapper.TableMapper; @@ -134,7 +134,7 @@ public class TableServiceImpl extends HibernateConnector implements TableService } /* run query */ final ComboPooledDataSource dataSource = getDataSource(database.getContainer().getImage(), database.getContainer(), database); - final CreateTableRawQuery query; + final TableCreateRawQuery query; try { final Connection connection = dataSource.getConnection(); query = tableMapper.tableToCreateTableRawQuery(connection, database, createDto); @@ -217,7 +217,7 @@ public class TableServiceImpl extends HibernateConnector implements TableService final TableColumn column = findColumn(table, columnId); /* assign */ if (updateDto.getUnitUri() != null) { - final Unit unit = findUnit(updateDto.getUnitUri()); + final ColumnUnit unit = findUnit(updateDto.getUnitUri()); column.setUnit(unit); log.debug("update unit of column, unit={}, column={}", unit, column); } else { @@ -225,12 +225,12 @@ public class TableServiceImpl extends HibernateConnector implements TableService log.debug("remove unit of column, column={}", column); } if (updateDto.getConceptUri() != null) { - final Concept concept = findConcept(updateDto.getConceptUri()); + final ColumnConcept concept = findConcept(updateDto.getConceptUri()); column.setConcept(concept); - log.debug("update concept of column, concept={}, column={}", concept, column); + log.debug("update ColumnConcept of column, concept={}, column={}", concept, column); } else { column.setConcept(null); - log.debug("remove concept of column, column={}", column); + log.debug("remove ColumnConcept of column, column={}", column); } final TableColumn out = tableColumnRepository.save(column); log.info("Updated table column with id {} of table with id {}", columnId, tableId); @@ -259,16 +259,16 @@ public class TableServiceImpl extends HibernateConnector implements TableService } /** - * Finds a concept with given uri + * Finds a ColumnConcept with given uri * * @param uri The uri. * @return The concept, if successful. - * @throws ConceptNotFoundException The concept was not found in the metadata database. + * @throws ConceptNotFoundException The ColumnConcept was not found in the metadata database. */ - protected Concept findConcept(String uri) throws ConceptNotFoundException { - final Optional<Concept> optional = conceptRepository.findById(uri); + protected ColumnConcept findConcept(String uri) throws ConceptNotFoundException { + final Optional<ColumnConcept> optional = conceptRepository.findById(uri); if (optional.isEmpty()) { - log.error("Failed to find concept with uri {}", uri); + log.error("Failed to find ColumnConcept with uri {}", uri); throw new ConceptNotFoundException("Failed to find concept"); } return optional.get(); @@ -281,8 +281,8 @@ public class TableServiceImpl extends HibernateConnector implements TableService * @return The unit, if successful. * @throws UnitNotFoundException The unit was not found in the metadata database. */ - protected Unit findUnit(String uri) throws UnitNotFoundException { - final Optional<Unit> optional = unitRepository.findById(uri); + protected ColumnUnit findUnit(String uri) throws UnitNotFoundException { + final Optional<ColumnUnit> optional = unitRepository.findById(uri); if (optional.isEmpty()) { log.error("Failed to find unit with uri {}", uri); throw new UnitNotFoundException("Failed to find unit"); -- GitLab