From eb6b2031261789c54d1599bc25c6f42e835a867b Mon Sep 17 00:00:00 2001 From: Julien Lancelot Date: Tue, 2 Jun 2015 10:36:25 +0200 Subject: [PATCH] Rename SnapshotDto.resourceId to componentId --- .../server/component/db/SnapshotDao.java | 11 ++--- .../ui/ws/ComponentNavigationAction.java | 20 ++++---- .../server/component/SnapshotTesting.java | 34 +++++++------- .../server/component/db/SnapshotDaoTest.java | 17 ++++--- .../ui/ws/ComponentNavigationActionTest.java | 46 ++++++------------- .../org/sonar/core/component/SnapshotDto.java | 10 ++-- .../core/component/db/SnapshotMapper.xml | 4 +- .../sonar/core/resource/ResourceMapper.xml | 2 +- .../sonar/core/component/SnapshotDtoTest.java | 4 +- 9 files changed, 63 insertions(+), 85 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/component/db/SnapshotDao.java b/server/sonar-server/src/main/java/org/sonar/server/component/db/SnapshotDao.java index 3acc948b70e..99a04164bff 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/component/db/SnapshotDao.java +++ b/server/sonar-server/src/main/java/org/sonar/server/component/db/SnapshotDao.java @@ -20,6 +20,9 @@ package org.sonar.server.component.db; +import java.util.List; +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; import org.sonar.api.resources.Scopes; import org.sonar.api.utils.System2; import org.sonar.core.component.SnapshotDto; @@ -28,10 +31,6 @@ import org.sonar.core.persistence.DaoComponent; import org.sonar.core.persistence.DbSession; import org.sonar.server.exceptions.NotFoundException; -import javax.annotation.CheckForNull; -import javax.annotation.Nullable; -import java.util.List; - public class SnapshotDao implements DaoComponent { private final System2 system2; @@ -64,12 +63,12 @@ public class SnapshotDao implements DaoComponent { @CheckForNull public SnapshotDto getLastSnapshot(DbSession session, SnapshotDto snapshot) { - return mapper(session).selectLastSnapshot(snapshot.getResourceId()); + return mapper(session).selectLastSnapshot(snapshot.getComponentId()); } @CheckForNull public SnapshotDto getLastSnapshotOlderThan(DbSession session, SnapshotDto snapshot) { - return mapper(session).selectLastSnapshotOlderThan(snapshot.getResourceId(), snapshot.getCreatedAt()); + return mapper(session).selectLastSnapshotOlderThan(snapshot.getComponentId(), snapshot.getCreatedAt()); } public List findSnapshotAndChildrenOfProjectScope(DbSession session, SnapshotDto snapshot) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java b/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java index b6c55407894..fa4ebf8362f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/ui/ws/ComponentNavigationAction.java @@ -20,6 +20,13 @@ package org.sonar.server.ui.ws; import com.google.common.collect.Lists; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import javax.annotation.Nullable; import org.sonar.api.i18n.I18n; import org.sonar.api.resources.Qualifiers; import org.sonar.api.resources.ResourceType; @@ -46,15 +53,6 @@ import org.sonar.server.ui.ViewProxy; import org.sonar.server.ui.Views; import org.sonar.server.user.UserSession; -import javax.annotation.Nullable; - -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; -import java.util.Date; -import java.util.List; -import java.util.Locale; - public class ComponentNavigationAction implements NavigationWsAction { private static final String PARAM_COMPONENT_KEY = "componentKey"; @@ -111,7 +109,7 @@ public class ComponentNavigationAction implements NavigationWsAction { userSession.checkProjectUuidPermission(UserRole.USER, component.projectUuid()); - SnapshotDto snapshot = dbClient.snapshotDao().getLastSnapshot(session, new SnapshotDto().setResourceId(component.getId())); + SnapshotDto snapshot = dbClient.snapshotDao().getLastSnapshot(session, new SnapshotDto().setComponentId(component.getId())); JsonWriter json = response.newJsonWriter(); json.beginObject(); @@ -262,7 +260,7 @@ public class ComponentNavigationAction implements NavigationWsAction { SnapshotDto currentSnapshot = snapshot; while (currentSnapshot.getParentId() != null) { currentSnapshot = dbClient.snapshotDao().getByKey(session, currentSnapshot.getParentId()); - componentPath.add(0, dbClient.componentDao().selectById(currentSnapshot.getResourceId(), session)); + componentPath.add(0, dbClient.componentDao().selectById(currentSnapshot.getComponentId(), session)); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/SnapshotTesting.java b/server/sonar-server/src/test/java/org/sonar/server/component/SnapshotTesting.java index d5785121522..bfceef72dfc 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/SnapshotTesting.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/SnapshotTesting.java @@ -20,6 +20,7 @@ package org.sonar.server.component; +import com.google.common.base.Preconditions; import org.sonar.core.component.ComponentDto; import org.sonar.core.component.SnapshotDto; @@ -29,30 +30,31 @@ public class SnapshotTesting { * Can be used for modules and files */ public static SnapshotDto createForComponent(ComponentDto component, SnapshotDto parentSnapshot) { + Preconditions.checkNotNull(parentSnapshot.getId(), "The parent snapshot need to be persisted before creating this snapshot"); Long parentRootId = parentSnapshot.getRootId(); - return new SnapshotDto() - .setResourceId(component.getId()) - .setRootProjectId(parentSnapshot.getRootProjectId()) + return createBasicSnapshot(component, parentSnapshot.getRootProjectId()) .setRootId(parentRootId != null ? parentRootId : parentSnapshot.getId()) - .setStatus(SnapshotDto.STATUS_PROCESSED) - .setQualifier(component.qualifier()) - .setScope(component.scope()) .setParentId(parentSnapshot.getId()) - .setPath(parentSnapshot.getPath() == null ? Long.toString(parentSnapshot.getId()) + "." : parentSnapshot.getPath() + Long.toString(parentSnapshot.getId()) + ".") - .setLast(true) - .setBuildDate(System.currentTimeMillis()); + .setPath(parentSnapshot.getPath() == null ? Long.toString(parentSnapshot.getId()) + "." : parentSnapshot.getPath() + Long.toString(parentSnapshot.getId()) + "."); } public static SnapshotDto createForProject(ComponentDto project) { + return createBasicSnapshot(project, project.getId()) + .setPath(""); + } + + public static SnapshotDto createBasicSnapshot(ComponentDto component, Long rootProjectId) { + Preconditions.checkNotNull(component.getId(), "The project need to be persisted before creating this snapshot"); + Preconditions.checkNotNull(rootProjectId, "Root project id is null"); return new SnapshotDto() - .setResourceId(project.getId()) - .setRootProjectId(project.getId()) + .setComponentId(component.getId()) + .setRootProjectId(rootProjectId) .setStatus(SnapshotDto.STATUS_PROCESSED) - .setQualifier(project.qualifier()) - .setScope(project.scope()) - .setPath("") - .setLast(true) - .setBuildDate(System.currentTimeMillis()); + .setQualifier(component.qualifier()) + .setScope(component.scope()) + .setCreatedAt(System.currentTimeMillis()) + .setBuildDate(System.currentTimeMillis()) + .setLast(true); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/component/db/SnapshotDaoTest.java b/server/sonar-server/src/test/java/org/sonar/server/component/db/SnapshotDaoTest.java index 1f636b2b26c..ae05766e634 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/component/db/SnapshotDaoTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/component/db/SnapshotDaoTest.java @@ -20,6 +20,8 @@ package org.sonar.server.component.db; +import java.util.Date; +import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -29,9 +31,6 @@ import org.sonar.core.component.SnapshotDto; import org.sonar.core.persistence.AbstractDaoTestCase; import org.sonar.core.persistence.DbSession; -import java.util.Date; -import java.util.List; - import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -63,7 +62,7 @@ public class SnapshotDaoTest extends AbstractDaoTestCase { SnapshotDto result = sut.getNullableByKey(session, 3L); assertThat(result).isNotNull(); assertThat(result.getId()).isEqualTo(3L); - assertThat(result.getResourceId()).isEqualTo(3L); + assertThat(result.getComponentId()).isEqualTo(3L); assertThat(result.getRootProjectId()).isEqualTo(1L); assertThat(result.getParentId()).isEqualTo(2L); assertThat(result.getRootId()).isEqualTo(1L); @@ -126,7 +125,7 @@ public class SnapshotDaoTest extends AbstractDaoTestCase { public void lastSnapshot_from_one_resource() { setupData("snapshots"); - SnapshotDto snapshot = sut.getLastSnapshot(session, defaultSnapshot().setResourceId(2L)); + SnapshotDto snapshot = sut.getLastSnapshot(session, defaultSnapshot().setComponentId(2L)); assertThat(snapshot).isNotNull(); assertThat(snapshot.getId()).isEqualTo(4L); @@ -136,7 +135,7 @@ public class SnapshotDaoTest extends AbstractDaoTestCase { public void lastSnapshot_from_one_resource_without_last_is_null() { setupData("snapshots"); - SnapshotDto snapshot = sut.getLastSnapshot(session, defaultSnapshot().setResourceId(5L)); + SnapshotDto snapshot = sut.getLastSnapshot(session, defaultSnapshot().setComponentId(5L)); assertThat(snapshot).isNull(); } @@ -154,7 +153,7 @@ public class SnapshotDaoTest extends AbstractDaoTestCase { public void last_snapshot_older__than_a_reference() { setupData("snapshots"); - SnapshotDto referenceSnapshot = defaultSnapshot().setResourceId(1L); + SnapshotDto referenceSnapshot = defaultSnapshot().setComponentId(1L); referenceSnapshot.setCreatedAt(DateUtils.parseDate("2008-12-03").getTime()); SnapshotDto snapshot = sut.getLastSnapshotOlderThan(session, referenceSnapshot); @@ -166,7 +165,7 @@ public class SnapshotDaoTest extends AbstractDaoTestCase { public void last_snapshot_earlier__than_a_reference() { setupData("snapshots"); - SnapshotDto referenceSnapshot = defaultSnapshot().setResourceId(1L); + SnapshotDto referenceSnapshot = defaultSnapshot().setComponentId(1L); referenceSnapshot.setCreatedAt(DateUtils.parseDate("2008-12-01").getTime()); SnapshotDto snapshot = sut.getLastSnapshotOlderThan(session, referenceSnapshot); @@ -249,7 +248,7 @@ public class SnapshotDaoTest extends AbstractDaoTestCase { private static SnapshotDto defaultSnapshot() { return new SnapshotDto() - .setResourceId(3L) + .setComponentId(3L) .setRootProjectId(1L) .setParentId(2L) .setRootId(1L) diff --git a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java index 25b1b864cfe..0f2d0dc10a8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/ui/ws/ComponentNavigationActionTest.java @@ -19,6 +19,8 @@ */ package org.sonar.server.ui.ws; +import java.util.Date; +import java.util.Locale; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -51,6 +53,7 @@ import org.sonar.core.persistence.DbTester; import org.sonar.core.properties.PropertiesDao; import org.sonar.core.properties.PropertyDto; import org.sonar.server.component.ComponentTesting; +import org.sonar.server.component.SnapshotTesting; import org.sonar.server.component.db.ComponentDao; import org.sonar.server.component.db.SnapshotDao; import org.sonar.server.db.DbClient; @@ -62,9 +65,6 @@ import org.sonar.server.ui.Views; import org.sonar.server.user.db.UserDao; import org.sonar.server.ws.WsTester; -import java.util.Date; -import java.util.Locale; - import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -187,7 +187,7 @@ public class ComponentNavigationActionTest { .setKey("polop").setName("Polop"); dbClient.componentDao().insert(session, project); dbClient.snapshotDao().insert(session, new SnapshotDto().setCreatedAt(snapshotDate.getTime()).setVersion("3.14") - .setLast(true).setQualifier(project.qualifier()).setResourceId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); + .setLast(true).setQualifier(project.qualifier()).setComponentId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); session.commit(); userSessionRule.login("obiwan").setUserId(userId).addProjectUuidPermissions(UserRole.USER, "abcd"); @@ -238,7 +238,7 @@ public class ComponentNavigationActionTest { .setKey("polop").setName("Polop").setLanguage("xoo"); dbClient.componentDao().insert(session, project); dbClient.snapshotDao().insert(session, new SnapshotDto() - .setLast(true).setQualifier(project.qualifier()).setResourceId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); + .setLast(true).setQualifier(project.qualifier()).setComponentId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); session.commit(); userSessionRule.addProjectUuidPermissions(UserRole.USER, "abcd"); @@ -257,7 +257,7 @@ public class ComponentNavigationActionTest { .setKey("polop").setName("Polop").setLanguage("xoo"); dbClient.componentDao().insert(session, project); dbClient.snapshotDao().insert(session, new SnapshotDto() - .setLast(true).setQualifier(project.qualifier()).setResourceId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); + .setLast(true).setQualifier(project.qualifier()).setComponentId(project.getId()).setRootProjectId(project.getId()).setScope(project.scope())); session.commit(); userSessionRule @@ -473,33 +473,13 @@ public class ComponentNavigationActionTest { .setPath(directory.path()); dbClient.componentDao().insert(session, project, module, directory, file); - SnapshotDto projectSnapshot = dbClient.snapshotDao().insert(session, new SnapshotDto() - .setLast(true) - .setQualifier(project.qualifier()) - .setResourceId(project.getId()) - .setRootProjectId(project.getId()) - .setScope(project.scope())); - SnapshotDto moduleSnapshot = dbClient.snapshotDao().insert(session, new SnapshotDto() - .setLast(true) - .setQualifier(module.qualifier()) - .setResourceId(module.getId()) - .setRootProjectId(project.getId()) - .setScope(module.scope()) - .setParentId(projectSnapshot.getId())); - SnapshotDto directorySnapshot = dbClient.snapshotDao().insert(session, new SnapshotDto() - .setLast(true) - .setQualifier(directory.qualifier()) - .setResourceId(directory.getId()) - .setRootProjectId(project.getId()) - .setScope(directory.scope()) - .setParentId(moduleSnapshot.getId())); - dbClient.snapshotDao().insert(session, new SnapshotDto() - .setLast(true) - .setQualifier(file.qualifier()) - .setResourceId(file.getId()) - .setRootProjectId(project.getId()) - .setScope(file.scope()) - .setParentId(directorySnapshot.getId())); + SnapshotDto projectSnapshot = SnapshotTesting.createForProject(project); + dbClient.snapshotDao().insert(session, projectSnapshot); + SnapshotDto moduleSnapshot = SnapshotTesting.createForComponent(module, projectSnapshot); + dbClient.snapshotDao().insert(session, moduleSnapshot); + SnapshotDto directorySnapshot = SnapshotTesting.createForComponent(directory, moduleSnapshot); + dbClient.snapshotDao().insert(session, directorySnapshot); + dbClient.snapshotDao().insert(session, SnapshotTesting.createForComponent(file, directorySnapshot)); session.commit(); diff --git a/sonar-core/src/main/java/org/sonar/core/component/SnapshotDto.java b/sonar-core/src/main/java/org/sonar/core/component/SnapshotDto.java index c575cc58f0d..63b5b9136fc 100644 --- a/sonar-core/src/main/java/org/sonar/core/component/SnapshotDto.java +++ b/sonar-core/src/main/java/org/sonar/core/component/SnapshotDto.java @@ -36,7 +36,7 @@ public final class SnapshotDto { private Long createdAt; private Long buildDate; - private Long resourceId; + private Long componentId; private String status = STATUS_UNPROCESSED; private Integer purgeStatus; private Boolean last; @@ -100,12 +100,12 @@ public final class SnapshotDto { return this; } - public Long getResourceId() { - return resourceId; + public Long getComponentId() { + return componentId; } - public SnapshotDto setResourceId(Long resourceId) { - this.resourceId = resourceId; + public SnapshotDto setComponentId(Long componentId) { + this.componentId = componentId; return this; } diff --git a/sonar-core/src/main/resources/org/sonar/core/component/db/SnapshotMapper.xml b/sonar-core/src/main/resources/org/sonar/core/component/db/SnapshotMapper.xml index 87b79d2b104..ee6c175e17e 100644 --- a/sonar-core/src/main/resources/org/sonar/core/component/db/SnapshotMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/component/db/SnapshotMapper.xml @@ -7,7 +7,7 @@ s.parent_snapshot_id as parentId, s.root_snapshot_id as rootId, s.root_project_id as rootProjectId, - s.project_id as resourceId, + s.project_id as componentId, s.created_at as createdAt, s.build_date as buildDate, s.status as status, @@ -91,7 +91,7 @@ insert into snapshots - values (#{parentId}, #{rootId}, #{rootProjectId}, #{resourceId}, #{createdAt}, #{buildDate}, #{status}, + values (#{parentId}, #{rootId}, #{rootProjectId}, #{componentId}, #{createdAt}, #{buildDate}, #{status}, #{purgeStatus}, #{last}, #{scope}, #{qualifier}, #{version}, #{path}, #{depth}, #{period1Mode}, #{period2Mode}, #{period3Mode}, #{period4Mode}, #{period5Mode}, #{period1Param}, #{period2Param}, #{period3Param}, #{period4Param}, #{period5Param}, diff --git a/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml b/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml index 0f995846731..65624ef07a5 100644 --- a/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/resource/ResourceMapper.xml @@ -9,7 +9,7 @@ - + diff --git a/sonar-core/src/test/java/org/sonar/core/component/SnapshotDtoTest.java b/sonar-core/src/test/java/org/sonar/core/component/SnapshotDtoTest.java index 4004701d103..5e84ecbbd65 100644 --- a/sonar-core/src/test/java/org/sonar/core/component/SnapshotDtoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/component/SnapshotDtoTest.java @@ -35,7 +35,7 @@ public class SnapshotDtoTest { .setRootId(3L) .setRootProjectId(20L) .setBuildDate(parseDate("2014-07-02").getTime()) - .setResourceId(21L) + .setComponentId(21L) .setLast(true) .setScope("FIL") .setQualifier("FIL") @@ -64,7 +64,7 @@ public class SnapshotDtoTest { assertThat(snapshotDto.getRootId()).isEqualTo(3L); assertThat(snapshotDto.getRootProjectId()).isEqualTo(20L); assertThat(snapshotDto.getBuildDate()).isEqualTo(parseDate("2014-07-02").getTime()); - assertThat(snapshotDto.getResourceId()).isEqualTo(21L); + assertThat(snapshotDto.getComponentId()).isEqualTo(21L); assertThat(snapshotDto.getLast()).isTrue(); assertThat(snapshotDto.getScope()).isEqualTo("FIL"); assertThat(snapshotDto.getQualifier()).isEqualTo("FIL"); -- 2.39.5