Browse Source

SONAR-7187 Rename CeActivityQuery to CeTaskQuery

tags/5.5-M2
Teryk Bellahsene 8 years ago
parent
commit
f004a91fa4

+ 9
- 9
server/sonar-server/src/main/java/org/sonar/server/computation/ws/ActivityAction.java View File

@@ -40,7 +40,7 @@ import org.sonar.core.util.Uuids;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.ce.CeActivityDto;
import org.sonar.db.ce.CeActivityQuery;
import org.sonar.db.ce.CeTaskQuery;
import org.sonar.db.ce.CeQueueDto;
import org.sonar.db.ce.CeTaskTypes;
import org.sonar.db.component.ComponentDto;
@@ -142,7 +142,7 @@ public class ActivityAction implements CeWsAction {
private ActivityResponse doHandle(ActivityWsRequest request) {
DbSession dbSession = dbClient.openSession(false);
try {
CeActivityQuery query = buildQuery(dbSession, request);
CeTaskQuery query = buildQuery(dbSession, request);
checkPermissions(query);
TaskResult queuedTasks = loadQueuedTasks(dbSession, request, query);
TaskResult pastTasks = loadPastTasks(dbSession, request, query, queuedTasks.total);
@@ -159,8 +159,8 @@ public class ActivityAction implements CeWsAction {
}
}

private CeActivityQuery buildQuery(DbSession dbSession, ActivityWsRequest request) {
CeActivityQuery query = new CeActivityQuery();
private CeTaskQuery buildQuery(DbSession dbSession, ActivityWsRequest request) {
CeTaskQuery query = new CeTaskQuery();
query.setType(request.getType());
query.setOnlyCurrents(request.getOnlyCurrents());
query.setMinSubmittedAt(dateToLong(parseDateTimeQuietly(request.getMinSubmittedAt())));
@@ -175,7 +175,7 @@ public class ActivityAction implements CeWsAction {
return query;
}

private void loadComponentUuids(DbSession dbSession, ActivityWsRequest request, CeActivityQuery query) {
private void loadComponentUuids(DbSession dbSession, ActivityWsRequest request, CeTaskQuery query) {
String componentUuid = request.getComponentId();
String componentQuery = request.getComponentQuery();

@@ -184,12 +184,12 @@ public class ActivityAction implements CeWsAction {
}
if (componentQuery != null) {
ComponentQuery componentDtoQuery = ComponentQuery.builder().setNameOrKeyQuery(componentQuery).setQualifiers(Qualifiers.PROJECT, Qualifiers.VIEW).build();
List<ComponentDto> componentDtos = dbClient.componentDao().selectByQuery(dbSession, componentDtoQuery, 0, CeActivityQuery.MAX_COMPONENT_UUIDS);
List<ComponentDto> componentDtos = dbClient.componentDao().selectByQuery(dbSession, componentDtoQuery, 0, CeTaskQuery.MAX_COMPONENT_UUIDS);
query.setComponentUuids(Lists.transform(componentDtos, ComponentDtoFunctions.toUuid()));
}
}

private TaskResult loadQueuedTasks(DbSession dbSession, ActivityWsRequest request, CeActivityQuery query) {
private TaskResult loadQueuedTasks(DbSession dbSession, ActivityWsRequest request, CeTaskQuery query) {
int total = dbClient.ceQueueDao().countByQuery(dbSession, query);
List<CeQueueDto> dtos = dbClient.ceQueueDao().selectByQueryInDescOrder(dbSession, query,
Paging.forPageIndex(request.getPage())
@@ -199,7 +199,7 @@ public class ActivityAction implements CeWsAction {
return new TaskResult(tasks, total);
}

private TaskResult loadPastTasks(DbSession dbSession, ActivityWsRequest request, CeActivityQuery query, int totalQueuedTasks) {
private TaskResult loadPastTasks(DbSession dbSession, ActivityWsRequest request, CeTaskQuery query, int totalQueuedTasks) {
int total = dbClient.ceActivityDao().countByQuery(dbSession, query);
// we have to take into account the total number of queue tasks found
int offset = Math.max(0, offset(request.getPage(), request.getPageSize()) - totalQueuedTasks);
@@ -209,7 +209,7 @@ public class ActivityAction implements CeWsAction {
return new TaskResult(ceTasks, total);
}

private void checkPermissions(CeActivityQuery query) {
private void checkPermissions(CeTaskQuery query) {
List<String> componentUuids = query.getComponentUuids();
if (componentUuids != null && componentUuids.size() == 1) {
if (!isAllowedOnComponentUuid(userSession, componentUuids.get(0))) {

+ 2
- 2
server/sonar-server/src/main/java/org/sonar/server/computation/ws/ComponentAction.java View File

@@ -28,7 +28,7 @@ import org.sonar.core.util.Uuids;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.ce.CeActivityDto;
import org.sonar.db.ce.CeActivityQuery;
import org.sonar.db.ce.CeTaskQuery;
import org.sonar.db.ce.CeQueueDto;
import org.sonar.server.user.UserSession;
import org.sonar.server.ws.WsUtils;
@@ -71,7 +71,7 @@ public class ComponentAction implements CeWsAction {
DbSession dbSession = dbClient.openSession(false);
try {
List<CeQueueDto> queueDtos = dbClient.ceQueueDao().selectByComponentUuid(dbSession, componentUuid);
CeActivityQuery activityQuery = new CeActivityQuery()
CeTaskQuery activityQuery = new CeTaskQuery()
.setComponentUuid(componentUuid)
.setOnlyCurrents(true);
List<CeActivityDto> activityDtos = dbClient.ceActivityDao().selectByQuery(dbSession, activityQuery, 0, 1);

+ 2
- 2
sonar-db/src/main/java/org/sonar/db/ce/CeActivityDao.java View File

@@ -64,7 +64,7 @@ public class CeActivityDao implements Dao {
/**
* Ordered by id desc -> newest to oldest
*/
public List<CeActivityDto> selectByQuery(DbSession dbSession, CeActivityQuery query, int offset, int pageSize) {
public List<CeActivityDto> selectByQuery(DbSession dbSession, CeTaskQuery query, int offset, int pageSize) {
if (query.isShortCircuitedByComponentUuids()) {
return Collections.emptyList();
}
@@ -72,7 +72,7 @@ public class CeActivityDao implements Dao {
return mapper(dbSession).selectByQuery(query, new RowBounds(offset, pageSize));
}

public int countByQuery(DbSession dbSession, CeActivityQuery query) {
public int countByQuery(DbSession dbSession, CeTaskQuery query) {
if (query.isShortCircuitedByComponentUuids()) {
return 0;
}

+ 2
- 2
sonar-db/src/main/java/org/sonar/db/ce/CeActivityMapper.java View File

@@ -33,11 +33,11 @@ public interface CeActivityMapper {

List<CeActivityDto> selectByComponentUuid(@Param("componentUuid") String componentUuid);

List<CeActivityDto> selectByQuery(@Param("query") CeActivityQuery query, RowBounds rowBounds);
List<CeActivityDto> selectByQuery(@Param("query") CeTaskQuery query, RowBounds rowBounds);

List<CeActivityDto> selectOlderThan(@Param("beforeDate") long beforeDate);

int countByQuery(@Param("query") CeActivityQuery query);
int countByQuery(@Param("query") CeTaskQuery query);

void insert(CeActivityDto dto);


+ 2
- 2
sonar-db/src/main/java/org/sonar/db/ce/CeQueueDao.java View File

@@ -46,7 +46,7 @@ public class CeQueueDao implements Dao {
return mapper(session).selectAllInAscOrder();
}

public List<CeQueueDto> selectByQueryInDescOrder(DbSession dbSession, CeActivityQuery query, Paging paging) {
public List<CeQueueDto> selectByQueryInDescOrder(DbSession dbSession, CeTaskQuery query, Paging paging) {
if (query.isShortCircuitedByComponentUuids()
|| query.isOnlyCurrents()
|| query.getMaxExecutedAt() != null) {
@@ -56,7 +56,7 @@ public class CeQueueDao implements Dao {
return mapper(dbSession).selectByQueryInDescOrder(query, new RowBounds(paging.offset(), paging.pageSize()));
}

public int countByQuery(DbSession dbSession, CeActivityQuery query) {
public int countByQuery(DbSession dbSession, CeTaskQuery query) {
if (query.isShortCircuitedByComponentUuids()
|| query.isOnlyCurrents()
|| query.getMaxExecutedAt() != null) {

+ 2
- 2
sonar-db/src/main/java/org/sonar/db/ce/CeQueueMapper.java View File

@@ -31,9 +31,9 @@ public interface CeQueueMapper {

List<CeQueueDto> selectAllInAscOrder();

List<CeQueueDto> selectByQueryInDescOrder(@Param("query") CeActivityQuery query, RowBounds rowBounds);
List<CeQueueDto> selectByQueryInDescOrder(@Param("query") CeTaskQuery query, RowBounds rowBounds);

int countByQuery(@Param("query") CeActivityQuery query);
int countByQuery(@Param("query") CeTaskQuery query);

List<String> selectEligibleForPeek();


sonar-db/src/main/java/org/sonar/db/ce/CeActivityQuery.java → sonar-db/src/main/java/org/sonar/db/ce/CeTaskQuery.java View File

@@ -26,7 +26,10 @@ import org.sonar.db.DatabaseUtils;

import static java.util.Collections.singletonList;

public class CeActivityQuery {
/**
* Db Query used for CE_QUEUE and CE_ACTIVITY tables
*/
public class CeTaskQuery {

public static final int MAX_COMPONENT_UUIDS = DatabaseUtils.PARTITION_SIZE_FOR_ORACLE;

@@ -42,7 +45,7 @@ public class CeActivityQuery {
return componentUuids;
}

public CeActivityQuery setComponentUuids(@Nullable List<String> l) {
public CeTaskQuery setComponentUuids(@Nullable List<String> l) {
this.componentUuids = l;
return this;
}
@@ -51,7 +54,7 @@ public class CeActivityQuery {
return componentUuids != null && (componentUuids.isEmpty() || componentUuids.size() > MAX_COMPONENT_UUIDS);
}

public CeActivityQuery setComponentUuid(@Nullable String s) {
public CeTaskQuery setComponentUuid(@Nullable String s) {
if (s == null) {
this.componentUuids = null;
} else {
@@ -64,7 +67,7 @@ public class CeActivityQuery {
return onlyCurrents;
}

public CeActivityQuery setOnlyCurrents(boolean onlyCurrents) {
public CeTaskQuery setOnlyCurrents(boolean onlyCurrents) {
this.onlyCurrents = onlyCurrents;
return this;
}
@@ -74,7 +77,7 @@ public class CeActivityQuery {
return statuses;
}

public CeActivityQuery setStatuses(@Nullable List<String> statuses) {
public CeTaskQuery setStatuses(@Nullable List<String> statuses) {
this.statuses = statuses;
return this;
}
@@ -84,7 +87,7 @@ public class CeActivityQuery {
return type;
}

public CeActivityQuery setType(@Nullable String type) {
public CeTaskQuery setType(@Nullable String type) {
this.type = type;
return this;
}
@@ -94,7 +97,7 @@ public class CeActivityQuery {
return maxExecutedAt;
}

public CeActivityQuery setMaxExecutedAt(@Nullable Long l) {
public CeTaskQuery setMaxExecutedAt(@Nullable Long l) {
this.maxExecutedAt = l;
return this;
}
@@ -104,7 +107,7 @@ public class CeActivityQuery {
return minSubmittedAt;
}

public CeActivityQuery setMinSubmittedAt(@Nullable Long l) {
public CeTaskQuery setMinSubmittedAt(@Nullable Long l) {
this.minSubmittedAt = l;
return this;
}

+ 17
- 17
sonar-db/src/test/java/org/sonar/db/ce/CeActivityDaoTest.java View File

@@ -96,30 +96,30 @@ public class CeActivityDaoTest {
insert("TASK_4", "views", null, CeActivityDto.Status.SUCCESS);

// no filters
CeActivityQuery query = new CeActivityQuery().setStatuses(Collections.<String>emptyList());
CeTaskQuery query = new CeTaskQuery().setStatuses(Collections.<String>emptyList());
List<CeActivityDto> dtos = underTest.selectByQuery(db.getSession(), query, 0, 10);
assertThat(dtos).extracting("uuid").containsExactly("TASK_4", "TASK_3", "TASK_2", "TASK_1");

// select by component uuid
query = new CeActivityQuery().setComponentUuid("PROJECT_1");
query = new CeTaskQuery().setComponentUuid("PROJECT_1");
dtos = underTest.selectByQuery(db.getSession(), query, 0, 100);
assertThat(dtos).extracting("uuid").containsExactly("TASK_2", "TASK_1");

// select by status
query = new CeActivityQuery().setStatuses(singletonList(CeActivityDto.Status.SUCCESS.name()));
query = new CeTaskQuery().setStatuses(singletonList(CeActivityDto.Status.SUCCESS.name()));
dtos = underTest.selectByQuery(db.getSession(), query, 0, 100);
assertThat(dtos).extracting("uuid").containsExactly("TASK_4", "TASK_3", "TASK_1");

// select by type
query = new CeActivityQuery().setType(REPORT);
query = new CeTaskQuery().setType(REPORT);
dtos = underTest.selectByQuery(db.getSession(), query, 0, 100);
assertThat(dtos).extracting("uuid").containsExactly("TASK_3", "TASK_2", "TASK_1");
query = new CeActivityQuery().setType("views");
query = new CeTaskQuery().setType("views");
dtos = underTest.selectByQuery(db.getSession(), query, 0, 100);
assertThat(dtos).extracting("uuid").containsExactly("TASK_4");

// select by multiple conditions
query = new CeActivityQuery().setType(REPORT).setOnlyCurrents(true).setComponentUuid("PROJECT_1");
query = new CeTaskQuery().setType(REPORT).setOnlyCurrents(true).setComponentUuid("PROJECT_1");
dtos = underTest.selectByQuery(db.getSession(), query, 0, 100);
assertThat(dtos).extracting("uuid").containsExactly("TASK_2");
}
@@ -132,25 +132,25 @@ public class CeActivityDaoTest {
insert("TASK_4", "views", null, CeActivityDto.Status.SUCCESS);

// no filters
CeActivityQuery query = new CeActivityQuery();
CeTaskQuery query = new CeTaskQuery();
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(4);

// select by component uuid
query = new CeActivityQuery().setComponentUuid("PROJECT_1");
query = new CeTaskQuery().setComponentUuid("PROJECT_1");
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(2);

// select by status
query = new CeActivityQuery().setStatuses(singletonList(CeActivityDto.Status.SUCCESS.name()));
query = new CeTaskQuery().setStatuses(singletonList(CeActivityDto.Status.SUCCESS.name()));
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(3);

// select by type
query = new CeActivityQuery().setType(REPORT);
query = new CeTaskQuery().setType(REPORT);
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(3);
query = new CeActivityQuery().setType("views");
query = new CeTaskQuery().setType("views");
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(1);

// select by multiple conditions
query = new CeActivityQuery().setType(REPORT).setOnlyCurrents(true).setComponentUuid("PROJECT_1");
query = new CeTaskQuery().setType(REPORT).setOnlyCurrents(true).setComponentUuid("PROJECT_1");
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(1);
}

@@ -158,7 +158,7 @@ public class CeActivityDaoTest {
public void selectByQuery_no_results_if_shortcircuited_by_component_uuids() {
insert("TASK_1", REPORT, "PROJECT_1", CeActivityDto.Status.SUCCESS);

CeActivityQuery query = new CeActivityQuery();
CeTaskQuery query = new CeTaskQuery();
query.setComponentUuids(Collections.<String>emptyList());
assertThat(underTest.selectByQuery(db.getSession(), query, 0, 0)).isEmpty();
}
@@ -167,7 +167,7 @@ public class CeActivityDaoTest {
public void countByQuery_no_results_if_shortcircuited_by_component_uuids() {
insert("TASK_1", REPORT, "PROJECT_1", CeActivityDto.Status.SUCCESS);

CeActivityQuery query = new CeActivityQuery();
CeTaskQuery query = new CeTaskQuery();
query.setComponentUuids(Collections.<String>emptyList());
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(0);
}
@@ -178,17 +178,17 @@ public class CeActivityDaoTest {
insertWithDates("UUID2", 1_460_000_000_000L, 1_480_000_000_000L);

// search by min submitted date
CeActivityQuery query = new CeActivityQuery().setMinSubmittedAt(1_455_000_000_000L);
CeTaskQuery query = new CeTaskQuery().setMinSubmittedAt(1_455_000_000_000L);
assertThat(underTest.selectByQuery(db.getSession(), query, 0, 5)).extracting("uuid").containsOnly("UUID2");
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(1);

// search by max executed date
query = new CeActivityQuery().setMaxExecutedAt(1_475_000_000_000L);
query = new CeTaskQuery().setMaxExecutedAt(1_475_000_000_000L);
assertThat(underTest.selectByQuery(db.getSession(), query, 0, 5)).extracting("uuid").containsOnly("UUID1");
assertThat(underTest.countByQuery(db.getSession(), query)).isEqualTo(1);

// search by both dates
query = new CeActivityQuery()
query = new CeTaskQuery()
.setMinSubmittedAt(1_400_000_000_000L)
.setMaxExecutedAt(1_475_000_000_000L);
assertThat(underTest.selectByQuery(db.getSession(), query, 0, 5)).extracting("uuid").containsOnly("UUID1");

+ 4
- 4
sonar-db/src/test/java/org/sonar/db/ce/CeQueueDaoTest.java View File

@@ -213,7 +213,7 @@ public class CeQueueDaoTest {
.setCreatedAt(120_000L));

// select by component uuid, status, task type and minimum submitted at
CeActivityQuery query = new CeActivityQuery()
CeTaskQuery query = new CeTaskQuery()
.setComponentUuids(newArrayList("PROJECT_1", "PROJECT_2"))
.setStatuses(singletonList(CeQueueDto.Status.PENDING.name()))
.setType(CeTaskTypes.REPORT)
@@ -234,7 +234,7 @@ public class CeQueueDaoTest {
.setTaskType(CeTaskTypes.REPORT)
.setCreatedAt(100_000L));

CeActivityQuery query = new CeActivityQuery().setOnlyCurrents(true);
CeTaskQuery query = new CeTaskQuery().setOnlyCurrents(true);

List<CeQueueDto> result = underTest.selectByQueryInDescOrder(db.getSession(), query, Paging.forPageIndex(1).withPageSize(1_000).andTotal(1_000));
int total = underTest.countByQuery(db.getSession(), query);
@@ -251,7 +251,7 @@ public class CeQueueDaoTest {
.setTaskType(CeTaskTypes.REPORT)
.setCreatedAt(100_000L));

CeActivityQuery query = new CeActivityQuery().setMaxExecutedAt(1_000_000_000_000L);
CeTaskQuery query = new CeTaskQuery().setMaxExecutedAt(1_000_000_000_000L);

List<CeQueueDto> result = underTest.selectByQueryInDescOrder(db.getSession(), query, Paging.forPageIndex(1).withPageSize(1_000).andTotal(1_000));
int total = underTest.countByQuery(db.getSession(), query);
@@ -268,7 +268,7 @@ public class CeQueueDaoTest {
.setTaskType(CeTaskTypes.REPORT)
.setCreatedAt(100_000L));

CeActivityQuery query = new CeActivityQuery().setComponentUuids(Collections.<String>emptyList());
CeTaskQuery query = new CeTaskQuery().setComponentUuids(Collections.<String>emptyList());

List<CeQueueDto> result = underTest.selectByQueryInDescOrder(db.getSession(), query, Paging.forPageIndex(1).withPageSize(1_000).andTotal(1_000));
int total = underTest.countByQuery(db.getSession(), query);

sonar-db/src/test/java/org/sonar/db/ce/CeActivityQueryTest.java → sonar-db/src/test/java/org/sonar/db/ce/CeTaskQueryTest.java View File

@@ -27,9 +27,9 @@ import org.junit.Test;
import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;

public class CeActivityQueryTest {
public class CeTaskQueryTest {

CeActivityQuery underTest = new CeActivityQuery();
CeTaskQuery underTest = new CeTaskQuery();

@Test
public void no_filter_on_component_uuids_by_default() {
@@ -69,11 +69,11 @@ public class CeActivityQueryTest {
@Test
public void short_circuited_if_too_many_component_uuid_filters() {
List<String> uuids = new ArrayList<>();
for (int i = 0; i < CeActivityQuery.MAX_COMPONENT_UUIDS + 2; i++) {
for (int i = 0; i < CeTaskQuery.MAX_COMPONENT_UUIDS + 2; i++) {
uuids.add(String.valueOf(i));
}
underTest.setComponentUuids(uuids);
assertThat(underTest.getComponentUuids()).hasSize(CeActivityQuery.MAX_COMPONENT_UUIDS + 2);
assertThat(underTest.getComponentUuids()).hasSize(CeTaskQuery.MAX_COMPONENT_UUIDS + 2);
assertThat(underTest.isShortCircuitedByComponentUuids()).isTrue();
}
}

Loading…
Cancel
Save