package hudson.plugins.dependencyanalyzer; import hudson.maven.MavenBuild; import hudson.maven.MavenModule; import hudson.maven.MavenModuleSetBuild; import hudson.plugins.dependencyanalyzer.parser.BuildLogFileParser; import hudson.plugins.dependencyanalyzer.parser.DependencyAnalysisParser; import hudson.plugins.dependencyanalyzer.result.BuildResult; import hudson.plugins.dependencyanalyzer.result.DependencyProblemType; import hudson.plugins.dependencyanalyzer.result.ModuleResult; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.logging.Logger; import org.apache.commons.lang.StringUtils; public class DependencyAnalyzerResultBuilder { public final static Logger LOGGER = Logger .getLogger(DependencyAnalyzerResultBuilder.class.toString()); public static BuildResult buildResult(MavenModuleSetBuild build) throws IOException { Map<MavenModule, List<MavenBuild>> moduleBuilds = build .getModuleBuilds(); Iterator<MavenModule> iterator = moduleBuilds.keySet().iterator(); BuildResult analysisResult = new BuildResult(); while (iterator.hasNext()) { List<MavenBuild> builds = moduleBuilds.get(iterator.next()); // Desactivated modules have no builds if (builds.size() > 0) { MavenBuild moduleBuild = builds.get(0); File logFile = moduleBuild.getLogFile(); MavenModule mavenModule = moduleBuild.getProject(); ModuleResult moduleResult = buildModuleResult(mavenModule, logFile); analysisResult.addResult(moduleResult); } } return analysisResult; } private static ModuleResult buildModuleResult(MavenModule module, File logFile) throws IOException { ModuleResult moduleResult = new ModuleResult(); BuildLogFileParser logFileParser = new BuildLogFileParser(); logFileParser.parseLogFile(logFile); // extracting dependency section from log file String dependencySection = logFileParser.getDependencyAnalyseBlock(); if (StringUtils.isBlank(dependencySection)) { LOGGER .info("No dependency section found. Add dependency:analyze on your job configuration."); return moduleResult; } // extracting informations from dependency section Map<DependencyProblemType, List<String>> dependencyProblems = DependencyAnalysisParser .parseDependencyAnalyzeSection(dependencySection); // populating result moduleResult.setModuleName(module.getModuleName()); moduleResult.setDisplayName(module.getDisplayName()); moduleResult.setDependencyProblems(dependencyProblems); return moduleResult; } }