Revert "Fix to not mark a valid preloaded subtask as INVALID"
This reverts commit ba8f1423d2e7cc502a8af95bf87d365755d47c0f.
Reason for revert: Better approach at Ieff1da7a47b63514fb8d0437340e096e03ad54bd
Change-Id: I0b67bb426dd6422a6459601096aa66f2bd4253a0
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
index 56cdd88..f5f0bd4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
@@ -27,7 +27,6 @@
import java.util.Map;
import java.util.Optional;
import java.util.Set;
-import java.util.stream.Collectors;
/** Task Configuration file living in git */
public class TaskConfig extends AbstractVersionedMetaData {
@@ -64,7 +63,7 @@
public String preloadTask;
public Map<String, String> properties;
public String readyHint;
- public List<TaskKey> subTasks;
+ public List<String> subTasks;
public List<String> subTasksExternals;
public List<String> subTasksFactories;
public List<String> subTasksFiles;
@@ -86,10 +85,7 @@
preloadTask = getString(s, KEY_PRELOAD_TASK, null);
properties = getProperties(s, KEY_PROPERTIES_PREFIX);
readyHint = getString(s, KEY_READY_HINT, null);
- subTasks =
- getStringList(s, KEY_SUBTASK).stream()
- .map(subtask -> TaskKey.create(s.file(), subtask))
- .collect(Collectors.toList());
+ subTasks = getStringList(s, KEY_SUBTASK);
subTasksExternals = getStringList(s, KEY_SUBTASKS_EXTERNAL);
subTasksFactories = getStringList(s, KEY_SUBTASKS_FACTORY);
subTasksFiles = getStringList(s, KEY_SUBTASKS_FILE);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java
index 6b8f486..bd0b683 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java
@@ -52,10 +52,6 @@
return subSection().file().branch();
}
- public FileKey file() {
- return subSection().file();
- }
-
public abstract SubSectionKey subSection();
public abstract String task();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
index d5ab48e..44fcadc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java
@@ -365,11 +365,10 @@
}
protected void addSubTasks() throws IOException, StorageException {
- for (TaskKey taskKey : task.subTasks) {
+ for (String expression : task.subTasks) {
try {
Optional<Task> def =
- preloader.getOptionalTask(
- taskExpressionFactory.create(taskKey.file(), taskKey.task()));
+ preloader.getOptionalTask(taskExpressionFactory.create(task.file(), expression));
if (def.isPresent()) {
addPreloaded(def.get());
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java b/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java
index 1c9ef43..c970cec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java
@@ -14,9 +14,7 @@
package com.googlesource.gerrit.plugins.task.properties;
-import com.googlesource.gerrit.plugins.task.TaskKey;
import java.lang.reflect.Field;
-import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -103,24 +101,11 @@
field.set(cow.getForWrite(), expanded);
}
} else if (o instanceof List) {
- ParameterizedType parameterizedType = (ParameterizedType) field.getGenericType();
- Class<?> classType = (Class<?>) parameterizedType.getActualTypeArguments()[0];
- if (classType == String.class) {
- @SuppressWarnings("unchecked")
- List<String> forceCheck = List.class.cast(o);
- List<String> expanded = expand(forceCheck);
- if (expanded != o) {
- field.set(cow.getForWrite(), expanded);
- }
- } else if (classType == TaskKey.class) {
- @SuppressWarnings("unchecked")
- List<TaskKey> forceCheck = List.class.cast(o);
- List<TaskKey> expanded = expandTaskKey(forceCheck);
- if (expanded != o) {
- field.set(cow.getForWrite(), expanded);
- }
- } else {
- throw new RuntimeException(String.format("Unknown list type: %s", classType));
+ @SuppressWarnings("unchecked")
+ List<String> forceCheck = List.class.cast(o);
+ List<String> expanded = expand(forceCheck);
+ if (expanded != o) {
+ field.set(cow.getForWrite(), expanded);
}
}
} catch (IllegalAccessException e) {
@@ -133,29 +118,6 @@
* Returns expanded unmodifiable List if property found. Returns same object if no expansions
* occurred.
*/
- public List<TaskKey> expandTaskKey(List<TaskKey> list) {
- if (list != null) {
- boolean hasProperty = false;
- List<TaskKey> expandedList = new ArrayList<>(list.size());
- for (TaskKey value : list) {
- String expanded = expandText(value.task());
- boolean hasExpanded = (value.task() != expanded);
- hasProperty = hasProperty || hasExpanded;
- if (hasExpanded) {
- expandedList.add(TaskKey.create(value.file(), expanded));
- } else {
- expandedList.add(value);
- }
- }
- return hasProperty ? Collections.unmodifiableList(expandedList) : list;
- }
- return null;
- }
-
- /**
- * Returns expanded unmodifiable List if property found. Returns same object if no expansions
- * occurred.
- */
public List<String> expand(List<String> list) {
if (list != null) {
boolean hasProperty = false;
diff --git a/src/main/resources/Documentation/test/task_states.md b/src/main/resources/Documentation/test/task_states.md
index e3f1834..199306f 100644
--- a/src/main/resources/Documentation/test/task_states.md
+++ b/src/main/resources/Documentation/test/task_states.md
@@ -2451,144 +2451,6 @@
]
}
-[root "Root Preload from all-projects sub-dir"]
- preload-task = //dir/common.config^Sample relative task in sub dir
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from all-projects sub-dir",
- "status" : "PASS"
-}
-
-[root "Root Preload from all-projects sub-dir which has subtask in same file"]
- preload-task = //dir/common.config^Sample relative task in sub dir with subtask from same file
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from all-projects sub-dir which has subtask in same file",
- "status" : "PASS",
- "subTasks" : [
- {
- "applicable" : true,
- "hasPass" : true,
- "name" : "Sample relative task in sub dir",
- "status" : "PASS"
- }
- ]
-}
-
-[root "Root Preload from all-projects sub-dir which has subtask in different file"]
- preload-task = //dir/common.config^Sample relative task in sub dir with subtask from different file
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from all-projects sub-dir which has subtask in different file",
- "status" : "PASS",
- "subTasks" : [
- {
- "applicable" : true,
- "hasPass" : true,
- "name" : "Passing task",
- "status" : "PASS"
- }
- ]
-}
-
-[root "Root Preload from user ref"]
- preload-task = @testuser/dir/relative.config^Relative Task
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from user ref",
- "status" : "PASS"
-}
-
-[root "Root Preload from user ref which has subtask in same file"]
- preload-task = @testuser/dir/relative.config^Relative Task with subtask
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from user ref which has subtask in same file",
- "status" : "PASS",
- "subTasks" : [
- {
- "applicable" : true,
- "hasPass" : true,
- "name" : "Passing task",
- "status" : "PASS"
- }
- ]
-}
-
-[root "Root Preload from user ref which has subtask in different file"]
- preload-task = @testuser/dir/relative.config^Import All-Projects root task
-
-{
- "applicable" : true,
- "hasPass" : false,
- "name" : "Root Preload from user ref which has subtask in different file",
- "status" : "PASS",
- "subTasks" : [
- {
- "applicable" : true,
- "hasPass" : true,
- "name" : "Subtask PASS",
- "status" : "PASS"
- }
- ]
-}
-
-[root "Root Preload from group ref"]
- preload-task = %{non_secret_group_name_without_space}^task in group root config file 1
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from group ref",
- "status" : "PASS"
-}
-
-[root "Root Preload from group ref which has subtask in same file"]
- preload-task = %{non_secret_group_name_without_space}^task in group root with subtask
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from group ref which has subtask in same file",
- "status" : "PASS",
- "subTasks" : [
- {
- "applicable" : true,
- "hasPass" : true,
- "name" : "Passing task",
- "status" : "PASS"
- }
- ]
-}
-
-[root "Root Preload from group ref which has subtask in different file"]
- preload-task = %{non_secret_group_name_without_space}^task in group root with subtask from all-projects
-
-{
- "applicable" : true,
- "hasPass" : true,
- "name" : "Root Preload from group ref which has subtask in different file",
- "status" : "PASS",
- "subTasks" : [
- {
- "applicable" : true,
- "hasPass" : true,
- "name" : "Subtask PASS",
- "status" : "PASS"
- }
- ]
-}
-
[root "Root Preload from all-projects sub-dir which has preload-task in same file"]
preload-task = //dir/common.config^Sample task in sub dir with preload-task from same file
@@ -2596,15 +2458,7 @@
"applicable" : true,
"hasPass" : true,
"name" : "Root Preload from all-projects sub-dir which has preload-task in same file",
- "status" : "PASS",
- "subTasks" : [
- {
- "applicable" : true,
- "hasPass" : true,
- "name" : "Sample relative task in sub dir",
- "status" : "PASS"
- }
- ]
+ "status" : "PASS"
}
[root "Root Preload from all-projects sub-dir which has preload-task in different file"]
@@ -3211,10 +3065,6 @@
```
[task "Root Import task from subdir using relative syntax"]
subtask = dir/common.config^Sample relative task in sub dir
-
-[task "Passing task"]
- applicable = is:open
- pass = True
```
file: `All-Projects:refs/meta/config:task/dir/common.config`
@@ -3223,22 +3073,12 @@
applicable = is:open
pass = is:open
-[task "Sample relative task in sub dir with subtask from same file"]
- applicable = is:open
- pass = is:open
- subtask = Sample relative task in sub dir
-
-[task "Sample relative task in sub dir with subtask from different file"]
- applicable = is:open
- pass = is:open
- subtask = //relative.config^Passing task
-
[task "Root Import task from root task.config"]
applicable = is:open
subtask = ^Subtask PASS
[task "Sample task in sub dir with preload-task from same file"]
- preload-task = Sample relative task in sub dir with subtask from same file
+ preload-task = Sample relative task in sub dir
[task "Sample task in sub dir with preload-task from different file"]
preload-task = %{non_secret_group_name_without_space}/foo/bar.config^Absolute Task 1
@@ -3454,15 +3294,6 @@
applicable = is:open
pass = is:open
-[task "Relative Task with subtask"]
- applicable = is:open
- pass = is:open
- subtask = Passing task
-
-[task "Passing task"]
- applicable = is:open
- pass = True
-
[task "Import All-Projects root task"]
applicable = is:open
subtask = //^Subtask PASS
@@ -3514,20 +3345,6 @@
applicable = is:open
pass = is:open
-[task "task in group root with subtask"]
- applicable = is:open
- pass = is:open
- subtask = Passing task
-
-[task "Passing task"]
- applicable = is:open
- pass = True
-
-[task "task in group root with subtask from all-projects"]
- applicable = is:open
- pass = is:open
- subtask = //^Subtask PASS
-
[task "task in group root config file 2"]
applicable = is:open
pass = is:open