public static void registerFinalizer( Task task, StyleTaskTimer timer, FailuresSupplier failuresSupplier, File reportDir) { CircleStyleFinalizer finalizer = Tasks.createTask( task.getProject().getTasks(), task.getName() + "CircleFinalizer", CircleStyleFinalizer.class); if (finalizer == null) { // Already registered (happens if the user applies us to the root project and subprojects) return; } finalizer.setStyleTask(task); finalizer.setStyleTaskTimer(timer); finalizer.setFailuresSupplier(failuresSupplier); finalizer.setTargetFile(new File(reportDir, task.getProject().getName() + "-" + task.getName() + ".xml")); task.finalizedBy(finalizer); }
@TaskAction public void createCircleReport() throws IOException, TransformerException { if (!styleTask.getDidWork()) { setDidWork(false); return; } File rootDir = getProject().getRootProject().getProjectDir(); String projectName = getProject().getName(); List<Failure> failures = failuresSupplier.getFailures(); long taskTimeNanos = styleTaskTimer.getTaskTimeNanos(styleTask); Document report = reportToXml(failuresReport( rootDir, projectName, styleTask.getName(), taskTimeNanos, failures)); targetFile.getParentFile().mkdirs(); try (FileWriter writer = new FileWriter(targetFile)) { XmlUtils.write(writer, report); } } }
public static void registerFinalizer( Task task, TaskTimer timer, FailuresSupplier failuresSupplier, Path reportDir) { CircleStyleFinalizer finalizer = Tasks.createTask( task.getProject().getTasks(), task.getName() + "CircleFinalizer", CircleStyleFinalizer.class); if (finalizer == null) { // Already registered (happens if the user applies us to the root project and subprojects) return; } finalizer.setStyleTask(task); finalizer.setTaskTimer(timer); finalizer.setFailuresSupplier(failuresSupplier); finalizer.setTargetFile( reportDir.resolve(task.getProject().getName() + "-" + task.getName() + ".xml").toFile()); finalizer.setReportDir(reportDir); task.finalizedBy(finalizer); }
private void configureCheckstyleTask( final Project project, final Checkstyle checkstyleTask, final String circleReportsDir, final StyleTaskTimer timer) { // Ensure XML output is enabled checkstyleTask.doFirst(new Action<Task>() { @Override public void execute(Task task) { checkstyleTask.getReports().findByName("xml").setEnabled(true); } }); // Configure the finalizer task CircleStyleFinalizer finalizer = createTask( project.getTasks(), checkstyleTask.getName() + "CircleFinalizer", CircleStyleFinalizer.class); if (finalizer == null) { // Already registered (happens if the user applies us to the root project and subprojects) return; } finalizer.setReportParser(CheckstyleReportHandler.PARSER); finalizer.setStyleTask(checkstyleTask); finalizer.setReporting(checkstyleTask); finalizer.setStyleTaskTimer(timer); finalizer.setTargetFile(new File( new File(circleReportsDir, "checkstyle"), project.getName() + "-" + checkstyleTask.getName() + ".xml")); checkstyleTask.finalizedBy(finalizer); }
@Test public void doesNothingIfTaskSkipped() throws IOException, TransformerException { Project project = ProjectBuilder.builder().withName("fooproject").withProjectDir(projectDir.getRoot()).build(); Checkstyle checkstyle = createCheckstyleTask(project); checkstyle.setDidWork(false); TaskTimer timer = mock(TaskTimer.class); when(timer.getTaskTimeNanos(checkstyle)).thenReturn(FAILED_CHECKSTYLE_TIME_NANOS); File targetFile = new File(projectDir.getRoot(), "reports/report.xml"); CircleStyleFinalizer finalizer = (CircleStyleFinalizer) project .task(ImmutableMap.of("type", CircleStyleFinalizer.class), "checkstyleTestCircleFinalizer"); finalizer.setStyleTask(checkstyle); finalizer.setTaskTimer(timer); finalizer.setFailuresSupplier(XmlReportFailuresSupplier.create(checkstyle, new CheckstyleReportHandler())); finalizer.setTargetFile(targetFile); finalizer.createCircleReport(); assertThat(targetFile).doesNotExist(); assertThat(finalizer.getDidWork()).isFalse(); }
@Test public void translatesCheckstyleReport() throws IOException, TransformerException { Project project = ProjectBuilder.builder().withName("fooproject").withProjectDir(projectDir.getRoot()).build(); Checkstyle checkstyle = createCheckstyleTask(project); checkstyle.setDidWork(true); TaskTimer timer = mock(TaskTimer.class); when(timer.getTaskTimeNanos(checkstyle)).thenReturn(FAILED_CHECKSTYLE_TIME_NANOS); File targetFile = new File(projectDir.getRoot(), "reports/report.xml"); CircleStyleFinalizer finalizer = (CircleStyleFinalizer) project .task(ImmutableMap.of("type", CircleStyleFinalizer.class), "checkstyleTestCircleFinalizer"); finalizer.setStyleTask(checkstyle); finalizer.setTaskTimer(timer); finalizer.setFailuresSupplier(XmlReportFailuresSupplier.create(checkstyle, new CheckstyleReportHandler())); finalizer.setTargetFile(targetFile); finalizer.createCircleReport(); String report = Resources.toString(targetFile.toURI().toURL(), StandardCharsets.UTF_8) .replaceAll("\\p{Blank}*(?=<)", ""); String expectedReport = Resources.toString( testFile("two-namecheck-failures-checkstyle-report.xml"), StandardCharsets.UTF_8); assertThat(report).isEqualTo(expectedReport); }
finalizer.setReportParser(FindBugsReportHandler.PARSER); finalizer.setStyleTask(findbugsTask); finalizer.setReporting(findbugsTask); finalizer.setStyleTaskTimer(timer); finalizer.setTargetFile(new File( new File(circleReportsDir, "findbugs"), project.getName() + "-" + findbugsTask.getName() + ".xml"));
@Test public void doesNothingIfTaskSkipped() throws IOException, TransformerException { Project project = ProjectBuilder.builder().withName("fooproject").withProjectDir(projectDir.getRoot()).build(); Checkstyle checkstyle = createCheckstyleTask(project); checkstyle.setDidWork(false); StyleTaskTimer timer = mock(StyleTaskTimer.class); when(timer.getTaskTimeNanos(checkstyle)).thenReturn(FAILED_CHECKSTYLE_TIME_NANOS); File targetFile = new File(projectDir.getRoot(), "reports/report.xml"); CircleStyleFinalizer finalizer = (CircleStyleFinalizer) project .task(ImmutableMap.of("type", CircleStyleFinalizer.class), "checkstyleTestCircleFinalizer"); finalizer.setStyleTask(checkstyle); finalizer.setStyleTaskTimer(timer); finalizer.setFailuresSupplier(XmlReportFailuresSupplier.create(checkstyle, new CheckstyleReportHandler())); finalizer.setTargetFile(targetFile); finalizer.createCircleReport(); assertThat(targetFile).doesNotExist(); assertThat(finalizer.getDidWork()).isFalse(); }
public static void registerFinalizer( Task task, TaskTimer timer, FailuresSupplier failuresSupplier, Path reportDir) { CircleStyleFinalizer finalizer = Tasks.createTask( task.getProject().getTasks(), task.getName() + "CircleFinalizer", CircleStyleFinalizer.class); if (finalizer == null) { // Already registered (happens if the user applies us to the root project and subprojects) return; } finalizer.setStyleTask(task); finalizer.setTaskTimer(timer); finalizer.setFailuresSupplier(failuresSupplier); finalizer.setTargetFile( reportDir.resolve(task.getProject().getName() + "-" + task.getName() + ".xml").toFile()); finalizer.setReportDir(reportDir); task.finalizedBy(finalizer); }
@TaskAction public void createCircleReport() throws IOException, TransformerException { if (!styleTask.getDidWork()) { setDidWork(false); return; } File rootDir = getProject().getRootProject().getProjectDir(); String projectName = getProject().getName(); File sourceReport = reporting.getReports().findByName("xml").getDestination(); List<Failure> failures = reportParser.loadFailures(new FileInputStream(sourceReport)); long taskTimeNanos = styleTaskTimer.getTaskTimeNanos(styleTask); Document report = reportToXml(failuresReport( rootDir, projectName, styleTask.getName(), taskTimeNanos, failures)); targetFile.getParentFile().mkdirs(); try (FileWriter writer = new FileWriter(targetFile)) { XmlUtils.write(writer, report); } } }
@Test public void translatesCheckstyleReport() throws IOException, TransformerException { Project project = ProjectBuilder.builder().withName("fooproject").withProjectDir(projectDir.getRoot()).build(); Checkstyle checkstyle = createCheckstyleTask(project); checkstyle.setDidWork(true); StyleTaskTimer timer = mock(StyleTaskTimer.class); when(timer.getTaskTimeNanos(checkstyle)).thenReturn(FAILED_CHECKSTYLE_TIME_NANOS); File targetFile = new File(projectDir.getRoot(), "reports/report.xml"); CircleStyleFinalizer finalizer = (CircleStyleFinalizer) project .task(ImmutableMap.of("type", CircleStyleFinalizer.class), "checkstyleTestCircleFinalizer"); finalizer.setStyleTask(checkstyle); finalizer.setStyleTaskTimer(timer); finalizer.setFailuresSupplier(XmlReportFailuresSupplier.create(checkstyle, new CheckstyleReportHandler())); finalizer.setTargetFile(targetFile); finalizer.createCircleReport(); String report = Resources.toString(targetFile.toURI().toURL(), UTF_8); String expectedReport = Resources.toString(testFile("two-namecheck-failures-checkstyle-report.xml"), UTF_8); assertThat(report).isEqualTo(expectedReport); }
@TaskAction public final void createCircleReport() throws IOException, TransformerException { if (!styleTask.getDidWork()) { setDidWork(false); return; File rootDir = getProject().getRootProject().getProjectDir(); String projectName = getProject().getName(); List<Failure> failures = failuresSupplier.getFailures(); long taskTimeNanos = taskTimer.getTaskTimeNanos(styleTask);
@TaskAction public final void createCircleReport() throws IOException, TransformerException { if (!styleTask.getDidWork()) { setDidWork(false); return; File rootDir = getProject().getRootProject().getProjectDir(); String projectName = getProject().getName(); List<Failure> failures = failuresSupplier.getFailures(); long taskTimeNanos = taskTimer.getTaskTimeNanos(styleTask);