Merge branch 'stable-2.15'
* stable-2.15:
Upgrade bazlets to latest stable-2.15 to build with 2.15.7 API
Upgrade bazlets to latest stable-2.14 to build with 2.14.17 API
WORKSPACE: Make header comment line space indent consistent
Upgrade bazlets to latest stable-2.15 to build with 2.15.6 API
WORKSPACE: Make commented out local_path line spaces indent consistent
Upgrade bazlets to latest stable-2.14 to build with 2.14.16 API
Align Eclipse compiler settings with core Gerrit's
bazlets: Replace native.git_repository with skylark rule
Format all Java files with google-java-format
Upgrade bazlets to latest stable-2.15 to build with 2.15.5 API
Upgrade commonmark to 0.10.0
Update bazlets to latest stable-2.14 to build with 2.14.15 API
Update bazlets to latest stable-2.15 to build with 2.15.4 API
GitilesWeblinks: Update file's google-java-format
Format all Bazel build files with buildifier
Migrate (i.e. move) `tools/bazel.rc` to `.bazelrc`
Update bazlets to latest stable-2.14 to build with 2.14.14 API
Update bazlets to latest stable-2.14 to build with 2.14.13 API
Update bazlets to latest stable-2.14 to use 2.14.12 API
Update bazlets to latest stable-2.14 to use 2.14.11 API
Update bazlets to latest stable-2.14 to use 2.14.10 API
Update bazlets to latest stable-2.14 and switch to released 2.14.9 API
Harmonize names of external repositories
Build with 2.14.9-SNAPSHOT
Change-Id: I59d49825fda606cc7720d8e4a1bc46d6d186df22
diff --git a/BUILD b/BUILD
index 116cd88..db616d8 100644
--- a/BUILD
+++ b/BUILD
@@ -46,6 +46,7 @@
exports = [
"@autolink//jar",
"@cm-autolink//jar",
+ "@commons-text//jar",
"@commonmark//jar",
"@commons-lang3//jar",
"@gfm-strikethrough//jar",
diff --git a/WORKSPACE b/WORKSPACE
index 6149708..6a2a7f7 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,27 +3,27 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "b54eaed487d37188120da6933b97c571519954ca",
+ commit = "3a53199198db3f49a43b7708c2c3352670393717",
#local_path = "/home/<user>/projects/bazlets",
)
# Snapshot Plugin API
-#load(
-# "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl",
-# "gerrit_api_maven_local",
-#)
-
-# Load snapshot Plugin API
-#gerrit_api_maven_local()
-
-# Release Plugin API
load(
- "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl",
- "gerrit_api",
+ "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl",
+ "gerrit_api_maven_local",
)
+# Load snapshot Plugin API
+gerrit_api_maven_local()
+
+# Release Plugin API
+#load(
+# "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl",
+# "gerrit_api",
+#)
+
# Load release Plugin API
-gerrit_api()
+#gerrit_api()
load("//:external_plugin_deps.bzl", "external_plugin_deps")
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index 85c3a37..3b01943 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -5,8 +5,8 @@
def external_plugin_deps():
maven_jar(
name = "gitiles-servlet",
- artifact = "com.google.gitiles:gitiles-servlet:0.2-5",
- sha1 = "18186bd83a8c52a4a965472fcb9b4ea87862eb35",
+ artifact = "com.google.gitiles:gitiles-servlet:0.2-6",
+ sha1 = "74a3b22c9283adafafa1e388d62f693e5e2fab2b",
repository = GERRIT,
)
@@ -23,6 +23,12 @@
sha1 = "557edd918fd41f9260963583ebf5a61a43a6b423",
)
+ maven_jar(
+ name = "commons-text",
+ artifact = "org.apache.commons:commons-text:1.2",
+ sha1 = "74acdec7237f576c4803fff0c1008ab8a3808b2b",
+ )
+
# commonmark must match the version used in Gitiles
maven_jar(
name = "commonmark",
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 039f78f..49c05a3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/FilteredRepository.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/FilteredRepository.java
@@ -21,8 +21,8 @@
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.git.VisibleRefFilter;
import com.google.gerrit.server.permissions.PermissionBackend;
+import com.google.gerrit.server.permissions.PermissionBackend.RefFilterOptions;
import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.permissions.ProjectPermission;
import com.google.gerrit.server.project.NoSuchProjectException;
@@ -49,7 +49,6 @@
private final Provider<CurrentUser> userProvider;
private final ProjectCache projectCache;
private final GitRepositoryManager repoManager;
- private final VisibleRefFilter.Factory visibleRefFilterFactory;
private final PermissionBackend permissionBackend;
@Inject
@@ -57,12 +56,10 @@
ProjectCache projectCache,
Provider<CurrentUser> userProvider,
GitRepositoryManager repoManager,
- VisibleRefFilter.Factory visibleRefFilterFactory,
PermissionBackend permissionBackend) {
this.userProvider = userProvider;
this.projectCache = projectCache;
this.repoManager = repoManager;
- this.visibleRefFilterFactory = visibleRefFilterFactory;
this.permissionBackend = permissionBackend;
}
@@ -73,11 +70,7 @@
throw new NoSuchProjectException(name);
}
return new FilteredRepository(
- projectState,
- userProvider.get(),
- repoManager.openRepository(name),
- visibleRefFilterFactory,
- permissionBackend);
+ projectState, userProvider.get(), repoManager.openRepository(name), permissionBackend);
}
}
@@ -88,7 +81,6 @@
ProjectState projectState,
CurrentUser user,
Repository delegate,
- VisibleRefFilter.Factory refFilterFactory,
PermissionBackend permissionBackend)
throws PermissionBackendException {
super(toBuilder(delegate));
@@ -106,7 +98,7 @@
this.refdb =
new FilteredRefDatabase(
- delegate.getRefDatabase(), refFilterFactory.create(projectState, delegate));
+ delegate, permissionBackend.user(user).project(projectState.getNameKey()));
}
}
@@ -167,12 +159,12 @@
}
private static class FilteredRefDatabase extends RefDatabase {
- private final RefDatabase delegate;
- private final VisibleRefFilter refFilter;
+ private final Repository git;
+ private final PermissionBackend.ForProject perm;
- private FilteredRefDatabase(RefDatabase delegate, VisibleRefFilter refFilter) {
- this.delegate = delegate;
- this.refFilter = refFilter;
+ private FilteredRefDatabase(Repository git, PermissionBackend.ForProject perm) {
+ this.git = git;
+ this.perm = perm;
}
@Override
@@ -187,7 +179,7 @@
@Override
public boolean isNameConflicting(String name) throws IOException {
- return delegate.isNameConflicting(name);
+ return git.getRefDatabase().isNameConflicting(name);
}
@Override
@@ -202,25 +194,50 @@
@Override
public Ref exactRef(String name) throws IOException {
- Ref ref = delegate.exactRef(name);
+ Ref ref = git.getRefDatabase().exactRef(name);
if (ref == null) {
return null;
}
- return refFilter.filter(ImmutableMap.of(name, ref), true).get(name);
+ try {
+ return perm.filter(
+ ImmutableMap.of(name, ref),
+ git,
+ RefFilterOptions.builder().setFilterTagsSeparately(true).build())
+ .get(name);
+ } catch (PermissionBackendException e) {
+ throw new IOException(e);
+ }
}
@Override
public Ref getRef(String name) throws IOException {
- Ref ref = delegate.getRef(name);
+ Ref ref = git.getRefDatabase().getRef(name);
if (ref == null) {
return null;
}
- return refFilter.filter(ImmutableMap.of(ref.getName(), ref), true).get(ref.getName());
+ try {
+ return perm.filter(
+ ImmutableMap.of(ref.getName(), ref),
+ git,
+ RefFilterOptions.builder().setFilterTagsSeparately(true).build())
+ .get(ref.getName());
+ } catch (PermissionBackendException e) {
+ throw new IOException(e);
+ }
}
@Override
public Map<String, Ref> getRefs(String prefix) throws IOException {
- Map<String, Ref> refs = refFilter.filter(delegate.getRefs(prefix), true);
+ Map<String, Ref> refs;
+ try {
+ refs =
+ perm.filter(
+ git.getRefDatabase().getRefs(prefix),
+ git,
+ RefFilterOptions.builder().setFilterTagsSeparately(true).build());
+ } catch (PermissionBackendException e) {
+ throw new IOException(e);
+ }
Map<String, Ref> result = Maps.newHashMapWithExpectedSize(refs.size());
for (Ref ref : refs.values()) {
// VisibleRefFilter adds the prefix to the keys, re-strip it.
@@ -231,7 +248,7 @@
@Override
public List<Ref> getAdditionalRefs() throws IOException {
- List<Ref> refs = delegate.getAdditionalRefs();
+ List<Ref> refs = git.getRefDatabase().getAdditionalRefs();
Map<String, Ref> result = Maps.newHashMapWithExpectedSize(refs.size());
for (Ref ref : refs) {
result.put(ref.getName(), ref);
@@ -241,7 +258,7 @@
@Override
public Ref peel(Ref ref) throws IOException {
- return delegate.peel(ref);
+ return git.getRefDatabase().peel(ref);
}
}
}
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 3b5550a..3b833ba 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitiles/GerritGitilesAccess.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitiles/GerritGitilesAccess.java
@@ -24,10 +24,10 @@
import com.google.gerrit.server.config.AnonymousCowardName;
import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.permissions.PermissionBackendException;
-import com.google.gerrit.server.project.ListProjects;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectJson;
import com.google.gerrit.server.project.ProjectState;
+import com.google.gerrit.server.restapi.project.ListProjects;
import com.google.gitiles.GitilesAccess;
import com.google.gitiles.GitilesUrls;
import com.google.gitiles.RepositoryDescription;