/** * visit a run * * @param visitor * @param run */ public static void traverse(HudsonVisitor visitor, Run run) { if (run instanceof MavenModuleSetBuild) { MavenModuleSetBuild item = (MavenModuleSetBuild) run; visitor.visitModuleSet(item); Map<MavenModule, List<MavenBuild>> modulesMap = item.getModuleBuilds(); for (List<MavenBuild> builds : modulesMap.values()) { for (MavenBuild build : builds) { log.trace("Visit mavenBuild {}", build); visitor.visitBuild(build); MavenArtifactRecord artifacts = build.getAction(MavenArtifactRecord.class); if (artifacts != null) { visitMavenArtifactRecord(visitor, build, artifacts); } } } } else { RepositoryArtifactRecords records = run.getAction(RepositoryArtifactRecords.class); if (records != null) { for (RepositoryArtifactRecord record : records.recordList) { visitRepositoryRecord(visitor, run, record); } } } }
/** Visit projects and builds */ public static void traverseProjectsAndBuilds(HudsonVisitor visitor) { for (BuildableItemWithBuildWrappers item : Hudson.getInstance().getAllItems(BuildableItemWithBuildWrappers.class)) { visitor.visitProject(item); List<? extends Run> runs = item.asProject().getBuilds(); for (Run run : runs) { if (run instanceof MavenModuleSetBuild) { MavenModuleSetBuild mmsb = (MavenModuleSetBuild) run; visitor.visitModuleSet(mmsb); } } } }
private static void visitRepositoryRecord( HudsonVisitor visitor, Run build, RepositoryArtifactRecord artifacts) { log.trace("Visit Build {} artifacts {}", build, artifacts); try { visitor.visitArtifact(build, artifacts.pomArtifact); if (artifacts.mainArtifact != artifacts.pomArtifact) { // Sometimes the POM is the only thing being made.. visitor.visitArtifact(build, artifacts.mainArtifact); } for (MavenArtifact art : artifacts.attachedArtifacts) { visitor.visitArtifact(build, art); } } catch (Exception ex) { log.error("Error fetching artifact details"); log.error("Error", ex); } }
/** * visit everything in order. * * @param visitor */ public static void traverse(HudsonVisitor visitor) { for (BuildableItemWithBuildWrappers item : Hudson.getInstance().getAllItems(BuildableItemWithBuildWrappers.class)) { visitor.visitProject(item); List<? extends Run> runs = item.asProject().getBuilds(); for (Run run : runs) { traverse(visitor, run); } } }