From b8d0dc57938019a552d1e8f188b684e3a23c8ddc Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Tue, 16 Mar 2021 17:48:40 +0100 Subject: [PATCH] problem with swagger ui --- docker-compose.yml | 4 +- fda-container-managing-service/Dockerfile | 2 +- fda-container-managing-service/pom.xml | 55 +++---------------- .../rest-service/pom.xml | 9 +++ .../FdaContainerManagingApplication.java | 4 +- .../java/at/tuwien/config/SwaggerConfig.java | 21 ++++--- .../DatabaseContainerController.java | 6 -- .../src/main/resources/application-docker.yml | 8 +-- .../main/resources/application-noeureka.yml | 27 --------- .../src/main/resources/application.yml | 13 ++--- 10 files changed, 42 insertions(+), 107 deletions(-) delete mode 100644 fda-container-managing-service/rest-service/src/main/resources/application-noeureka.yml diff --git a/docker-compose.yml b/docker-compose.yml index 1246e91bd8..27d7bb9ca3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,8 +20,6 @@ services: POSTGRES_PASSWORD: postgres POSTGRES_DB: fda - - fda-discovery-server: restart: always container_name: fda-discovery-server @@ -96,8 +94,10 @@ services: - /var/run/docker.sock:/var/run/docker.sock links: - fda-discovery-server + - fda-metadata-db depends_on: - fda-discovery-server + - fda-metadata-db logging: driver: json-file diff --git a/fda-container-managing-service/Dockerfile b/fda-container-managing-service/Dockerfile index 891da2fd07..752040d2a0 100644 --- a/fda-container-managing-service/Dockerfile +++ b/fda-container-managing-service/Dockerfile @@ -10,7 +10,7 @@ COPY ./api ./api COPY ./rest-service ./rest-service COPY ./services ./services -RUN mvn -q clean package -DskipTests > /dev/null +RUN mvn -q clean package -DskipTests ###### SECOND STAGE ###### FROM openjdk:11-jre-slim as runtime diff --git a/fda-container-managing-service/pom.xml b/fda-container-managing-service/pom.xml index 42dd5905b8..cb2e8607e4 100644 --- a/fda-container-managing-service/pom.xml +++ b/fda-container-managing-service/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> - <version>2.3.9.RELEASE</version> + <version>2.4.3</version> </parent> <groupId>at.tuwien</groupId> @@ -27,7 +27,8 @@ <mapstruct.version>1.4.2.Final</mapstruct.version> <docker.version>3.2.7</docker.version> <testcontainers.version>1.15.2</testcontainers.version> - <swagger.version>2.8.0</swagger.version> + <swagger.version>3.0.0</swagger.version> + <openapi.version>1.5.5</openapi.version> </properties> <dependencies> @@ -38,6 +39,7 @@ <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> + <version>3.0.1</version> <exclusions> <exclusion> <groupId>javax.ws.rs</groupId> @@ -107,55 +109,14 @@ <artifactId>mapstruct</artifactId> <version>${mapstruct.version}</version> </dependency> - <dependency> - <groupId>io.swagger</groupId> - <artifactId>swagger-annotations</artifactId> - <version>1.5.20</version> - </dependency> + <!-- Swagger --> <dependency> <groupId>io.springfox</groupId> - <artifactId>springfox-swagger2</artifactId> - <version>2.9.2</version> - <exclusions> - <exclusion> - <groupId>org.mapstruct</groupId> - <artifactId>mapstruct</artifactId> - </exclusion> - </exclusions> + <artifactId>springfox-boot-starter</artifactId> + <version>${swagger.version}</version> </dependency> </dependencies> - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.springframework.cloud</groupId> - <artifactId>spring-cloud-dependencies</artifactId> - <version>${spring-cloud.version}</version> - <type>pom</type> - <scope>import</scope> - <exclusions> - <exclusion> - <groupId>javax.ws.rs</groupId> - <artifactId>jsr311-api</artifactId> - </exclusion> - </exclusions> - </dependency> - </dependencies> - </dependencyManagement> - <build> - <plugins> - <plugin> - <artifactId>maven-surefire-plugin</artifactId> - <version>3.0.0-M5</version> - <dependencies> - <dependency> - <groupId>org.junit.platform</groupId> - <artifactId>junit-platform-surefire-provider</artifactId> - <version>1.3.2</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> + <!-- build config in ./rest-service/pom.xml --> </project> diff --git a/fda-container-managing-service/rest-service/pom.xml b/fda-container-managing-service/rest-service/pom.xml index 00c4d0a2de..8a0f71cee3 100644 --- a/fda-container-managing-service/rest-service/pom.xml +++ b/fda-container-managing-service/rest-service/pom.xml @@ -26,4 +26,13 @@ </dependency> </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + </plugins> + </build> + </project> \ No newline at end of file diff --git a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java index 274eae94c9..cbd6fc6a5e 100644 --- a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java +++ b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java @@ -5,13 +5,13 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import springfox.documentation.swagger2.annotations.EnableSwagger2; +import springfox.documentation.oas.annotations.EnableOpenApi; @SpringBootApplication @EnableJpaAuditing +@EnableOpenApi @EnableJpaRepositories(basePackages = {"at.tuwien.repository"}) @EntityScan(basePackages = {"at.tuwien.entity"}) -@EnableSwagger2 public class FdaContainerManagingApplication { public static void main(String[] args) { diff --git a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java index 336ba48dec..c1e0525a05 100644 --- a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java +++ b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/config/SwaggerConfig.java @@ -2,33 +2,36 @@ package at.tuwien.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.ApiKey; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.Collections; +import java.util.HashSet; + +import static com.google.common.collect.Lists.newArrayList; @Configuration -@EnableSwagger2 public class SwaggerConfig { - @Bean - public Docket swaggerConfiguration() { + @Bean + public Docket databaseApi() { return new Docket(DocumentationType.SWAGGER_2) + .groupName("database-api") + .apiInfo(apiInfo()) .select() - .paths(PathSelectors.ant("/api/*")) - .apis(RequestHandlerSelectors.basePackage("at.tuwien.endpoints")) - .build() - .apiInfo(apiInfo()); + .paths(PathSelectors.ant("/api/database.*")) + .build(); } private ApiInfo apiInfo() { return new ApiInfo("FDA-Container-Managing API", - "Docker at.tuwien.service that can manage Docker services", + "Service that can manage Docker containers", "1.0", null, new Contact("Martin Weise", "https://informatics.tuwien.ac.at/people/martin-weise", "martin.weise@tuwien.ac.at"), diff --git a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseContainerController.java b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseContainerController.java index 8997e697de..749d270731 100644 --- a/fda-container-managing-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseContainerController.java +++ b/fda-container-managing-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseContainerController.java @@ -11,7 +11,6 @@ import at.tuwien.exception.DockerClientException; import at.tuwien.exception.ImageNotFoundException; import at.tuwien.mapper.DatabaseContainerMapper; import at.tuwien.service.ContainerService; -import io.swagger.annotations.ApiOperation; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -38,7 +37,6 @@ public class DatabaseContainerController { } @GetMapping("/database") - @ApiOperation("Get all database containers") public ResponseEntity<List<DatabaseContainerBriefDto>> listDatabaseContainers() { final List<DatabaseContainer> containers = containerService.getAll(); return ResponseEntity.ok() @@ -48,7 +46,6 @@ public class DatabaseContainerController { } @PostMapping("/database") - @ApiOperation("Create a new database container") public ResponseEntity<DatabaseContainerCreateResponseDto> create(@RequestBody DatabaseContainerCreateRequestDto data) throws ImageNotFoundException { final DatabaseContainer container = containerService.create(data); @@ -58,7 +55,6 @@ public class DatabaseContainerController { } @GetMapping("/database/{id}") - @ApiOperation("Get info of database container") public ResponseEntity<DatabaseContainerDto> findById(@RequestParam String id) throws ContainerNotFoundException { final DatabaseContainer container = containerService.getById(id); return ResponseEntity.ok() @@ -66,7 +62,6 @@ public class DatabaseContainerController { } @PutMapping("/database/{id}") - @ApiOperation("Update a database container") public ResponseEntity<DatabaseContainerBriefDto> change(@RequestParam String id, @RequestBody ContainerChangeDto changeDto) throws ContainerNotFoundException, DockerClientException { final DatabaseContainer container; if (changeDto.getAction().equals(START)) { @@ -84,7 +79,6 @@ public class DatabaseContainerController { } @DeleteMapping("/database/{id}") - @ApiOperation("Delete a database container") public ResponseEntity<DatabaseContainerBriefDto> deleteDatabaseContainer(@RequestParam String id) { return ResponseEntity.status(HttpStatus.ACCEPTED).build(); } diff --git a/fda-container-managing-service/rest-service/src/main/resources/application-docker.yml b/fda-container-managing-service/rest-service/src/main/resources/application-docker.yml index 3771aadd42..71033d27c8 100644 --- a/fda-container-managing-service/rest-service/src/main/resources/application-docker.yml +++ b/fda-container-managing-service/rest-service/src/main/resources/application-docker.yml @@ -7,12 +7,8 @@ spring: password: postgres jpa: show-sql: true - properties: - hibernate: - ddl-auto: update - dialect: org.hibernate.dialect.PostgreSQLDialect - hibernate.ddl-auto: none - hibernate.show-sql: true + hibernate: + ddl-auto: update application: name: fda-container-managing cloud: diff --git a/fda-container-managing-service/rest-service/src/main/resources/application-noeureka.yml b/fda-container-managing-service/rest-service/src/main/resources/application-noeureka.yml deleted file mode 100644 index 0549de8482..0000000000 --- a/fda-container-managing-service/rest-service/src/main/resources/application-noeureka.yml +++ /dev/null @@ -1,27 +0,0 @@ -spring: - main.banner-mode: off - datasource: - url: jdbc:postgresql://localhost:5432/fda - driver-class-name: org.postgresql.Driver - username: postgres - password: postgres - jpa: - show-sql: true - properties: - hibernate: - ddl-auto: create-drop - dialect: org.hibernate.dialect.PostgreSQLDialect - hibernate.ddl-auto: none - hibernate.show-sql: true - application: - name: fda-container-managing -server.port: 9091 -logging: - pattern.console: "%d %highlight(%-5level) %msg%n" - level: - root: warn - at.: debug -eureka: - client: - registerWithEureka: false - fetchRegistry: false \ No newline at end of file diff --git a/fda-container-managing-service/rest-service/src/main/resources/application.yml b/fda-container-managing-service/rest-service/src/main/resources/application.yml index 73dc92e4bc..6e22403994 100644 --- a/fda-container-managing-service/rest-service/src/main/resources/application.yml +++ b/fda-container-managing-service/rest-service/src/main/resources/application.yml @@ -7,14 +7,12 @@ spring: password: postgres jpa: show-sql: true - properties: - hibernate: - ddl-auto: create-drop - dialect: org.hibernate.dialect.PostgreSQLDialect - hibernate.ddl-auto: none - hibernate.show-sql: true + hibernate: + ddl-auto: update application: name: fda-container-managing + cloud: + loadbalancer.ribbon.enabled: false server.port: 9091 logging: pattern.console: "%d %highlight(%-5level) %msg%n" @@ -22,4 +20,5 @@ logging: root: warn at.: debug eureka: - client.serviceUrl.defaultZone: http://localhost:9090/eureka/ \ No newline at end of file + instance.hostname: fda-discovery-server + client.serviceUrl.defaultZone: http://${eureka.instance.hostname}:9090/eureka/ \ No newline at end of file -- GitLab