diff --git a/fda-container-service/rest-service/src/main/resources/config.properties b/fda-container-service/rest-service/src/main/resources/config.properties index e993ed9c62272ab86ae23a64f6195f21e465216f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/fda-container-service/rest-service/src/main/resources/config.properties +++ b/fda-container-service/rest-service/src/main/resources/config.properties @@ -1 +0,0 @@ -# https://github.com/Netflix/Hystrix/issues/275 \ No newline at end of file diff --git a/fda-database-service/rest-service/src/main/resources/config.properties b/fda-database-service/rest-service/src/main/resources/config.properties index e993ed9c62272ab86ae23a64f6195f21e465216f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/fda-database-service/rest-service/src/main/resources/config.properties +++ b/fda-database-service/rest-service/src/main/resources/config.properties @@ -1 +0,0 @@ -# https://github.com/Netflix/Hystrix/issues/275 \ No newline at end of file diff --git a/fda-discovery-server/src/main/resources/config.properties b/fda-discovery-server/src/main/resources/config.properties index e993ed9c62272ab86ae23a64f6195f21e465216f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/fda-discovery-server/src/main/resources/config.properties +++ b/fda-discovery-server/src/main/resources/config.properties @@ -1 +0,0 @@ -# https://github.com/Netflix/Hystrix/issues/275 \ No newline at end of file diff --git a/fda-gateway-service/pom.xml b/fda-gateway-service/pom.xml index 8432ad081db2a049a39c8eaebc0d43e0caf25b16..17325ebd15f9844656cf06dc885af0ab6801b288 100644 --- a/fda-gateway-service/pom.xml +++ b/fda-gateway-service/pom.xml @@ -32,10 +32,6 @@ <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> - <dependency> - <groupId>org.springframework.cloud</groupId> - <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> - </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> diff --git a/fda-gateway-service/src/main/resources/config.properties b/fda-gateway-service/src/main/resources/config.properties index e993ed9c62272ab86ae23a64f6195f21e465216f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/fda-gateway-service/src/main/resources/config.properties +++ b/fda-gateway-service/src/main/resources/config.properties @@ -1 +0,0 @@ -# https://github.com/Netflix/Hystrix/issues/275 \ No newline at end of file diff --git a/fda-query-service/rest-service/src/main/resources/config.properties b/fda-query-service/rest-service/src/main/resources/config.properties index e993ed9c62272ab86ae23a64f6195f21e465216f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/fda-query-service/rest-service/src/main/resources/config.properties +++ b/fda-query-service/rest-service/src/main/resources/config.properties @@ -1 +0,0 @@ -# https://github.com/Netflix/Hystrix/issues/275 \ No newline at end of file diff --git a/fda-table-service/api/src/main/java/at/tuwien/dto/table/TableCSVInformation.java b/fda-table-service/api/src/main/java/at/tuwien/dto/table/TableCSVInformation.java new file mode 100644 index 0000000000000000000000000000000000000000..78e94e2bdb1ef12f26f4e55aa5626aa104bcc35f --- /dev/null +++ b/fda-table-service/api/src/main/java/at/tuwien/dto/table/TableCSVInformation.java @@ -0,0 +1,31 @@ +package at.tuwien.dto.table; + +import at.tuwien.dto.table.columns.ColumnTypeDto; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.Parameter; +import lombok.*; + +import javax.validation.constraints.NotBlank; +import java.util.HashMap; +import java.util.List; + +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class TableCSVInformation { + + @NotBlank + @ApiModelProperty(name = "name", example = "Fundamentals") + private String name; + + @NotBlank + @Parameter(name = "table description", required = true, example = "SEC 10K annual fillings (2016-2012) ") + private String description; + + @NotBlank + private List<ColumnTypeDto> columns; + + private String fileLocation; +} diff --git a/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java index edc814e3b65d405e234355539509d50e5cabd579..38fd548c5d7915cbaec31b2a5b6b80fa57923a93 100644 --- a/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java +++ b/fda-table-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java @@ -3,6 +3,7 @@ package at.tuwien.endpoints; import at.tuwien.dto.table.TableBriefDto; import at.tuwien.dto.table.TableCreateDto; import at.tuwien.dto.table.TableDto; +import at.tuwien.dto.table.TableCSVInformation; import at.tuwien.entity.Table; import at.tuwien.exception.*; import at.tuwien.mapper.QueryResultMapper; @@ -20,6 +21,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.List; import java.util.stream.Collectors; @@ -73,6 +75,39 @@ public class TableEndpoint { .body(tableMapper.tableToTableBriefDto(table)); } + @PostMapping("/table/csv") + @ApiOperation(value = "Create a table", notes = "Creates a file, which is given as a multipart file.") + @ApiResponses({ + @ApiResponse(code = 201, message = "The table was created."), + @ApiResponse(code = 400, message = "The creation form contains invalid data."), + @ApiResponse(code = 401, message = "Not authorized to create a tables."), + @ApiResponse(code = 404, message = "The database does not exist."), + @ApiResponse(code = 405, message = "The container is not running."), + @ApiResponse(code = 409, message = "The container image is not supported."), + }) + public ResponseEntity<QueryResultDto> createViaCsv(@PathVariable("id") Long databaseId, @RequestPart("file") MultipartFile file, @RequestPart TableCSVInformation headers) { + final QueryResult queryResult = tableService.create(databaseId, file, headers); + return ResponseEntity.status(HttpStatus.CREATED) + .body(queryResultMapper.queryResultToQueryResultDto(queryResult)); + } + + @PostMapping("/table/csv/local") + @ApiOperation(value = "Create a table", notes = "This is done by saving a file on the shared docker filesystem and then sending the link to the file.") + @ApiResponses({ + @ApiResponse(code = 201, message = "The table was created."), + @ApiResponse(code = 400, message = "The creation form contains invalid data."), + @ApiResponse(code = 401, message = "Not authorized to create a tables."), + @ApiResponse(code = 404, message = "The database does not exist."), + @ApiResponse(code = 405, message = "The container is not running."), + @ApiResponse(code = 409, message = "The container image is not supported."), + }) + public ResponseEntity<QueryResultDto> createViaCsv(@PathVariable("id") Long databaseId, @RequestBody TableCSVInformation tableCSVInformation) throws IOException { + final QueryResult queryResult = tableService.create(databaseId, tableCSVInformation); + return ResponseEntity.status(HttpStatus.CREATED) + .body(queryResultMapper.queryResultToQueryResultDto(queryResult)); + } + + @GetMapping("/table/{tableId}") @ApiOperation(value = "List all tables", notes = "Lists the tables in the metadata database for this database.") @ApiResponses({ diff --git a/fda-table-service/rest-service/src/main/resources/config.properties b/fda-table-service/rest-service/src/main/resources/config.properties index e993ed9c62272ab86ae23a64f6195f21e465216f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 --- a/fda-table-service/rest-service/src/main/resources/config.properties +++ b/fda-table-service/rest-service/src/main/resources/config.properties @@ -1 +0,0 @@ -# https://github.com/Netflix/Hystrix/issues/275 \ No newline at end of file diff --git a/fda-table-service/services/pom.xml b/fda-table-service/services/pom.xml index 0d3d956fedb7cc8288a58c6ba2f95eef6848a6d8..3c55b33c4ea223af82f7aad52edc8d01724ad8c1 100644 --- a/fda-table-service/services/pom.xml +++ b/fda-table-service/services/pom.xml @@ -24,6 +24,10 @@ <artifactId>super-csv</artifactId> <version>2.4.0</version> </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-test</artifactId> + </dependency> </dependencies> <build> @@ -52,4 +56,4 @@ </plugins> </build> -</project> \ No newline at end of file +</project> diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/PostgresService.java b/fda-table-service/services/src/main/java/at/tuwien/service/PostgresService.java index 39dbe42b0162d17756efeaffd0729c0d338d6ab4..5baeab0cf24de462c4575a9ac02e30e76b60dc69 100644 --- a/fda-table-service/services/src/main/java/at/tuwien/service/PostgresService.java +++ b/fda-table-service/services/src/main/java/at/tuwien/service/PostgresService.java @@ -3,6 +3,7 @@ package at.tuwien.service; import at.tuwien.dto.table.TableCreateDto; import at.tuwien.dto.table.columns.ColumnCreateDto; import at.tuwien.dto.table.columns.ColumnTypeDto; +import at.tuwien.entity.ColumnType; import at.tuwien.entity.Database; import at.tuwien.entity.Table; import at.tuwien.entity.TableColumn; @@ -97,10 +98,19 @@ public class PostgresService extends JdbcConnector { while(result.next()) { Map<String,Object> r = new HashMap<>(); for(TableColumn tc : t.getColumns()) { - r.put(tc.getName(), result.getString(tc.getInternalName())); + if(tc.getColumnType() == ColumnType.NUMBER) { + r.put(tc.getName(), result.getDouble(tc.getInternalName())); + } + if(tc.getColumnType() == ColumnType.BOOLEAN) { + r.put(tc.getName(), result.getBoolean(tc.getInternalName())); + } + else { + r.put(tc.getName(), result.getString(tc.getInternalName())); + } } res.add(r); } + log.debug(res.toString()); qr.setResult(res); return qr; } catch(DatabaseConnectionException e) { diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java b/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java index 7e5b8098c4aa4205a7df3a988a85c0e80fb89742..1977e7196cea223bc27256ee7c17e2f07dee5a7d 100644 --- a/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java +++ b/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java @@ -1,9 +1,8 @@ package at.tuwien.service; -import at.tuwien.dto.table.TableBriefDto; import at.tuwien.dto.table.TableCreateDto; -import at.tuwien.dto.table.TableDto; -import at.tuwien.entity.ColumnType; +import at.tuwien.dto.table.columns.ColumnCreateDto; +import at.tuwien.dto.table.TableCSVInformation; import at.tuwien.entity.Database; import at.tuwien.entity.Table; import at.tuwien.entity.TableColumn; @@ -12,31 +11,29 @@ import at.tuwien.mapper.TableMapper; import at.tuwien.model.QueryResult; import at.tuwien.repository.DatabaseRepository; import at.tuwien.repository.TableRepository; -import com.opencsv.CSVReader; -import lombok.Data; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import org.supercsv.cellprocessor.constraint.NotNull; import org.supercsv.cellprocessor.ift.CellProcessor; -import org.supercsv.io.CsvBeanReader; import org.supercsv.io.CsvMapReader; -import org.supercsv.io.ICsvBeanReader; import org.supercsv.io.ICsvMapReader; import org.supercsv.prefs.CsvPreference; import javax.persistence.EntityNotFoundException; import javax.transaction.Transactional; -import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.stream.Collectors; @Log4j2 @Service @@ -189,6 +186,25 @@ public class TableService { return null; } + private String[] readHeader(MultipartFile file) throws IOException { + ICsvMapReader mapReader = null; + try { + Reader reader = new InputStreamReader(file.getInputStream()); + mapReader = new CsvMapReader(reader, CsvPreference.STANDARD_PREFERENCE); + + String[] header = mapReader.getHeader(true); + return header; + + } catch(IOException e) { + e.printStackTrace(); + } finally { + if( mapReader != null ) { + mapReader.close(); + } + } + return null; + } + public QueryResult showData(Long databaseId, Long tableId) throws ImageNotSupportedException, DatabaseNotFoundException, TableNotFoundException { QueryResult queryResult= postgresService.getAllRows(findDatabase(databaseId), findById(databaseId, tableId)); for (Map<String, Object> m : queryResult.getResult() ) { @@ -198,4 +214,57 @@ public class TableService { } return queryResult; } + + public QueryResult create(Long databaseId, MultipartFile file, TableCSVInformation tableCSVInformation) { + try { + String[] header = readHeader(file); + for (String s : header) { + System.out.println(s); + } + System.out.println(tableCSVInformation.toString()); + TableCreateDto tcd = new TableCreateDto(); + tcd.setName(tableCSVInformation.getName()); + tcd.setDescription(tableCSVInformation.getDescription()); + ColumnCreateDto[] cdtos = new ColumnCreateDto[header.length]; + System.out.println(tableCSVInformation.getColumns().toString()); + System.out.println(header.toString()); + for (int i = 0; i < header.length; i++) { + ColumnCreateDto c = new ColumnCreateDto(); + c.setName(header[i]); + c.setType(tableCSVInformation.getColumns().get(i)); + c.setNullAllowed(true); + //TODO FIX THAT not only id is primary key + if(header[i].equals("id")) { + c.setPrimaryKey(true); + } else { + c.setPrimaryKey(false); + } + cdtos[i] = c; + } + tcd.setColumns(cdtos); + Table table = create(databaseId, tcd); + QueryResult insert = insert(databaseId, table.getId(), file); + return insert; + } catch (Exception e) { + e.printStackTrace(); + log.error(e.getMessage()); + } + return null; + } + + public QueryResult create(Long databaseId, TableCSVInformation tableCSVInformation) throws IOException { + Path path = Paths.get("/tmp/" + tableCSVInformation.getFileLocation()); + String contentType = "multipart/form-data"; + byte[] content = null; + try { + content = Files.readAllBytes(path); + } catch (final IOException e) { + } + MultipartFile multipartFile = new MockMultipartFile(tableCSVInformation.getFileLocation(), + tableCSVInformation.getFileLocation(), contentType, content); + Files.deleteIfExists(path); + return create(databaseId, multipartFile,tableCSVInformation); + } + + } diff --git a/fda-ui/Dockerfile b/fda-ui/Dockerfile index 4a3855cdfe393e94511993e7b3bd8e0469784ede..b9f222f60f209a435d288582617e7615d789b2d1 100644 --- a/fda-ui/Dockerfile +++ b/fda-ui/Dockerfile @@ -1,5 +1,5 @@ ###### FIRST STAGE ###### -FROM node:alpine3.13 as build +FROM node:lts-alpine3.12 as build MAINTAINER Martin Weise <martin.weise@tuwien.ac.at> RUN apk add --no-cache build-base python3 > /dev/null diff --git a/hystrix-dashboard/.gitignore b/hystrix-dashboard/.gitignore deleted file mode 100644 index 549e00a2a96fa9d7c5dbc9859664a78d980158c2..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ diff --git a/hystrix-dashboard/.mvn/wrapper/MavenWrapperDownloader.java b/hystrix-dashboard/.mvn/wrapper/MavenWrapperDownloader.java deleted file mode 100644 index a45eb6ba269cd38f8965cef786729790945d9537..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/.mvn/wrapper/MavenWrapperDownloader.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2007-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import java.net.*; -import java.io.*; -import java.nio.channels.*; -import java.util.Properties; - -public class MavenWrapperDownloader { - - private static final String WRAPPER_VERSION = "0.5.6"; - /** - * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. - */ - private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" - + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; - - /** - * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to - * use instead of the default one. - */ - private static final String MAVEN_WRAPPER_PROPERTIES_PATH = - ".mvn/wrapper/maven-wrapper.properties"; - - /** - * Path where the maven-wrapper.jar will be saved to. - */ - private static final String MAVEN_WRAPPER_JAR_PATH = - ".mvn/wrapper/maven-wrapper.jar"; - - /** - * Name of the property which should be used to override the default download url for the wrapper. - */ - private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; - - public static void main(String args[]) { - System.out.println("- Downloader started"); - File baseDirectory = new File(args[0]); - System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); - - // If the maven-wrapper.properties exists, read it and check if it contains a custom - // wrapperUrl parameter. - File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); - String url = DEFAULT_DOWNLOAD_URL; - if (mavenWrapperPropertyFile.exists()) { - FileInputStream mavenWrapperPropertyFileInputStream = null; - try { - mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); - Properties mavenWrapperProperties = new Properties(); - mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); - url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); - } catch (IOException e) { - System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); - } finally { - try { - if (mavenWrapperPropertyFileInputStream != null) { - mavenWrapperPropertyFileInputStream.close(); - } - } catch (IOException e) { - // Ignore ... - } - } - } - System.out.println("- Downloading from: " + url); - - File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); - if (!outputFile.getParentFile().exists()) { - if (!outputFile.getParentFile().mkdirs()) { - System.out.println( - "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); - } - } - System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); - try { - downloadFileFromURL(url, outputFile); - System.out.println("Done"); - System.exit(0); - } catch (Throwable e) { - System.out.println("- Error downloading"); - e.printStackTrace(); - System.exit(1); - } - } - - private static void downloadFileFromURL(String urlString, File destination) throws Exception { - if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { - String username = System.getenv("MVNW_USERNAME"); - char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); - Authenticator.setDefault(new Authenticator() { - @Override - protected PasswordAuthentication getPasswordAuthentication() { - return new PasswordAuthentication(username, password); - } - }); - } - URL website = new URL(urlString); - ReadableByteChannel rbc; - rbc = Channels.newChannel(website.openStream()); - FileOutputStream fos = new FileOutputStream(destination); - fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); - fos.close(); - rbc.close(); - } - -} diff --git a/hystrix-dashboard/.mvn/wrapper/maven-wrapper.jar b/hystrix-dashboard/.mvn/wrapper/maven-wrapper.jar deleted file mode 100644 index 2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054..0000000000000000000000000000000000000000 Binary files a/hystrix-dashboard/.mvn/wrapper/maven-wrapper.jar and /dev/null differ diff --git a/hystrix-dashboard/.mvn/wrapper/maven-wrapper.properties b/hystrix-dashboard/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index 642d572ce90e5085986bdd9c9204b9404f028084..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,2 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/hystrix-dashboard/Dockerfile b/hystrix-dashboard/Dockerfile deleted file mode 100644 index 49ab8f0772975576d6602db59f9f6a8f1757d42d..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -###### FIRST STAGE ###### -FROM maven:slim as build -MAINTAINER Martin Weise <martin.weise@tuwien.ac.at> - -COPY ./src ./src -COPY ./pom.xml ./ - -RUN mvn -fn -B dependency:go-offline > /dev/null - -RUN mvn -q clean package > /dev/null - -###### SECOND STAGE ###### -FROM openjdk:11-jre-slim as runtime - -COPY --from=build ./rest-service/target/hystrix-dashboard-*.jar ./hystrix.jar - -ENTRYPOINT ["java", "-jar", "./hystrix.jar"] diff --git a/hystrix-dashboard/mvnw b/hystrix-dashboard/mvnw deleted file mode 100755 index a16b5431b4c3cab50323a3f558003fd0abd87dad..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/mvnw +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be a link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`which java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/hystrix-dashboard/mvnw.cmd b/hystrix-dashboard/mvnw.cmd deleted file mode 100644 index c8d43372c986d97911cdc21bd87e0cbe3d83bdda..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/mvnw.cmd +++ /dev/null @@ -1,182 +0,0 @@ -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" -if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - -FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" -if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%" == "on" pause - -if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% - -exit /B %ERROR_CODE% diff --git a/hystrix-dashboard/pom.xml b/hystrix-dashboard/pom.xml deleted file mode 100644 index 380a1828cc2856a609a0be7465b472309e0900fd..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/pom.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>2.3.4.RELEASE</version> - <relativePath/> <!-- lookup parent from repository --> - </parent> - <groupId>at.tuwien</groupId> - <artifactId>hystrix-dashboard</artifactId> - <version>0.0.1-SNAPSHOT</version> - <name>hystrix-dashboard</name> - <description>Demo project for Spring Boot</description> - - <properties> - <java.version>11</java.version> - <spring-cloud.version>Hoxton.SR8</spring-cloud.version> - </properties> - - <dependencies> - <dependency> - <groupId>org.springframework.cloud</groupId> - <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.junit.vintage</groupId> - <artifactId>junit-vintage-engine</artifactId> - </exclusion> - </exclusions> - </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> - </dependency> - </dependencies> - </dependencyManagement> - - <build> - <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - </plugins> - </build> - -</project> diff --git a/hystrix-dashboard/src/main/java/at/tuwien/hystrixdashboard/HystrixDashboardApplication.java b/hystrix-dashboard/src/main/java/at/tuwien/hystrixdashboard/HystrixDashboardApplication.java deleted file mode 100644 index 08a2c7620ba771c7faacc4019a23dc0504021ec6..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/src/main/java/at/tuwien/hystrixdashboard/HystrixDashboardApplication.java +++ /dev/null @@ -1,13 +0,0 @@ -package at.tuwien.hystrixdashboard; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication -public class HystrixDashboardApplication { - - public static void main(String[] args) { - SpringApplication.run(HystrixDashboardApplication.class, args); - } - -} diff --git a/hystrix-dashboard/src/main/resources/application.properties b/hystrix-dashboard/src/main/resources/application.properties deleted file mode 100644 index 8b137891791fe96927ad78e64b0aad7bded08bdc..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/src/main/resources/application.properties +++ /dev/null @@ -1 +0,0 @@ - diff --git a/hystrix-dashboard/src/test/java/at/tuwien/hystrixdashboard/HystrixDashboardApplicationTests.java b/hystrix-dashboard/src/test/java/at/tuwien/hystrixdashboard/HystrixDashboardApplicationTests.java deleted file mode 100644 index 2887a46a58cee44d5f47bd94060a4afaff5d25dc..0000000000000000000000000000000000000000 --- a/hystrix-dashboard/src/test/java/at/tuwien/hystrixdashboard/HystrixDashboardApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package at.tuwien.hystrixdashboard; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class HystrixDashboardApplicationTests { - - @Test - void contextLoads() { - } - -}