Skip to content

Commit 3d3e559

Browse files
committed
Return immutable result from TaskStore::query
1 parent 7d27120 commit 3d3e559

File tree

9 files changed

+20
-18
lines changed

9 files changed

+20
-18
lines changed

core/src/main/java/org/neo4j/gds/core/utils/progress/EmptyTaskStore.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ public Stream<UserTask> query(JobId jobId) {
4646
}
4747

4848
@Override
49-
public @NotNull Map<JobId, Task> query(String username) {
50-
return Map.of();
49+
public @NotNull Stream<UserTask> query(String username) {
50+
return Stream.empty();
5151
}
5252

5353
@Override

core/src/main/java/org/neo4j/gds/core/utils/progress/GlobalTaskStore.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,12 @@ public Stream<UserTask> query(JobId jobId) {
7272
}
7373

7474
@Override
75-
public @NotNull Map<JobId, Task> query(String username) {
76-
return registeredTasks.getOrDefault(username, Map.of());
75+
public Stream<UserTask> query(String username) {
76+
return registeredTasks
77+
.getOrDefault(username, Map.of())
78+
.entrySet()
79+
.stream()
80+
.map(jobIdTask -> ImmutableUserTask.of(username, jobIdTask.getKey(), jobIdTask.getValue()));
7781
}
7882

7983
@Override

core/src/main/java/org/neo4j/gds/core/utils/progress/TaskRegistry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public void unregisterTask() {
5555

5656
public boolean containsTask(Task task) {
5757
return taskStore.query(username, jobId)
58-
.map(t -> t == task)
58+
.map(t -> t.task() == task)
5959
.orElse(false);
6060
}
6161
}

core/src/main/java/org/neo4j/gds/core/utils/progress/TaskStore.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ public interface TaskStore {
3737

3838
Stream<UserTask> query(JobId jobId);
3939

40-
@NotNull
41-
Map<JobId, Task> query(String username);
40+
Stream<UserTask> query(String username);
4241

4342
Optional<UserTask> query(String username, JobId jobId);
4443

core/src/test/java/org/neo4j/gds/core/utils/progress/BaseTaskRegistryExtensionTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.util.stream.Stream;
3434

3535
import static java.util.stream.Collectors.toList;
36+
import static org.neo4j.gds.core.utils.progress.TaskStore.UserTask;
3637

3738
abstract class BaseTaskRegistryExtensionTest extends BaseTest {
3839
abstract boolean featureEnabled();
@@ -79,7 +80,7 @@ public static class ProgressProc {
7980

8081
@Procedure("gds.test.log")
8182
public Stream<Bar> foo() {
82-
return taskStore.query("").values().stream().map(Task::description).map(Bar::new);
83+
return taskStore.query("").map(UserTask::task).map(Task::description).map(Bar::new);
8384
}
8485
}
8586

core/src/test/java/org/neo4j/gds/core/utils/progress/LocalTaskRegistryFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ void shouldPutAndRemoveDistinctTasks() {
5353

5454
taskRegistry1.unregisterTask();
5555

56-
assertThat(taskStore.query("")).containsValue(task2).doesNotContainValue(task1);
56+
assertThat(taskStore.query("").map(TaskStore.UserTask::task)).contains(task2).doesNotContain(task1);
5757
}
5858

5959
@Test

core/src/test/java/org/neo4j/gds/core/utils/progress/TaskRegistryTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
package org.neo4j.gds.core.utils.progress;
2121

2222
import org.junit.jupiter.api.Test;
23+
import org.neo4j.gds.core.utils.progress.TaskStore.UserTask;
2324
import org.neo4j.gds.core.utils.progress.tasks.Tasks;
2425

2526
import static org.assertj.core.api.Assertions.assertThat;
@@ -36,14 +37,14 @@ void shouldStoreIncomingTasks() {
3637
var task1 = Tasks.leaf("task1");
3738
taskRegistry1.registerTask(task1);
3839

39-
assertThat(globalTaskStore.query("")).containsValue(task1);
40+
assertThat(globalTaskStore.query("").map(UserTask::task)).contains(task1);
4041
assertThat(globalTaskStore.isEmpty()).isFalse();
4142

4243
var taskRegistry2 = new TaskRegistry("", globalTaskStore);
4344
var task2 = Tasks.leaf("task2");
4445
taskRegistry2.registerTask(task2);
4546

46-
assertThat(globalTaskStore.query("")).containsValues(task1, task2);
47+
assertThat(globalTaskStore.query("").map(UserTask::task)).contains(task1, task2);
4748
assertThat(globalTaskStore.isEmpty()).isFalse();
4849
}
4950

@@ -57,7 +58,7 @@ void shouldRemoveStoredTasks() {
5758

5859
assertThat(globalTaskStore.isEmpty()).isFalse();
5960

60-
var jobId = globalTaskStore.query("").keySet().iterator().next();
61+
var jobId = globalTaskStore.query("").map(UserTask::jobId).iterator().next();
6162
globalTaskStore.remove("", jobId);
6263

6364
assertThat(globalTaskStore.isEmpty()).isTrue();

core/src/test/java/org/neo4j/gds/core/utils/progress/tasks/TaskProgressTrackerTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.neo4j.gds.core.utils.progress.EmptyTaskRegistryFactory;
2727
import org.neo4j.gds.core.utils.progress.GlobalTaskStore;
2828
import org.neo4j.gds.core.utils.progress.TaskRegistry;
29+
import org.neo4j.gds.core.utils.progress.TaskStore;
2930
import org.neo4j.logging.Log;
3031

3132
import java.util.List;
@@ -205,7 +206,7 @@ void shouldRegisterBaseTaskOnBaseTaskStart() {
205206

206207
progressTracker.beginSubTask();
207208

208-
assertThat(taskStore.query("")).containsValue(task);
209+
assertThat(taskStore.query("").map(TaskStore.UserTask::task)).contains(task);
209210
}
210211

211212
@Test

proc/misc/src/main/java/org/neo4j/gds/ListProgressProc.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,7 @@ private Stream<ProgressResult> jobsSummaryView() {
6464
if (isGdsAdmin()) {
6565
return taskStore.query().map(ProgressResult::fromTaskStoreEntry);
6666
} else {
67-
return taskStore
68-
.query(username())
69-
.entrySet()
70-
.stream()
71-
.map(entry -> ProgressResult.fromTaskStoreEntry(username(), entry));
67+
return taskStore.query(username()).map(ProgressResult::fromTaskStoreEntry);
7268
}
7369
}
7470

0 commit comments

Comments
 (0)