* limitations under the License.
* ============LICENSE_END=========================================================
*/
+
package org.onap.aai.babel.logging;
import java.io.BufferedReader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.lang.time.StopWatch;
-import org.junit.Assert;
+import org.apache.commons.lang3.time.StopWatch;
+import org.junit.jupiter.api.Assertions;
public class LogReader {
}
/**
+ * Find the most recently modified log file with a name starting with the specified prefix.
+ *
* @param logDirectory
- * @return the most recently created log file.
+ * the root folder storing log files
+ * @param filenamePrefix
+ * the log file name prefix
+ * @return the most recently created log file
* @throws IOException
+ * if an I/O error occurs
*/
public File getLogFile(String logDirectory, String filenamePrefix) throws IOException {
Path cachedLog = cachedLogMap.get(filenamePrefix);
if (cachedLog == null) {
Optional<Path> latestFilePath = Files.list(Paths.get(logDirectory))
.filter(f -> Files.isDirectory(f) == false && f.getFileName().toString().startsWith(filenamePrefix))
- .max((f1, f2) -> (int) (f1.toFile().lastModified() - f2.toFile().lastModified()));
+ .max(Comparator.comparingLong(f -> f.toFile().lastModified()));
if (latestFilePath.isPresent()) {
cachedLog = latestFilePath.get();
} else {
}
/**
+ * Wait for and read new log entries.
+ *
* @return new lines appended to the log file
* @throws IOException
+ * If an I/O error occurs
*/
public String getNewLines() throws IOException {
StopWatch stopwatch = new StopWatch();
while (!cachedReader.ready()) {
if (stopwatch.getTime() > TimeUnit.SECONDS.toMillis(30)) {
- Assert.fail("Test took too long");
+ Assertions.fail("Test took too long");
}
// else keep waiting
}