| // |
| // ======================================================================== |
| // Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd. |
| // ------------------------------------------------------------------------ |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // and Apache License v2.0 which accompanies this distribution. |
| // |
| // The Eclipse Public License is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| // |
| // The Apache License v2.0 is available at |
| // http://www.opensource.org/licenses/apache2.0.php |
| // |
| // You may elect to redistribute this code under either of these licenses. |
| // ======================================================================== |
| // |
| |
| package org.eclipse.jetty.start; |
| |
| import java.io.File; |
| import java.io.IOException; |
| import java.nio.file.FileVisitOption; |
| import java.nio.file.Files; |
| import java.nio.file.Path; |
| import java.util.ArrayList; |
| import java.util.EnumSet; |
| import java.util.List; |
| |
| import org.eclipse.jetty.toolchain.test.MavenTestingUtils; |
| import org.eclipse.jetty.toolchain.test.TestingDir; |
| import org.junit.Rule; |
| import org.junit.Test; |
| |
| public class PathFinderTest |
| { |
| @Rule |
| public TestingDir testdir = new TestingDir(); |
| |
| @Test |
| public void testFindInis() throws IOException |
| { |
| File homeDir = MavenTestingUtils.getTestResourceDir("hb.1/home"); |
| Path homePath = homeDir.toPath().toAbsolutePath(); |
| Path basePath = testdir.getEmptyPathDir(); |
| |
| PathFinder finder = new PathFinder(); |
| finder.setFileMatcher("glob:**/*.ini"); |
| finder.setBase(homePath); |
| |
| Files.walkFileTree(homePath,EnumSet.of(FileVisitOption.FOLLOW_LINKS),30,finder); |
| |
| List<String> expected = new ArrayList<>(); |
| expected.add("${jetty.home}/start.d/jmx.ini"); |
| expected.add("${jetty.home}/start.d/jndi.ini"); |
| expected.add("${jetty.home}/start.d/jsp.ini"); |
| expected.add("${jetty.home}/start.d/logging.ini"); |
| expected.add("${jetty.home}/start.d/ssl.ini"); |
| expected.add("${jetty.home}/start.ini"); |
| FSTest.toOsSeparators(expected); |
| |
| BaseHome hb = new BaseHome(new String[] { "jetty.home=" + homePath.toString(), "jetty.base=" + basePath.toString() }); |
| BaseHomeTest.assertPathList(hb,"Files found",expected,finder); |
| } |
| |
| @Test |
| public void testFindMods() throws IOException |
| { |
| File homeDir = MavenTestingUtils.getTestResourceDir("dist-home"); |
| Path homePath = homeDir.toPath().toAbsolutePath(); |
| Path basePath = testdir.getEmptyPathDir(); |
| |
| List<String> expected = new ArrayList<>(); |
| File modulesDir = new File(homeDir,"modules"); |
| for (File file : modulesDir.listFiles()) |
| { |
| if (file.getName().endsWith(".mod")) |
| { |
| expected.add("${jetty.home}/modules/" + file.getName()); |
| } |
| } |
| FSTest.toOsSeparators(expected); |
| |
| Path modulesPath = modulesDir.toPath(); |
| |
| PathFinder finder = new PathFinder(); |
| finder.setFileMatcher(PathMatchers.getMatcher("modules/*.mod")); |
| finder.setBase(modulesPath); |
| |
| Files.walkFileTree(modulesPath,EnumSet.of(FileVisitOption.FOLLOW_LINKS),1,finder); |
| |
| BaseHome hb = new BaseHome(new String[] { "jetty.home=" + homePath.toString(), "jetty.base=" + basePath.toString() }); |
| BaseHomeTest.assertPathList(hb,"Files found",expected,finder); |
| } |
| } |