Merge changes from topic 'submodule-subscription-tests-and-fixes-3'
* changes:
SubmoduleOp: Change type of newSubscriptions to Set
Submodule Subscriptions: Remove subscriptions by deleting .gitmodules
diff --git a/Documentation/cmd-plugin-ls.txt b/Documentation/cmd-plugin-ls.txt
index 905c9ab..234ce87 100644
--- a/Documentation/cmd-plugin-ls.txt
+++ b/Documentation/cmd-plugin-ls.txt
@@ -14,9 +14,12 @@
List the installed plugins and show their version and status.
== ACCESS
-* Caller must be a member of the privileged 'Administrators' group.
+* The caller must be a member of a group that is granted the
+ link:access-control.html#capability_viewPlugins[View Plugins]
+ capability or the link:access-control.html#capability_administrateServer[
+ Administrate Server] capability.
* link:config-gerrit.html#plugins.allowRemoteAdmin[plugins.allowRemoteAdmin]
-must be enabled in `$site_path/etc/gerrit.config`.
+ must be enabled in `$site_path/etc/gerrit.config`.
== SCRIPTING
This command is intended to be used in scripts.
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java
index f084b98..aaf6192 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/accounts/AccountIT.java
@@ -67,12 +67,12 @@
String adminUsername = "admin";
List<AccountInfo> result = gApi.accounts()
.suggestAccounts().withQuery(adminUsername).get();
- assertThat(result.size()).is(1);
+ assertThat(result).hasSize(1);
assertThat(result.get(0).username).isEqualTo(adminUsername);
List<AccountInfo> resultShortcutApi = gApi.accounts()
.suggestAccounts(adminUsername).get();
- assertThat(resultShortcutApi.size()).is(result.size());
+ assertThat(resultShortcutApi).hasSize(result.size());
List<AccountInfo> emptyResult = gApi.accounts()
.suggestAccounts("unknown").get();
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
index f87349a..bd01e34 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/change/ChangeIT.java
@@ -60,9 +60,9 @@
assertThat(c.mergeable).isTrue();
assertThat(c.changeId).isEqualTo(r.getChangeId());
assertThat(c.created).isEqualTo(c.updated);
- assertThat(c._number).is(r.getChange().getId().get());
+ assertThat(c._number).isEqualTo(r.getChange().getId().get());
- assertThat(c.owner._accountId).is(admin.getId().get());
+ assertThat(c.owner._accountId).isEqualTo(admin.getId().get());
assertThat(c.owner.name).isNull();
assertThat(c.owner.email).isNull();
assertThat(c.owner.username).isNull();
@@ -128,7 +128,7 @@
.revision(r3.getCommit().name())
.rebase(ri);
PatchSet ps3 = r3.getPatchSet();
- assertThat(ps3.getId().get()).is(2);
+ assertThat(ps3.getId().get()).isEqualTo(2);
// rebase r2 onto r3 (referenced by ref)
ri.base = ps3.getId().toRefName();
@@ -137,7 +137,7 @@
.revision(r2.getCommit().name())
.rebase(ri);
PatchSet ps2 = r2.getPatchSet();
- assertThat(ps2.getId().get()).is(2);
+ assertThat(ps2.getId().get()).isEqualTo(2);
// rebase r1 onto r2 (referenced by commit)
ri.base = ps2.getRevision().get();
@@ -146,7 +146,7 @@
.revision(r1.getCommit().name())
.rebase(ri);
PatchSet ps1 = r1.getPatchSet();
- assertThat(ps1.getId().get()).is(2);
+ assertThat(ps1.getId().get()).isEqualTo(2);
// rebase r1 onto r3 (referenced by change number)
ri.base = String.valueOf(r3.getChange().getId().get());
@@ -154,7 +154,7 @@
.id(r1.getChangeId())
.revision(ps1.getRevision().get())
.rebase(ri);
- assertThat(r1.getPatchSetId().get()).is(3);
+ assertThat(r1.getPatchSetId().get()).isEqualTo(3);
}
@Test(expected = ResourceConflictException.class)
@@ -190,7 +190,7 @@
.id(r.getChangeId())
.addReviewer(in);
- assertThat((Iterable<?>)getReviewers(r.getChangeId()))
+ assertThat(getReviewers(r.getChangeId()))
.containsExactlyElementsIn(ImmutableSet.of(user.id));
}
@@ -206,7 +206,7 @@
.revision(r.getCommit().name())
.submit();
- assertThat((Iterable<?>)getReviewers(r.getChangeId()))
+ assertThat(getReviewers(r.getChangeId()))
.containsExactlyElementsIn(ImmutableSet.of(admin.getId()));
AddReviewerInput in = new AddReviewerInput();
@@ -214,7 +214,7 @@
gApi.changes()
.id(r.getChangeId())
.addReviewer(in);
- assertThat((Iterable<?>)getReviewers(r.getChangeId()))
+ assertThat(getReviewers(r.getChangeId()))
.containsExactlyElementsIn(ImmutableSet.of(admin.getId(), user.id));
}
@@ -293,7 +293,7 @@
PushOneCommit.Result r = createChange();
ChangeInfo result = Iterables.getOnlyElement(query(r.getChangeId()));
assertThat(result.labels).isNull();
- assertThat((Iterable<?>)result.messages).isNull();
+ assertThat(result.messages).isNull();
assertThat(result.revisions).isNull();
assertThat(result.actions).isNull();
}
@@ -307,13 +307,13 @@
.get());
assertThat(Iterables.getOnlyElement(result.labels.keySet()))
.isEqualTo("Code-Review");
- assertThat((Iterable<?>)result.messages).hasSize(1);
+ assertThat(result.messages).hasSize(1);
assertThat(result.actions).isNotEmpty();
RevisionInfo rev = Iterables.getOnlyElement(result.revisions.values());
assertThat(rev._number).isEqualTo(r.getPatchSetId().get());
assertThat(rev.created).isNotNull();
- assertThat(rev.uploader._accountId).is(admin.getId().get());
+ assertThat(rev.uploader._accountId).isEqualTo(admin.getId().get());
assertThat(rev.ref).isEqualTo(r.getPatchSetId().toRefName());
assertThat(rev.actions).isNotEmpty();
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java
index e90b28e..8ed4165 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/group/GroupsIT.java
@@ -387,7 +387,7 @@
}
}).toSortedList(Ordering.natural());
assertThat(expectedGroups.size()).isAtLeast(2);
- assertThat((Iterable<?>) gApi.groups().list().getAsMap().keySet())
+ assertThat(gApi.groups().list().getAsMap().keySet())
.containsExactlyElementsIn(expectedGroups).inOrder();
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java
index 1ebae60..09e6ffe 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/api/revision/RevisionIT.java
@@ -153,10 +153,10 @@
ChangeApi orig = gApi.changes()
.id(project.get() + "~master~" + r.getChangeId());
- assertThat((Iterable<?>)orig.get().messages).hasSize(1);
+ assertThat(orig.get().messages).hasSize(1);
ChangeApi cherry = orig.revision(r.getCommit().name())
.cherryPick(in);
- assertThat((Iterable<?>)orig.get().messages).hasSize(2);
+ assertThat(orig.get().messages).hasSize(2);
String cherryPickedRevision = cherry.get().currentRevision;
String expectedMessage = String.format(
@@ -168,13 +168,13 @@
origIt.next();
assertThat(origIt.next().message).isEqualTo(expectedMessage);
- assertThat((Iterable<?>)cherry.get().messages).hasSize(1);
+ assertThat(cherry.get().messages).hasSize(1);
Iterator<ChangeMessageInfo> cherryIt = cherry.get().messages.iterator();
expectedMessage = "Patch Set 1: Cherry Picked from branch master.";
assertThat(cherryIt.next().message).isEqualTo(expectedMessage);
assertThat(cherry.get().subject).contains(in.message);
- assertThat(cherry.get().topic).isEqualTo("someTopic");
+ assertThat(cherry.get().topic).isEqualTo("someTopic-foo");
cherry.current().review(ReviewInput.approve());
cherry.current().submit();
}
@@ -190,7 +190,7 @@
.revision(r.getCommit().name())
.cherryPick(in)
.get();
- assertThat((Iterable<?>)cherryInfo.messages).hasSize(2);
+ assertThat(cherryInfo.messages).hasSize(2);
Iterator<ChangeMessageInfo> cherryIt = cherryInfo.messages.iterator();
assertThat(cherryIt.next().message).isEqualTo("Uploaded patch set 1.");
assertThat(cherryIt.next().message).isEqualTo("Uploaded patch set 2.");
@@ -228,7 +228,7 @@
in.message = subject;
ChangeApi cherry = orig.revision(r2.getCommit().name()).cherryPick(in);
ChangeInfo cherryInfo = cherry.get();
- assertThat((Iterable<?>)cherryInfo.messages).hasSize(2);
+ assertThat(cherryInfo.messages).hasSize(2);
Iterator<ChangeMessageInfo> cherryIt = cherryInfo.messages.iterator();
assertThat(cherryIt.next().message).isEqualTo("Uploaded patch set 1.");
assertThat(cherryIt.next().message).isEqualTo("Uploaded patch set 2.");
@@ -253,10 +253,10 @@
ChangeApi orig = gApi.changes()
.id(project.get() + "~master~" + r.getChangeId());
- assertThat((Iterable<?>)orig.get().messages).hasSize(1);
+ assertThat(orig.get().messages).hasSize(1);
ChangeApi cherry = orig.revision(r.getCommit().name())
.cherryPick(in);
- assertThat((Iterable<?>)orig.get().messages).hasSize(2);
+ assertThat(orig.get().messages).hasSize(2);
assertThat(cherry.get().subject).contains(in.message);
cherry.current().review(ReviewInput.approve());
@@ -288,7 +288,7 @@
String triplet = project.get() + "~master~" + r.getChangeId();
ChangeApi orig = gApi.changes().id(triplet);
- assertThat((Iterable<?>)orig.get().messages).hasSize(1);
+ assertThat(orig.get().messages).hasSize(1);
try {
orig.revision(r.getCommit().name()).cherryPick(in);
@@ -345,7 +345,7 @@
.current()
.setReviewed(PushOneCommit.FILE_NAME, false);
- assertThat((Iterable<?>)gApi.changes().id(r.getChangeId()).current().reviewed())
+ assertThat(gApi.changes().id(r.getChangeId()).current().reviewed())
.isEmpty();
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java
index 880ad29..2323270 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/AbstractPushForReview.java
@@ -175,7 +175,7 @@
LabelInfo cr = ci.labels.get("Code-Review");
assertThat(cr.all).hasSize(1);
assertThat(cr.all.get(0).name).isEqualTo("Administrator");
- assertThat(cr.all.get(0).value).is(1);
+ assertThat(cr.all.get(0).value).isEqualTo(1);
PushOneCommit push =
pushFactory.create(db, admin.getIdent(), testRepo, PushOneCommit.SUBJECT,
@@ -186,7 +186,7 @@
cr = ci.labels.get("Code-Review");
assertThat(cr.all).hasSize(1);
assertThat(cr.all.get(0).name).isEqualTo("Administrator");
- assertThat(cr.all.get(0).value).is(2);
+ assertThat(cr.all.get(0).value).isEqualTo(2);
}
@Test
@@ -233,7 +233,7 @@
r.assertChange(Change.Status.NEW, null);
Set<String> hashtags = gApi.changes().id(r.getChangeId()).getHashtags();
- assertThat((Iterable<?>)hashtags).containsExactlyElementsIn(expected);
+ assertThat(hashtags).containsExactlyElementsIn(expected);
// specify a single hashtag as option in new patch set
String hashtag2 = "tag2";
@@ -244,7 +244,7 @@
r.assertOkStatus();
expected = ImmutableSet.of(hashtag1, hashtag2);
hashtags = gApi.changes().id(r.getChangeId()).getHashtags();
- assertThat((Iterable<?>)hashtags).containsExactlyElementsIn(expected);
+ assertThat(hashtags).containsExactlyElementsIn(expected);
}
@Test
@@ -263,7 +263,7 @@
r.assertChange(Change.Status.NEW, null);
Set<String> hashtags = gApi.changes().id(r.getChangeId()).getHashtags();
- assertThat((Iterable<?>)hashtags).containsExactlyElementsIn(expected);
+ assertThat(hashtags).containsExactlyElementsIn(expected);
// specify multiple hashtags as options in new patch set
String hashtag3 = "tag3";
@@ -275,7 +275,7 @@
r.assertOkStatus();
expected = ImmutableSet.of(hashtag1, hashtag2, hashtag3, hashtag4);
hashtags = gApi.changes().id(r.getChangeId()).getHashtags();
- assertThat((Iterable<?>)hashtags).containsExactlyElementsIn(expected);
+ assertThat(hashtags).containsExactlyElementsIn(expected);
}
@Test
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java
index 207c6b1..5066e66 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/SubmitOnPushIT.java
@@ -253,7 +253,7 @@
try (Repository r = repoManager.openRepository(project);
RevWalk rw = new RevWalk(r)) {
RevCommit c = rw.parseCommit(r.getRef(branch).getObjectId());
- assertThat(c.getParentCount()).is(2);
+ assertThat(c.getParentCount()).isEqualTo(2);
assertThat(c.getShortMessage()).isEqualTo("Merge \"" + subject + "\"");
assertThat(c.getAuthorIdent().getEmailAddress()).isEqualTo(admin.email);
assertThat(c.getCommitterIdent().getEmailAddress()).isEqualTo(
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java
index f52effd..0b07b87 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/git/VisibleRefFilterIT.java
@@ -280,7 +280,7 @@
}
Splitter s = Splitter.on(CharMatcher.WHITESPACE).omitEmptyStrings();
- assertThat(filtered).containsSequence(
- Ordering.natural().sortedCopy(s.split(out)));
+ assertThat(filtered).containsExactlyElementsIn(
+ Ordering.natural().sortedCopy(s.split(out))).inOrder();
}
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
index e6c5e97..a07bde7 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/AbstractSubmit.java
@@ -152,8 +152,8 @@
private void assertSubmitter(PushOneCommit.Result change) throws Exception {
ChangeInfo info = get(change.getChangeId(), ListChangesOption.MESSAGES);
- assertThat((Iterable<?>)info.messages).isNotNull();
- assertThat((Iterable<?>)info.messages).hasSize(3);
+ assertThat(info.messages).isNotNull();
+ assertThat(info.messages).hasSize(3);
if (getSubmitType() == SubmitType.CHERRY_PICK) {
assertThat(Iterables.getLast(info.messages).message).startsWith(
"Change has been successfully cherry-picked as ");
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java
index 3c76355..a56a7f2 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ChangeMessagesIT.java
@@ -73,15 +73,15 @@
String changeId = createChange().getChangeId();
postMessage(changeId, "Some nits need to be fixed.");
ChangeInfo c = info(changeId);
- assertThat((Iterable<?>)c.messages).isNull();
+ assertThat(c.messages).isNull();
}
@Test
public void defaultMessage() throws Exception {
String changeId = createChange().getChangeId();
ChangeInfo c = get(changeId);
- assertThat((Iterable<?>)c.messages).isNotNull();
- assertThat((Iterable<?>)c.messages).hasSize(1);
+ assertThat(c.messages).isNotNull();
+ assertThat(c.messages).hasSize(1);
assertThat(c.messages.iterator().next().message)
.isEqualTo("Uploaded patch set 1.");
}
@@ -94,8 +94,8 @@
String secondMessage = "I like this feature.";
postMessage(changeId, secondMessage);
ChangeInfo c = get(changeId);
- assertThat((Iterable<?>)c.messages).isNotNull();
- assertThat((Iterable<?>)c.messages).hasSize(3);
+ assertThat(c.messages).isNotNull();
+ assertThat(c.messages).hasSize(3);
Iterator<ChangeMessageInfo> it = c.messages.iterator();
assertThat(it.next().message).isEqualTo("Uploaded patch set 1.");
assertMessage(firstMessage, it.next().message);
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/DeleteDraftPatchSetIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/DeleteDraftPatchSetIT.java
index 74ea586..23fa83f 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/DeleteDraftPatchSetIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/DeleteDraftPatchSetIT.java
@@ -71,7 +71,7 @@
assertThat(c.status).isEqualTo(ChangeStatus.DRAFT);
RestResponse r = deletePatchSet(changeId, ps, adminSession);
assertThat(r.getStatusCode()).isEqualTo(HttpStatus.SC_NO_CONTENT);
- assertThat(getChange(changeId).patches().size()).isEqualTo(1);
+ assertThat(getChange(changeId).patches()).hasSize(1);
ps = getCurrentPatchSet(changeId);
r = deletePatchSet(changeId, ps, adminSession);
assertThat(r.getStatusCode()).isEqualTo(HttpStatus.SC_NO_CONTENT);
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/HashtagsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/HashtagsIT.java
index 5f46312..6ef53ff 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/HashtagsIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/HashtagsIT.java
@@ -196,7 +196,7 @@
? extends IterableSubject<?, String, Iterable<String>>,
String, Iterable<String>>
assertThatGet(PushOneCommit.Result r) throws Exception {
- return assertThat((Iterable<String>) gApi.changes()
+ return assertThat(gApi.changes()
.id(r.getChange().getId().get())
.getHashtags());
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ListChangesOptionsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ListChangesOptionsIT.java
index 63e5627..3728a51 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ListChangesOptionsIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/change/ListChangesOptionsIT.java
@@ -68,7 +68,7 @@
public void currentRevision() throws Exception {
ChangeInfo c = get(changeId, CURRENT_REVISION);
assertThat(c.currentRevision).isEqualTo(commitId(2));
- assertThat((Iterable<?>)c.revisions.keySet()).containsAllIn(
+ assertThat(c.revisions.keySet()).containsAllIn(
ImmutableSet.of(commitId(2)));
assertThat(c.revisions.get(commitId(2))._number).isEqualTo(3);
}
@@ -78,7 +78,7 @@
ChangeInfo c = get(changeId, CURRENT_REVISION, MESSAGES);
assertThat(c.revisions).hasSize(1);
assertThat(c.currentRevision).isEqualTo(commitId(2));
- assertThat((Iterable<?>)c.revisions.keySet()).containsAllIn(
+ assertThat(c.revisions.keySet()).containsAllIn(
ImmutableSet.of(commitId(2)));
assertThat(c.revisions.get(commitId(2))._number).isEqualTo(3);
}
@@ -87,7 +87,7 @@
public void allRevisions() throws Exception {
ChangeInfo c = get(changeId, ALL_REVISIONS);
assertThat(c.currentRevision).isEqualTo(commitId(2));
- assertThat((Iterable<?>)c.revisions.keySet()).containsAllIn(
+ assertThat(c.revisions.keySet()).containsAllIn(
ImmutableSet.of(commitId(0), commitId(1), commitId(2)));
assertThat(c.revisions.get(commitId(0))._number).isEqualTo(1);
assertThat(c.revisions.get(commitId(1))._number).isEqualTo(2);
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ProjectAssert.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ProjectAssert.java
index 504f5d7..db6df95 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ProjectAssert.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/ProjectAssert.java
@@ -75,6 +75,6 @@
for (AccountGroup.UUID g : state.getOwners()) {
assertThat(expectedOwners.remove(g)).isTrue();
}
- assertThat((Iterable<?>)expectedOwners).isEmpty();
+ assertThat(expectedOwners).isEmpty();
}
}
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java
index 91e9403..4f9f190 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/GarbageCollectionIT.java
@@ -93,7 +93,7 @@
GarbageCollectionResult result = garbageCollectionFactory.create().run(
Arrays.asList(allProjects, project, project2, project3));
assertThat(result.hasErrors()).isTrue();
- assertThat(result.getErrors().size()).isEqualTo(1);
+ assertThat(result.getErrors()).hasSize(1);
GarbageCollectionResult.Error error = result.getErrors().get(0);
assertThat(error.getType()).isEqualTo(
GarbageCollectionResult.Error.Type.GC_ALREADY_SCHEDULED);
diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java
index ae0c8c1..7fb99b6 100644
--- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java
+++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/ssh/JschVerifyFalseBugIT.java
@@ -62,6 +62,6 @@
for (Future<Void> future : futures) {
future.get();
}
- assertThat(futures.size()).isEqualTo(threads);
+ assertThat(futures).hasSize(threads);
}
}
diff --git a/gerrit-cache-h2/src/main/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java b/gerrit-cache-h2/src/main/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java
index 1aaebf5..123bb9a 100644
--- a/gerrit-cache-h2/src/main/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java
+++ b/gerrit-cache-h2/src/main/java/com/google/gerrit/server/cache/h2/H2CacheImpl.java
@@ -388,7 +388,7 @@
return b;
}
} catch (SQLException e) {
- log.warn("Cannot build BloomFilter for " + url, e);
+ log.warn("Cannot build BloomFilter for " + url + ": " + e.getMessage());
c = close(c);
return null;
} finally {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/MessageOfTheDayBar.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/MessageOfTheDayBar.ui.xml
index 5f7bebf..36d08b1 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/MessageOfTheDayBar.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/MessageOfTheDayBar.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:c='urn:import:com.google.gwtexpui.globalkey.client'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false">
+ <ui:style gss='false'>
.popup {
position: fixed;
top: 5px;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/UserPopupPanel.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/UserPopupPanel.ui.xml
index ec50b30..8f5073d 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/UserPopupPanel.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/UserPopupPanel.ui.xml
@@ -19,7 +19,7 @@
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:gerrit='urn:import:com.google.gerrit.client'
xmlns:u='urn:import:com.google.gerrit.client.ui'>
- <ui:style gss="false">
+ <ui:style gss='false'>
.panel {
padding: 8px;
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.ui.xml
index cc80712..52f3588 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AccessSectionEditor.ui.xml
@@ -24,7 +24,7 @@
ui:generateLocales='default,en'
>
<ui:with field='res' type='com.google.gerrit.client.admin.AdminResources'/>
-<ui:style gss="false">
+<ui:style gss='false'>
@eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
@eval trimColor com.google.gerrit.client.Gerrit.getTheme().trimColor;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionEditor.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionEditor.ui.xml
index f9b445b..00c41dc 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionEditor.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionEditor.ui.xml
@@ -24,7 +24,7 @@
ui:generateLocales='default,en'
>
<ui:with field='res' type='com.google.gerrit.client.admin.AdminResources'/>
-<ui:style gss="false">
+<ui:style gss='false'>
@eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
@eval backgroundColor com.google.gerrit.client.Gerrit.getTheme().backgroundColor;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionRuleEditor.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionRuleEditor.ui.xml
index 4150eb5..644fef4 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionRuleEditor.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/PermissionRuleEditor.ui.xml
@@ -25,7 +25,7 @@
ui:generateLocales='default,en'
>
<ui:with field='res' type='com.google.gerrit.client.admin.AdminResources'/>
-<ui:style gss="false">
+<ui:style gss='false'>
@eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
.panel {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessEditor.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessEditor.ui.xml
index f319637..0db4779 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessEditor.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessEditor.ui.xml
@@ -22,7 +22,7 @@
ui:generateKeys='com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator'
ui:generateLocales='default,en'
>
-<ui:style gss="false">
+<ui:style gss='false'>
.inheritsFrom {
margin-bottom: 0.5em;
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.ui.xml
index 519d0e2..724c7a1 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ProjectAccessScreen.ui.xml
@@ -23,7 +23,7 @@
ui:generateKeys='com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator'
ui:generateLocales='default,en'
>
-<ui:style gss="false">
+<ui:style gss='false'>
@external .gwt-TextArea;
.commitMessage {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ValueEditor.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ValueEditor.ui.xml
index 21fac46..137ad2b 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ValueEditor.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/ValueEditor.ui.xml
@@ -19,7 +19,7 @@
xmlns:g='urn:import:com.google.gwt.user.client.ui'
>
<ui:with field='ico' type='com.google.gerrit.client.GerritResources'/>
-<ui:style gss="false">
+<ui:style gss='false'>
.panel {
position: relative;
white-space: nowrap;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ActionMessageBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ActionMessageBox.ui.xml
index 3b05290..a9e1bb3 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ActionMessageBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ActionMessageBox.ui.xml
@@ -19,7 +19,7 @@
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:c='urn:import:com.google.gwtexpui.globalkey.client'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false" type='com.google.gerrit.client.change.ActionMessageBox.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.change.ActionMessageBox.Style'>
@eval trimColor com.google.gerrit.client.Gerrit.getTheme().trimColor;
.popup { background-color: trimColor; }
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml
index 40d732a..bc5a321 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Actions.ui.xml
@@ -17,7 +17,7 @@
<ui:UiBinder
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style>
+ <ui:style gss='false'>
@def BUTTON_HEIGHT 14px;
#change_actions {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.ui.xml
index d8236e6..c3539bc 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/AddFileBox.ui.xml
@@ -19,7 +19,7 @@
xmlns:u='urn:import:com.google.gerrit.client.ui'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style>
+ <ui:style gss='false'>
.cancel { float: right; }
</ui:style>
<g:HTMLPanel>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
index d153771..6d23793 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.java
@@ -113,6 +113,7 @@
String label_need();
String replyBox();
String selected();
+ String highlight();
String hashtagName();
}
@@ -131,6 +132,7 @@
private String base;
private String revision;
private ChangeInfo changeInfo;
+ private boolean hasDraftComments;
private CommentLinkProcessor commentLinkProcessor;
private EditInfo edit;
@@ -300,6 +302,9 @@
.openDiv()
.append(Gerrit.getConfig().getReplyLabel())
.closeDiv());
+ if (hasDraftComments) {
+ reply.setStyleName(style.highlight());
+ }
reply.setVisible(true);
}
}
@@ -932,6 +937,7 @@
@Override
public void onSuccess(NativeMap<JsArray<CommentInfo>> result) {
r.add(result);
+ hasDraftComments = !result.isEmpty();
}
@Override
@@ -1128,13 +1134,12 @@
private void renderRevisionInfo(ChangeInfo info,
NativeMap<ActionInfo> actionMap) {
RevisionInfo revisionInfo = info.revision(revision);
- boolean current = info.status().isOpen()
- && revision.equals(info.current_revision())
+ boolean current = revision.equals(info.current_revision())
&& !revisionInfo.is_edit();
if (revisionInfo.is_edit()) {
statusText.setInnerText(Util.C.changeEdit());
- } else if (!current && info.status() == Change.Status.NEW) {
+ } else if (!current) {
statusText.setInnerText(Util.C.notCurrent());
labels.setVisible(false);
} else {
@@ -1144,12 +1149,12 @@
initRevisionsAction(info, revision, actionMap);
if (Gerrit.isSignedIn()) {
- replyAction = new ReplyAction(info, revision,
+ replyAction = new ReplyAction(info, revision, hasDraftComments,
style, commentLinkProcessor, reply, quickApprove);
}
history.set(commentLinkProcessor, replyAction, changeId, info);
- if (current) {
+ if (current && info.status().isOpen()) {
quickApprove.set(info, revision, replyAction);
loadSubmitType(info.status(), isSubmittable(info));
} else {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.ui.xml
index 3f18522..830369d 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen.ui.xml
@@ -21,7 +21,7 @@
xmlns:x='urn:import:com.google.gerrit.client.ui'>
<ui:with field='ico' type='com.google.gerrit.client.GerritResources'/>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false" type='com.google.gerrit.client.change.ChangeScreen.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.change.ChangeScreen.Style'>
@eval textColor com.google.gerrit.client.Gerrit.getTheme().textColor;
@eval trimColor com.google.gerrit.client.Gerrit.getTheme().trimColor;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml
index 25671a9..5f476be 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/CommitBox.ui.xml
@@ -21,7 +21,7 @@
xmlns:clippy='urn:import:com.google.gwtexpui.clippy.client'>
<ui:with field='ico' type='com.google.gerrit.client.GerritResources'/>
<ui:image field="toggle" src="moreLess.png"/>
- <ui:style gss="false" type='com.google.gerrit.client.change.CommitBox.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.change.CommitBox.Style'>
@eval trimColor com.google.gerrit.client.Gerrit.getTheme().trimColor;
.collapsed .scroll { height: 250px }
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DeleteFileBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DeleteFileBox.ui.xml
index b51fdd7..9e79f752 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DeleteFileBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/DeleteFileBox.ui.xml
@@ -19,7 +19,7 @@
xmlns:u='urn:import:com.google.gerrit.client.ui'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
.cancel { float: right; }
</ui:style>
<g:HTMLPanel>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileComments.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileComments.ui.xml
index 74822b0..e463e95 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileComments.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/FileComments.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:c='urn:import:com.google.gerrit.client.ui'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false">
+ <ui:style gss='false'>
.box {
}
.path {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Hashtags.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Hashtags.ui.xml
index fbf0645..ba4d6cc 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Hashtags.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Hashtags.ui.xml
@@ -19,7 +19,7 @@
xmlns:c='urn:import:com.google.gwtexpui.globalkey.client'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
button.openAdd {
margin: 3px 3px 0 0;
float: right;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/IncludedInBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/IncludedInBox.ui.xml
index 88ec53f..e59420c 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/IncludedInBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/IncludedInBox.ui.xml
@@ -17,7 +17,7 @@
<ui:UiBinder
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false" type='com.google.gerrit.client.change.IncludedInBox.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.change.IncludedInBox.Style'>
.includedInBox {
min-width: 300px;
max-width: 580px;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/LineComment.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/LineComment.ui.xml
index 3a7f375..4926a07 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/LineComment.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/LineComment.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:c='urn:import:com.google.gerrit.client.ui'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false">
+ <ui:style gss='false'>
.box {
position: relative;
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Message.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Message.ui.xml
index def9a5a..e362c07 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Message.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Message.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:c='urn:import:com.google.gerrit.client'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false" type='com.google.gerrit.client.change.Message.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.change.Message.Style'>
.messageBox {
position: relative;
width: 1168px;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.ui.xml
index 84d6d7d..7537aa4 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/PatchSetsBox.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false" type='com.google.gerrit.client.change.PatchSetsBox.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.change.PatchSetsBox.Style'>
@eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
.revisionBox {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RenameFileBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RenameFileBox.ui.xml
index 32d5168..17e8797 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RenameFileBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/RenameFileBox.ui.xml
@@ -20,7 +20,7 @@
xmlns:u='urn:import:com.google.gerrit.client.ui'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
.cancel { float: right; }
</ui:style>
<g:HTMLPanel>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyAction.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyAction.java
index 6e40979..326ed37 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyAction.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyAction.java
@@ -33,6 +33,7 @@
class ReplyAction {
private final PatchSet.Id psId;
private final String revision;
+ private final boolean hasDraftComments;
private final ChangeScreen.Style style;
private final CommentLinkProcessor clp;
private final Widget replyButton;
@@ -47,6 +48,7 @@
ReplyAction(
ChangeInfo info,
String revision,
+ boolean hasDraftComments,
ChangeScreen.Style style,
CommentLinkProcessor clp,
Widget replyButton,
@@ -55,6 +57,7 @@
info.legacy_id(),
info.revisions().get(revision)._number());
this.revision = revision;
+ this.hasDraftComments = hasDraftComments;
this.style = style;
this.clp = clp;
this.replyButton = replyButton;
@@ -111,11 +114,15 @@
public void onClose(CloseEvent<PopupPanel> event) {
if (popup == p) {
popup = null;
+ if (hasDraftComments || replyBox.hasMessage()) {
+ replyButton.setStyleName(style.highlight());
+ }
}
}
});
p.add(replyBox);
Window.scrollTo(0, 0);
+ replyButton.removeStyleName(style.highlight());
p.showRelativeTo(replyButton);
GlobalKey.dialog(p);
popup = p;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java
index f9054fe..f67860e 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.java
@@ -180,6 +180,10 @@
postReview();
}
+ boolean hasMessage() {
+ return !message.getText().trim().isEmpty();
+ }
+
private void postReview() {
in.message(message.getText().trim());
in.prePost();
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.ui.xml
index 2fd2109..52f6b6a 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ReplyBox.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false" type='com.google.gerrit.client.change.ReplyBox.Styles'>
+ <ui:style gss='false' type='com.google.gerrit.client.change.ReplyBox.Styles'>
.replyBox {
}
.label_name {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.ui.xml
index 06dfaf5..22e35e2 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Reviewers.ui.xml
@@ -20,7 +20,7 @@
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:u='urn:import:com.google.gerrit.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
button.openAdd {
margin: 3px 3px 0 0;
float: right;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Topic.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Topic.ui.xml
index 3e20b88..e7e24b4 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Topic.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/Topic.ui.xml
@@ -21,7 +21,7 @@
xmlns:x='urn:import:com.google.gerrit.client.ui'>
<ui:with field='ico' type='com.google.gerrit.client.GerritResources'/>
<ui:with field='res' type='com.google.gerrit.client.change.Resources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
.show { cursor: pointer; }
.edit, .cancel { float: right; }
</ui:style>
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/UpdateAvailableBar.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/UpdateAvailableBar.ui.xml
index 57c1a77..1d5592b 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/UpdateAvailableBar.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/UpdateAvailableBar.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:c='urn:import:com.google.gwtexpui.globalkey.client'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false">
+ <ui:style gss='false'>
.popup {
position: fixed;
bottom: 0;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml
index 4d8c798..c90db3e 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DiffTable.ui.xml
@@ -17,7 +17,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:d='urn:import:com.google.gerrit.client.diff'>
- <ui:style gss="false" type='com.google.gerrit.client.diff.DiffTable.DiffTableStyle'>
+ <ui:style gss='false' type='com.google.gerrit.client.diff.DiffTable.DiffTableStyle'>
@external .CodeMirror, .CodeMirror-selectedtext;
@external .CodeMirror-linenumber;
@external .CodeMirror-overlayscroll-vertical, .CodeMirror-scroll;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DraftBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DraftBox.ui.xml
index 4d05381..a363c06 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DraftBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/DraftBox.ui.xml
@@ -20,7 +20,7 @@
xmlns:e='urn:import:com.google.gwtexpui.globalkey.client'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.diff.Resources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
.draft {
width: 45px;
text-align: center;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/Header.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/Header.ui.xml
index bd9b1b6..f13c9a3 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/Header.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/Header.ui.xml
@@ -20,7 +20,7 @@
xmlns:x='urn:import:com.google.gerrit.client.ui'>
<ui:with field='ico' type='com.google.gerrit.client.GerritResources'/>
<ui:with field='res' type='com.google.gerrit.client.diff.Resources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
.header {
position: relative;
height: 16px;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/InsertCommentBubble.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/InsertCommentBubble.ui.xml
index 5c84c93..6a18c4d 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/InsertCommentBubble.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/InsertCommentBubble.ui.xml
@@ -18,7 +18,7 @@
xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.GerritResources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
.bubble {
z-index: 150;
white-space: nowrap;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PatchSetSelectBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PatchSetSelectBox.ui.xml
index cda728f..6e526ec 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PatchSetSelectBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PatchSetSelectBox.ui.xml
@@ -20,7 +20,7 @@
<ui:with field='res' type='com.google.gerrit.client.GerritResources'/>
<ui:with field='patchConstants'
type='com.google.gerrit.client.patches.PatchConstants'/>
- <ui:style gss="false" type='com.google.gerrit.client.diff.PatchSetSelectBox.BoxStyle'>
+ <ui:style gss='false' type='com.google.gerrit.client.diff.PatchSetSelectBox.BoxStyle'>
@eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
@eval trimColor com.google.gerrit.client.Gerrit.getTheme().trimColor;
.table {
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml
index edd554b..e011091 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PreferencesBox.ui.xml
@@ -17,7 +17,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:x='urn:import:com.google.gerrit.client.ui'>
- <ui:style gss="false" type='com.google.gerrit.client.diff.PreferencesBox.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.diff.PreferencesBox.Style'>
@external .gwt-TextBox;
@external .gwt-ToggleButton .html-face;
@external .gwt-ToggleButton-up;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PublishedBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PublishedBox.ui.xml
index b1cde7b..46b76ca 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PublishedBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/PublishedBox.ui.xml
@@ -19,7 +19,7 @@
xmlns:c='urn:import:com.google.gerrit.client'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.diff.Resources'/>
- <ui:style gss="false" type='com.google.gerrit.client.diff.PublishedBox.Style'>
+ <ui:style gss='false' type='com.google.gerrit.client.diff.PublishedBox.Style'>
.avatar {
position: absolute;
width: 26px;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.ui.xml
index 4f1a3c5..a4c2eb9 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SideBySide.ui.xml
@@ -17,7 +17,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'
xmlns:d='urn:import:com.google.gerrit.client.diff'>
- <ui:style gss="false">
+ <ui:style gss='false'>
.sbs {
margin-left: -5px;
margin-right: -5px;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.ui.xml
index 4d7b133..bf3c425 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/diff/SkipBar.ui.xml
@@ -16,7 +16,7 @@
-->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false" type='com.google.gerrit.client.diff.SkipBar.SkipBarStyle'>
+ <ui:style gss='false' type='com.google.gerrit.client.diff.SkipBar.SkipBarStyle'>
.skipBar {
background-color: #def;
height: 1.3em;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml
index 9458f50..f68d14a 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/editor/EditScreen.ui.xml
@@ -16,7 +16,7 @@
-->
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
- <ui:style gss="false">
+ <ui:style gss='false'>
.header {
position: relative;
height: 16px;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/CommitMessageBlock.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/CommitMessageBlock.ui.xml
index 37d3fb7..f1bf3de 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/CommitMessageBlock.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/CommitMessageBlock.ui.xml
@@ -20,7 +20,7 @@
<ui:with field='res' type='com.google.gerrit.client.GerritResources'/>
- <ui:style gss="false">
+ <ui:style gss='false'>
@eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
@eval trimColor com.google.gerrit.client.Gerrit.getTheme().trimColor;
@eval backgroundColor com.google.gerrit.client.Gerrit.getTheme().backgroundColor;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScriptSettingsPanel.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScriptSettingsPanel.ui.xml
index be82f66..5164302 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScriptSettingsPanel.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchScriptSettingsPanel.ui.xml
@@ -22,7 +22,7 @@
ui:generateKeys='com.google.gwt.i18n.rebind.keygen.MD5KeyGenerator'
ui:generateLocales='default,en'
>
-<ui:style gss="false">
+<ui:style gss='false'>
@external .gwt-TextBox;
@external .gwt-ListBox;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchSetSelectBox.ui.xml b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchSetSelectBox.ui.xml
index bfcf2f6..8977876 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchSetSelectBox.ui.xml
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/patches/PatchSetSelectBox.ui.xml
@@ -18,7 +18,7 @@
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<ui:with field='res' type='com.google.gerrit.client.GerritResources'/>
- <ui:style gss="false" type='com.google.gerrit.client.patches.PatchSetSelectBox.BoxStyle'>
+ <ui:style gss='false' type='com.google.gerrit.client.patches.PatchSetSelectBox.BoxStyle'>
@eval selectionColor com.google.gerrit.client.Gerrit.getTheme().selectionColor;
@eval backgroundColor com.google.gerrit.client.Gerrit.getTheme().backgroundColor;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/projects/BranchInfo.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/projects/BranchInfo.java
index 6c1a841..ea3d8e3 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/projects/BranchInfo.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/projects/BranchInfo.java
@@ -17,15 +17,13 @@
import com.google.gerrit.client.WebLinkInfo;
import com.google.gerrit.client.actions.ActionInfo;
import com.google.gerrit.client.rpc.NativeMap;
-import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArray;
public class BranchInfo extends JavaScriptObject {
public final String getShortName() {
- return ref().startsWith(Branch.R_HEADS)
- ? ref().substring(Branch.R_HEADS.length())
- : ref();
+ return RefNames.shortName(ref());
}
public final native String ref() /*-{ return this.ref; }-*/;
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/BranchLink.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/BranchLink.java
index c9a0590..6af4b78 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/BranchLink.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/BranchLink.java
@@ -17,9 +17,9 @@
import com.google.gerrit.client.Gerrit;
import com.google.gerrit.client.changes.QueryScreen;
import com.google.gerrit.common.PageLinks;
-import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Project;
+import com.google.gerrit.reviewdb.client.RefNames;
/** Link to the open changes of a project. */
public class BranchLink extends InlineHyperlink {
@@ -61,10 +61,10 @@
String branch, String topic) {
String query = PageLinks.projectQuery(project, status);
- if (branch.startsWith(Branch.R_REFS)) {
- if (branch.startsWith(Branch.R_HEADS)) {
+ if (branch.startsWith(RefNames.REFS)) {
+ if (branch.startsWith(RefNames.REFS_HEADS)) {
query += " " + PageLinks.op("branch", //
- branch.substring(Branch.R_HEADS.length()));
+ branch.substring(RefNames.REFS_HEADS.length()));
} else {
query += " " + PageLinks.op("ref", branch);
}
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/CreateChangeDialog.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/CreateChangeDialog.java
index 6ff92e6..a2b4aa8 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/CreateChangeDialog.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/CreateChangeDialog.java
@@ -19,7 +19,6 @@
import com.google.gerrit.client.projects.ProjectApi;
import com.google.gerrit.client.rpc.GerritCallback;
import com.google.gerrit.client.rpc.Natives;
-import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gwt.core.client.JsArray;
import com.google.gwt.user.client.ui.FlowPanel;
@@ -91,10 +90,7 @@
@Override
public String getDisplayString() {
- if (branch.ref().startsWith(Branch.R_HEADS)) {
- return branch.ref().substring(Branch.R_HEADS.length());
- }
- return branch.ref();
+ return branch.getShortName();
}
@Override
diff --git a/gerrit-openid/src/main/java/com/google/gerrit/httpd/auth/openid/OAuthOverOpenIDLogoutServlet.java b/gerrit-openid/src/main/java/com/google/gerrit/httpd/auth/openid/OAuthOverOpenIDLogoutServlet.java
index 9dbff03..02f428e 100644
--- a/gerrit-openid/src/main/java/com/google/gerrit/httpd/auth/openid/OAuthOverOpenIDLogoutServlet.java
+++ b/gerrit-openid/src/main/java/com/google/gerrit/httpd/auth/openid/OAuthOverOpenIDLogoutServlet.java
@@ -50,6 +50,8 @@
protected void doLogout(HttpServletRequest req, HttpServletResponse rsp)
throws IOException {
super.doLogout(req, rsp);
- oauthSession.get().logout();
+ if (req.getSession(false) != null) {
+ oauthSession.get().logout();
+ }
}
}
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
index 00a1ade..5b7b2cf 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Daemon.java
@@ -54,6 +54,7 @@
import com.google.gerrit.server.config.RestCacheAdminModule;
import com.google.gerrit.server.contact.ContactStoreModule;
import com.google.gerrit.server.contact.HttpContactStoreConnection;
+import com.google.gerrit.server.git.ChangeCacheImplModule;
import com.google.gerrit.server.git.GarbageCollectionModule;
import com.google.gerrit.server.git.ReceiveCommitsExecutorModule;
import com.google.gerrit.server.git.WorkQueue;
@@ -324,6 +325,7 @@
modules.add(new DiffExecutorModule());
modules.add(new MimeUtil2Module());
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
+ modules.add(new ChangeCacheImplModule(slave));
modules.add(new InternalAccountDirectory.Module());
modules.add(new DefaultCacheFactory.Module());
if (emailModule != null) {
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Branch.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Branch.java
index a3ad822..3f04306 100644
--- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Branch.java
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/Branch.java
@@ -19,9 +19,6 @@
/** Line of development within a {@link Project}. */
public final class Branch {
- public static final String R_HEADS = "refs/heads/";
- public static final String R_REFS = "refs/";
-
/** Branch name key */
public static class NameKey extends StringKey<Project.NameKey> {
private static final long serialVersionUID = 1L;
@@ -57,15 +54,7 @@
}
public String getShortName() {
- final String n = get();
-
- // Git style branches will tend to start with "refs/heads/".
- //
- if (n.startsWith(R_HEADS)) {
- return n.substring(R_HEADS.length());
- }
-
- return n;
+ return RefNames.shortName(get());
}
}
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/RefNames.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/RefNames.java
index 1719a7e..e6015e6 100644
--- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/RefNames.java
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/client/RefNames.java
@@ -56,6 +56,12 @@
return (ref.startsWith(REFS) ? "" : REFS_HEADS) + ref;
}
+ public static final String shortName(String ref) {
+ return ref.startsWith(REFS_HEADS)
+ ? ref.substring(REFS_HEADS.length())
+ : ref;
+ }
+
public static String refsUsers(Account.Id accountId) {
StringBuilder r = new StringBuilder();
r.append(REFS_USER);
diff --git a/gerrit-server/BUCK b/gerrit-server/BUCK
index ec91d49..71e8882 100644
--- a/gerrit-server/BUCK
+++ b/gerrit-server/BUCK
@@ -59,6 +59,7 @@
'//lib/jgit:jgit-archive',
'//lib/joda:joda-time',
'//lib/log:api',
+ '//lib/log:jsonevent-layout',
'//lib/log:log4j',
'//lib/lucene:analyzers-common',
'//lib/lucene:core',
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java
index b386894..540f5d0 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/CherryPickChange.java
@@ -184,7 +184,7 @@
// change.
Change newChange = createNewChange(git, revWalk, changeKey, project,
destRef, cherryPickCommit, refControl,
- identifiedUser, change.getTopic());
+ identifiedUser, change.getTopic() + "-" + newDest.getShortName());
addMessageToSourceChange(change, patch.getId(), destinationBranch,
cherryPickCommit, identifiedUser, refControl);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java b/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java
index 99ff581..6ad264b 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/config/GerritGlobalModule.java
@@ -76,7 +76,6 @@
import com.google.gerrit.server.git.MergeUtil;
import com.google.gerrit.server.git.NotesBranchUtil;
import com.google.gerrit.server.git.ReceivePackInitializer;
-import com.google.gerrit.server.git.SearchingChangeCacheImpl;
import com.google.gerrit.server.git.TagCache;
import com.google.gerrit.server.git.TransferConfig;
import com.google.gerrit.server.git.validators.CommitValidationListener;
@@ -158,7 +157,6 @@
install(authModule);
install(AccountByEmailCacheImpl.module());
install(AccountCacheImpl.module());
- install(SearchingChangeCacheImpl.module());
install(ChangeKindCacheImpl.module());
install(ConflictsCacheImpl.module());
install(GroupCacheImpl.module());
@@ -257,7 +255,6 @@
DynamicSet.setOf(binder(), ProjectDeletedListener.class);
DynamicSet.setOf(binder(), HeadUpdatedListener.class);
DynamicSet.setOf(binder(), UsageDataPublishedListener.class);
- DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(SearchingChangeCacheImpl.class);
DynamicSet.bind(binder(), GitReferenceUpdatedListener.class).to(ReindexAfterUpdate.class);
DynamicSet.bind(binder(), GitReferenceUpdatedListener.class)
.to(ProjectConfigEntry.UpdateChecker.class);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ChangeCacheImplModule.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ChangeCacheImplModule.java
new file mode 100644
index 0000000..90109a9
--- /dev/null
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ChangeCacheImplModule.java
@@ -0,0 +1,38 @@
+// 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.google.gerrit.server.git;
+
+import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.inject.AbstractModule;
+
+public class ChangeCacheImplModule extends AbstractModule {
+ private final boolean slave;
+
+ public ChangeCacheImplModule(boolean slave) {
+ this.slave = slave;
+ }
+
+ @Override
+ protected void configure() {
+ if (slave) {
+ install(ScanningChangeCacheImpl.module());
+ } else {
+ install(SearchingChangeCacheImpl.module());
+ DynamicSet.bind(binder(), GitReferenceUpdatedListener.class)
+ .to(SearchingChangeCacheImpl.class);
+ }
+ }
+}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ScanningChangeCacheImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ScanningChangeCacheImpl.java
index 2c78133..65808fc 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ScanningChangeCacheImpl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ScanningChangeCacheImpl.java
@@ -48,7 +48,7 @@
@Singleton
public class ScanningChangeCacheImpl implements ChangeCache {
private static final Logger log =
- LoggerFactory.getLogger(SearchingChangeCacheImpl.class);
+ LoggerFactory.getLogger(ScanningChangeCacheImpl.class);
public static Module module() {
return new CacheModule() {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/PutConfig.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/PutConfig.java
index ca15287..8c1fda7 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/PutConfig.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/PutConfig.java
@@ -191,6 +191,8 @@
throw new ResourceConflictException("Cannot update " + projectName
+ ": " + e.getCause().getMessage());
} else {
+ log.warn(String.format("Failed to update config of project %s.",
+ projectName), e);
throw new ResourceConflictException("Cannot update " + projectName);
}
}
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/change/HashtagsTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/change/HashtagsTest.java
index d5b722c..6100ffd 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/change/HashtagsTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/change/HashtagsTest.java
@@ -23,45 +23,45 @@
public class HashtagsTest {
@Test
public void emptyCommitMessage() throws Exception {
- assertThat((Iterable<?>)HashtagsUtil.extractTags("")).isEmpty();
+ assertThat(HashtagsUtil.extractTags("")).isEmpty();
}
@Test
public void nullCommitMessage() throws Exception {
- assertThat((Iterable<?>)HashtagsUtil.extractTags(null)).isEmpty();
+ assertThat(HashtagsUtil.extractTags(null)).isEmpty();
}
@Test
public void noHashtags() throws Exception {
String commitMessage = "Subject\n\nLine 1\n\nLine 2";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage)).isEmpty();
+ assertThat(HashtagsUtil.extractTags(commitMessage)).isEmpty();
}
@Test
public void singleHashtag() throws Exception {
String commitMessage = "#Subject\n\nLine 1\n\nLine 2";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(Sets.newHashSet("Subject"));
}
@Test
public void singleHashtagNumeric() throws Exception {
String commitMessage = "Subject\n\n#123\n\nLine 2";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(Sets.newHashSet("123"));
}
@Test
public void multipleHashtags() throws Exception {
String commitMessage = "#Subject\n\n#Hashtag\n\nLine 2";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(Sets.newHashSet("Subject", "Hashtag"));
}
@Test
public void repeatedHashtag() throws Exception {
String commitMessage = "#Subject\n\n#Hashtag1\n\n#Hashtag2\n\n#Hashtag1";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(
Sets.newHashSet("Subject", "Hashtag1", "Hashtag2"));
}
@@ -69,21 +69,21 @@
@Test
public void multipleHashtagsNoSpaces() throws Exception {
String commitMessage = "Subject\n\n#Hashtag1#Hashtag2";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(Sets.newHashSet("Hashtag1"));
}
@Test
public void hyphenatedHashtag() throws Exception {
String commitMessage = "Subject\n\n#Hyphenated-Hashtag";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(Sets.newHashSet("Hyphenated-Hashtag"));
}
@Test
public void underscoredHashtag() throws Exception {
String commitMessage = "Subject\n\n#Underscored_Hashtag";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(Sets.newHashSet("Underscored_Hashtag"));
}
@@ -91,7 +91,7 @@
public void hashtagsWithAccentedCharacters() throws Exception {
String commitMessage = "Jag #måste #öva på min #Svenska!\n\n"
+ "Jag behöver en #läkare.";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage))
+ assertThat(HashtagsUtil.extractTags(commitMessage))
.containsExactlyElementsIn(
Sets.newHashSet("måste", "öva", "Svenska", "läkare"));
}
@@ -99,6 +99,6 @@
@Test
public void hashWithoutHashtag() throws Exception {
String commitMessage = "Subject\n\n# Text";
- assertThat((Iterable<?>)HashtagsUtil.extractTags(commitMessage)).isEmpty();
+ assertThat(HashtagsUtil.extractTags(commitMessage)).isEmpty();
}
}
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/git/LocalDiskRepositoryManagerTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/git/LocalDiskRepositoryManagerTest.java
index 2ebad52..ca154b1 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/git/LocalDiskRepositoryManagerTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/git/LocalDiskRepositoryManagerTest.java
@@ -73,7 +73,7 @@
try (Repository repo = repoManager.openRepository(projectA)) {
assertThat(repo).isNotNull();
}
- assertThat((Iterable<?>) repoManager.list()).containsExactly(projectA);
+ assertThat(repoManager.list()).containsExactly(projectA);
}
@Test(expected = RepositoryNotFoundException.class)
@@ -174,7 +174,7 @@
try (Repository repo = repoManager.openRepository(projectA)) {
assertThat(repo).isNotNull();
}
- assertThat((Iterable<?>) repoManager.list()).containsExactly(projectA);
+ assertThat(repoManager.list()).containsExactly(projectA);
}
@Test(expected = RepositoryNotFoundException.class)
@@ -196,8 +196,8 @@
repoManager.getBasePath().resolve(".git").toFile().mkdir();
// create an invalid repo name
createRepository(repoManager.getBasePath(), "project?A");
- assertThat((Iterable<?>) repoManager.list()).containsExactly(projectA,
- projectB, projectC);
+ assertThat(repoManager.list())
+ .containsExactly(projectA, projectB, projectC);
}
@Test
diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
index 85e06e8..07cbaf3 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -1126,8 +1126,7 @@
protected void assertQuery(QueryRequest query, Change... changes)
throws Exception {
- assertThat((Iterable<Integer>) query(query))
- .named(query.toString())
+ assertThat(query(query)).named(query.toString())
.containsExactlyElementsIn(ids(changes)).inOrder();
}
diff --git a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java
index c89df6b..a68f715 100644
--- a/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java
+++ b/gerrit-server/src/test/java/com/google/gerrit/testutil/InMemoryModule.java
@@ -39,6 +39,7 @@
import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.config.TrackingFooters;
import com.google.gerrit.server.config.TrackingFootersProvider;
+import com.google.gerrit.server.git.ChangeCacheImplModule;
import com.google.gerrit.server.git.EmailReviewCommentsExecutor;
import com.google.gerrit.server.git.GarbageCollection;
import com.google.gerrit.server.git.GitRepositoryManager;
@@ -128,6 +129,7 @@
}
});
install(cfgInjector.getInstance(GerritGlobalModule.class));
+ install(new ChangeCacheImplModule(false));
factory(GarbageCollection.Factory.class);
bindScope(RequestScoped.class, PerThreadRequestScope.REQUEST);
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/LsUserRefs.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/LsUserRefs.java
index c41fcdc..15e030f 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/LsUserRefs.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/commands/LsUserRefs.java
@@ -20,7 +20,7 @@
import com.google.gerrit.common.data.GlobalCapability;
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.reviewdb.client.RefNames;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.account.AccountResolver;
@@ -110,7 +110,7 @@
db, true).filter(repo.getRefDatabase().getRefs(ALL), false);
for (final String ref : refsMap.keySet()) {
- if (!onlyRefsHeads || ref.startsWith(Branch.R_HEADS)) {
+ if (!onlyRefsHeads || ref.startsWith(RefNames.REFS_HEADS)) {
stdout.println(ref);
}
}
diff --git a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java
index ad242eb..e94c9b9 100644
--- a/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java
+++ b/gerrit-war/src/main/java/com/google/gerrit/httpd/WebAppInitializer.java
@@ -39,6 +39,7 @@
import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.contact.ContactStoreModule;
import com.google.gerrit.server.contact.HttpContactStoreConnection;
+import com.google.gerrit.server.git.ChangeCacheImplModule;
import com.google.gerrit.server.git.GarbageCollectionModule;
import com.google.gerrit.server.git.LocalDiskRepositoryManager;
import com.google.gerrit.server.git.ReceiveCommitsExecutorModule;
@@ -288,6 +289,7 @@
modules.add(new DiffExecutorModule());
modules.add(new MimeUtil2Module());
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
+ modules.add(new ChangeCacheImplModule(false));
modules.add(new InternalAccountDirectory.Module());
modules.add(new DefaultCacheFactory.Module());
modules.add(new SmtpEmailSender.Module());
diff --git a/lib/BUCK b/lib/BUCK
index 2760acc..d91ea26 100644
--- a/lib/BUCK
+++ b/lib/BUCK
@@ -188,8 +188,8 @@
maven_jar(
name = 'truth',
- id = 'com.google.truth:truth:0.25',
- sha1 = '503ba892e8482976b81eb2b2df292858fbac3782',
+ id = 'com.google.truth:truth:0.26',
+ sha1 = 'b5802815625d82f39c33219299771f3d64301b06',
license = 'DO_NOT_DISTRIBUTE',
deps = [
':guava',
diff --git a/lib/commons/BUCK b/lib/commons/BUCK
index fe249fa..4c77d9b 100644
--- a/lib/commons/BUCK
+++ b/lib/commons/BUCK
@@ -41,8 +41,8 @@
maven_jar(
name = 'lang',
- id = 'commons-lang:commons-lang:2.5',
- sha1 = 'b0236b252e86419eef20c31a44579d2aee2f0a69',
+ id = 'commons-lang:commons-lang:2.6',
+ sha1 = '0ce1edb914c94ebc388f086c6827e8bdeec71ac2',
license = 'Apache2.0',
exclude = ['META-INF/LICENSE.txt', 'META-INF/NOTICE.txt'],
)
diff --git a/lib/log/BUCK b/lib/log/BUCK
index cadc7e7..b332f20 100644
--- a/lib/log/BUCK
+++ b/lib/log/BUCK
@@ -31,3 +31,18 @@
license = 'Apache2.0',
exclude = ['META-INF/LICENSE', 'META-INF/NOTICE'],
)
+
+maven_jar(
+ name = 'jsonevent-layout',
+ id = 'net.logstash.log4j:jsonevent-layout:1.7',
+ sha1 = '507713504f0ddb75ba512f62763519c43cf46fde',
+ license = 'Apache2.0',
+ deps = [':json-smart', '//lib/commons:lang']
+)
+
+maven_jar(
+ name = 'json-smart',
+ id = 'net.minidev:json-smart:1.1.1',
+ sha1 = '24a2f903d25e004de30ac602c5b47f2d4e420a59',
+ license = 'Apache2.0',
+)