Skip to content

Commit f552607

Browse files
drumoniifmbenhassine
authored andcommitted
BATCH-2698: Remove commons io from test module
Prefer Files.lines over common io's readLines
1 parent 68c3450 commit f552607

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,6 @@ project('spring-batch-test') {
491491
compile "junit:junit:${junitVersion}"
492492
compile "org.springframework:spring-test:$springVersion"
493493
compile "org.springframework:spring-jdbc:$springVersion"
494-
compile "commons-io:commons-io:$commonsIoVersion"
495494
compile "commons-collections:commons-collections:$commonsCollectionsVersion"
496495

497496
testCompile "org.hamcrest:hamcrest-library:$hamcrestVersion"

spring-batch-test/src/main/java/org/springframework/batch/test/DataSourceInitializer.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,19 @@
1717
package org.springframework.batch.test;
1818

1919
import java.io.IOException;
20+
import java.net.URI;
21+
import java.nio.charset.StandardCharsets;
22+
import java.nio.file.FileSystemNotFoundException;
23+
import java.nio.file.FileSystems;
24+
import java.nio.file.Files;
25+
import java.nio.file.Paths;
26+
import java.util.Collections;
2027
import java.util.List;
28+
import java.util.stream.Collectors;
29+
import java.util.stream.Stream;
2130

2231
import javax.sql.DataSource;
2332

24-
import org.apache.commons.io.IOUtils;
2533
import org.apache.commons.logging.Log;
2634
import org.apache.commons.logging.LogFactory;
2735
import org.springframework.beans.factory.BeanInitializationException;
@@ -126,8 +134,8 @@ public Void doInTransaction(TransactionStatus status) {
126134
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
127135
String[] scripts;
128136
try {
129-
scripts = StringUtils.delimitedListToStringArray(stripComments(IOUtils.readLines(scriptResource
130-
.getInputStream(), "UTF-8")), ";");
137+
scripts = StringUtils
138+
.delimitedListToStringArray(stripComments(getScriptLines(scriptResource)), ";");
131139
}
132140
catch (IOException e) {
133141
throw new BeanInitializationException("Cannot load script from [" + scriptResource + "]", e);
@@ -155,6 +163,24 @@ public Void doInTransaction(TransactionStatus status) {
155163

156164
}
157165

166+
private List<String> getScriptLines(Resource scriptResource) throws IOException {
167+
URI uri = scriptResource.getURI();
168+
initFileSystem(uri);
169+
return Files.readAllLines(Paths.get(uri), StandardCharsets.UTF_8);
170+
}
171+
172+
private void initFileSystem(URI uri) throws IOException {
173+
try {
174+
FileSystems.getFileSystem(uri);
175+
}
176+
catch (FileSystemNotFoundException e) {
177+
FileSystems.newFileSystem(uri, Collections.emptyMap());
178+
}
179+
catch (IllegalArgumentException e) {
180+
FileSystems.getDefault();
181+
}
182+
}
183+
158184
private String stripComments(List<String> list) {
159185
StringBuilder buffer = new StringBuilder();
160186
for (String line : list) {

0 commit comments

Comments
 (0)