Merge branch 'stable-3.0' * stable-3.0: Bump Bazel version to 2.2.0 Adapt to project cache returning Optional in latest master. Switch to snapshot API so this builds again. Change-Id: I0d41d29035384fa6f5d025728f1d8e1f2b602949
diff --git a/WORKSPACE b/WORKSPACE index ec0ece7..872b0e9 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -3,27 +3,27 @@ load("//:bazlets.bzl", "load_bazlets") load_bazlets( - commit = "96f691ebbf4ef1c46b798e871ed5acd9d844651c", + commit = "f30a992da9fc855dce819875afb59f9dd6f860cd", #local_path = "/home/<user>/projects/bazlets", ) # Release Plugin API -load( - "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", - "gerrit_api", -) - -# Snapshot Plugin API #load( -# "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl", -# "gerrit_api_maven_local", +# "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl", +# "gerrit_api", #) +# Snapshot Plugin API +load( + "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl", + "gerrit_api_maven_local", +) + # Load release Plugin API -gerrit_api() +#gerrit_api() # Load snapshot Plugin API -#gerrit_api_maven_local() +gerrit_api_maven_local() load(":external_plugin_deps.bzl", "external_plugin_deps")
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl index b272d6c..794ea56 100644 --- a/external_plugin_deps.bzl +++ b/external_plugin_deps.bzl
@@ -1,13 +1,13 @@ load("//tools/bzl:maven_jar.bzl", "GERRIT", "MAVEN_CENTRAL", "MAVEN_LOCAL", "maven_jar") -JGIT_VERSION = "5.3.6.201910020505-r" +JGIT_VERSION = "5.5.1.201910021850-r" REPO = MAVEN_CENTRAL def external_plugin_deps(): maven_jar( name = "jgit-http-apache", artifact = "org.eclipse.jgit:org.eclipse.jgit.http.apache:" + JGIT_VERSION, - sha1 = "668c69822b4f54b430dd9880cc2bb13f13aa88d1", + sha1 = "aaf5367ff2cba4174b4165ed0a64dc92cac75871", repository = REPO, unsign = True, exclude = [ @@ -19,7 +19,7 @@ maven_jar( name = "jgit-lfs", artifact = "org.eclipse.jgit:org.eclipse.jgit.lfs:" + JGIT_VERSION, - sha1 = "153e32275cb0ccfd7f6dba89cf58392d42e16c3a", + sha1 = "c37af6b2d28df21942e935753922333c8612cef2", repository = REPO, unsign = True, exclude = [ @@ -31,7 +31,7 @@ maven_jar( name = "jgit-lfs-server", artifact = "org.eclipse.jgit:org.eclipse.jgit.lfs.server:" + JGIT_VERSION, - sha1 = "e37339c77dd00d96269e280d582c742c424b908f", + sha1 = "7df786dfb9843a01e46cbf48ef921c5aac087ca1", repository = REPO, unsign = True, exclude = [
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsGlobalConfig.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsGlobalConfig.java index ebbc81c..3f92417 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsGlobalConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsGlobalConfig.java
@@ -15,6 +15,7 @@ package com.googlesource.gerrit.plugins.lfs; import com.google.common.collect.Maps; +import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.server.project.ProjectResource; @@ -35,7 +36,7 @@ } @Override - public LfsGlobalConfigInfo apply(ProjectResource resource) throws RestApiException { + public Response apply(ProjectResource resource) throws RestApiException { adminView.validate(resource); LfsGlobalConfigInfo info = new LfsGlobalConfigInfo(); @@ -56,6 +57,6 @@ info.namespaces.put(section.getNamespace(), sectionInfo); } } - return info; + return Response.ok(info); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsProjectConfig.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsProjectConfig.java index 07c1d7d..aedfad1 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsProjectConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/GetLfsProjectConfig.java
@@ -14,6 +14,7 @@ package com.googlesource.gerrit.plugins.lfs; +import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gerrit.server.project.ProjectResource; @@ -31,7 +32,7 @@ } @Override - public LfsProjectConfigInfo apply(ProjectResource resource) throws RestApiException { + public Response apply(ProjectResource resource) throws RestApiException { LfsProjectConfigInfo info = new LfsProjectConfigInfo(); LfsProjectConfigSection config = lfsConfigFactory.getProjectsConfig().getForProject(resource.getNameKey()); @@ -41,6 +42,6 @@ info.readOnly = config.isReadOnly(); info.backend = config.getBackend(); } - return info; + return Response.ok(info); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsApiServlet.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsApiServlet.java index 992dada..59d4e97 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsApiServlet.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsApiServlet.java
@@ -22,7 +22,7 @@ import static com.google.gerrit.server.permissions.ProjectPermission.PUSH_AT_LEAST_ONE_REF; import com.google.common.flogger.FluentLogger; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.ProjectUtil; import com.google.gerrit.server.permissions.PermissionBackend; @@ -31,6 +31,7 @@ import com.google.inject.Inject; import com.google.inject.Singleton; import com.googlesource.gerrit.plugins.lfs.auth.LfsAuthUserProvider; +import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.eclipse.jgit.lfs.errors.LfsException; @@ -82,13 +83,14 @@ } String projName = matcher.group(1); Project.NameKey project = Project.nameKey(ProjectUtil.stripGitSuffix(projName)); - ProjectState state = projectCache.get(project); - if (state == null || state.getProject().getState() == HIDDEN) { + Optional<ProjectState> state = projectCache.get(project); + if (!state.isPresent() || state.get().getProject().getState() == HIDDEN) { throw new LfsRepositoryNotFound(project.get()); } - authorizeUser(userProvider.getUser(auth, projName, request.getOperation()), state, request); + authorizeUser( + userProvider.getUser(auth, projName, request.getOperation()), state.get(), request); - if (request.isUpload() && state.getProject().getState() == READ_ONLY) { + if (request.isUpload() && state.get().getProject().getState() == READ_ONLY) { throw new LfsRepositoryReadOnly(project.get()); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsProjectsConfig.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsProjectsConfig.java index ea5e076..3263c1a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsProjectsConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsProjectsConfig.java
@@ -14,12 +14,12 @@ package com.googlesource.gerrit.plugins.lfs; -import static com.google.gerrit.reviewdb.client.RefNames.REFS_CONFIG; +import static com.google.gerrit.entities.RefNames.REFS_CONFIG; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.annotations.PluginName; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.config.AllProjectsName; import com.google.gerrit.server.git.meta.VersionedMetaData; import com.google.gerrit.server.project.ProjectCache;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsRepositoryResolver.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsRepositoryResolver.java index 59cdb13..0d3b705 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsRepositoryResolver.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/LfsRepositoryResolver.java
@@ -16,7 +16,7 @@ import com.google.common.base.Strings; import com.google.common.flogger.FluentLogger; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.inject.Inject; import java.util.Map; import org.eclipse.jgit.lfs.errors.LfsRepositoryNotFound;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/PutLfsGlobalConfig.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/PutLfsGlobalConfig.java index ea4e44e..8a5457a 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/PutLfsGlobalConfig.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/PutLfsGlobalConfig.java
@@ -20,12 +20,13 @@ import static com.googlesource.gerrit.plugins.lfs.LfsProjectConfigSection.KEY_READ_ONLY; import com.google.common.base.Strings; +import com.google.gerrit.entities.Project; import com.google.gerrit.extensions.annotations.PluginName; import com.google.gerrit.extensions.restapi.ResourceConflictException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; +import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.RestModifyView; -import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.git.meta.MetaDataUpdate; import com.google.gerrit.server.project.ProjectResource; import com.google.inject.Inject; @@ -63,7 +64,7 @@ } @Override - public LfsGlobalConfigInfo apply(ProjectResource resource, LfsGlobalConfigInput input) + public Response apply(ProjectResource resource, LfsGlobalConfigInput input) throws RestApiException { adminView.validate(resource); Project.NameKey projectName = resource.getNameKey();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsGetLocksAction.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsGetLocksAction.java index a84d458..48dceea 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsGetLocksAction.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsGetLocksAction.java
@@ -19,8 +19,8 @@ import static com.google.gerrit.server.permissions.ProjectPermission.ACCESS; import com.google.common.base.Strings; +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.permissions.PermissionBackend; import com.google.gerrit.server.permissions.PermissionBackend.ForProject;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksAction.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksAction.java index 32536f7..e8d46c2 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksAction.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksAction.java
@@ -22,8 +22,9 @@ import static org.eclipse.jgit.util.HttpSupport.HDR_AUTHORIZATION; import com.google.common.flogger.FluentLogger; +import com.google.gerrit.entities.Project; +import com.google.gerrit.exceptions.StorageException; 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.ProjectUtil; import com.google.gerrit.server.permissions.PermissionBackend; @@ -34,6 +35,7 @@ import com.googlesource.gerrit.plugins.lfs.auth.LfsAuthUserProvider; import com.googlesource.gerrit.plugins.lfs.locks.LfsLocksHandler.LfsLockExistsException; import java.io.IOException; +import java.util.Optional; import org.eclipse.jgit.lfs.errors.LfsException; import org.eclipse.jgit.lfs.errors.LfsRepositoryNotFound; import org.eclipse.jgit.lfs.errors.LfsUnauthorized; @@ -71,9 +73,12 @@ String name = getProjectName(); ProjectState project = getProject(name); CurrentUser user = getUser(name); - ProjectState state = projectCache.checkedGet(project.getNameKey()); + Optional<ProjectState> state = projectCache.get(project.getNameKey()); + if (!state.isPresent()) { + throw new LfsRepositoryNotFound(project.getNameKey().get()); + } try { - authorizeUser(permissionBackend.user(user).project(state.getNameKey())); + authorizeUser(permissionBackend.user(user).project(state.get().getNameKey())); } catch (AuthException | PermissionBackendException e) { throwUnauthorizedOp(getAction(), project, user); } @@ -84,7 +89,7 @@ context.sendError(SC_NOT_FOUND, e.getMessage()); } catch (LfsLockExistsException e) { context.sendError(SC_CONFLICT, e.error); - } catch (LfsException e) { + } catch (LfsException | StorageException e) { context.sendError(SC_INTERNAL_SERVER_ERROR, e.getMessage()); } } @@ -101,11 +106,11 @@ protected ProjectState getProject(String name) throws LfsRepositoryNotFound { Project.NameKey project = Project.nameKey(ProjectUtil.stripGitSuffix(name)); - ProjectState state = projectCache.get(project); - if (state == null || state.getProject().getState() == HIDDEN) { + Optional<ProjectState> state = projectCache.get(project); + if (!state.isPresent() || state.get().getProject().getState() == HIDDEN) { throw new LfsRepositoryNotFound(project.get()); } - return state; + return state.get(); } protected CurrentUser getUser(String project) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksHandler.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksHandler.java index 1de28f4..8ba263e 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksHandler.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsLocksHandler.java
@@ -18,7 +18,7 @@ import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import com.google.common.flogger.FluentLogger; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.cache.CacheModule; import com.google.inject.Inject;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsProjectLocks.java b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsProjectLocks.java index 4526fa4..b02e089 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsProjectLocks.java +++ b/src/main/java/com/googlesource/gerrit/plugins/lfs/locks/LfsProjectLocks.java
@@ -17,7 +17,7 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.flogger.FluentLogger; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.gerrit.server.CurrentUser; import com.google.inject.Inject; import com.google.inject.assistedinject.Assisted;
diff --git a/src/test/java/com/googlesource/gerrit/plugins/lfs/LfsIT.java b/src/test/java/com/googlesource/gerrit/plugins/lfs/LfsIT.java index c71a83c..a3c77a3 100644 --- a/src/test/java/com/googlesource/gerrit/plugins/lfs/LfsIT.java +++ b/src/test/java/com/googlesource/gerrit/plugins/lfs/LfsIT.java
@@ -16,7 +16,7 @@ import com.google.gerrit.acceptance.LightweightPluginDaemonTest; import com.google.gerrit.acceptance.TestPlugin; -import com.google.gerrit.reviewdb.client.Project; +import com.google.gerrit.entities.Project; import com.google.gerrit.testing.ConfigSuite; import org.eclipse.jgit.lib.Config; import org.junit.Test;