From 9c91723833149f4b8e0e649d6b28f81f7fdd8939 Mon Sep 17 00:00:00 2001 From: pkraeutli Date: Fri, 18 Dec 2015 14:09:32 +0100 Subject: [PATCH] DATAES-224 retain newlines when reading mapping/setting files Fixed test-settings yaml --- .../core/ElasticsearchTemplate.java | 3 ++- .../core/ElasticsearchTemplateTests.java | 19 +++++++++++++++++++ src/test/resources/settings/test-settings.yml | 8 ++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/test/resources/settings/test-settings.yml diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java index 2a803639e..21b8fb028 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java @@ -1164,8 +1164,9 @@ public class ElasticsearchTemplate implements ElasticsearchOperations, Applicati bufferedReader = new BufferedReader(inputStreamReader); String line; + String lineSeparator = System.getProperty("line.separator"); while ((line = bufferedReader.readLine()) != null) { - stringBuilder.append(line); + stringBuilder.append(line).append(lineSeparator); } } catch (Exception e) { logger.debug(String.format("Failed to load file from url: %s: %s", url, e.getMessage())); diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java index 41928f75f..050cf413f 100755 --- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java @@ -2006,6 +2006,25 @@ public class ElasticsearchTemplateTests { assertThat(setting.get("index.number_of_replicas"), Matchers.is("1")); } + @Test + public void shouldReadFileFromClasspathRetainingNewlines() { + // given + String settingsFile = "/settings/test-settings.yml"; + + // when + String content = ElasticsearchTemplate.readFileFromClasspath(settingsFile); + + // then + assertThat(content, is("index:\n" + + " number_of_shards: 1\n" + + " number_of_replicas: 0\n" + + " analysis:\n" + + " analyzer:\n" + + " emailAnalyzer:\n" + + " type: custom\n" + + " tokenizer: uax_url_email\n")); + } + private IndexQuery getIndexQuery(SampleEntity sampleEntity) { return new IndexQueryBuilder().withId(sampleEntity.getId()).withObject(sampleEntity).build(); } diff --git a/src/test/resources/settings/test-settings.yml b/src/test/resources/settings/test-settings.yml new file mode 100644 index 000000000..9b2ffa0af --- /dev/null +++ b/src/test/resources/settings/test-settings.yml @@ -0,0 +1,8 @@ +index: + number_of_shards: 1 + number_of_replicas: 0 + analysis: + analyzer: + emailAnalyzer: + type: custom + tokenizer: uax_url_email \ No newline at end of file