HostIndexServlet: Migrate from deprecated SoyMapData/SoyListData Change-Id: I4156a8ce6850105d3e1d6fb57ee7d0bba590737b
diff --git a/java/com/google/gitiles/HostIndexServlet.java b/java/com/google/gitiles/HostIndexServlet.java index 8b8a252..6851688 100644 --- a/java/com/google/gitiles/HostIndexServlet.java +++ b/java/com/google/gitiles/HostIndexServlet.java
@@ -17,12 +17,11 @@ import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; import com.google.gitiles.GitilesRequestFailureException.FailureReason; import com.google.gson.reflect.TypeToken; -import com.google.template.soy.data.SoyListData; -import com.google.template.soy.data.SoyMapData; import com.google.template.soy.data.restricted.NullData; import java.io.IOException; import java.io.Writer; @@ -66,12 +65,15 @@ return descs; } - private SoyMapData toSoyMapData( + private Map<String, Object> toMapData( RepositoryDescription desc, @Nullable String prefix, GitilesView view) { - return new SoyMapData( - "name", stripPrefix(prefix, desc.name), - "description", Strings.nullToEmpty(desc.description), - "url", GitilesView.repositoryIndex().copyFrom(view).setRepositoryName(desc.name).toUrl()); + return ImmutableMap.<String, Object>builder() + .put("name", stripPrefix(prefix, desc.name)) + .put("description", Strings.nullToEmpty(desc.description)) + .put( + "url", + GitilesView.repositoryIndex().copyFrom(view).setRepositoryName(desc.name).toUrl()) + .build(); } @Override @@ -111,10 +113,10 @@ return; } - SoyListData repos = new SoyListData(); + ImmutableList.Builder<Map<String, Object>> repos = ImmutableList.builder(); for (RepositoryDescription desc : descs.values()) { if (prefix == null || desc.name.startsWith(prefix)) { - repos.add(toSoyMapData(desc, prefix, view)); + repos.add(toMapData(desc, prefix, view)); } } @@ -132,11 +134,11 @@ "hostName", hostName, "breadcrumbs", - breadcrumbs != null ? new SoyListData(breadcrumbs) : NullData.INSTANCE, + breadcrumbs != null ? breadcrumbs : NullData.INSTANCE, "prefix", prefix != null ? prefix + '/' : "", "repositories", - repos)); + repos.build())); } @Override
diff --git a/javatests/com/google/gitiles/HostIndexServletTest.java b/javatests/com/google/gitiles/HostIndexServletTest.java index d8332d1..a79ee8c 100644 --- a/javatests/com/google/gitiles/HostIndexServletTest.java +++ b/javatests/com/google/gitiles/HostIndexServletTest.java
@@ -18,9 +18,8 @@ import static com.google.gitiles.TestGitilesUrls.URLS; import static java.nio.charset.StandardCharsets.UTF_8; +import com.google.common.collect.ImmutableList; import com.google.gson.reflect.TypeToken; -import com.google.template.soy.data.SoyListData; -import com.google.template.soy.data.SoyMapData; import com.google.template.soy.data.restricted.NullData; import java.util.Map; import javax.servlet.http.HttpServletResponse; @@ -48,15 +47,16 @@ @Test public void rootHtml() throws Exception { - Map<String, ?> data = buildData("/"); + Map<String, Object> data = buildData("/"); assertThat(data).containsEntry("hostName", URLS.getHostName(null)); assertThat(data).containsEntry("breadcrumbs", NullData.INSTANCE); assertThat(data).containsEntry("prefix", ""); - SoyListData repos = (SoyListData) data.get("repositories"); + ImmutableList<Map<String, Object>> repos = + (ImmutableList<Map<String, Object>>) data.get("repositories"); assertThat(repos).hasSize(1); - SoyMapData ent = (SoyMapData) repos.get(0); + Map<String, Object> ent = repos.get(0); assertThat(ent.get("name").toString()).isEqualTo(NAME); assertThat(ent.get("url").toString()).isEqualTo("/b/" + NAME + "/"); } @@ -67,13 +67,15 @@ assertThat(data).containsEntry("hostName", URLS.getHostName(null) + "/foo"); assertThat(data).containsEntry("prefix", "foo/"); - SoyListData breadcrumbs = (SoyListData) data.get("breadcrumbs"); - assertThat(breadcrumbs.length()).isEqualTo(2); + ImmutableList<Map<String, Object>> breadcrumbs = + (ImmutableList<Map<String, Object>>) data.get("breadcrumbs"); + assertThat(breadcrumbs.size()).isEqualTo(2); - SoyListData repos = (SoyListData) data.get("repositories"); - assertThat(repos.length()).isEqualTo(1); + ImmutableList<Map<String, Object>> repos = + (ImmutableList<Map<String, Object>>) data.get("repositories"); + assertThat(repos.size()).isEqualTo(1); - SoyMapData ent = (SoyMapData) repos.get(0); + Map<String, Object> ent = repos.get(0); assertThat(ent.get("name").toString()).isEqualTo("bar/repo"); assertThat(ent.get("url").toString()).isEqualTo("/b/" + NAME + "/"); } @@ -84,13 +86,15 @@ assertThat(data).containsEntry("hostName", URLS.getHostName(null) + "/foo/bar"); assertThat(data).containsEntry("prefix", "foo/bar/"); - SoyListData breadcrumbs = (SoyListData) data.get("breadcrumbs"); - assertThat(breadcrumbs.length()).isEqualTo(3); + ImmutableList<Map<String, Object>> breadcrumbs = + (ImmutableList<Map<String, Object>>) data.get("breadcrumbs"); + assertThat(breadcrumbs.size()).isEqualTo(3); - SoyListData repos = (SoyListData) data.get("repositories"); - assertThat(repos.length()).isEqualTo(1); + ImmutableList<Map<String, Object>> repos = + (ImmutableList<Map<String, Object>>) data.get("repositories"); + assertThat(repos.size()).isEqualTo(1); - SoyMapData ent = (SoyMapData) repos.get(0); + Map<String, Object> ent = repos.get(0); assertThat(ent.get("name").toString()).isEqualTo("repo"); assertThat(ent.get("url").toString()).isEqualTo("/b/" + NAME + "/"); }
diff --git a/javatests/com/google/gitiles/ServletTest.java b/javatests/com/google/gitiles/ServletTest.java index c642a79..df349f0 100644 --- a/javatests/com/google/gitiles/ServletTest.java +++ b/javatests/com/google/gitiles/ServletTest.java
@@ -94,7 +94,7 @@ return buildHtml(path, true); } - protected Map<String, ?> buildData(String path) throws Exception { + protected Map<String, Object> buildData(String path) throws Exception { // Render the page through Soy to ensure templates are valid, then return // the Soy data for introspection. FakeHttpServletRequest req = FakeHttpServletRequest.newRequest();