}
@CheckForNull
- public SnapshotDto getNullableByKey(DbSession session, Long id) {
+ public SnapshotDto selectNullableById(DbSession session, Long id) {
return mapper(session).selectByKey(id);
}
- public SnapshotDto getByKey(DbSession session, Long key) {
- SnapshotDto value = getNullableByKey(session, key);
+ public SnapshotDto selectById(DbSession session, Long key) {
+ SnapshotDto value = selectNullableById(session, key);
if (value == null) {
throw new NotFoundException(String.format("Key '%s' not found", key));
}
-
return value;
}
- public SnapshotDto insert(DbSession session, SnapshotDto item) {
- if (item.getCreatedAt() == null) {
- item.setCreatedAt(system2.now());
- }
- mapper(session).insert(item);
- return item;
- }
-
- @CheckForNull
- public SnapshotDto getLastSnapshot(DbSession session, SnapshotDto snapshot) {
- return mapper(session).selectLastSnapshot(snapshot.getComponentId());
- }
-
@CheckForNull
- public SnapshotDto getLastSnapshotOlderThan(DbSession session, SnapshotDto snapshot) {
- return mapper(session).selectLastSnapshotOlderThan(snapshot.getComponentId(), snapshot.getCreatedAt());
+ public SnapshotDto selectLastSnapshotByComponentId(DbSession session, long componentId) {
+ return mapper(session).selectLastSnapshot(componentId);
}
- public List<SnapshotDto> findSnapshotAndChildrenOfProjectScope(DbSession session, SnapshotDto snapshot) {
- return mapper(session).selectSnapshotAndChildrenOfScope(snapshot.getId(), Scopes.PROJECT);
+ public List<SnapshotDto> selectSnapshotAndChildrenOfProjectScope(DbSession session, long snapshotId) {
+ return mapper(session).selectSnapshotAndChildrenOfScope(snapshotId, Scopes.PROJECT);
}
public int updateSnapshotAndChildrenLastFlagAndStatus(DbSession session, SnapshotDto snapshot, boolean isLast, String status) {
return mapper(session).updateSnapshotAndChildrenLastFlag(rootId, pathRootId, path, isLast);
}
- public boolean isLast(SnapshotDto snapshotTested, @Nullable SnapshotDto previousLastSnapshot) {
+ public static boolean isLast(SnapshotDto snapshotTested, @Nullable SnapshotDto previousLastSnapshot) {
return previousLastSnapshot == null || previousLastSnapshot.getCreatedAt() < snapshotTested.getCreatedAt();
}
+ public SnapshotDto insert(DbSession session, SnapshotDto item) {
+ if (item.getCreatedAt() == null) {
+ item.setCreatedAt(system2.now());
+ }
+ mapper(session).insert(item);
+ return item;
+ }
+
private SnapshotMapper mapper(DbSession session) {
return session.getMapper(SnapshotMapper.class);
}
package org.sonar.server.computation.step;
+import java.util.List;
import org.sonar.core.component.SnapshotDto;
import org.sonar.core.persistence.DbSession;
import org.sonar.core.persistence.MyBatis;
import org.sonar.server.computation.batch.BatchReportReader;
import org.sonar.server.db.DbClient;
-import java.util.List;
-
public class SwitchSnapshotStep implements ComputationStep {
private final DbClient dbClient;
}
private void disablePreviousSnapshot(DbSession session, long reportSnapshotId) {
- List<SnapshotDto> snapshots = dbClient.snapshotDao().findSnapshotAndChildrenOfProjectScope(session, dbClient.snapshotDao().getByKey(session, reportSnapshotId));
+ List<SnapshotDto> snapshots = dbClient.snapshotDao().selectSnapshotAndChildrenOfProjectScope(session, reportSnapshotId);
for (SnapshotDto snapshot : snapshots) {
- SnapshotDto previousLastSnapshot = dbClient.snapshotDao().getLastSnapshot(session, snapshot);
+ SnapshotDto previousLastSnapshot = dbClient.snapshotDao().selectLastSnapshotByComponentId(session, snapshot.getComponentId());
if (previousLastSnapshot != null) {
dbClient.snapshotDao().updateSnapshotAndChildrenLastFlag(session, previousLastSnapshot, false);
session.commit();
private void enableCurrentSnapshot(DbSession session, long reportSnapshotId) {
SnapshotDao dao = dbClient.snapshotDao();
- SnapshotDto snapshot = dao.getByKey(session, reportSnapshotId);
- SnapshotDto previousLastSnapshot = dao.getLastSnapshot(session, snapshot);
+ SnapshotDto snapshot = dao.selectById(session, reportSnapshotId);
+ SnapshotDto previousLastSnapshot = dao.selectLastSnapshotByComponentId(session, snapshot.getComponentId());
boolean isLast = dao.isLast(snapshot, previousLastSnapshot);
dao.updateSnapshotAndChildrenLastFlagAndStatus(session, snapshot, isLast, SnapshotDto.STATUS_PROCESSED);
userSession.checkProjectUuidPermission(UserRole.USER, component.projectUuid());
- SnapshotDto snapshot = dbClient.snapshotDao().getLastSnapshot(session, new SnapshotDto().setComponentId(component.getId()));
+ SnapshotDto snapshot = dbClient.snapshotDao().selectLastSnapshotByComponentId(session, component.getId());
JsonWriter json = response.newJsonWriter();
json.beginObject();
if (snapshot != null) {
SnapshotDto currentSnapshot = snapshot;
while (currentSnapshot.getParentId() != null) {
- currentSnapshot = dbClient.snapshotDao().getByKey(session, currentSnapshot.getParentId());
+ currentSnapshot = dbClient.snapshotDao().selectById(session, currentSnapshot.getParentId());
componentPath.add(0, dbClient.componentDao().selectById(currentSnapshot.getComponentId(), session));
}
}
public void get_by_key() {
setupData("shared");
- SnapshotDto result = sut.getNullableByKey(session, 3L);
+ SnapshotDto result = sut.selectNullableById(session, 3L);
assertThat(result).isNotNull();
assertThat(result.getId()).isEqualTo(3L);
assertThat(result.getComponentId()).isEqualTo(3L);
assertThat(result.getCreatedAt()).isEqualTo(1228172400000L);
assertThat(result.getBuildDate()).isEqualTo(1317247200000L);
- assertThat(sut.getNullableByKey(session, 999L)).isNull();
+ assertThat(sut.selectNullableById(session, 999L)).isNull();
}
@Test
public void lastSnapshot_returns_null_when_no_last_snapshot() {
setupData("empty");
- SnapshotDto snapshot = sut.getLastSnapshot(session, defaultSnapshot());
+ SnapshotDto snapshot = sut.selectLastSnapshotByComponentId(session, 123L);
assertThat(snapshot).isNull();
}
public void lastSnapshot_from_one_resource() {
setupData("snapshots");
- SnapshotDto snapshot = sut.getLastSnapshot(session, defaultSnapshot().setComponentId(2L));
+ SnapshotDto snapshot = sut.selectLastSnapshotByComponentId(session, 2L);
assertThat(snapshot).isNotNull();
assertThat(snapshot.getId()).isEqualTo(4L);
public void lastSnapshot_from_one_resource_without_last_is_null() {
setupData("snapshots");
- SnapshotDto snapshot = sut.getLastSnapshot(session, defaultSnapshot().setComponentId(5L));
-
- assertThat(snapshot).isNull();
- }
-
- @Test
- public void no_last_snapshot_older_than_another_one_in_a_empty_table() {
- setupData("empty");
-
- SnapshotDto snapshot = sut.getLastSnapshotOlderThan(session, defaultSnapshot());
-
- assertThat(snapshot).isNull();
- }
-
- @Test
- public void last_snapshot_older__than_a_reference() {
- setupData("snapshots");
-
- SnapshotDto referenceSnapshot = defaultSnapshot().setComponentId(1L);
- referenceSnapshot.setCreatedAt(DateUtils.parseDate("2008-12-03").getTime());
- SnapshotDto snapshot = sut.getLastSnapshotOlderThan(session, referenceSnapshot);
-
- assertThat(snapshot).isNotNull();
- assertThat(snapshot.getId()).isEqualTo(1L);
- }
-
- @Test
- public void last_snapshot_earlier__than_a_reference() {
- setupData("snapshots");
-
- SnapshotDto referenceSnapshot = defaultSnapshot().setComponentId(1L);
- referenceSnapshot.setCreatedAt(DateUtils.parseDate("2008-12-01").getTime());
- SnapshotDto snapshot = sut.getLastSnapshotOlderThan(session, referenceSnapshot);
+ SnapshotDto snapshot = sut.selectLastSnapshotByComponentId(session, 5L);
assertThat(snapshot).isNull();
}
public void snapshot_and_child_retrieved() {
setupData("snapshots");
- List<SnapshotDto> snapshots = sut.findSnapshotAndChildrenOfProjectScope(session, defaultSnapshot().setId(1L));
+ List<SnapshotDto> snapshots = sut.selectSnapshotAndChildrenOfProjectScope(session, 1L);
assertThat(snapshots).isNotEmpty();
assertThat(snapshots).extracting("id").containsOnly(1L, 6L);
sut.updateSnapshotAndChildrenLastFlagAndStatus(session, snapshot, false, SnapshotDto.STATUS_PROCESSED);
session.commit();
- List<SnapshotDto> snapshots = sut.findSnapshotAndChildrenOfProjectScope(session, snapshot);
+ List<SnapshotDto> snapshots = sut.selectSnapshotAndChildrenOfProjectScope(session, 1L);
assertThat(snapshots).hasSize(2);
assertThat(snapshots).extracting("id").containsOnly(1L, 6L);
assertThat(snapshots).extracting("last").containsOnly(false);
sut.updateSnapshotAndChildrenLastFlag(session, snapshot, false);
session.commit();
- List<SnapshotDto> snapshots = sut.findSnapshotAndChildrenOfProjectScope(session, snapshot);
+ List<SnapshotDto> snapshots = sut.selectSnapshotAndChildrenOfProjectScope(session, 1L);
assertThat(snapshots).hasSize(2);
assertThat(snapshots).extracting("id").containsOnly(1L, 6L);
assertThat(snapshots).extracting("last").containsOnly(false);
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import static org.sonar.server.project.ws.BulkDeleteAction.PARAM_KEYS;
import static org.sonar.server.project.ws.BulkDeleteAction.PARAM_IDS;
+import static org.sonar.server.project.ws.BulkDeleteAction.PARAM_KEYS;
@Category(DbTests.class)
public class BulkDeleteActionTest {
assertThat(dbClient.componentDao().selectByUuids(dbSession, Arrays.asList("project-uuid-1", "project-uuid-3", "project-uuid-4"))).isEmpty();
assertThat(dbClient.componentDao().selectByUuid(dbSession, "project-uuid-2")).isNotNull();
- assertThat(dbClient.snapshotDao().getNullableByKey(dbSession, snapshotId1)).isNull();
- assertThat(dbClient.snapshotDao().getNullableByKey(dbSession, snapshotId3)).isNull();
- assertThat(dbClient.snapshotDao().getNullableByKey(dbSession, snapshotId4)).isNull();
- assertThat(dbClient.snapshotDao().getNullableByKey(dbSession, snapshotId2)).isNotNull();
+ assertThat(dbClient.snapshotDao().selectNullableById(dbSession, snapshotId1)).isNull();
+ assertThat(dbClient.snapshotDao().selectNullableById(dbSession, snapshotId3)).isNull();
+ assertThat(dbClient.snapshotDao().selectNullableById(dbSession, snapshotId4)).isNull();
+ assertThat(dbClient.snapshotDao().selectNullableById(dbSession, snapshotId2)).isNotNull();
assertThat(dbClient.issueDao().selectByKeys(dbSession, Arrays.asList("issue-key-1", "issue-key-3", "issue-key-4"))).isEmpty();
assertThat(dbClient.issueDao().selectByKey(dbSession, "issue-key-2")).isNotNull();
}
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import static org.sonar.server.project.ws.DeleteAction.PARAM_KEY;
import static org.sonar.server.project.ws.DeleteAction.PARAM_ID;
+import static org.sonar.server.project.ws.DeleteAction.PARAM_KEY;
@Category(DbTests.class)
public class DeleteActionTest {
assertThat(dbClient.componentDao().selectNullableByUuid(dbSession, "project-uuid-1")).isNull();
assertThat(dbClient.componentDao().selectByUuid(dbSession, "project-uuid-2")).isNotNull();
- assertThat(dbClient.snapshotDao().getNullableByKey(dbSession, snapshotId1)).isNull();
- assertThat(dbClient.snapshotDao().getNullableByKey(dbSession, snapshotId2)).isNotNull();
+ assertThat(dbClient.snapshotDao().selectNullableById(dbSession, snapshotId1)).isNull();
+ assertThat(dbClient.snapshotDao().selectNullableById(dbSession, snapshotId2)).isNotNull();
assertThat(dbClient.issueDao().selectNullableByKey(dbSession, "issue-key-1")).isNull();
assertThat(dbClient.issueDao().selectByKey(dbSession, "issue-key-2")).isNotNull();
}
package org.sonar.core.component.db;
+import java.util.List;
+import javax.annotation.CheckForNull;
import org.apache.ibatis.annotations.Param;
import org.sonar.core.component.SnapshotDto;
-import javax.annotation.CheckForNull;
-import java.util.List;
-
public interface SnapshotMapper {
@CheckForNull
@CheckForNull
SnapshotDto selectLastSnapshot(Long resourceId);
- @CheckForNull
- SnapshotDto selectLastSnapshotOlderThan(@Param(value = "resource") Long resourceId, @Param(value = "createdAt") Long createdAtBefore);
-
List<SnapshotDto> selectSnapshotAndChildrenOfScope(@Param(value = "snapshot") Long resourceId, @Param(value = "scope") String scope);
int updateSnapshotAndChildrenLastFlagAndStatus(@Param(value = "root") Long rootId, @Param(value = "pathRootId") Long pathRootId,
where s.islast=${_true} and s.project_id = #{resource}
</select>
- <select id="selectLastSnapshotOlderThan" parameterType="map" resultType="Snapshot">
- select
- <include refid="snapshotColumns"/>
- from snapshots s
- where s.islast=${_true}
- and s.project_id = #{resource}
- and s.created_at < #{createdAt}
- </select>
-
<select id="selectSnapshotAndChildrenOfScope" parameterType="map" resultType="Snapshot">
select
<include refid="snapshotColumns"/>