/** * Copyright 2005-2016 Red Hat, Inc. * * Red Hat licenses this file to you under the Apache License, version * 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package io.fabric8.profiles; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class TestHelpers { static final public Path PROJECT_BASE_DIR; static { try { URL location = TestHelpers.class.getProtectionDomain().getCodeSource().getLocation(); Path path = Paths.get(location.toURI()); PROJECT_BASE_DIR = path.resolve("../..").normalize(); } catch (Throwable e) { throw new RuntimeException(e); } } static void recusiveDeleteIfExists(Path p) throws IOException { if( Files.isDirectory(p) ) { try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(p)) { for (Path path : directoryStream) { recusiveDeleteIfExists(path); } } } Files.deleteIfExists(p); } public static String readTextFile(Path p) throws IOException { try(InputStream is = Files.newInputStream(p) ) { try(ByteArrayOutputStream os = new ByteArrayOutputStream()) { copy(is, os); return new String(os.toByteArray(), StandardCharsets.UTF_8); } } } public static void copy(InputStream is, OutputStream os) throws IOException { byte data[] = new byte[1024*4]; int c; while( (c=is.read(data)) >= 0 ) { os.write(data, 0, c); } } }