From b03577cadc956745418db03abadcd8fbe694c390 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Tue, 6 Jun 2023 19:39:16 +0200 Subject: [PATCH] WIP --- dbrepo-container-service/pom.xml | 5 --- .../DbrepoContainerManagingApplication.java | 2 + .../src/main/resources/application-local.yml | 8 ++-- .../src/main/resources/application.yml | 12 +++--- .../at/tuwien/config/OpenSearchConfig.java | 35 +++++++++++++++++ dbrepo-database-service/pom.xml | 15 ++++++- .../DbrepoDatabaseManagingApplication.java | 1 + .../src/main/resources/application.yml | 2 + dbrepo-identifier-service/pom.xml | 12 ++++-- .../DbrepoIdentifierServiceApplication.java | 1 + .../src/main/resources/application.yml | 2 + .../at/tuwien/api/database/DatabaseDto.java | 5 ++- .../java/at/tuwien/api/database/ViewDto.java | 5 ++- .../tuwien/api/database/table/TableDto.java | 12 +++--- .../api/database/table/TableKeyDto.java | 24 ++++++++++++ .../api/database/table/columns/ColumnDto.java | 14 ++++--- .../database/table/columns/ColumnKeyDto.java | 27 +++++++++++++ .../tuwien/api/identifier/IdentifierDto.java | 5 ++- .../main/java/at/tuwien/api/user/UserDto.java | 2 + dbrepo-metadata-db/pom.xml | 11 ++---- dbrepo-metadata-service/pom.xml | 12 ++++++ .../DbrepoMetadataServiceApplication.java | 1 + .../src/main/resources/application.yml | 2 + .../at/tuwien/config/OpenSearchConfig.java | 35 +++++++++++++++++ dbrepo-query-service/pom.xml | 6 +-- .../tuwien/DbrepoQueryServiceApplication.java | 1 + .../src/main/resources/application.yml | 2 + dbrepo-semantics-service/pom.xml | 6 +-- .../DbrepoSemanticsServiceApplication.java | 1 + .../src/main/resources/application.yml | 2 + dbrepo-table-service/pom.xml | 23 ++++++++--- .../tuwien/DbrepoTableServiceApplication.java | 7 ++-- .../src/main/resources/application-local.yml | 2 +- .../src/main/resources/application.yml | 2 +- .../endpoint/TableColumnEndpointUnitTest.java | 4 +- .../TableEndpointIntegrationTest.java | 6 +-- .../endpoint/TableEndpointUnitTest.java | 4 +- .../gateway/QueryServiceGatewayUnitTest.java | 4 +- .../at/tuwien/mapper/TableMapperUnitTest.java | 7 +--- .../MessageQueueServiceIntegrationTest.java | 7 ++-- .../TableServiceIntegrationReadTest.java | 8 ++-- .../TableServiceIntegrationWriteTest.java | 8 ++-- .../java/at/tuwien/config/IndexConfig.java | 39 +++---------------- .../at/tuwien/config/OpenSearchConfig.java | 7 ++-- .../java/at/tuwien/mapper/TableMapper.java | 5 +-- .../{jpa => mdb}/ConceptRepository.java | 2 +- .../{jpa => mdb}/ContainerRepository.java | 2 +- .../DatabaseAccessRepository.java | 5 ++- .../{jpa => mdb}/DatabaseRepository.java | 2 +- .../ImageEnvironmentRepository.java | 6 +-- .../{jpa => mdb}/ImageRepository.java | 2 +- .../{jpa => mdb}/OntologyRepository.java | 2 +- .../{jpa => mdb}/RealmRepository.java | 2 +- .../{jpa => mdb}/TableColumnRepository.java | 5 ++- .../{jpa => mdb}/TableRepository.java | 5 ++- .../{jpa => mdb}/UnitRepository.java | 2 +- .../{jpa => mdb}/UserRepository.java | 2 +- .../TableColumnIdxRepository.java | 5 ++- .../{elastic => sdb}/TableIdxRepository.java | 5 ++- .../service/impl/AccessServiceImpl.java | 2 +- .../service/impl/ContainerServiceImpl.java | 2 +- .../service/impl/DatabaseServiceImpl.java | 3 +- .../tuwien/service/impl/RabbitMqService.java | 2 +- .../service/impl/SemanticServiceImpl.java | 6 +-- .../tuwien/service/impl/TableServiceImpl.java | 10 ++--- .../tuwien/service/impl/UserServiceImpl.java | 2 +- dbrepo-user-service/pom.xml | 6 +-- .../at/tuwien/FdaUserServiceApplication.java | 1 + .../src/main/resources/application.yml | 2 + 69 files changed, 319 insertions(+), 165 deletions(-) create mode 100644 dbrepo-container-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java create mode 100644 dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java create mode 100644 dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnKeyDto.java create mode 100644 dbrepo-metadata-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/ConceptRepository.java (91%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/ContainerRepository.java (88%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/DatabaseAccessRepository.java (80%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/DatabaseRepository.java (97%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/ImageEnvironmentRepository.java (59%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/ImageRepository.java (88%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/OntologyRepository.java (88%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/RealmRepository.java (88%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/TableColumnRepository.java (66%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/TableRepository.java (80%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/UnitRepository.java (91%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{jpa => mdb}/UserRepository.java (90%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{elastic => sdb}/TableColumnIdxRepository.java (67%) rename dbrepo-table-service/services/src/main/java/at/tuwien/repository/{elastic => sdb}/TableIdxRepository.java (69%) diff --git a/dbrepo-container-service/pom.xml b/dbrepo-container-service/pom.xml index 8c4c65ef61..b6e164c44e 100644 --- a/dbrepo-container-service/pom.xml +++ b/dbrepo-container-service/pom.xml @@ -94,11 +94,6 @@ <artifactId>spring-data-opensearch</artifactId> <version>${opensearch-client.version}</version> </dependency> - <dependency> - <groupId>org.opensearch.client</groupId> - <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch-client.version}</version> - </dependency> <!-- Entity and API --> <dependency> <groupId>at.tuwien</groupId> diff --git a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java index 7ef30669bc..dfc87fe1bd 100644 --- a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java +++ b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/DbrepoContainerManagingApplication.java @@ -2,7 +2,9 @@ package at.tuwien; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.transaction.annotation.EnableTransactionManagement; diff --git a/dbrepo-container-service/rest-service/src/main/resources/application-local.yml b/dbrepo-container-service/rest-service/src/main/resources/application-local.yml index 2af1c6bc21..515bfd5174 100644 --- a/dbrepo-container-service/rest-service/src/main/resources/application-local.yml +++ b/dbrepo-container-service/rest-service/src/main/resources/application-local.yml @@ -27,6 +27,10 @@ spring: virtual-host: dbrepo username: fda password: fda + opensearch: + username: admin + password: admin + uris: http://localhost:9200 management.endpoints.web.exposure.include: health,info,prometheus springdoc.swagger-ui.enabled: true server: @@ -47,7 +51,3 @@ fda: client_secret: client-secret client_id: dbrepo-client gateway.endpoint: http://localhost - opensearch: - username: admin - password: admin - uris: http://localhost:9200 \ No newline at end of file diff --git a/dbrepo-container-service/rest-service/src/main/resources/application.yml b/dbrepo-container-service/rest-service/src/main/resources/application.yml index 907baa318f..b2722c825f 100644 --- a/dbrepo-container-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-container-service/rest-service/src/main/resources/application.yml @@ -1,5 +1,7 @@ app.version: '@project.version@' spring: + autoconfigure: + exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration main.banner-mode: off datasource: url: "jdbc:mariadb://metadata-db:3306/${METADATA_DB}" @@ -27,6 +29,10 @@ spring: virtual-host: dbrepo username: "${BROKER_USERNAME}" password: "${BROKER_PASSWORD}" + opensearch: + username: "${SEARCH_USERNAME}" + password: "${SEARCH_PASSWORD}" + uris: http://search-db:9200 management.endpoints.web.exposure.include: health,info,prometheus springdoc.swagger-ui.enabled: true server: @@ -46,8 +52,4 @@ fda: public_key: "${JWT_PUBKEY}" client_secret: "${DBREPO_CLIENT_SECRET}" client_id: "${CLIENT_ID}" - gateway.endpoint: http://gateway-service - opensearch: - username: "${SEARCH_USERNAME}" - password: "${SEARCH_PASSWORD}" - uris: http://search-db:9200 \ No newline at end of file + gateway.endpoint: http://gateway-service \ No newline at end of file diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java b/dbrepo-container-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java new file mode 100644 index 0000000000..27d815cc6f --- /dev/null +++ b/dbrepo-container-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java @@ -0,0 +1,35 @@ +package at.tuwien.config; + +import lombok.extern.log4j.Log4j2; +import org.opensearch.client.RestHighLevelClient; +import org.opensearch.data.client.orhlc.ClientConfiguration; +import org.opensearch.data.client.orhlc.RestClients; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Log4j2 +@Configuration +public class OpenSearchConfig { + + @Value("${spring.opensearch.uris}") + private String openSearchEndpoint; + + @Value("${spring.opensearch.username}") + private String openSearchUsername; + + @Value("${spring.opensearch.password}") + private String openSearchPassword; + + @Bean + public RestHighLevelClient openSearchClient() { + log.debug("openSearch endpoint={}", openSearchEndpoint); + final ClientConfiguration clientConfiguration = ClientConfiguration.builder() + .connectedTo(openSearchEndpoint) + .withBasicAuth(openSearchUsername, openSearchPassword) + .build(); + return RestClients.create(clientConfiguration) + .rest(); + } + +} \ No newline at end of file diff --git a/dbrepo-database-service/pom.xml b/dbrepo-database-service/pom.xml index 021bcf9c1a..bf7922f997 100644 --- a/dbrepo-database-service/pom.xml +++ b/dbrepo-database-service/pom.xml @@ -31,7 +31,7 @@ <c3p0.version>0.9.5.5</c3p0.version> <c3p0-hibernate.version>6.2.2.Final</c3p0-hibernate.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> - <opensearch.version>1.1.0</opensearch.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -72,7 +72,7 @@ <dependency> <groupId>org.opensearch.client</groupId> <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch.version}</version> + <version>${opensearch-client.version}</version> </dependency> <!-- AMQP --> <dependency> @@ -116,6 +116,11 @@ <artifactId>mariadb-java-client</artifactId> <version>${mariadb.version}</version> </dependency> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> + </dependency> <!-- Entity, API, QueryStore --> <dependency> <groupId>at.tuwien</groupId> @@ -136,6 +141,12 @@ <scope>compile</scope> </dependency> <!-- Testing --> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch-test-autoconfigure</artifactId> + <version>${opensearch-client.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> diff --git a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/DbrepoDatabaseManagingApplication.java b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/DbrepoDatabaseManagingApplication.java index 306944de33..bcc12b9542 100644 --- a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/DbrepoDatabaseManagingApplication.java +++ b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/DbrepoDatabaseManagingApplication.java @@ -2,6 +2,7 @@ package at.tuwien; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; diff --git a/dbrepo-database-service/rest-service/src/main/resources/application.yml b/dbrepo-database-service/rest-service/src/main/resources/application.yml index 3202f76b38..3ca17044ae 100644 --- a/dbrepo-database-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-database-service/rest-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ app.version: '@project.version@' spring: main.banner-mode: off + autoconfigure: + exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration datasource: url: "jdbc:mariadb://metadata-db:3306/${METADATA_DB}" driver-class-name: org.mariadb.jdbc.Driver diff --git a/dbrepo-identifier-service/pom.xml b/dbrepo-identifier-service/pom.xml index ef0bed4d9d..d4d0a38cc0 100644 --- a/dbrepo-identifier-service/pom.xml +++ b/dbrepo-identifier-service/pom.xml @@ -35,7 +35,7 @@ <super-csv.version>2.4.0</super-csv.version> <jsql.version>4.6</jsql.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> - <opensearch.version>1.1.0</opensearch.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -100,8 +100,8 @@ </dependency> <dependency> <groupId>org.opensearch.client</groupId> - <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch.version}</version> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> </dependency> <!-- Docker --> <dependency> @@ -129,6 +129,12 @@ <version>${springdoc-openapi.version}</version> </dependency> <!-- Testing --> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch-test-autoconfigure</artifactId> + <version>${opensearch-client.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> diff --git a/dbrepo-identifier-service/rest-service/src/main/java/at/tuwien/DbrepoIdentifierServiceApplication.java b/dbrepo-identifier-service/rest-service/src/main/java/at/tuwien/DbrepoIdentifierServiceApplication.java index 2104df15d6..79d1fba1d7 100644 --- a/dbrepo-identifier-service/rest-service/src/main/java/at/tuwien/DbrepoIdentifierServiceApplication.java +++ b/dbrepo-identifier-service/rest-service/src/main/java/at/tuwien/DbrepoIdentifierServiceApplication.java @@ -2,6 +2,7 @@ package at.tuwien; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; diff --git a/dbrepo-identifier-service/rest-service/src/main/resources/application.yml b/dbrepo-identifier-service/rest-service/src/main/resources/application.yml index 23fcfe2727..73b6c7b5ee 100644 --- a/dbrepo-identifier-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-identifier-service/rest-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ app.version: '@project.version@' spring: main.banner-mode: off + autoconfigure: + exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration datasource: url: "jdbc:mariadb://metadata-db:3306/${METADATA_DB}" driver-class-name: org.mariadb.jdbc.Driver diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java index 5715b7cd29..24a7799130 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java @@ -10,10 +10,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.extern.jackson.Jacksonized; -import org.springframework.data.elasticsearch.annotations.Document; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import org.springframework.data.elasticsearch.annotations.Document; + import java.time.Instant; import java.util.List; @@ -24,7 +25,7 @@ import java.util.List; @AllArgsConstructor @Jacksonized @ToString -@Document(indexName = "databaseindex", createIndex = false) +@Document(indexName = "database") public class DatabaseDto { @NotNull diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java index 7a5f80d2bc..8aeb060772 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java @@ -7,10 +7,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.extern.jackson.Jacksonized; -import org.springframework.data.elasticsearch.annotations.Document; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import org.springframework.data.elasticsearch.annotations.Document; + import java.time.Instant; import java.util.UUID; @@ -21,7 +22,7 @@ import java.util.UUID; @AllArgsConstructor @Jacksonized @ToString -@Document(indexName = "viewindex", createIndex = false) +@Document(indexName = "view") public class ViewDto { @NotNull diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java index cf7d14f940..8696a09278 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java @@ -4,15 +4,15 @@ import at.tuwien.api.database.table.columns.ColumnDto; import at.tuwien.api.database.table.constraints.ConstraintsDto; import at.tuwien.api.user.UserBriefDto; import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.extern.jackson.Jacksonized; -import org.springframework.data.elasticsearch.annotations.Document; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import org.springframework.data.elasticsearch.annotations.Document; + import java.time.Instant; import java.util.List; @@ -23,13 +23,15 @@ import java.util.List; @AllArgsConstructor @Jacksonized @ToString -@Document(indexName = "tableindex", createIndex = false) +@Document(indexName = "table") public class TableDto { - @JsonIgnore + @NotNull + @JsonProperty("container_id") private Long containerId; - @JsonIgnore + @NotNull + @JsonProperty("database_id") private Long databaseId; @NotNull diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java new file mode 100644 index 0000000000..010bc68af2 --- /dev/null +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java @@ -0,0 +1,24 @@ +package at.tuwien.api.database.table; + +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class TableKeyDto { + + @NotNull + private Long containerId; + + @NotNull + private Long databaseId; + + @NotNull + private Long id; +} diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java index 612f15d86d..68c7934e18 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java @@ -3,16 +3,15 @@ package at.tuwien.api.database.table.columns; import at.tuwien.api.container.image.ImageDateDto; import at.tuwien.api.database.table.columns.concepts.ConceptDto; import at.tuwien.api.database.table.columns.concepts.UnitDto; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.extern.jackson.Jacksonized; -import org.springframework.data.elasticsearch.annotations.Document; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import org.springframework.data.elasticsearch.annotations.Document; @Getter @Setter @@ -21,16 +20,19 @@ import jakarta.validation.constraints.NotNull; @AllArgsConstructor @Jacksonized @ToString -@Document(indexName = "columnindex", createIndex = false) +@Document(indexName = "column") public class ColumnDto { - @JsonIgnore + @NotNull + @JsonProperty("container_id") private Long containerId; - @JsonIgnore + @NotNull + @JsonProperty("database_id") private Long databaseId; - @JsonIgnore + @NotNull + @JsonProperty("table_id") private Long tableId; @NotNull diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnKeyDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnKeyDto.java new file mode 100644 index 0000000000..28dc203f03 --- /dev/null +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnKeyDto.java @@ -0,0 +1,27 @@ +package at.tuwien.api.database.table.columns; + +import jakarta.validation.constraints.NotNull; +import lombok.*; +import lombok.extern.jackson.Jacksonized; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Jacksonized +@ToString +public class ColumnKeyDto { + + @NotNull + private Long containerId; + + @NotNull + private Long databaseId; + + @NotNull + private Long tableId; + + @NotNull + private Long id; +} diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java index 592c7cfc8c..1a3619663c 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java @@ -9,10 +9,11 @@ import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.extern.jackson.Jacksonized; -import org.springframework.data.elasticsearch.annotations.Document; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import org.springframework.data.elasticsearch.annotations.Document; + import java.time.Instant; import java.util.List; @@ -23,7 +24,7 @@ import java.util.List; @AllArgsConstructor @Jacksonized @ToString -@Document(indexName = "identifierindex", createIndex = false) +@Document(indexName = "identifier", createIndex = false) public class IdentifierDto { private Long id; diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java index 6197dd0697..88a86abd65 100644 --- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java +++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java @@ -7,6 +7,7 @@ import lombok.*; import jakarta.validation.constraints.NotNull; import lombok.extern.jackson.Jacksonized; +import org.springframework.data.elasticsearch.annotations.Document; import java.util.List; import java.util.UUID; @@ -18,6 +19,7 @@ import java.util.UUID; @AllArgsConstructor @Jacksonized @ToString +@Document(indexName = "user") public class UserDto { @NotNull diff --git a/dbrepo-metadata-db/pom.xml b/dbrepo-metadata-db/pom.xml index 284747e3d7..0fb24fd6ea 100644 --- a/dbrepo-metadata-db/pom.xml +++ b/dbrepo-metadata-db/pom.xml @@ -32,7 +32,7 @@ <jackson-datatype.version>2.15.0</jackson-datatype.version> <commons.version>2.11.0</commons.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> - <opensearch.version>1.1.0</opensearch.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -48,15 +48,10 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> - <!-- DataSource --> - <dependency> - <groupId>org.springframework.data</groupId> - <artifactId>spring-data-elasticsearch</artifactId> - </dependency> <dependency> <groupId>org.opensearch.client</groupId> - <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch.version}</version> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> </dependency> <!-- Mapping --> <dependency> diff --git a/dbrepo-metadata-service/pom.xml b/dbrepo-metadata-service/pom.xml index beddd0a5da..26bff609d2 100644 --- a/dbrepo-metadata-service/pom.xml +++ b/dbrepo-metadata-service/pom.xml @@ -49,6 +49,7 @@ <keycloak.version>21.0.2</keycloak.version> <hibernate.version>6.2.2.Final</hibernate.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -83,6 +84,11 @@ <artifactId>mariadb-java-client</artifactId> <version>${mariadb.version}</version> </dependency> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> + </dependency> <!-- Monitoring --> <dependency> <groupId>io.micrometer</groupId> @@ -150,6 +156,12 @@ <version>${springdoc-openapi.version}</version> </dependency> <!-- Testing --> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch-test-autoconfigure</artifactId> + <version>${opensearch-client.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java index 1b6c8a38f5..2b5ef54ee2 100644 --- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java +++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/DbrepoMetadataServiceApplication.java @@ -2,6 +2,7 @@ package at.tuwien; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; diff --git a/dbrepo-metadata-service/rest-service/src/main/resources/application.yml b/dbrepo-metadata-service/rest-service/src/main/resources/application.yml index 0ec7b7bc08..ff401e9fe0 100644 --- a/dbrepo-metadata-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-metadata-service/rest-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ app.version: '@project.version@' spring: main.banner-mode: off + autoconfigure: + exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration datasource: url: "jdbc:mariadb://metadata-db:3306/${METADATA_DB}" driver-class-name: org.mariadb.jdbc.Driver diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java new file mode 100644 index 0000000000..27d815cc6f --- /dev/null +++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java @@ -0,0 +1,35 @@ +package at.tuwien.config; + +import lombok.extern.log4j.Log4j2; +import org.opensearch.client.RestHighLevelClient; +import org.opensearch.data.client.orhlc.ClientConfiguration; +import org.opensearch.data.client.orhlc.RestClients; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Log4j2 +@Configuration +public class OpenSearchConfig { + + @Value("${spring.opensearch.uris}") + private String openSearchEndpoint; + + @Value("${spring.opensearch.username}") + private String openSearchUsername; + + @Value("${spring.opensearch.password}") + private String openSearchPassword; + + @Bean + public RestHighLevelClient openSearchClient() { + log.debug("openSearch endpoint={}", openSearchEndpoint); + final ClientConfiguration clientConfiguration = ClientConfiguration.builder() + .connectedTo(openSearchEndpoint) + .withBasicAuth(openSearchUsername, openSearchPassword) + .build(); + return RestClients.create(clientConfiguration) + .rest(); + } + +} \ No newline at end of file diff --git a/dbrepo-query-service/pom.xml b/dbrepo-query-service/pom.xml index 9274612bde..e529441353 100644 --- a/dbrepo-query-service/pom.xml +++ b/dbrepo-query-service/pom.xml @@ -51,7 +51,7 @@ <c3p0.version>0.9.5.5</c3p0.version> <c3p0-hibernate.version>6.2.2.Final</c3p0-hibernate.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> - <opensearch.version>1.1.0</opensearch.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -123,8 +123,8 @@ </dependency> <dependency> <groupId>org.opensearch.client</groupId> - <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch.version}</version> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> </dependency> <!-- AMPQ --> <dependency> diff --git a/dbrepo-query-service/rest-service/src/main/java/at/tuwien/DbrepoQueryServiceApplication.java b/dbrepo-query-service/rest-service/src/main/java/at/tuwien/DbrepoQueryServiceApplication.java index af5e7ef229..34e5ffeca0 100644 --- a/dbrepo-query-service/rest-service/src/main/java/at/tuwien/DbrepoQueryServiceApplication.java +++ b/dbrepo-query-service/rest-service/src/main/java/at/tuwien/DbrepoQueryServiceApplication.java @@ -2,6 +2,7 @@ package at.tuwien; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; diff --git a/dbrepo-query-service/rest-service/src/main/resources/application.yml b/dbrepo-query-service/rest-service/src/main/resources/application.yml index 5caaab1e9b..8bc1f82c6f 100644 --- a/dbrepo-query-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-query-service/rest-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ app.version: '@project.version@' spring: main.banner-mode: off + autoconfigure: + exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration datasource: url: "jdbc:mariadb://metadata-db:3306/${METADATA_DB}" driver-class-name: org.mariadb.jdbc.Driver diff --git a/dbrepo-semantics-service/pom.xml b/dbrepo-semantics-service/pom.xml index 08ba51d910..6070573876 100644 --- a/dbrepo-semantics-service/pom.xml +++ b/dbrepo-semantics-service/pom.xml @@ -36,7 +36,7 @@ <c3p0-hibernate.version>6.2.2.Final</c3p0-hibernate.version> <apache-jena.version>4.8.0</apache-jena.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> - <opensearch.version>1.1.0</opensearch.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -95,8 +95,8 @@ </dependency> <dependency> <groupId>org.opensearch.client</groupId> - <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch.version}</version> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> </dependency> <!-- Testing --> <dependency> diff --git a/dbrepo-semantics-service/rest-service/src/main/java/at/tuwien/DbrepoSemanticsServiceApplication.java b/dbrepo-semantics-service/rest-service/src/main/java/at/tuwien/DbrepoSemanticsServiceApplication.java index bec2e19c3b..76350f4b41 100644 --- a/dbrepo-semantics-service/rest-service/src/main/java/at/tuwien/DbrepoSemanticsServiceApplication.java +++ b/dbrepo-semantics-service/rest-service/src/main/java/at/tuwien/DbrepoSemanticsServiceApplication.java @@ -3,6 +3,7 @@ package at.tuwien; import org.apache.jena.sys.JenaSystem; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; diff --git a/dbrepo-semantics-service/rest-service/src/main/resources/application.yml b/dbrepo-semantics-service/rest-service/src/main/resources/application.yml index 752873494f..5e9feb19bc 100644 --- a/dbrepo-semantics-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-semantics-service/rest-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ app.version: '@project.version@' spring: main.banner-mode: off + autoconfigure: + exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration datasource: url: "jdbc:mariadb://metadata-db:3306/${METADATA_DB}" driver-class-name: org.mariadb.jdbc.Driver diff --git a/dbrepo-table-service/pom.xml b/dbrepo-table-service/pom.xml index b32a4dde83..b686d22c3b 100644 --- a/dbrepo-table-service/pom.xml +++ b/dbrepo-table-service/pom.xml @@ -34,7 +34,7 @@ <c3p0.version>0.9.5.5</c3p0.version> <c3p0-hibernate.version>6.2.2.Final</c3p0-hibernate.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> - <opensearch.version>1.1.0</opensearch.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -120,16 +120,21 @@ <artifactId>hibernate-c3p0</artifactId> <version>${c3p0-hibernate.version}</version> </dependency> - <dependency> - <groupId>org.opensearch.client</groupId> - <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch.version}</version> - </dependency> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> <version>${mariadb.version}</version> </dependency> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> + </dependency> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch-starter</artifactId> + <version>${opensearch-client.version}</version> + </dependency> <!-- SQL Parser --> <dependency> <groupId>com.github.jsqlparser</groupId> @@ -150,6 +155,12 @@ <version>${rabbit-amqp-client.version}</version> </dependency> <!-- Testing --> + <dependency> + <groupId>org.opensearch.client</groupId> + <artifactId>spring-data-opensearch-test-autoconfigure</artifactId> + <version>${opensearch-client.version}</version> + <scope>test</scope> + </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> diff --git a/dbrepo-table-service/rest-service/src/main/java/at/tuwien/DbrepoTableServiceApplication.java b/dbrepo-table-service/rest-service/src/main/java/at/tuwien/DbrepoTableServiceApplication.java index a96e2effc7..21af60ba70 100644 --- a/dbrepo-table-service/rest-service/src/main/java/at/tuwien/DbrepoTableServiceApplication.java +++ b/dbrepo-table-service/rest-service/src/main/java/at/tuwien/DbrepoTableServiceApplication.java @@ -2,6 +2,7 @@ package at.tuwien; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @@ -10,11 +11,11 @@ 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"}) +@EnableElasticsearchRepositories +@EnableJpaRepositories(basePackages = {"at.tuwien.repository.mdb", "at.tuwien.repository.sdb"}) +@SpringBootApplication(exclude = {ElasticsearchDataAutoConfiguration.class}) public class DbrepoTableServiceApplication { public static void main(String[] args) { diff --git a/dbrepo-table-service/rest-service/src/main/resources/application-local.yml b/dbrepo-table-service/rest-service/src/main/resources/application-local.yml index 65be9f4bda..8dc8303bba 100644 --- a/dbrepo-table-service/rest-service/src/main/resources/application-local.yml +++ b/dbrepo-table-service/rest-service/src/main/resources/application-local.yml @@ -28,7 +28,7 @@ spring: opensearch: username: admin password: admin - uris: http://localhost:9200 + uris: localhost:9200 cloud: loadbalancer.ribbon.enabled: false management.endpoints.web.exposure.include: health,info,prometheus diff --git a/dbrepo-table-service/rest-service/src/main/resources/application.yml b/dbrepo-table-service/rest-service/src/main/resources/application.yml index d874155e5c..a91591b9ad 100644 --- a/dbrepo-table-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-table-service/rest-service/src/main/resources/application.yml @@ -28,7 +28,7 @@ spring: opensearch: username: "${SEARCH_USERNAME}" password: "${SEARCH_PASSWORD}" - uris: http://search-db:9200 + uris: search-db:9200 cloud: loadbalancer.ribbon.enabled: false management.endpoints.web.exposure.include: health,info,prometheus diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java index 2dd1a03a5a..6ba5c6fee7 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableColumnEndpointUnitTest.java @@ -11,8 +11,8 @@ import at.tuwien.entities.database.DatabaseAccess; import at.tuwien.entities.database.table.Table; import at.tuwien.entities.database.table.columns.TableColumn; import at.tuwien.exception.*; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; import at.tuwien.service.AccessService; import at.tuwien.service.DatabaseService; import at.tuwien.service.TableService; diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java index e52f7c89de..ab7b30e6a3 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointIntegrationTest.java @@ -7,9 +7,9 @@ import at.tuwien.config.IndexConfig; import at.tuwien.config.ReadyConfig; import at.tuwien.endpoints.TableEndpoint; import at.tuwien.exception.*; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; -import at.tuwien.repository.jpa.*; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; +import at.tuwien.repository.mdb.*; import com.rabbitmq.client.Channel; import lombok.extern.log4j.Log4j2; import org.junit.jupiter.api.AfterEach; diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java index 3ea4f20546..49b1b0a669 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java @@ -11,8 +11,8 @@ import at.tuwien.entities.database.Database; import at.tuwien.entities.database.DatabaseAccess; import at.tuwien.entities.database.table.Table; import at.tuwien.exception.*; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; import at.tuwien.service.AccessService; import at.tuwien.service.DatabaseService; import at.tuwien.service.TableService; diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/gateway/QueryServiceGatewayUnitTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/gateway/QueryServiceGatewayUnitTest.java index c84163790c..3d27d0c923 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/gateway/QueryServiceGatewayUnitTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/gateway/QueryServiceGatewayUnitTest.java @@ -4,8 +4,8 @@ import at.tuwien.BaseUnitTest; import at.tuwien.config.IndexConfig; import at.tuwien.config.ReadyConfig; import at.tuwien.exception.AmqpException; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; import com.rabbitmq.client.Channel; import lombok.extern.log4j.Log4j2; import org.junit.jupiter.api.Test; diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperUnitTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperUnitTest.java index 234ce6491e..2ec5fe43e9 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperUnitTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperUnitTest.java @@ -1,15 +1,12 @@ package at.tuwien.mapper; import at.tuwien.BaseUnitTest; -import at.tuwien.api.database.AccessTypeDto; import at.tuwien.config.IndexConfig; import at.tuwien.config.ReadyConfig; -import at.tuwien.exception.NotAllowedException; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; import com.rabbitmq.client.Channel; import lombok.extern.log4j.Log4j2; -import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java index d91e8827fb..29b42b6f6f 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/MessageQueueServiceIntegrationTest.java @@ -6,9 +6,8 @@ import at.tuwien.config.IndexConfig; import at.tuwien.config.ReadyConfig; import at.tuwien.config.DockerConfig; import at.tuwien.exception.*; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; -import at.tuwien.repository.jpa.TableRepository; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; import at.tuwien.utils.AmqpUtils; import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; @@ -46,7 +45,7 @@ public class MessageQueueServiceIntegrationTest extends BaseUnitTest { private TableColumnIdxRepository tableColumnidxRepository; @MockBean - private TableRepository tableRepository; + private at.tuwien.repository.mdb.TableRepository tableRepository; @Autowired private AmqpUtils amqpUtils; diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java index 2759fe65b2..e65f776d75 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationReadTest.java @@ -7,9 +7,9 @@ import at.tuwien.config.IndexConfig; import at.tuwien.config.ReadyConfig; import at.tuwien.entities.database.table.Table; import at.tuwien.exception.*; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; -import at.tuwien.repository.jpa.*; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; +import at.tuwien.repository.mdb.*; import com.rabbitmq.client.Channel; import lombok.extern.log4j.Log4j2; import org.junit.jupiter.api.*; @@ -66,7 +66,7 @@ public class TableServiceIntegrationReadTest extends BaseUnitTest { private DatabaseRepository databaseRepository; @Autowired - private TableRepository tableRepository; + private at.tuwien.repository.mdb.TableRepository tableRepository; @Autowired private TableService tableService; diff --git a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java index d3482ae758..254d3c2d60 100644 --- a/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java +++ b/dbrepo-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationWriteTest.java @@ -8,9 +8,9 @@ import at.tuwien.config.H2Utils; import at.tuwien.config.IndexConfig; import at.tuwien.config.ReadyConfig; import at.tuwien.exception.*; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; -import at.tuwien.repository.jpa.*; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; +import at.tuwien.repository.mdb.*; import com.rabbitmq.client.Channel; import lombok.extern.log4j.Log4j2; import org.apache.http.auth.BasicUserPrincipal; @@ -67,7 +67,7 @@ public class TableServiceIntegrationWriteTest extends BaseUnitTest { private DatabaseRepository databaseRepository; @Autowired - private TableRepository tableRepository; + private at.tuwien.repository.mdb.TableRepository tableRepository; @Autowired private TableService tableService; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/config/IndexConfig.java b/dbrepo-table-service/services/src/main/java/at/tuwien/config/IndexConfig.java index e6f97043de..387acfe392 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/config/IndexConfig.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/config/IndexConfig.java @@ -3,18 +3,13 @@ package at.tuwien.config; import at.tuwien.api.database.table.TableDto; import at.tuwien.api.database.table.columns.ColumnDto; import at.tuwien.mapper.TableMapper; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; -import at.tuwien.repository.jpa.TableColumnRepository; -import at.tuwien.repository.jpa.TableRepository; +import at.tuwien.repository.mdb.TableColumnRepository; +import at.tuwien.repository.mdb.TableRepository; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; import lombok.extern.log4j.Log4j2; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.event.ApplicationReadyEvent; import org.springframework.context.event.EventListener; -import org.springframework.core.env.Environment; -import org.springframework.core.env.Profiles; -import org.springframework.data.elasticsearch.core.ElasticsearchOperations; -import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -25,46 +20,24 @@ import java.util.stream.Collectors; @Log4j2 public class IndexConfig { - private final Environment environment; private final TableMapper tableMapper; private final TableRepository tableRepository; private final TableIdxRepository tableIdxRepository; private final TableColumnRepository tableColumnRepository; - private final ElasticsearchOperations elasticsearchOperations; private final TableColumnIdxRepository tableColumnIdxRepository; - @Autowired - public IndexConfig(Environment environment, TableMapper tableMapper, TableRepository tableRepository, - TableIdxRepository tableIdxRepository, TableColumnRepository tableColumnRepository, - ElasticsearchOperations elasticsearchOperations, - TableColumnIdxRepository tableColumnIdxRepository) { - this.environment = environment; + public IndexConfig(TableMapper tableMapper, TableRepository tableRepository, TableIdxRepository tableIdxRepository, + TableColumnRepository tableColumnRepository, TableColumnIdxRepository tableColumnIdxRepository) { this.tableMapper = tableMapper; this.tableRepository = tableRepository; this.tableIdxRepository = tableIdxRepository; this.tableColumnRepository = tableColumnRepository; - this.elasticsearchOperations = elasticsearchOperations; this.tableColumnIdxRepository = tableColumnIdxRepository; } @Transactional @EventListener(ApplicationReadyEvent.class) public void initIndex() { - if (environment.acceptsProfiles(Profiles.of("test-noelastic"))) { - return; - } - log.debug("creating tableindex"); - final IndexCoordinates tableIndex = IndexCoordinates.of("tableindex"); - if (!elasticsearchOperations.indexOps(tableIndex).exists()) { - elasticsearchOperations.indexOps(tableIndex).create(); - elasticsearchOperations.indexOps(tableIndex).createMapping(TableDto.class); - } - log.debug("creating columnindex"); - final IndexCoordinates columnIndex = IndexCoordinates.of("columnindex"); - if (!elasticsearchOperations.indexOps(columnIndex).exists()) { - elasticsearchOperations.indexOps(columnIndex).create(); - elasticsearchOperations.indexOps(columnIndex).createMapping(ColumnDto.class); - } /* pre-fill */ final List<TableDto> tables = tableRepository.findAll() .stream() diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java b/dbrepo-table-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java index 27d815cc6f..2456e27f4e 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/config/OpenSearchConfig.java @@ -2,6 +2,7 @@ package at.tuwien.config; import lombok.extern.log4j.Log4j2; import org.opensearch.client.RestHighLevelClient; +import org.opensearch.data.client.orhlc.AbstractOpenSearchConfiguration; import org.opensearch.data.client.orhlc.ClientConfiguration; import org.opensearch.data.client.orhlc.RestClients; import org.springframework.beans.factory.annotation.Value; @@ -10,7 +11,7 @@ import org.springframework.context.annotation.Configuration; @Log4j2 @Configuration -public class OpenSearchConfig { +public class OpenSearchConfig extends AbstractOpenSearchConfiguration { @Value("${spring.opensearch.uris}") private String openSearchEndpoint; @@ -22,7 +23,8 @@ public class OpenSearchConfig { private String openSearchPassword; @Bean - public RestHighLevelClient openSearchClient() { + @Override + public RestHighLevelClient opensearchClient() { log.debug("openSearch endpoint={}", openSearchEndpoint); final ClientConfiguration clientConfiguration = ClientConfiguration.builder() .connectedTo(openSearchEndpoint) @@ -31,5 +33,4 @@ public class OpenSearchConfig { return RestClients.create(clientConfiguration) .rest(); } - } \ No newline at end of file diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java b/dbrepo-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java index 688e44c832..6c2d65f211 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/mapper/TableMapper.java @@ -7,9 +7,6 @@ import at.tuwien.api.database.table.TableDto; import at.tuwien.api.database.table.columns.ColumnCreateDto; import at.tuwien.api.database.table.columns.ColumnDto; import at.tuwien.api.database.table.columns.ColumnTypeDto; -import at.tuwien.api.database.table.columns.concepts.ColumnSemanticsUpdateDto; -import at.tuwien.api.database.table.columns.concepts.ConceptSaveDto; -import at.tuwien.api.database.table.columns.concepts.UnitSaveDto; import at.tuwien.api.database.table.constraints.ConstraintsCreateDto; import at.tuwien.api.database.table.constraints.foreignKey.ForeignKeyCreateDto; import at.tuwien.api.database.table.constraints.foreignKey.ForeignKeyDto; @@ -29,7 +26,7 @@ import at.tuwien.entities.database.table.constraints.unique.Unique; import at.tuwien.exception.ImageNotSupportedException; import at.tuwien.exception.QueryMalformedException; import at.tuwien.exception.TableMalformedException; -import at.tuwien.repository.jpa.TableRepository; +import at.tuwien.repository.mdb.TableRepository; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ConceptRepository.java similarity index 91% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ConceptRepository.java index 52e9f9d082..1cf729a259 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ConceptRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ConceptRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.database.table.columns.TableColumnConcept; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ContainerRepository.java similarity index 88% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ContainerRepository.java index 39566b1cc0..f41d2aa3fa 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ContainerRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.container.Container; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseAccessRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/DatabaseAccessRepository.java similarity index 80% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseAccessRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/DatabaseAccessRepository.java index a91fb2ee2f..f117748c36 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseAccessRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/DatabaseAccessRepository.java @@ -1,6 +1,7 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.database.DatabaseAccess; +import at.tuwien.entities.database.DatabaseAccessKey; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.stereotype.Repository; @@ -8,7 +9,7 @@ import org.springframework.stereotype.Repository; import java.util.Optional; @Repository -public interface DatabaseAccessRepository extends JpaRepository<DatabaseAccess, Long> { +public interface DatabaseAccessRepository extends JpaRepository<DatabaseAccess, DatabaseAccessKey> { @Query("select a from DatabaseAccess a where a.hdbid = :databaseId and a.user.username = :username") Optional<DatabaseAccess> findByDatabaseIdAndUsername(Long databaseId, String username); diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/DatabaseRepository.java similarity index 97% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/DatabaseRepository.java index f945f6eb2b..2ea6e5234a 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/DatabaseRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.database.Database; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageEnvironmentRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ImageEnvironmentRepository.java similarity index 59% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageEnvironmentRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ImageEnvironmentRepository.java index c25e8577e2..6bb192292f 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageEnvironmentRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ImageEnvironmentRepository.java @@ -1,11 +1,11 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; -import at.tuwien.entities.container.image.ContainerImage; import at.tuwien.entities.container.image.ContainerImageEnvironmentItem; +import at.tuwien.entities.container.image.ContainerImageEnvironmentItemKey; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface ImageEnvironmentRepository extends JpaRepository<ContainerImageEnvironmentItem, Long> { +public interface ImageEnvironmentRepository extends JpaRepository<ContainerImageEnvironmentItem, ContainerImageEnvironmentItemKey> { } diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ImageRepository.java similarity index 88% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ImageRepository.java index 247ce97770..046fd51c3e 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/ImageRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.container.image.ContainerImage; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/OntologyRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/OntologyRepository.java similarity index 88% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/OntologyRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/OntologyRepository.java index 75c296f527..fab911633e 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/OntologyRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/OntologyRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.semantics.Ontology; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/RealmRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/RealmRepository.java similarity index 88% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/RealmRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/RealmRepository.java index 5b5855dec8..7b53e72459 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/RealmRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/RealmRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.user.Realm; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/TableColumnRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/TableColumnRepository.java similarity index 66% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/TableColumnRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/TableColumnRepository.java index 9441d45125..b52cc85d35 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/TableColumnRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/TableColumnRepository.java @@ -1,10 +1,11 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.database.table.columns.TableColumn; +import at.tuwien.entities.database.table.columns.TableColumnKey; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository -public interface TableColumnRepository extends JpaRepository<TableColumn, Long> { +public interface TableColumnRepository extends JpaRepository<TableColumn, TableColumnKey> { } diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/TableRepository.java similarity index 80% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/TableRepository.java index c629a9b493..77541d67b7 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/TableRepository.java @@ -1,7 +1,8 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.database.Database; import at.tuwien.entities.database.table.Table; +import at.tuwien.entities.database.table.TableKey; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @@ -9,7 +10,7 @@ import java.util.List; import java.util.Optional; @Repository -public interface TableRepository extends JpaRepository<Table, Long> { +public interface TableRepository extends JpaRepository<Table, TableKey> { List<Table> findByDatabaseOrderByCreatedDesc(Database database); diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/UnitRepository.java similarity index 91% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/UnitRepository.java index 69ae3d7e51..a88ba4ff43 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/UnitRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/UnitRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.database.table.columns.TableColumnUnit; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/UserRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/UserRepository.java similarity index 90% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/UserRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/UserRepository.java index 9eb0b51902..42d09c3e9e 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/jpa/UserRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/mdb/UserRepository.java @@ -1,4 +1,4 @@ -package at.tuwien.repository.jpa; +package at.tuwien.repository.mdb; import at.tuwien.entities.user.User; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/elastic/TableColumnIdxRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/sdb/TableColumnIdxRepository.java similarity index 67% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/elastic/TableColumnIdxRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/sdb/TableColumnIdxRepository.java index 7df09d4e44..7fcd93f713 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/elastic/TableColumnIdxRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/sdb/TableColumnIdxRepository.java @@ -1,9 +1,10 @@ -package at.tuwien.repository.elastic; +package at.tuwien.repository.sdb; import at.tuwien.api.database.table.columns.ColumnDto; +import at.tuwien.api.database.table.columns.ColumnKeyDto; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.stereotype.Repository; @Repository -public interface TableColumnIdxRepository extends ElasticsearchRepository<ColumnDto, Long> { +public interface TableColumnIdxRepository extends ElasticsearchRepository<ColumnDto, ColumnKeyDto> { } \ No newline at end of file diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/elastic/TableIdxRepository.java b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/sdb/TableIdxRepository.java similarity index 69% rename from dbrepo-table-service/services/src/main/java/at/tuwien/repository/elastic/TableIdxRepository.java rename to dbrepo-table-service/services/src/main/java/at/tuwien/repository/sdb/TableIdxRepository.java index ce6e8a0975..f672e53c3b 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/repository/elastic/TableIdxRepository.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/repository/sdb/TableIdxRepository.java @@ -1,9 +1,10 @@ -package at.tuwien.repository.elastic; +package at.tuwien.repository.sdb; import at.tuwien.api.database.table.TableDto; +import at.tuwien.entities.database.table.TableKey; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.stereotype.Repository; @Repository -public interface TableIdxRepository extends ElasticsearchRepository<TableDto, Long> { +public interface TableIdxRepository extends ElasticsearchRepository<TableDto, TableKey> { } \ No newline at end of file diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java index 91d4f41a8a..85fc7196d4 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/AccessServiceImpl.java @@ -3,7 +3,7 @@ package at.tuwien.service.impl; import at.tuwien.entities.database.DatabaseAccess; import at.tuwien.exception.AccessDeniedException; import at.tuwien.exception.NotAllowedException; -import at.tuwien.repository.jpa.DatabaseAccessRepository; +import at.tuwien.repository.mdb.DatabaseAccessRepository; import at.tuwien.service.AccessService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java index 35f7e99b84..13d425c5a9 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java @@ -2,7 +2,7 @@ package at.tuwien.service.impl; import at.tuwien.entities.container.Container; import at.tuwien.exception.ContainerNotFoundException; -import at.tuwien.repository.jpa.ContainerRepository; +import at.tuwien.repository.mdb.ContainerRepository; import at.tuwien.service.ContainerService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java index ff16e63370..a4437d6461 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java @@ -2,13 +2,12 @@ package at.tuwien.service.impl; import at.tuwien.entities.database.Database; import at.tuwien.exception.DatabaseNotFoundException; -import at.tuwien.repository.jpa.DatabaseRepository; +import at.tuwien.repository.mdb.DatabaseRepository; import at.tuwien.service.DatabaseService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.security.Principal; import java.util.Optional; @Log4j2 diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java index 29d7a97826..1984eaf285 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/RabbitMqService.java @@ -2,7 +2,7 @@ package at.tuwien.service.impl; import at.tuwien.entities.database.table.Table; import at.tuwien.exception.*; -import at.tuwien.repository.jpa.TableRepository; +import at.tuwien.repository.mdb.TableRepository; import at.tuwien.service.MessageQueueService; import com.rabbitmq.client.*; import lombok.extern.log4j.Log4j2; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/SemanticServiceImpl.java b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/SemanticServiceImpl.java index 94cd509ae8..fd1954ddd9 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/SemanticServiceImpl.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/SemanticServiceImpl.java @@ -8,9 +8,9 @@ import at.tuwien.exception.SemanticEntityNotFoundException; import at.tuwien.exception.UnitNotFoundException; import at.tuwien.gateway.SemanticServiceGateway; import at.tuwien.mapper.TableMapper; -import at.tuwien.repository.jpa.ConceptRepository; -import at.tuwien.repository.jpa.OntologyRepository; -import at.tuwien.repository.jpa.UnitRepository; +import at.tuwien.repository.mdb.ConceptRepository; +import at.tuwien.repository.mdb.OntologyRepository; +import at.tuwien.repository.mdb.UnitRepository; import at.tuwien.service.SemanticService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java index c0b1681e8b..aada8f5a92 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java @@ -10,10 +10,10 @@ import at.tuwien.entities.database.table.columns.TableColumn; import at.tuwien.entities.user.User; import at.tuwien.exception.*; import at.tuwien.mapper.TableMapper; -import at.tuwien.repository.elastic.TableColumnIdxRepository; -import at.tuwien.repository.elastic.TableIdxRepository; -import at.tuwien.repository.jpa.TableColumnRepository; -import at.tuwien.repository.jpa.TableRepository; +import at.tuwien.repository.mdb.TableColumnRepository; +import at.tuwien.repository.mdb.TableRepository; +import at.tuwien.repository.sdb.TableColumnIdxRepository; +import at.tuwien.repository.sdb.TableIdxRepository; import at.tuwien.service.*; import com.mchange.v2.c3p0.ComboPooledDataSource; import lombok.extern.log4j.Log4j2; @@ -46,7 +46,7 @@ public class TableServiceImpl extends HibernateConnector implements TableService public TableServiceImpl(TableMapper tableMapper, UserService userService, SemanticService semanticService, TableRepository tableRepository, DatabaseService databaseService, ContainerService containerService, TableIdxRepository tableIdxRepository, - TableColumnRepository tableColumnRepository, + at.tuwien.repository.mdb.TableColumnRepository tableColumnRepository, TableColumnIdxRepository tableColumnIdxRepository) { this.tableMapper = tableMapper; this.userService = userService; diff --git a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java index 2c7df8b36c..47f1ac286b 100644 --- a/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java +++ b/dbrepo-table-service/services/src/main/java/at/tuwien/service/impl/UserServiceImpl.java @@ -2,7 +2,7 @@ package at.tuwien.service.impl; import at.tuwien.entities.user.User; import at.tuwien.exception.UserNotFoundException; -import at.tuwien.repository.jpa.UserRepository; +import at.tuwien.repository.mdb.UserRepository; import at.tuwien.service.UserService; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; diff --git a/dbrepo-user-service/pom.xml b/dbrepo-user-service/pom.xml index dad7c33127..3c8f18b805 100644 --- a/dbrepo-user-service/pom.xml +++ b/dbrepo-user-service/pom.xml @@ -52,7 +52,7 @@ <keycloak.version>21.0.2</keycloak.version> <hibernate.version>6.2.2.Final</hibernate.version> <springdoc-openapi.version>2.1.0</springdoc-openapi.version> - <opensearch.version>1.1.0</opensearch.version> + <opensearch-client.version>1.1.0</opensearch-client.version> </properties> <dependencies> @@ -118,8 +118,8 @@ </dependency> <dependency> <groupId>org.opensearch.client</groupId> - <artifactId>spring-data-opensearch-starter</artifactId> - <version>${opensearch.version}</version> + <artifactId>spring-data-opensearch</artifactId> + <version>${opensearch-client.version}</version> </dependency> <!-- Swagger --> <dependency> diff --git a/dbrepo-user-service/rest-service/src/main/java/at/tuwien/FdaUserServiceApplication.java b/dbrepo-user-service/rest-service/src/main/java/at/tuwien/FdaUserServiceApplication.java index 4a6c3dff08..02166da7ee 100644 --- a/dbrepo-user-service/rest-service/src/main/java/at/tuwien/FdaUserServiceApplication.java +++ b/dbrepo-user-service/rest-service/src/main/java/at/tuwien/FdaUserServiceApplication.java @@ -2,6 +2,7 @@ package at.tuwien; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; diff --git a/dbrepo-user-service/rest-service/src/main/resources/application.yml b/dbrepo-user-service/rest-service/src/main/resources/application.yml index 910db255f1..345863caf4 100644 --- a/dbrepo-user-service/rest-service/src/main/resources/application.yml +++ b/dbrepo-user-service/rest-service/src/main/resources/application.yml @@ -1,6 +1,8 @@ app.version: '@project.version@' spring: main.banner-mode: off + autoconfigure: + exclude: org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientAutoConfiguration, org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration datasource: url: "jdbc:mariadb://metadata-db:3306/${METADATA_DB}" driver-class-name: org.mariadb.jdbc.Driver -- GitLab