/** * Create a concrete miner to extract the informations of evolution. Each supported system have to * have your own miner, IPROJECT, REDMINE, SIGPRoject, etc... * * @param systemName * @return */ public Miner getMiner( String minerName, String workDirectoryPath, MergeSide mergeSide, boolean systemOnLineModel, boolean repositoryOnlineModel) { if (StringUtils.isEmpty(minerName)) return null; // support half side miner Properties prop = new Properties(); try { // I think that this also should be in the config file, this is hardcode URL url = new URL("platform:/plugin/br.ufrn.spl.ev/src/br/ufrn/spl/ev/miners.properties"); InputStream inputStream = url.openConnection().getInputStream(); prop.load(inputStream); Miner miner = (Miner) Class.forName(prop.getProperty(minerName)).newInstance(); // OBSERVATION.: RepositoryConnector is always "true" in the miner, we don't find out a way to // do this offline if (miner instanceof IprojectMiner) { miner.setSystemConnector( new ConnectorFactory() .getSystemConnector("IPROJECT", workDirectoryPath, mergeSide, systemOnLineModel)); miner.setRepositoryConnector( new ConnectorFactory().getRepositoryConnector(mergeSide, repositoryOnlineModel)); } if (miner instanceof RedmineMiner) { miner.setSystemConnector( new ConnectorFactory() .getSystemConnector("REDMINE", workDirectoryPath, mergeSide, systemOnLineModel)); miner.setRepositoryConnector( new ConnectorFactory().getRepositoryConnector(mergeSide, repositoryOnlineModel)); } if (miner instanceof SIGProjectMiner) { miner.setSystemConnector( new ConnectorFactory() .getSystemConnector("SIGPROJECT", workDirectoryPath, mergeSide, systemOnLineModel)); miner.setRepositoryConnector( new ConnectorFactory().getRepositoryConnector(mergeSide, repositoryOnlineModel)); } if (miner instanceof GithubMiner) { miner.setSystemConnector( new ConnectorFactory() .getSystemConnector("GITHUB", workDirectoryPath, mergeSide, systemOnLineModel)); miner.setRepositoryConnector( new ConnectorFactory().getRepositoryConnector(mergeSide, repositoryOnlineModel)); } return miner; } catch (Exception e) { e.printStackTrace(); return null; } }