From 4b39cafd50aea0fde09e229250d37f29962fa07f Mon Sep 17 00:00:00 2001 From: Mustapha Zorgati <15628173+mustaphazorgati@users.noreply.github.com> Date: Thu, 3 Jan 2019 15:49:55 +0100 Subject: [PATCH] TSK-765: reduced amount of reader class initialization for test data generation --- .../taskana/database/TestDataGenerator.java | 30 +++++++++---------- .../sampledata/SampleDataGenerator.java | 11 +++---- 2 files changed, 18 insertions(+), 23 deletions(-) diff --git a/lib/taskana-core/src/test/java/pro/taskana/database/TestDataGenerator.java b/lib/taskana-core/src/test/java/pro/taskana/database/TestDataGenerator.java index 4a36e1c77..9893dd131 100644 --- a/lib/taskana-core/src/test/java/pro/taskana/database/TestDataGenerator.java +++ b/lib/taskana-core/src/test/java/pro/taskana/database/TestDataGenerator.java @@ -15,6 +15,7 @@ import java.time.format.DateTimeFormatter; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import java.util.stream.Stream; import javax.sql.DataSource; @@ -151,7 +152,7 @@ public class TestDataGenerator { attachmentSql = parseAndReplace(getClass().getResourceAsStream(ATTACHMENT), isDb2); LocalDateTime now = LocalDateTime.now(); monitoringTestDataSql = parseAndReplace(getClass().getResourceAsStream(MONITOR_SAMPLE_DATA), - x -> convertToRelativeTime(now, x), isDb2); + x -> replaceRelativeTimeFunction(now, x), isDb2); } /** @@ -166,7 +167,7 @@ public class TestDataGenerator { * @param sql sql statement which may contain the above declared custom function. * @return sql statement with the given function resolved, if the 'sql' parameter contained any. */ - private static String convertToRelativeTime(LocalDateTime now, String sql) { + private static String replaceRelativeTimeFunction(LocalDateTime now, String sql) { Matcher m = RELATIVE_DATE_PATTERN.matcher(sql); StringBuffer sb = new StringBuffer(sql.length()); while (m.find()) { @@ -182,26 +183,23 @@ public class TestDataGenerator { } private static String parseAndReplace(InputStream stream, Function furtherProcessing, - boolean replace) - throws IOException { + boolean replace) throws IOException { try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream))) { - StringBuilder sql = new StringBuilder(); - String line; + String sql; if (replace) { + StringBuilder builder = new StringBuilder(); + String line; while ((line = bufferedReader.readLine()) != null) { - sql.append( - furtherProcessing.apply( - line.replaceAll("true|TRUE", "1") - .replaceAll("false|FALSE", "0") - ) - ).append("\n"); + builder.append( + line.replaceAll("true|TRUE", "1") + .replaceAll("false|FALSE", "0") + ).append(System.lineSeparator()); } + sql = builder.toString(); } else { - while ((line = bufferedReader.readLine()) != null) { - sql.append(furtherProcessing.apply(line)).append("\n"); - } + sql = bufferedReader.lines().collect(Collectors.joining(System.lineSeparator())); } - return sql.toString(); + return furtherProcessing.apply(sql); } } diff --git a/rest/taskana-rest-spring-example/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java b/rest/taskana-rest-spring-example/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java index 58fdad72a..c4d56926b 100644 --- a/rest/taskana-rest-spring-example/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java +++ b/rest/taskana-rest-spring-example/src/main/java/pro/taskana/sampledata/SampleDataGenerator.java @@ -13,6 +13,7 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import java.util.stream.Stream; import javax.sql.DataSource; @@ -69,7 +70,7 @@ public class SampleDataGenerator { * @param sql sql statement which may contain the above declared custom function. * @return sql statement with the given function resolved, if the 'sql' parameter contained any. */ - private static String convertToRelativeTime(LocalDateTime now, String sql) { + private static String replaceRelativeTimeFunction(LocalDateTime now, String sql) { Matcher m = RELATIVE_DATE_PATTERN.matcher(sql); StringBuffer sb = new StringBuffer(sql.length()); while (m.find()) { @@ -82,12 +83,8 @@ public class SampleDataGenerator { private static String parseAndReplace(LocalDateTime now, InputStream stream) { try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream))) { - StringBuilder sql = new StringBuilder(); - String line; - while ((line = bufferedReader.readLine()) != null) { - sql.append(convertToRelativeTime(now, line)).append("\n"); - } - return sql.toString(); + return replaceRelativeTimeFunction(now, + bufferedReader.lines().collect(Collectors.joining(System.lineSeparator()))); } catch (IOException e) { throw new RuntimeException(e); }