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}