Merge branch 'stable-3.0' into stable-3.1 * stable-3.0: Bump Bazel version to 2.2.0 Bump required Bazel version to 2.1.0 Upgrade bazlets to latest stable-2.16 to build with 2.16.16 API Documentation: Add missing footer that links to plugin index page Documentation: Refactor to match other plugin documentation Add an empty tools/BUILD file explicitly for Bazel Upgrade bazlets to latest stable-2.16 Upgrade bazlets to latest stable-2.16 Upgrade bazlets to latest stable-2.15 Upgrade bazlets to latest stable-2.14 Change-Id: Iee7393c165edb1029e34ca4742d381731871c300
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/FilteredRepository.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/FilteredRepository.java index e0c7928..58f2b0f 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/FilteredRepository.java +++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/FilteredRepository.java
@@ -17,8 +17,8 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.restapi.AuthException; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.permissions.PermissionBackend; @@ -139,6 +139,11 @@ } @Override + public String getIdentifier() { + return delegate.getIdentifier(); + } + + @Override public void scanForRepoChanges() throws IOException { throw new UnsupportedOperationException(); // Gitiles is read-only. }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GerritGitilesAccess.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GerritGitilesAccess.java index 3b833ba..a9196ef 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GerritGitilesAccess.java +++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GerritGitilesAccess.java
@@ -16,9 +16,9 @@ import com.google.common.collect.Maps; import com.google.gerrit.common.Nullable; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.common.ProjectInfo; import com.google.gerrit.extensions.restapi.BadRequestException; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.config.AnonymousCowardName;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java index d91f831..f1c34c6 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java +++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/HttpModule.java
@@ -20,7 +20,6 @@ import com.google.gitiles.GitilesAccess; import com.google.gitiles.GitilesServlet; import com.google.gitiles.GitilesUrls; -import com.google.gitiles.GitilesView; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Provides; @@ -91,7 +90,7 @@ protected void configureServlets() { // Filter all paths so we can decode escaped entities in the URI filter("/*").through(createPathFilter()); - filter("/*").through(new LoginFilter(userProvider, urls)); + filter("/*").through(new MenuFilter(userProvider, urls)); // make this plugin's classloader the context classloader to prevent // classloader issue when rendering markdown @@ -108,14 +107,8 @@ @Named("gitiles") Config cfg, GitilesUrls urls, GitilesAccess.Factory accessFactory, - RepositoryResolver<HttpServletRequest> resolver, - MenuFilter menuFilter) { - GitilesServlet s = - new GitilesServlet(cfg, null, urls, accessFactory, resolver, null, null, null, null); - for (GitilesView.Type view : GitilesView.Type.values()) { - s.addFilter(view, menuFilter); - } - return s; + RepositoryResolver<HttpServletRequest> resolver) { + return new GitilesServlet(cfg, null, urls, accessFactory, resolver, null, null, null, null); } @Provides
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/LoginFilter.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/LoginFilter.java deleted file mode 100644 index 7009f1a..0000000 --- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/LoginFilter.java +++ /dev/null
@@ -1,93 +0,0 @@ -// Copyright (C) 2015 The Android Open Source Project -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.googlesource.gerrit.plugins.gitiles; - -import com.google.gerrit.extensions.restapi.Url; -import com.google.gerrit.server.CurrentUser; -import com.google.gerrit.server.IdentifiedUser; -import com.google.gitiles.GitilesUrls; -import com.google.inject.Inject; -import com.google.inject.Provider; -import java.io.IOException; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpServletResponseWrapper; - -class LoginFilter implements Filter { - private final Provider<CurrentUser> userProvider; - private final GitilesUrls urls; - - @Inject - LoginFilter(Provider<CurrentUser> userProvider, GitilesUrls urls) { - this.userProvider = userProvider; - this.urls = urls; - } - - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - throws IOException, ServletException { - final HttpServletRequest req = (HttpServletRequest) request; - HttpServletResponseWrapper rsp = - new HttpServletResponseWrapper((HttpServletResponse) response) { - @Override - public void sendError(int sc) throws IOException { - CurrentUser user = userProvider.get(); - if (sc == SC_UNAUTHORIZED && !(user instanceof IdentifiedUser)) { - sendRedirect(getLoginRedirectUrl(req)); - return; - } - super.sendError(sc); - } - - @Override - public void sendError(int sc, String msg) throws IOException { - CurrentUser user = userProvider.get(); - if (sc == SC_UNAUTHORIZED && !(user instanceof IdentifiedUser)) { - sendRedirect(getLoginRedirectUrl(req)); - return; - } - super.sendError(sc, msg); - } - }; - chain.doFilter(request, rsp); - } - - @Override - public void init(FilterConfig filterConfig) throws ServletException {} - - @Override - public void destroy() {} - - private String getLoginRedirectUrl(HttpServletRequest req) { - String baseUrl = urls.getBaseGerritUrl(req); - String loginUrl = baseUrl + "login/"; - String token = req.getRequestURL().toString(); - if (!baseUrl.isEmpty()) { - token = token.substring(baseUrl.length()); - } - - String queryString = req.getQueryString(); - if (queryString != null && !queryString.isEmpty()) { - token = token.concat("?" + queryString); - } - return (loginUrl + Url.encode(token)); - } -}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/MenuFilter.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/MenuFilter.java index 058dd2b..1fd26e2 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/MenuFilter.java +++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/MenuFilter.java
@@ -15,6 +15,7 @@ package com.googlesource.gerrit.plugins.gitiles; import com.google.common.collect.Lists; +import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gitiles.BaseServlet; @@ -52,7 +53,7 @@ entries.add(BaseServlet.menuEntry(((IdentifiedUser) user).getName(), null)); entries.add(BaseServlet.menuEntry("Sign Out", urls.getBaseGerritUrl(req) + "logout")); } else { - entries.add(BaseServlet.menuEntry("Sign In", urls.getBaseGerritUrl(req) + "login")); + entries.add(BaseServlet.menuEntry("Sign In", getLoginRedirectUrl(req))); } BaseServlet.putSoyData(req, "menuEntries", entries); chain.doFilter(request, response); @@ -63,4 +64,19 @@ @Override public void destroy() {} + + private String getLoginRedirectUrl(HttpServletRequest req) { + String baseUrl = urls.getBaseGerritUrl(req); + String loginUrl = baseUrl + "login/"; + String token = req.getRequestURL().toString(); + if (!baseUrl.isEmpty()) { + token = token.substring(baseUrl.length()); + } + + String queryString = req.getQueryString(); + if (queryString != null && !queryString.isEmpty()) { + token = token.concat("?" + queryString); + } + return (loginUrl + Url.encode(token)); + } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitiles/Resolver.java b/src/main/java/com/googlesource/gerrit/plugins/gitiles/Resolver.java index 0731f81..217dafc 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/Resolver.java +++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/Resolver.java
@@ -16,7 +16,7 @@ import static com.google.common.base.Preconditions.checkState; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gerrit.server.project.NoSuchProjectException;