diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java index 5d1a79e93c5b398a1c917fc2ed9cbd8a63ac30ec..8891b85f23634dd65f392e9dc9f8b1a9ad5c5cd4 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java @@ -32,10 +32,10 @@ public class ContainerImageEnvironmentItem { @EqualsAndHashCode.Include public Long iid; - @Column(nullable = false) + @Column(nullable = false, columnDefinition = "VARCHAR(255)") private String key; - @Column(nullable = false) + @Column(nullable = false, columnDefinition = "VARCHAR(255)") private String value; @Column(nullable = false, name = "etype", columnDefinition = "enum('USERNAME', 'PASSWORD', 'PRIVILEGED_USERNAME', 'PRIVILEGED_PASSWORD')") 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 9cf3d52728f767a76e85b8f8d2d738f5f0aaad2e..541ed27892a490843743bff550bfb14681817f21 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,6 @@ 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.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 +121,7 @@ public class TableColumn implements Comparable<TableColumn> { @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false) }, inverseJoinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri")) - private ColumnConcept concept; + private TableColumnConcept concept; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE) @JoinTable(name = "mdb_columns_units", @@ -133,7 +131,7 @@ public class TableColumn implements Comparable<TableColumn> { @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false) }, inverseJoinColumns = @JoinColumn(name = "uri", referencedColumnName = "uri")) - private ColumnUnit unit; + private TableColumnUnit 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/TableColumnConcept.java similarity index 90% rename from fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java rename to fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java index 4d0e5f60482b4fb1bd4f43e998a08336791cf6b5..a06f93e2dbc4ed9d19ddb4c7a899eb6e75a8a4ea 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/TableColumnConcept.java @@ -1,6 +1,5 @@ -package at.tuwien.entities.database.table.columns.concepts; +package at.tuwien.entities.database.table.columns; -import at.tuwien.entities.database.table.columns.TableColumn; import lombok.*; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; @@ -18,7 +17,7 @@ import java.util.List; @EntityListeners(AuditingEntityListener.class) @EqualsAndHashCode(onlyExplicitlyIncluded = true) @javax.persistence.Table(name = "mdb_concepts") -public class ColumnConcept { +public class TableColumnConcept { @Id @EqualsAndHashCode.Include diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java similarity index 90% rename from fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java rename to fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java index 6969bc7a87af23cdae7f56c783ec5930caabc8be..114d08e789fa9547ca63766fbe338b6fac7f0611 100644 --- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/units/ColumnUnit.java +++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java @@ -1,6 +1,5 @@ -package at.tuwien.entities.database.table.columns.units; +package at.tuwien.entities.database.table.columns; -import at.tuwien.entities.database.table.columns.TableColumn; import lombok.*; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.jpa.domain.support.AuditingEntityListener; @@ -18,7 +17,7 @@ import java.util.List; @EntityListeners(AuditingEntityListener.class) @EqualsAndHashCode(onlyExplicitlyIncluded = true) @javax.persistence.Table(name = "mdb_units") -public class ColumnUnit { +public class TableColumnUnit { @Id @EqualsAndHashCode.Include 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 119eaa66881252b2696a1cf8adacd08c185f8cc7..da8deee9d374e7aa3843218de63d46e7a8b614d3 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.ColumnConcept; +import at.tuwien.entities.database.table.columns.TableColumnConcept; 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 ColumnConcept CONCEPT_1 = ColumnConcept.builder() + public final static TableColumnConcept CONCEPT_1 = TableColumnConcept.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 1f0ad27cc06da86c0849ebc5c9ef01dd7e1c0274..6481fc09a86fbef68aaa0988d6050395f609f044 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 @@ -5,6 +5,8 @@ import org.hibernate.boot.model.relational.Sequence; import org.hibernate.mapping.Table; import org.hibernate.tool.schema.spi.SchemaFilter; +import java.util.List; + /** * Do not create table for class {@link at.tuwien.entities.database.table.columns.concepts.ColumnConcept} when using JUnit test */ @@ -19,7 +21,11 @@ public class DbrepoSchemaFilter implements SchemaFilter { @Override public boolean includeTable(Table table) { - return !table.getName().matches("mdb_concepts"); + final List<String> exclude = List.of("mdb_units", "mdb_concepts"); + if (table.getSchema().matches("fda") && exclude.contains(table.getName())) { + return false; + } + return true; } @Override 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 d82af2fbd726ce9f2e14ce2d79c28db6cb034355..7b36261df9cae4125909802829b1b976ea649b4e 100644 --- a/fda-table-service/rest-service/src/test/resources/application.properties +++ b/fda-table-service/rest-service/src/test/resources/application.properties @@ -2,14 +2,14 @@ spring.profiles.active=local # disable discovery -spring.cloud.discovery.enabled = false +spring.cloud.discovery.enabled=false # disable cloud config and config discovery -spring.cloud.config.discovery.enabled = false -spring.cloud.config.enabled = false +spring.cloud.config.discovery.enabled=false +spring.cloud.config.enabled=false # internal datasource -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.url=jdbc:h2:mem:testdb;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/schema.sql b/fda-table-service/rest-service/src/test/resources/schema.sql index 095a1096ea89d0955c64ee6e642a763dc802907d..a668576dc0eb51e77237c42710fb0876ea5afb9b 100644 --- a/fda-table-service/rest-service/src/test/resources/schema.sql +++ b/fda-table-service/rest-service/src/test/resources/schema.sql @@ -1,2 +1,20 @@ CREATE SCHEMA IF NOT EXISTS `fda`; -SET SCHEMA `fda`; \ No newline at end of file +SET SCHEMA `fda`; +DROP TABLE IF EXISTS fda.mdb_concepts; +CREATE TABLE fda.mdb_concepts +( + uri VARCHAR(500) not null, + name VARCHAR(255), + created timestamp NOT NULL DEFAULT NOW(), + created_by bigint, + PRIMARY KEY (uri) +); +DROP TABLE IF EXISTS fda.mdb_units; +CREATE TABLE fda.mdb_units +( + uri VARCHAR(500) 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/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 61d4cfe57edf657dc9dfa582aedd8ccfbbddd802..5acdf44550ac99d2e16b69e54e81f4e8c20140b7 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.ColumnConcept; +import at.tuwien.entities.database.table.columns.TableColumnConcept; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface ConceptRepository extends JpaRepository<ColumnConcept, String> { +public interface ConceptRepository extends JpaRepository<TableColumnConcept, 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 5408cc4961bdd35d1eff5cc6d8ab33d100b35ee9..eabe7dd329ce3da3f3e08ba610a6cb15e38da10e 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.units.ColumnUnit; +import at.tuwien.entities.database.table.columns.TableColumnUnit; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface UnitRepository extends JpaRepository<ColumnUnit, String> { +public interface UnitRepository extends JpaRepository<TableColumnUnit, 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 6c8d45d11ae14c5e629de0fb32499596374e8c50..08a65ae9add29de935471952f8e2fe14ce97301c 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 @@ -7,8 +7,8 @@ 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.ColumnConcept; -import at.tuwien.entities.database.table.columns.units.ColumnUnit; +import at.tuwien.entities.database.table.columns.TableColumnConcept; +import at.tuwien.entities.database.table.columns.TableColumnUnit; import at.tuwien.entities.user.User; import at.tuwien.exception.*; import at.tuwien.mapper.TableMapper; @@ -217,7 +217,7 @@ public class TableServiceImpl extends HibernateConnector implements TableService final TableColumn column = findColumn(table, columnId); /* assign */ if (updateDto.getUnitUri() != null) { - final ColumnUnit unit = findUnit(updateDto.getUnitUri()); + final TableColumnUnit unit = findUnit(updateDto.getUnitUri()); column.setUnit(unit); log.debug("update unit of column, unit={}, column={}", unit, column); } else { @@ -225,7 +225,7 @@ public class TableServiceImpl extends HibernateConnector implements TableService log.debug("remove unit of column, column={}", column); } if (updateDto.getConceptUri() != null) { - final ColumnConcept concept = findConcept(updateDto.getConceptUri()); + final TableColumnConcept concept = findConcept(updateDto.getConceptUri()); column.setConcept(concept); log.debug("update ColumnConcept of column, concept={}, column={}", concept, column); } else { @@ -265,8 +265,8 @@ public class TableServiceImpl extends HibernateConnector implements TableService * @return The concept, if successful. * @throws ConceptNotFoundException The ColumnConcept was not found in the metadata database. */ - protected ColumnConcept findConcept(String uri) throws ConceptNotFoundException { - final Optional<ColumnConcept> optional = conceptRepository.findById(uri); + protected TableColumnConcept findConcept(String uri) throws ConceptNotFoundException { + final Optional<TableColumnConcept> optional = conceptRepository.findById(uri); if (optional.isEmpty()) { log.error("Failed to find ColumnConcept with uri {}", uri); throw new ConceptNotFoundException("Failed to find concept"); @@ -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 ColumnUnit findUnit(String uri) throws UnitNotFoundException { - final Optional<ColumnUnit> optional = unitRepository.findById(uri); + protected TableColumnUnit findUnit(String uri) throws UnitNotFoundException { + final Optional<TableColumnUnit> optional = unitRepository.findById(uri); if (optional.isEmpty()) { log.error("Failed to find unit with uri {}", uri); throw new UnitNotFoundException("Failed to find unit");