This report shows a user the total number of Codestation artifacts. This report has to be used in conjunction with a report template such as the HTML Template.
Meta-Data Script:
import com.urbancode.anthill3.domain.reporting.*; ReportMetaData rmd = new ReportMetaData(); rmd.addColumn("Project"); rmd.addColumn("Build Life"); rmd.addColumn("Stamp"); rmd.addColumn("Status"); rmd.addColumn("Set"); rmd.addColumn("Files"); return rmd;
Context Script:
import com.urbancode.anthill3.domain.reporting.*; import com.urbancode.anthill3.runtime.paths.CodestationPathHelper; import com.urbancode.codestation2.domain.artifacts.*; import com.urbancode.codestation2.domain.buildlife.*; import com.urbancode.codestation2.domain.project.*; import com.urbancode.codestation2.server.CodestationRepositoryFileHelper; import com.urbancode.commons.fileutils.FileUtils; import com.urbancode.devilfish.services.var.VarService; import com.urbancode.devilfish.services.file.FileInfo; import java.io.File; ReportOutput output = new ReportOutput(metaData); CodestationRepositoryFileHelper cs = CodestationRepositoryFileHelper.getInstance(); CodestationCompatableProject[] projects = CodestationProjectFactory.getInstance().restoreAllCodestation(); for (int p=0; p<projects.length; p++) { CodestationBuildLife[] buildLives = CodestationBuildLifeFactory.getInstance().restoreAllForProject(projects[p]); for (b=0; b<buildLives.length; b++) { CodestationCompatableArtifactSet[] sets = cs.getPopulatedBuildLifeArtifactSetList(buildLives[b]); for (int s=0; s<sets.length; s++) { ReportRow row = new ReportRow(output, "1"); row.setColumnValue("Project", projects[p].getName()); row.setColumnValue("Build Life", buildLives[b].getId().toString()); row.setColumnValue("Stamp", buildLives[b].getLatestStampValue()); row.setColumnValue("Status", buildLives[b].getLatestStatusName()); row.setColumnValue("Set", sets[s].getName()); String rawRepoLifeSetPath = CodestationPathHelper.getInstance().getSetPath(buildLives[b], sets[s]); String repoLifeSetPath = VarService.getInstance().resolve(rawRepoLifeSetPath); File baseSetDir = new File(repoLifeSetPath); FileInfo[] files = cs.getBuildLifeArtifactSetFileInfo(buildLives[b], sets[s]); StringBuffer sb = new StringBuffer(); for (int f=0; f<files.length; f++) { if (!".ahs.dig".equals(files[f].getName())) { sb.append(FileUtils.getRelativeFileName(baseSetDir, new File(files[f].getPath()))).append("<br/>"); } } row.setColumnValue("Files", sb.toString()); output.addRow(row); } } } return output;
Related Content