@Override public void publish(ScannerReportWriter writer) { ScannerReport.Component.Builder projectBuilder = prepareProjectBuilder(); ScannerReport.Component.Builder fileBuilder = ScannerReport.Component.newBuilder(); for (DefaultInputFile file : inputComponentStore.allFilesToPublish()) { projectBuilder.addChildRef(file.scannerId()); fileBuilder.clear(); // non-null fields fileBuilder.setRef(file.scannerId()); fileBuilder.setType(ComponentType.FILE); fileBuilder.setIsTest(file.type() == InputFile.Type.TEST); fileBuilder.setLines(file.lines()); fileBuilder.setStatus(convert(file.status())); String lang = getLanguageKey(file); if (lang != null) { fileBuilder.setLanguage(lang); } fileBuilder.setProjectRelativePath(file.getProjectRelativePath()); writer.writeComponent(fileBuilder.build()); } writer.writeComponent(projectBuilder.build()); }
private ScannerReport.Component.Builder prepareProjectBuilder() { ScannerReport.Component.Builder projectBuilder = ScannerReport.Component.newBuilder(); projectBuilder.setRef(project.scannerId()); projectBuilder.setType(ComponentType.PROJECT); // Here we want key without branch projectBuilder.setKey(project.key()); // protocol buffers does not accept null values String name = getName(project); if (name != null) { projectBuilder.setName(name); } String description = getDescription(project); if (description != null) { projectBuilder.setDescription(description); } String version = project.getOriginalVersion(); if (version != null) { projectBuilder.setVersion(version); } writeLinks(project, projectBuilder); return projectBuilder; }
private static void writeLinks(DefaultInputProject project, ScannerReport.Component.Builder builder) { ComponentLink.Builder linkBuilder = ComponentLink.newBuilder(); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_HOME_PAGE, ComponentLinkType.HOME); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_CI, ComponentLinkType.CI); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_ISSUE_TRACKER, ComponentLinkType.ISSUE); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_SOURCES, ComponentLinkType.SCM); }
@Test public void publish_project_without_version_and_name() throws IOException { ProjectAnalysisInfo projectAnalysisInfo = mock(ProjectAnalysisInfo.class); when(projectAnalysisInfo.analysisDate()).thenReturn(DateUtils.parseDate("2012-12-12")); ProjectDefinition rootDef = ProjectDefinition.create() .setKey("foo") .setDescription("Root description") .setBaseDir(temp.newFolder()) .setWorkDir(temp.newFolder()); DefaultInputProject project = new DefaultInputProject(rootDef, 1); InputComponentStore store = new InputComponentStore(branchConfiguration); ComponentsPublisher publisher = new ComponentsPublisher(project, store); publisher.publish(writer); assertThat(writer.hasComponentData(FileStructure.Domain.COMPONENT, 1)).isTrue(); ScannerReportReader reader = new ScannerReportReader(outputDir); Component rootProtobuf = reader.readComponent(1); assertThat(rootProtobuf.getKey()).isEqualTo("foo"); assertThat(rootProtobuf.getName()).isEqualTo(""); assertThat(rootProtobuf.getDescription()).isEqualTo("Root description"); assertThat(rootProtobuf.getVersion()).isEqualTo(""); assertThat(rootProtobuf.getLinkCount()).isEqualTo(0); }
@Test public void should_set_modified_name_with_branch() throws IOException { ProjectAnalysisInfo projectAnalysisInfo = mock(ProjectAnalysisInfo.class); when(projectAnalysisInfo.analysisDate()).thenReturn(DateUtils.parseDate("2012-12-12")); ProjectDefinition rootDef = ProjectDefinition.create() .setKey("foo") .setDescription("Root description") .setBaseDir(temp.newFolder()) .setWorkDir(temp.newFolder()) .setProperty(CoreProperties.PROJECT_BRANCH_PROPERTY, "my_branch"); DefaultInputProject project = new DefaultInputProject(rootDef, 1); InputComponentStore store = new InputComponentStore(branchConfiguration); ComponentsPublisher publisher = new ComponentsPublisher(project, store); publisher.publish(writer); Component rootProtobuf = reader.readComponent(1); assertThat(rootProtobuf.getKey()).isEqualTo("foo"); assertThat(rootProtobuf.getName()).isEqualTo("foo my_branch"); }
@Override public void publish(ScannerReportWriter writer) { ScannerReport.Component.Builder projectBuilder = prepareProjectBuilder(); ScannerReport.Component.Builder fileBuilder = ScannerReport.Component.newBuilder(); for (DefaultInputFile file : inputComponentStore.allFilesToPublish()) { projectBuilder.addChildRef(file.scannerId()); fileBuilder.clear(); // non-null fields fileBuilder.setRef(file.scannerId()); fileBuilder.setType(ComponentType.FILE); fileBuilder.setIsTest(file.type() == InputFile.Type.TEST); fileBuilder.setLines(file.lines()); fileBuilder.setStatus(convert(file.status())); String lang = getLanguageKey(file); if (lang != null) { fileBuilder.setLanguage(lang); } fileBuilder.setProjectRelativePath(file.getProjectRelativePath()); writer.writeComponent(fileBuilder.build()); } writer.writeComponent(projectBuilder.build()); }
private ScannerReport.Component.Builder prepareProjectBuilder() { ScannerReport.Component.Builder projectBuilder = ScannerReport.Component.newBuilder(); projectBuilder.setRef(project.scannerId()); projectBuilder.setType(ComponentType.PROJECT); // Here we want key without branch projectBuilder.setKey(project.key()); // protocol buffers does not accept null values String name = getName(project); if (name != null) { projectBuilder.setName(name); } String description = getDescription(project); if (description != null) { projectBuilder.setDescription(description); } String version = project.getOriginalVersion(); if (version != null) { projectBuilder.setVersion(version); } writeLinks(project, projectBuilder); return projectBuilder; }
ComponentsPublisher publisher = new ComponentsPublisher(project, store); publisher.publish(writer);
private static void writeLinks(DefaultInputProject project, ScannerReport.Component.Builder builder) { ComponentLink.Builder linkBuilder = ComponentLink.newBuilder(); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_HOME_PAGE, ComponentLinkType.HOME); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_CI, ComponentLinkType.CI); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_ISSUE_TRACKER, ComponentLinkType.ISSUE); writeProjectLink(builder, project.properties(), linkBuilder, CoreProperties.LINKS_SOURCES, ComponentLinkType.SCM); }
store.put("foo", file2); ComponentsPublisher publisher = new ComponentsPublisher(project, store); publisher.publish(writer);
store.put("module1", testFile); ComponentsPublisher publisher = new ComponentsPublisher(project, store); publisher.publish(writer);