Merge branch 'stable-2.16'
* stable-2.16:
Disable inputs in configuration screen for non-owners
Fix REST API calls for projects with '/' in the name
Add configuration menu to the repo-config screen in new UI
Change-Id: I292baaa0dc4946e1f8e646577bd3a4ee8abac48a
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java
index 6a71881..c421479 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ChangeUpdatedListener.java
@@ -14,11 +14,10 @@
package com.googlesource.gerrit.plugins.reviewersbyblame;
+import com.google.gerrit.entities.Change;
+import com.google.gerrit.entities.PatchSet;
+import com.google.gerrit.entities.Project;
import com.google.gerrit.extensions.annotations.PluginName;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.client.PatchSet;
-import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.config.PluginConfig;
@@ -32,11 +31,7 @@
import com.google.gerrit.server.query.change.ChangeData;
import com.google.gerrit.server.util.RequestContext;
import com.google.gerrit.server.util.ThreadLocalRequestContext;
-import com.google.gwtorm.server.OrmException;
-import com.google.gwtorm.server.SchemaFactory;
import com.google.inject.Inject;
-import com.google.inject.Provider;
-import com.google.inject.ProvisionException;
import java.io.IOException;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository;
@@ -54,11 +49,9 @@
private final WorkQueue workQueue;
private final IdentifiedUser.GenericFactory identifiedUserFactory;
private final ThreadLocalRequestContext tl;
- private final SchemaFactory<ReviewDb> schemaFactory;
private final PluginConfigFactory cfg;
private final String pluginName;
private final ChangeData.Factory changeDataFactory;
- private ReviewDb db;
@Inject
ChangeUpdatedListener(
@@ -67,7 +60,6 @@
WorkQueue workQueue,
IdentifiedUser.GenericFactory identifiedUserFactory,
ThreadLocalRequestContext tl,
- SchemaFactory<ReviewDb> schemaFactory,
PluginConfigFactory cfg,
ChangeData.Factory changeDataFactory,
@PluginName String pluginName) {
@@ -76,7 +68,6 @@
this.workQueue = workQueue;
this.identifiedUserFactory = identifiedUserFactory;
this.tl = tl;
- this.schemaFactory = schemaFactory;
this.cfg = cfg;
this.changeDataFactory = changeDataFactory;
this.pluginName = pluginName;
@@ -107,10 +98,9 @@
}
try (Repository git = repoManager.openRepository(projectName);
- RevWalk rw = new RevWalk(git);
- ReviewDb reviewDb = schemaFactory.open()) {
- Change.Id changeId = new Change.Id(e.change.get().number);
- ChangeData cd = changeDataFactory.create(reviewDb, projectName, changeId);
+ RevWalk rw = new RevWalk(git)) {
+ Change.Id changeId = Change.id(e.change.get().number);
+ ChangeData cd = changeDataFactory.create(projectName, changeId);
if (cd == null) {
log.warn(
"Change with id: '{}' on project key: '{}' not found.",
@@ -119,7 +109,7 @@
return;
}
Change change = cd.change();
- PatchSet.Id psId = new PatchSet.Id(changeId, e.patchSet.get().number);
+ PatchSet.Id psId = PatchSet.id(changeId, e.patchSet.get().number);
PatchSet ps = cd.patchSet(psId);
if (ps == null) {
log.warn("Patch set {} not found in change {}.", psId.get(), changeId.get());
@@ -149,36 +139,15 @@
public CurrentUser getUser() {
return identifiedUserFactory.create(change.getOwner());
}
-
- @Override
- public Provider<ReviewDb> getReviewDbProvider() {
- return new Provider<ReviewDb>() {
- @Override
- public ReviewDb get() {
- if (db == null) {
- try {
- db = schemaFactory.open();
- } catch (OrmException e) {
- throw new ProvisionException("Cannot open ReviewDb", e);
- }
- }
- return db;
- }
- };
- }
});
try {
task.run();
} finally {
tl.setContext(old);
- if (db != null) {
- db.close();
- db = null;
- }
}
}
});
- } catch (OrmException | IOException x) {
+ } catch (IOException x) {
log.error(x.getMessage(), x);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java
index e929381..214c3ee 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/reviewersbyblame/ReviewersByBlame.java
@@ -17,13 +17,13 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Ordering;
import com.google.common.collect.Sets;
+import com.google.gerrit.entities.Account;
+import com.google.gerrit.entities.Change;
+import com.google.gerrit.entities.Patch.ChangeType;
+import com.google.gerrit.entities.PatchSet;
import com.google.gerrit.extensions.api.GerritApi;
import com.google.gerrit.extensions.api.changes.AddReviewerInput;
import com.google.gerrit.extensions.api.changes.ReviewInput;
-import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.Change;
-import com.google.gerrit.reviewdb.client.Patch.ChangeType;
-import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.account.AccountState;
import com.google.gerrit.server.account.Emails;
@@ -31,7 +31,6 @@
import com.google.gerrit.server.patch.PatchListCache;
import com.google.gerrit.server.patch.PatchListEntry;
import com.google.gerrit.server.patch.PatchListNotAvailableException;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import java.io.IOException;
@@ -171,7 +170,7 @@
})
.greatestOf(reviewers.entrySet(), this.maxReviewers);
for (Entry<Account, Integer> entry : entries) {
- topReviewers.add(entry.getKey().getId());
+ topReviewers.add(entry.getKey().id());
}
return topReviewers;
}
@@ -191,16 +190,16 @@
try {
Set<Account.Id> ids = emails.getAccountFor(commit.getAuthorIdent().getEmailAddress());
for (Account.Id id : ids) {
- Optional<Account> accountState = accountCache.get(id).map(AccountState::getAccount);
+ Optional<Account> accountState = accountCache.get(id).map(AccountState::account);
if (accountState.isPresent()) {
Account account = accountState.get();
- if (account.isActive() && !change.getOwner().equals(account.getId())) {
+ if (account.isActive() && !change.getOwner().equals(account.id())) {
Integer count = reviewers.get(account);
reviewers.put(account, count == null ? 1 : count.intValue() + 1);
}
}
}
- } catch (IOException | OrmException e) {
+ } catch (IOException e) {
throw new RuntimeException(
"Unable to get account with email: " + commit.getAuthorIdent().getEmailAddress(), e);
}
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md
index c6749c3..e528769 100644
--- a/src/main/resources/Documentation/build.md
+++ b/src/main/resources/Documentation/build.md
@@ -14,7 +14,7 @@
The output is created in
```
- bazel-genfiles/plugins/@PLUGIN@/@PLUGIN@.jar
+ bazel-bin/plugins/@PLUGIN@/@PLUGIN@.jar
```
This project can be imported into the Eclipse IDE.