Make task config collection fields immutable

Making task config collection fields immutable makes it much safer to
potentially share definitions via caches. The performance impact of
this change seems to be at the noise level.

Change-Id: Ic04117ef070430f54e9ff6a72bf991cd4871e502
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 58cb37d..345dbc5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java
@@ -19,6 +19,7 @@
 import com.google.gerrit.server.git.meta.AbstractVersionedMetaData;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -286,7 +287,7 @@
       String name = e.getKey();
       valueByName.put(name.substring(prefix.length()), e.getValue());
     }
-    return valueByName;
+    return Collections.unmodifiableMap(valueByName);
   }
 
   protected Map<String, String> getStringByName(SubSection s, Iterable<String> names) {
@@ -321,7 +322,8 @@
   }
 
   protected List<String> getStringList(SubSection s, String key) {
-    return Arrays.asList(cfg.getStringList(s.section, s.subSection, key));
+    return Collections.unmodifiableList(
+        Arrays.asList(cfg.getStringList(s.section, s.subSection, key)));
   }
 
   public String key() {