001package bradleyross.library.tools; 002import java.io.FileFilter; 003import java.io.File; 004import java.io.IOException; 005import java.util.Iterator; 006import org.apache.logging.log4j.Logger; 007import org.apache.logging.log4j.LogManager; 008import bradleyross.library.helpers.DirWalker; 009/** 010 * @author Bradley Ross 011 * 012 */ 013public class RepositoryReview { 014 protected File fileRoot; 015 protected FileFilter fileFilter; 016 protected Iterator<File> iterator; 017 protected Logger logger = LogManager.getLogger(RepositoryReview.class); 018 public RepositoryReview() { 019 logger.info("Starting RepositoryReview class"); 020 fileFilter = new PomFilter(); 021 String userDir = System.getProperty("user.home"); 022 fileRoot = new File(userDir, ".m2/repository"); 023 try { 024 logger.info(fileRoot.getCanonicalPath());; 025 } catch (IOException e) { 026 logger.warn("Problem get root file"); 027 } 028 try { 029 logger.info("Root directory is " + fileRoot.getCanonicalPath()); 030 iterator = new DirWalker(fileRoot, fileFilter); 031 } catch (IOException e) { 032 logger.error("Error creating directory walker", e); 033 } 034 } 035 public RepositoryReview(File root, FileFilter filter) { 036 logger.info("Starting RepositoryReview class"); 037 fileFilter = filter; 038 fileRoot = root; 039 try { 040 iterator = new DirWalker(fileRoot, fileFilter); 041 } catch (IOException e) { 042 logger.error("Error creating directory walker", e); 043 } 044 } 045 protected class PomFilter implements FileFilter { 046 public boolean accept(File pathname) { 047 if (pathname.exists() && 048 pathname.isFile() && 049 pathname.getName().equalsIgnoreCase("pom.xml")) { 050 return true; 051 } else { 052 return false; 053 } 054 } 055 } 056 public void run() { 057 058 while (iterator.hasNext()) { 059 File item = iterator.next(); 060 try { 061 System.out.println(item.getCanonicalPath()); 062 } catch (IOException e) { 063 logger.error("Error while processing iterator", e); 064 } 065 } 066 } 067 /** 068 * Test driver 069 * @param args not used in this class 070 */ 071 public static void main(String[] args) { 072 RepositoryReview instance = new RepositoryReview(); 073 instance.run(); 074 } 075 076}