diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2015-09-04 09:58:49 +0200 |
---|---|---|
committer | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2015-09-08 18:12:22 +0200 |
commit | 00ddcf2a1369a17728d10ffeddb58ea1a0b60151 (patch) | |
tree | 40dbf8c34111b8f3021a855e4ba63b48a533f8a2 | |
parent | 72e7f4dcfc96613e54eae8f8766030ea84e6d83d (diff) | |
download | sonarqube-00ddcf2a1369a17728d10ffeddb58ea1a0b60151.tar.gz sonarqube-00ddcf2a1369a17728d10ffeddb58ea1a0b60151.zip |
use a visitor and no more BatchReportReader in PersistComponentsStep
will allow to make the step compatible with Views
2 files changed, 377 insertions, 567 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java index 121293fefd3..6eebdf77432 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java +++ b/server/sonar-server/src/main/java/org/sonar/server/computation/step/PersistComponentsStep.java @@ -21,28 +21,31 @@ package org.sonar.server.computation.step; import com.google.common.base.Function; -import com.google.common.collect.Maps; +import com.google.common.base.Predicate; import java.util.Date; -import java.util.List; import java.util.Map; import javax.annotation.Nonnull; -import javax.annotation.Nullable; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; import org.sonar.api.resources.Qualifiers; import org.sonar.api.resources.Scopes; import org.sonar.api.utils.System2; -import org.sonar.batch.protocol.output.BatchReport; import org.sonar.db.DbClient; import org.sonar.db.DbSession; import org.sonar.db.component.ComponentDto; -import org.sonar.server.computation.batch.BatchReportReader; import org.sonar.server.computation.component.Component; +import org.sonar.server.computation.component.CrawlerDepthLimit; import org.sonar.server.computation.component.DbIdsRepositoryImpl; import org.sonar.server.computation.component.MutableDbIdsRepository; +import org.sonar.server.computation.component.PathAwareCrawler; +import org.sonar.server.computation.component.PathAwareVisitor; +import org.sonar.server.computation.component.PathAwareVisitorAdapter; import org.sonar.server.computation.component.TreeRootHolder; +import static com.google.common.collect.FluentIterable.from; +import static org.sonar.server.computation.component.ComponentVisitor.Order.PRE_ORDER; + /** * Persist report components * Also feed the components cache {@link DbIdsRepositoryImpl} with component ids @@ -51,251 +54,266 @@ public class PersistComponentsStep implements ComputationStep { private final DbClient dbClient; private final TreeRootHolder treeRootHolder; - private final BatchReportReader reportReader; private final MutableDbIdsRepository dbIdsRepository; private final System2 system2; - public PersistComponentsStep(DbClient dbClient, TreeRootHolder treeRootHolder, BatchReportReader reportReader, MutableDbIdsRepository dbIdsRepository, System2 system2) { + public PersistComponentsStep(DbClient dbClient, TreeRootHolder treeRootHolder, MutableDbIdsRepository dbIdsRepository, System2 system2) { this.dbClient = dbClient; this.treeRootHolder = treeRootHolder; - this.reportReader = reportReader; this.dbIdsRepository = dbIdsRepository; this.system2 = system2; } @Override + public String getDescription() { + return "Persist components"; + } + + @Override public void execute() { DbSession session = dbClient.openSession(false); try { - org.sonar.server.computation.component.Component root = treeRootHolder.getRoot(); - List<ComponentDto> existingComponents = dbClient.componentDao().selectAllComponentsFromProjectKey(session, root.getKey()); - Map<String, ComponentDto> existingComponentDtosByKey = componentDtosByKey(existingComponents); - PersistComponentExecutor persistComponentExecutor = new PersistComponentExecutor(session, existingComponentDtosByKey, reportReader); - persistComponentExecutor.recursivelyProcessComponent(root, null); + Map<String, ComponentDto> existingComponentDtosByKey = indexExistingDtosByKey(session); + new PathAwareCrawler<>(new PersistComponentStepsVisitor(existingComponentDtosByKey, session)) + .visit(treeRootHolder.getRoot()); session.commit(); } finally { - session.close(); + dbClient.closeSession(session); + } + } + + private Map<String, ComponentDto> indexExistingDtosByKey(DbSession session) { + return from(dbClient.componentDao() + .selectAllComponentsFromProjectKey(session, treeRootHolder.getRoot().getKey())) + .uniqueIndex(ComponentKey.INSTANCE); + } + + private enum ComponentKey implements Function<ComponentDto, String> { + INSTANCE; + + @Override + public String apply(@Nonnull ComponentDto input) { + return input.key(); } } - private class PersistComponentExecutor { + private class PersistComponentStepsVisitor extends PathAwareVisitorAdapter<ComponentDtoHolder> { - private final BatchReportReader reportReader; private final Map<String, ComponentDto> existingComponentDtosByKey; private final DbSession dbSession; - private ComponentDto project; + public PersistComponentStepsVisitor(Map<String, ComponentDto> existingComponentDtosByKey, DbSession dbSession) { + super(CrawlerDepthLimit.FILE, PRE_ORDER, new SimpleStackElementFactory<ComponentDtoHolder>() { + @Override + public ComponentDtoHolder createForAny(Component component) { + return new ComponentDtoHolder(); + } - public PersistComponentExecutor(DbSession dbSession, Map<String, ComponentDto> existingComponentDtosByKey, BatchReportReader reportReader) { - this.reportReader = reportReader; + @Override + public ComponentDtoHolder createForFile(Component file) { + // no need to create holder for file since they are leaves of the Component tree + return null; + } + }); this.existingComponentDtosByKey = existingComponentDtosByKey; this.dbSession = dbSession; } - public void recursivelyProcessComponent(Component component, @Nullable ComponentDto lastModule) { - BatchReport.Component reportComponent = reportReader.readComponent(component.getReportAttributes().getRef()); - - switch (component.getType()) { - case PROJECT: - this.project = processProject(component, reportComponent); - processChildren(component, project); - break; - case MODULE: - ComponentDto persistedModule = processModule(component, reportComponent, nonNullLastModule(lastModule)); - processChildren(component, persistedModule); - break; - case DIRECTORY: - processDirectory(component, reportComponent, nonNullLastModule(lastModule)); - processChildren(component, nonNullLastModule(lastModule)); - break; - case FILE: - processFile(component, reportComponent, nonNullLastModule(lastModule)); - break; - default: - throw new IllegalStateException(String.format("Unsupported component type '%s'", component.getType())); - } + @Override + public void visitProject(Component project, Path<ComponentDtoHolder> path) { + ComponentDto dto = createForProject(project); + path.current().setDto(persistAndPopulateCache(project, dto)); } - private void processChildren(Component component, ComponentDto lastModule) { - for (Component child : component.getChildren()) { - recursivelyProcessComponent(child, lastModule); - } + @Override + public void visitModule(Component module, Path<ComponentDtoHolder> path) { + ComponentDto dto = createForModule(module, path); + path.current().setDto(persistAndPopulateCache(module, dto)); } - private ComponentDto nonNullLastModule(@Nullable ComponentDto lastModule) { - return lastModule == null ? project : lastModule; + @Override + public void visitDirectory(Component directory, Path<ComponentDtoHolder> path) { + ComponentDto dto = createForDirectory(directory, path); + path.current().setDto(persistAndPopulateCache(directory, dto)); } - public ComponentDto processProject(Component project, BatchReport.Component reportComponent) { - ComponentDto componentDto = createComponentDto(reportComponent, project); - - componentDto.setScope(Scopes.PROJECT); - componentDto.setQualifier(Qualifiers.PROJECT); - componentDto.setName(reportComponent.getName()); - componentDto.setLongName(componentDto.name()); - if (reportComponent.hasDescription()) { - componentDto.setDescription(reportComponent.getDescription()); - } - componentDto.setProjectUuid(componentDto.uuid()); - componentDto.setModuleUuidPath(ComponentDto.MODULE_UUID_PATH_SEP + componentDto.uuid() + ComponentDto.MODULE_UUID_PATH_SEP); + @Override + public void visitFile(Component file, Path<ComponentDtoHolder> path) { + ComponentDto dto = createForFile(file, path); + persistAndPopulateCache(file, dto); + } - ComponentDto projectDto = persistComponent(project.getReportAttributes().getRef(), componentDto); - addToCache(project, projectDto); + private ComponentDto persistAndPopulateCache(Component component, ComponentDto dto) { + ComponentDto projectDto = persistComponent(dto); + addToCache(component, projectDto); return projectDto; } - public ComponentDto processModule(Component module, BatchReport.Component reportComponent, ComponentDto lastModule) { - ComponentDto componentDto = createComponentDto(reportComponent, module); - - componentDto.setScope(Scopes.PROJECT); - componentDto.setQualifier(Qualifiers.MODULE); - componentDto.setName(reportComponent.getName()); - componentDto.setLongName(componentDto.name()); - if (reportComponent.hasPath()) { - componentDto.setPath(reportComponent.getPath()); - } - if (reportComponent.hasDescription()) { - componentDto.setDescription(reportComponent.getDescription()); + private ComponentDto persistComponent(ComponentDto componentDto) { + ComponentDto existingComponent = existingComponentDtosByKey.get(componentDto.getKey()); + if (existingComponent == null) { + dbClient.componentDao().insert(dbSession, componentDto); + return componentDto; + } else { + if (shouldUpdate(existingComponent, componentDto)) { + dbClient.componentDao().update(dbSession, existingComponent); + } + return existingComponent; } - componentDto.setParentProjectId(project.getId()); - componentDto.setProjectUuid(lastModule.projectUuid()); - componentDto.setModuleUuid(lastModule.uuid()); - componentDto.setModuleUuidPath(lastModule.moduleUuidPath() + componentDto.uuid() + ComponentDto.MODULE_UUID_PATH_SEP); - - ComponentDto moduleDto = persistComponent(module.getReportAttributes().getRef(), componentDto); - addToCache(module, moduleDto); - return moduleDto; } + } - public ComponentDto processDirectory(org.sonar.server.computation.component.Component directory, BatchReport.Component reportComponent, ComponentDto lastModule) { - ComponentDto componentDto = createComponentDto(reportComponent, directory); + public ComponentDto createForProject(Component project) { + ComponentDto res = createBase(project); - componentDto.setScope(Scopes.DIRECTORY); - componentDto.setQualifier(Qualifiers.DIRECTORY); - componentDto.setName(reportComponent.getPath()); - componentDto.setLongName(reportComponent.getPath()); - if (reportComponent.hasPath()) { - componentDto.setPath(reportComponent.getPath()); - } + res.setScope(Scopes.PROJECT); + res.setQualifier(Qualifiers.PROJECT); + res.setName(project.getName()); + res.setLongName(res.name()); + res.setDescription(project.getReportAttributes().getDescription()); + res.setProjectUuid(res.uuid()); + res.setModuleUuidPath(ComponentDto.MODULE_UUID_PATH_SEP + res.uuid() + ComponentDto.MODULE_UUID_PATH_SEP); - componentDto.setParentProjectId(lastModule.getId()); - componentDto.setProjectUuid(lastModule.projectUuid()); - componentDto.setModuleUuid(lastModule.uuid()); - componentDto.setModuleUuidPath(lastModule.moduleUuidPath()); + return res; + } - ComponentDto directoryDto = persistComponent(directory.getReportAttributes().getRef(), componentDto); - addToCache(directory, directoryDto); - return directoryDto; - } + public ComponentDto createForModule(Component module, PathAwareVisitor.Path<ComponentDtoHolder> path) { + ComponentDto res = createBase(module); - public void processFile(org.sonar.server.computation.component.Component file, BatchReport.Component reportComponent, ComponentDto lastModule) { - ComponentDto componentDto = createComponentDto(reportComponent, file); + res.setScope(Scopes.PROJECT); + res.setQualifier(Qualifiers.MODULE); + res.setName(module.getName()); + res.setLongName(res.name()); + res.setPath(module.getReportAttributes().getPath()); + res.setDescription(module.getReportAttributes().getDescription()); - componentDto.setScope(Scopes.FILE); - componentDto.setQualifier(getFileQualifier(file)); - componentDto.setName(FilenameUtils.getName(reportComponent.getPath())); - componentDto.setLongName(reportComponent.getPath()); - if (reportComponent.hasPath()) { - componentDto.setPath(reportComponent.getPath()); - } - if (reportComponent.hasLanguage()) { - componentDto.setLanguage(reportComponent.getLanguage()); - } + ComponentDto projectDto = from(path.getCurrentPath()).last().get().getElement().getDto(); + res.setParentProjectId(projectDto.getId()); - componentDto.setParentProjectId(lastModule.getId()); - componentDto.setProjectUuid(lastModule.projectUuid()); - componentDto.setModuleUuid(lastModule.uuid()); - componentDto.setModuleUuidPath(lastModule.moduleUuidPath()); + ComponentDto parentModule = path.parent().getDto(); + res.setProjectUuid(parentModule.projectUuid()); + res.setModuleUuid(parentModule.uuid()); + res.setModuleUuidPath(parentModule.moduleUuidPath() + res.uuid() + ComponentDto.MODULE_UUID_PATH_SEP); - ComponentDto fileDto = persistComponent(file.getReportAttributes().getRef(), componentDto); - addToCache(file, fileDto); - } + return res; + } - private ComponentDto createComponentDto(BatchReport.Component reportComponent, Component component) { - String componentKey = component.getKey(); - String componentUuid = component.getUuid(); - - ComponentDto componentDto = new ComponentDto(); - componentDto.setUuid(componentUuid); - componentDto.setKey(componentKey); - componentDto.setDeprecatedKey(componentKey); - componentDto.setEnabled(true); - componentDto.setCreatedAt(new Date(system2.now())); - return componentDto; - } + public ComponentDto createForDirectory(Component directory, PathAwareVisitor.Path<ComponentDtoHolder> path) { + ComponentDto res = createBase(directory); - private ComponentDto persistComponent(int componentRef, ComponentDto componentDto) { - ComponentDto existingComponent = existingComponentDtosByKey.get(componentDto.getKey()); - if (existingComponent == null) { - dbClient.componentDao().insert(dbSession, componentDto); - return componentDto; - } else { - if (updateComponent(existingComponent, componentDto)) { - dbClient.componentDao().update(dbSession, existingComponent); - } - return existingComponent; - } - } + res.setScope(Scopes.DIRECTORY); + res.setQualifier(Qualifiers.DIRECTORY); + res.setName(directory.getReportAttributes().getPath()); + res.setLongName(directory.getReportAttributes().getPath()); + res.setPath(directory.getReportAttributes().getPath()); - private void addToCache(Component component, ComponentDto componentDto) { - dbIdsRepository.setComponentId(component, componentDto.getId()); - } + setParentProperties(res, path); + + return res; + } + public ComponentDto createForFile(Component file, PathAwareVisitor.Path<ComponentDtoHolder> path) { + ComponentDto res = createBase(file); + + res.setScope(Scopes.FILE); + res.setQualifier(getFileQualifier(file)); + res.setName(FilenameUtils.getName(file.getReportAttributes().getPath())); + res.setLongName(file.getReportAttributes().getPath()); + res.setPath(file.getReportAttributes().getPath()); + res.setLanguage(file.getFileAttributes().getLanguageKey()); + + setParentProperties(res, path); + + return res; + } + + private ComponentDto createBase(Component component) { + String componentKey = component.getKey(); + String componentUuid = component.getUuid(); + + ComponentDto componentDto = new ComponentDto(); + componentDto.setUuid(componentUuid); + componentDto.setKey(componentKey); + componentDto.setDeprecatedKey(componentKey); + componentDto.setEnabled(true); + componentDto.setCreatedAt(new Date(system2.now())); + return componentDto; } - private static boolean updateComponent(ComponentDto existingComponent, ComponentDto newComponent) { - boolean isUpdated = false; + private static void setParentProperties(ComponentDto componentDto, PathAwareVisitor.Path<ComponentDtoHolder> path) { + ComponentDto parentModule = from(path.getCurrentPath()) + .filter(ParentModulePathElement.INSTANCE) + .first() + .get() + .getElement().getDto(); + componentDto.setParentProjectId(parentModule.getId()); + componentDto.setProjectUuid(parentModule.projectUuid()); + componentDto.setModuleUuid(parentModule.uuid()); + componentDto.setModuleUuidPath(parentModule.moduleUuidPath()); + } + + private void addToCache(Component component, ComponentDto componentDto) { + dbIdsRepository.setComponentId(component, componentDto.getId()); + } + + private static boolean shouldUpdate(ComponentDto existingComponent, ComponentDto newComponent) { + boolean modified = false; if (!StringUtils.equals(existingComponent.name(), newComponent.name())) { existingComponent.setName(newComponent.name()); - isUpdated = true; + modified = true; } if (!StringUtils.equals(existingComponent.description(), newComponent.description())) { existingComponent.setDescription(newComponent.description()); - isUpdated = true; + modified = true; } if (!StringUtils.equals(existingComponent.path(), newComponent.path())) { existingComponent.setPath(newComponent.path()); - isUpdated = true; + modified = true; } if (!StringUtils.equals(existingComponent.moduleUuid(), newComponent.moduleUuid())) { existingComponent.setModuleUuid(newComponent.moduleUuid()); - isUpdated = true; + modified = true; } if (!existingComponent.moduleUuidPath().equals(newComponent.moduleUuidPath())) { existingComponent.setModuleUuidPath(newComponent.moduleUuidPath()); - isUpdated = true; + modified = true; } if (!ObjectUtils.equals(existingComponent.parentProjectId(), newComponent.parentProjectId())) { existingComponent.setParentProjectId(newComponent.parentProjectId()); - isUpdated = true; + modified = true; } if (!existingComponent.isEnabled()) { // If component was previously removed, re-enable it existingComponent.setEnabled(true); - isUpdated = true; + modified = true; } - return isUpdated; + return modified; } private static String getFileQualifier(Component component) { return component.getFileAttributes().isUnitTest() ? Qualifiers.UNIT_TEST_FILE : Qualifiers.FILE; } - private static Map<String, ComponentDto> componentDtosByKey(List<ComponentDto> components) { - return Maps.uniqueIndex(components, ComponentKey.INSTANCE); + private static class ComponentDtoHolder { + private ComponentDto dto; + + public ComponentDto getDto() { + return dto; + } + + public void setDto(ComponentDto dto) { + this.dto = dto; + } } - private enum ComponentKey implements Function<ComponentDto, String> { + private enum ParentModulePathElement implements Predicate<PathAwareVisitor.PathElement<ComponentDtoHolder>> { INSTANCE; @Override - public String apply(@Nonnull ComponentDto input) { - return input.key(); + public boolean apply(@Nonnull PathAwareVisitor.PathElement<ComponentDtoHolder> input) { + return input.getComponent().getType() == Component.Type.MODULE + || input.getComponent().getType() == Component.Type.PROJECT; } } - @Override - public String getDescription() { - return "Persist components"; - } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentsStepTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentsStepTest.java index e8f05bd8ed4..ae4b632027a 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentsStepTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/step/PersistComponentsStepTest.java @@ -29,17 +29,13 @@ import org.junit.Test; import org.junit.experimental.categories.Category; import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.System2; -import org.sonar.batch.protocol.Constants; -import org.sonar.batch.protocol.output.BatchReport; import org.sonar.db.DbClient; import org.sonar.db.DbTester; import org.sonar.db.component.ComponentDto; import org.sonar.db.component.ComponentTesting; -import org.sonar.server.computation.batch.BatchReportReaderRule; import org.sonar.server.computation.batch.TreeRootHolderRule; import org.sonar.server.computation.component.Component; import org.sonar.server.computation.component.DbIdsRepositoryImpl; -import org.sonar.server.computation.component.ReportComponent; import org.sonar.server.computation.component.FileAttributes; import org.sonar.test.DbTests; @@ -47,6 +43,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.guava.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import static org.sonar.server.computation.component.Component.Type.DIRECTORY; +import static org.sonar.server.computation.component.Component.Type.FILE; +import static org.sonar.server.computation.component.Component.Type.PROJECT; +import static org.sonar.server.computation.component.ReportComponent.builder; @Category(DbTests.class) public class PersistComponentsStepTest extends BaseStepTest { @@ -57,13 +57,9 @@ public class PersistComponentsStepTest extends BaseStepTest { @Rule public DbTester dbTester = DbTester.create(System2.INSTANCE); - @Rule public TreeRootHolderRule treeRootHolder = new TreeRootHolderRule(); - @Rule - public BatchReportReaderRule reportReader = new BatchReportReaderRule(); - DbIdsRepositoryImpl dbIdsRepository; System2 system2 = mock(System2.class); @@ -82,7 +78,7 @@ public class PersistComponentsStepTest extends BaseStepTest { now = DATE_FORMAT.parse("2015-06-02"); when(system2.now()).thenReturn(now.getTime()); - underTest = new PersistComponentsStep(dbClient, treeRootHolder, reportReader, dbIdsRepository, system2); + underTest = new PersistComponentsStep(dbClient, treeRootHolder, dbIdsRepository, system2); } @Override @@ -92,40 +88,25 @@ public class PersistComponentsStepTest extends BaseStepTest { @Test public void persist_components() { - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .setDescription("Project description") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") + Component file = builder(FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java") + .setPath("src/main/java/dir/Foo.java") + .setFileAttributes(new FileAttributes(false, "java")) + .build(); + Component directory = builder(DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir") + .setPath("src/main/java/dir") + .addChildren(file) + .build(); + Component module = builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") .setPath("module") .setName("Module") .setDescription("Module description") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/main/java/dir") - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.FILE) - .setPath("src/main/java/dir/Foo.java") - .setLanguage("java") - .build()); - - Component file = ReportComponent.builder(Component.Type.FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java").build(); - Component directory = ReportComponent.builder(Component.Type.DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir").addChildren(file).build(); - Component module = ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").addChildren(directory).build(); - Component project = ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren(module).build(); + .addChildren(directory) + .build(); + Component project = builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .setDescription("Project description") + .addChildren(module) + .build(); treeRootHolder.setRoot(project); underTest.execute(); @@ -194,30 +175,15 @@ public class PersistComponentsStepTest extends BaseStepTest { @Test public void persist_file_directly_attached_on_root_directory() { - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("/") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.FILE) - .setPath("pom.xml") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 2).setUuid("CDEF").setKey(PROJECT_KEY + ":/").addChildren( - ReportComponent.builder(Component.Type.FILE, 3).setUuid("DEFG").setKey(PROJECT_KEY + ":pom.xml").build() - ).build() - ).build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).setName("Project") + .addChildren( + builder(DIRECTORY, 2).setUuid("CDEF").setKey(PROJECT_KEY + ":/").setPath("/") + .addChildren( + builder(FILE, 3).setUuid("DEFG").setKey(PROJECT_KEY + ":pom.xml").setPath("pom.xml") + .build()) + .build()) + .build()); underTest.execute(); @@ -232,31 +198,19 @@ public class PersistComponentsStepTest extends BaseStepTest { @Test public void persist_unit_test() { - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/test/java/dir") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.FILE) - .setPath("src/test/java/dir/FooTest.java") - .setIsTest(true) - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 2).setUuid("CDEF").setKey(PROJECT_KEY + ":src/test/java/dir").addChildren( - ReportComponent.builder(Component.Type.FILE, 3).setUuid("DEFG").setKey(PROJECT_KEY + ":src/test/java/dir/FooTest.java").setFileAttributes(new FileAttributes(true, null)).build()) - .build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(DIRECTORY, 2).setUuid("CDEF").setKey(PROJECT_KEY + ":src/test/java/dir") + .setPath("src/test/java/dir") + .addChildren( + builder(FILE, 3).setUuid("DEFG").setKey(PROJECT_KEY + ":src/test/java/dir/FooTest.java") + .setPath("src/test/java/dir/FooTest.java") + .setFileAttributes(new FileAttributes(true, null)) + .build()) + .build()) + .build()); underTest.execute(); @@ -276,39 +230,22 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), module); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("Module") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/main/java/dir") - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.FILE) - .setPath("src/main/java/dir/Foo.java") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir").addChildren( - ReportComponent.builder(Component.Type.FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java").build()) - .build()) - .build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("Module") + .addChildren( + builder(DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir") + .setPath("src/main/java/dir") + .addChildren( + builder(FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java") + .setPath("src/main/java/dir/Foo.java") + .build()) + .build()) + .build()) + .build()); underTest.execute(); @@ -341,49 +278,26 @@ public class PersistComponentsStepTest extends BaseStepTest { @Test public void compute_parent_project_id() { - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("Module") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.MODULE) - .setKey("SUB_MODULE_1_KEY") - .setName("Sub Module 1") - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.MODULE) - .setKey("SUB_MODULE_2_KEY") - .setName("Sub Module 2") - .addChildRef(5) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(5) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/main/java/dir") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").addChildren( - ReportComponent.builder(Component.Type.MODULE, 3).setUuid("CDEF").setKey("SUB_MODULE_1_KEY").addChildren( - ReportComponent.builder(Component.Type.MODULE, 4).setUuid("DEFG").setKey("SUB_MODULE_2_KEY").addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 5).setUuid("EFGH").setKey("SUB_MODULE_2_KEY:src/main/java/dir").build()) + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("Module") + .addChildren( + builder(Component.Type.MODULE, 3).setUuid("CDEF").setKey("SUB_MODULE_1_KEY") + .setName("Sub Module 1") + .addChildren( + builder(Component.Type.MODULE, 4).setUuid("DEFG").setKey("SUB_MODULE_2_KEY") + .setName("Sub Module 2") + .addChildren( + builder(DIRECTORY, 5).setUuid("EFGH").setKey("SUB_MODULE_2_KEY:src/main/java/dir") + .setPath("src/main/java/dir") + .build()) + .build()) + .build()) .build()) - .build()) - .build()) - .build()); + .build()); underTest.execute(); @@ -412,39 +326,21 @@ public class PersistComponentsStepTest extends BaseStepTest { @Test public void persist_multi_modules() { - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_A") - .setName("Module A") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.MODULE) - .setKey("SUB_MODULE_A") - .setName("Sub Module A") - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_B") - .setName("Module B") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_A").addChildren( - ReportComponent.builder(Component.Type.MODULE, 3).setUuid("DEFG").setKey("SUB_MODULE_A").build()).build(), - ReportComponent.builder(Component.Type.MODULE, 4).setUuid("CDEF").setKey("MODULE_B").build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_A") + .setName("Module A") + .addChildren( + builder(Component.Type.MODULE, 3).setUuid("DEFG").setKey("SUB_MODULE_A") + .setName("Sub Module A") + .build()) + .build(), + builder(Component.Type.MODULE, 4).setUuid("CDEF").setKey("MODULE_B") + .setName("Module B") + .build()) + .build()); underTest.execute(); @@ -482,39 +378,22 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), directory, file); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("Module") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/main/java/dir") - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.FILE) - .setPath("src/main/java/dir/Foo.java") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir").addChildren( - ReportComponent.builder(Component.Type.FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java").build()) - .build()) - .build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("Module") + .addChildren( + builder(DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir") + .setPath("src/main/java/dir") + .addChildren( + builder(FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java") + .setPath("src/main/java/dir/Foo.java") + .build()) + .build()) + .build()) + .build()); underTest.execute(); @@ -567,24 +446,15 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), module); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("New project name") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("New module name") - .setPath("New path") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("New project name") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("New module name") + .setPath("New path") + .build()) + .build()); underTest.execute(); @@ -603,25 +473,16 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), module); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .setDescription("New project description") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("Module") - .setDescription("New module description") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .setDescription("New project description") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("Module") + .setDescription("New module description") + .build()) + .build()); underTest.execute(); @@ -640,24 +501,15 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), module); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("Module") - .setPath("New path") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("Module") + .setPath("New path") + .build()) + .build()); underTest.execute(); @@ -677,49 +529,26 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), directory, file); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_A") - .setName("Module A") - .addChildRef(3) - .build()); - // Module B is now a sub module of module A - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_B") - .setName("Module B") - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/main/java/dir") - .addChildRef(5) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(5) - .setType(Constants.ComponentType.FILE) - .setPath("src/main/java/dir/Foo.java") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("EDCB").setKey("MODULE_A").addChildren( - ReportComponent.builder(Component.Type.MODULE, 3).setUuid("BCDE").setKey("MODULE_B").addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 4).setUuid("CDEF").setKey("MODULE_B:src/main/java/dir").addChildren( - ReportComponent.builder(Component.Type.FILE, 5).setUuid("DEFG").setKey("MODULE_B:src/main/java/dir/Foo.java").build()) + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("EDCB").setKey("MODULE_A") + .setName("Module A") + .addChildren( + builder(Component.Type.MODULE, 3).setUuid("BCDE").setKey("MODULE_B") + .setName("Module B") + .addChildren( + builder(DIRECTORY, 4).setUuid("CDEF").setKey("MODULE_B:src/main/java/dir") + .setPath("src/main/java/dir") + .addChildren( + builder(FILE, 5).setUuid("DEFG").setKey("MODULE_B:src/main/java/dir/Foo.java") + .setPath("src/main/java/dir/Foo.java") + .build()) + .build()) + .build()) .build()) - .build()) - .build()) - .build()); + .build()); underTest.execute(); @@ -761,15 +590,10 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), module); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("New project name") - .addChildRef(2) - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("New project name") + .build()); underTest.execute(); @@ -785,43 +609,27 @@ public class PersistComponentsStepTest extends BaseStepTest { ComponentDto removedModule = ComponentTesting.newModuleDto("BCDE", project).setKey("MODULE_KEY").setName("Module").setEnabled(false); dbClient.componentDao().insert(dbTester.getSession(), removedModule); ComponentDto removedDirectory = ComponentTesting.newDirectory(removedModule, "src/main/java/dir").setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir").setEnabled(false); - ComponentDto removedFile = ComponentTesting.newFileDto(removedModule, "DEFG").setPath("src/main/java/dir/Foo.java").setName("Foo.java").setKey("MODULE_KEY:src/main/java/dir/Foo.java").setEnabled(false); + ComponentDto removedFile = ComponentTesting.newFileDto(removedModule, "DEFG").setPath("src/main/java/dir/Foo.java").setName("Foo.java") + .setKey("MODULE_KEY:src/main/java/dir/Foo.java").setEnabled(false); dbClient.componentDao().insert(dbTester.getSession(), removedDirectory, removedFile); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("Module") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/main/java/dir") - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.FILE) - .setPath("src/main/java/dir/Foo.java") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir").addChildren( - ReportComponent.builder(Component.Type.FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java").build()) - .build()) - .build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("Module") + .addChildren( + builder(DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir") + .setPath("src/main/java/dir") + .addChildren( + builder(FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java") + .setPath("src/main/java/dir/Foo.java") + .build()) + .build()) + .build()) + .build()); underTest.execute(); @@ -881,43 +689,27 @@ public class PersistComponentsStepTest extends BaseStepTest { dbClient.componentDao().insert(dbTester.getSession(), module, removedModule); ComponentDto directory = ComponentTesting.newDirectory(module, "src/main/java/dir").setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir"); // The file was attached to another module - ComponentDto removedFile = ComponentTesting.newFileDto(removedModule, "DEFG").setPath("src/main/java/dir/Foo.java").setName("Foo.java").setKey("MODULE_KEY:src/main/java/dir/Foo.java").setEnabled(false); + ComponentDto removedFile = ComponentTesting.newFileDto(removedModule, "DEFG").setPath("src/main/java/dir/Foo.java").setName("Foo.java") + .setKey("MODULE_KEY:src/main/java/dir/Foo.java").setEnabled(false); dbClient.componentDao().insert(dbTester.getSession(), directory, removedFile); dbTester.getSession().commit(); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(1) - .setType(Constants.ComponentType.PROJECT) - .setKey(PROJECT_KEY) - .setName("Project") - .addChildRef(2) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(2) - .setType(Constants.ComponentType.MODULE) - .setKey("MODULE_KEY") - .setName("Module") - .addChildRef(3) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(3) - .setType(Constants.ComponentType.DIRECTORY) - .setPath("src/main/java/dir") - .addChildRef(4) - .build()); - reportReader.putComponent(BatchReport.Component.newBuilder() - .setRef(4) - .setType(Constants.ComponentType.FILE) - .setPath("src/main/java/dir/Foo.java") - .build()); - - treeRootHolder.setRoot(ReportComponent.builder(Component.Type.PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY).addChildren( - ReportComponent.builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY").addChildren( - ReportComponent.builder(Component.Type.DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir").addChildren( - ReportComponent.builder(Component.Type.FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java").build()) - .build()) - .build()) - .build()); + treeRootHolder.setRoot( + builder(PROJECT, 1).setUuid("ABCD").setKey(PROJECT_KEY) + .setName("Project") + .addChildren( + builder(Component.Type.MODULE, 2).setUuid("BCDE").setKey("MODULE_KEY") + .setName("Module") + .addChildren( + builder(DIRECTORY, 3).setUuid("CDEF").setKey("MODULE_KEY:src/main/java/dir") + .setPath("src/main/java/dir") + .addChildren( + builder(FILE, 4).setUuid("DEFG").setKey("MODULE_KEY:src/main/java/dir/Foo.java") + .setPath("src/main/java/dir/Foo.java") + .build()) + .build()) + .build()) + .build()); underTest.execute(); |