|
30 | 30 | import org.elasticsearch.packaging.util.Shell.Result;
|
31 | 31 |
|
32 | 32 | import java.io.IOException;
|
| 33 | +import java.nio.file.FileVisitResult; |
33 | 34 | import java.nio.file.Files;
|
34 | 35 | import java.nio.file.Path;
|
| 36 | +import java.nio.file.SimpleFileVisitor; |
| 37 | +import java.nio.file.attribute.BasicFileAttributes; |
35 | 38 | import java.util.Arrays;
|
36 |
| -import java.util.stream.Stream; |
37 | 39 |
|
38 | 40 | import static java.util.stream.Collectors.joining;
|
39 | 41 | import static org.elasticsearch.packaging.util.Archives.ARCHIVE_OWNER;
|
@@ -194,8 +196,25 @@ public void test70CustomPathConfAndJvmOptions() throws IOException {
|
194 | 196 |
|
195 | 197 | try {
|
196 | 198 | mkdir(tempConf);
|
197 |
| - cp(installation.config("elasticsearch.yml"), tempConf.resolve("elasticsearch.yml")); |
198 |
| - cp(installation.config("log4j2.properties"), tempConf.resolve("log4j2.properties")); |
| 199 | + |
| 200 | + // copy all config files except for jvm.options |
| 201 | + Files.walkFileTree(installation.config, new SimpleFileVisitor<Path>() { |
| 202 | + |
| 203 | + @Override |
| 204 | + public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) throws IOException { |
| 205 | + Files.createDirectories(tempConf.resolve(installation.config.relativize(dir))); |
| 206 | + return FileVisitResult.CONTINUE; |
| 207 | + } |
| 208 | + |
| 209 | + @Override |
| 210 | + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { |
| 211 | + if (file.getFileName().endsWith("jvm.options") == false) { |
| 212 | + cp(file, tempConf.resolve(installation.config.relativize(file))); |
| 213 | + } |
| 214 | + return FileVisitResult.CONTINUE; |
| 215 | + } |
| 216 | + |
| 217 | + }); |
199 | 218 |
|
200 | 219 | // we have to disable Log4j from using JMX lest it will hit a security
|
201 | 220 | // manager exception before we have configured logging; this will fail
|
@@ -244,11 +263,22 @@ public void test80RelativePathConf() throws IOException {
|
244 | 263 |
|
245 | 264 | try {
|
246 | 265 | mkdir(tempConf);
|
247 |
| - Stream.of( |
248 |
| - "elasticsearch.yml", |
249 |
| - "log4j2.properties", |
250 |
| - "jvm.options" |
251 |
| - ).forEach(file -> cp(installation.config(file), tempConf.resolve(file))); |
| 266 | + // copy all config files |
| 267 | + Files.walkFileTree(installation.config, new SimpleFileVisitor<Path>() { |
| 268 | + |
| 269 | + @Override |
| 270 | + public FileVisitResult preVisitDirectory(final Path dir, final BasicFileAttributes attrs) throws IOException { |
| 271 | + Files.createDirectories(tempConf.resolve(installation.config.relativize(dir))); |
| 272 | + return FileVisitResult.CONTINUE; |
| 273 | + } |
| 274 | + |
| 275 | + @Override |
| 276 | + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { |
| 277 | + cp(file, tempConf.resolve(installation.config.relativize(file))); |
| 278 | + return FileVisitResult.CONTINUE; |
| 279 | + } |
| 280 | + |
| 281 | + }); |
252 | 282 |
|
253 | 283 | append(tempConf.resolve("elasticsearch.yml"), "node.name: relative");
|
254 | 284 |
|
|
0 commit comments