package org.jboss.weld.tests; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.IOFileFilter; import org.jboss.weld.test.util.Utils; /** * This class generates file with TestClassToHashMapper#OUTPUT_FILE_NAME file name in TestClassToHashMapper#TARGET_DIR directory. * Generated file contains fully qualified name of each test class and its related hash. Class is executed using exec-maven-plugin during * install maven phase. */ public class TestClassToHashMapper { private TestClassToHashMapper(){ } public static final String TEST_SUFFIX = "Test.java"; public static final String OUTPUT_FILE_NAME = "test-classes-with-hash.txt"; public static final String TARGET_DIR = "target"; public static final String PREFIX = "org"; public static final String SUFFIX = ".java"; public static void main(String[] args) { File userDir = new File(System.getProperty("user.dir")); File outputFile = new File(userDir + File.separator + TARGET_DIR + File.separator + OUTPUT_FILE_NAME); try { if (!outputFile.exists()) { outputFile.createNewFile(); } FileWriter writer = new FileWriter(outputFile); List<File> files = (List<File>) FileUtils.listFiles(userDir, new TestFileFilter(), new DirFileFilter()); for (File file : files) { String fqcn = file.getPath().substring(file.getPath().indexOf(PREFIX), file.getPath().indexOf(SUFFIX)); fqcn = fqcn.replace(File.separator, "."); writer.append(fqcn + " " + Utils.getHashOfTestClass(fqcn)); writer.append(System.lineSeparator()); } writer.flush(); writer.close(); } catch (IOException e) { } } static class TestFileFilter implements IOFileFilter { @Override public boolean accept(File file) { return file.getName().endsWith(TEST_SUFFIX); } @Override public boolean accept(File file, String s) { return file.getName().endsWith(TEST_SUFFIX); } } static class DirFileFilter implements IOFileFilter { @Override public boolean accept(File file) { return true; } @Override public boolean accept(File file, String s) { return true; } } }