From 0375e856eccb7a418143fb55d7f5adc3087a04ba Mon Sep 17 00:00:00 2001 From: Robert Butora <robert.butora@inaf.it> Date: Thu, 17 Oct 2024 10:05:51 +0300 Subject: [PATCH] adds test for csv-metadata parser --- .../src/test/java/csv-parse/CsvParser.java | 52 ++++++++++++++++ .../src/test/java/csv-parse/Makefile | 8 +++ .../src/test/java/csv-parse/pom.xml | 59 +++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 data-discovery/src/test/java/csv-parse/CsvParser.java create mode 100644 data-discovery/src/test/java/csv-parse/Makefile create mode 100644 data-discovery/src/test/java/csv-parse/pom.xml diff --git a/data-discovery/src/test/java/csv-parse/CsvParser.java b/data-discovery/src/test/java/csv-parse/CsvParser.java new file mode 100644 index 0000000..29ce599 --- /dev/null +++ b/data-discovery/src/test/java/csv-parse/CsvParser.java @@ -0,0 +1,52 @@ + +import com.opencsv.*; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.Path; +import java.util.List; +import java.util.ArrayList; +import java.io.Reader; + +class CsvParser +{ + public static void main(String[] args) throws Exception + { + Path filePath = Paths.get(args[0]); + + CsvParser parser = new CsvParser(); + + List<String[]> lines = parser.readLineByLine(filePath); + + for(String[] strArr : lines) + { + for(String str : strArr) System.out.print(str + " | "); + System.out.println(); + } + } + + public List<String[]> readLineByLine(Path filePath) throws Exception + { + CSVParser parser = new CSVParserBuilder() + .withSeparator(',') + .withIgnoreQuotations(true) + .build(); + + List<String[]> list = new ArrayList<>(); + try (Reader reader = Files.newBufferedReader(filePath)) + { + try (CSVReader csvReader = new CSVReaderBuilder(reader) + .withSkipLines(0) + .withCSVParser(parser) + .build(); + // CSVReader csvReader = new CSVReader(reader) + ) + { + String[] line; + while ((line = csvReader.readNext()) != null) { + list.add(line); + } + } + } + return list; + } +} diff --git a/data-discovery/src/test/java/csv-parse/Makefile b/data-discovery/src/test/java/csv-parse/Makefile new file mode 100644 index 0000000..1aa9b4e --- /dev/null +++ b/data-discovery/src/test/java/csv-parse/Makefile @@ -0,0 +1,8 @@ + + +build: + javac -classpath /home/robi/.m2/repository/com/opencsv/opencsv/5.7.1/opencsv-5.7.1.jar CsvParser.java + + +run: + java -classpath /home/robi/.m2/repository/com/opencsv/opencsv/5.7.1/opencsv-5.7.1.jar:.:/home/robi/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar CsvParser /srv/vlkb/surveys/survey_populate.csv diff --git a/data-discovery/src/test/java/csv-parse/pom.xml b/data-discovery/src/test/java/csv-parse/pom.xml new file mode 100644 index 0000000..4835791 --- /dev/null +++ b/data-discovery/src/test/java/csv-parse/pom.xml @@ -0,0 +1,59 @@ +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>vlkb</groupId> + <artifactId>csv-parser</artifactId> + <packaging>jar</packaging> + <version>1.0-SNAPSHOT</version> + <name>csv matadata parser</name> + <url>http://maven.apache.org</url> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <!-- FIXME needs JAVA_HOME=/usr/java/jdk-17.0.4.1 (java17 manually installed and aletrnatives activated) --> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> + </properties> + + + <dependencies> + + <dependency> + <groupId>com.opencsv</groupId> + <artifactId>opencsv</artifactId> + <version>5.7.1</version> + <scope>provided</scope> + </dependency> + + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <build> + <finalName>csv-parser</finalName> + <plugins> + <plugin> + <!-- Build an executable JAR --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>3.1.0</version> + <configuration> + <archive> + <manifest> + <addClasspath>true</addClasspath> + <classpathPrefix>lib/</classpathPrefix> + <mainClass>CsvParser</mainClass> + </manifest> + </archive> + </configuration> + </plugin> + </plugins> </build> + +</project> -- GitLab