Merge "Optionally, initialize site from WebAppInitializer."
diff --git a/Documentation/prolog-cookbook.txt b/Documentation/prolog-cookbook.txt
index 80f92a3..b1710a2 100644
--- a/Documentation/prolog-cookbook.txt
+++ b/Documentation/prolog-cookbook.txt
@@ -303,11 +303,11 @@
The prolog environment running the `submit_rule` is loaded with state describing the
change that is being evaluated. The easiest way to load this state is to test your
`submit_rule` against a real change on a running gerrit instance. The command
-link:cmd-test-submit-rule.html[test-submit-rule] loads a specific change and executes
+link:cmd-test-submit-rule.html[test-submit rule] loads a specific change and executes
the `submit_rule`. It optionally reads the rule from from `stdin` to facilitate easy testing.
====
- cat rules.pl | ssh gerrit_srv gerrit test-submit-rule I45e080b105a50a625cc8e1fb5b357c0bfabe6d68 -s
+ cat rules.pl | ssh gerrit_srv gerrit test-submit rule I45e080b105a50a625cc8e1fb5b357c0bfabe6d68 -s
====
Prolog vs Gerrit plugin for project specific submit rules
diff --git a/Documentation/rest-api-changes.txt b/Documentation/rest-api-changes.txt
index 0e0a355..65dd3a4 100644
--- a/Documentation/rest-api-changes.txt
+++ b/Documentation/rest-api-changes.txt
@@ -956,8 +956,6 @@
~~~~~~~~~~~~~~~~~~~
[verse]
'DELETE /changes/link:#change-id[\{change-id\}]'
-or
-'POST /changes/link:#change-id[\{change-id\}]/delete'
Deletes a draft change.
@@ -1568,8 +1566,6 @@
~~~~~~~~~~~~~~~~~~~~~
[verse]
'DELETE /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]'
-or
-'POST /changes/link:#change-id[\{change-id\}]/revisions/link:#revision-id[\{revision-id\}]/delete'
Deletes a draft revision.
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
index c767f84..4459bac 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/admin/AdminConstants.properties
@@ -22,8 +22,8 @@
projectRepoBrowser = Repository Browser
useContentMerge = Automatically resolve conflicts
useContributorAgreements = Require a valid contributor agreement to upload
-useSignedOffBy = Require <a href="http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/user-signedoffby.html#Signed-off-by" target="_blank"><code>Signed-off-by</code></a> in commit message
-requireChangeID = Require <a href="http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/user-changeid.html" target="_blank"><code>Change-Id</code></a> in commit message
+useSignedOffBy = Require <code>Signed-off-by</code> in commit message
+requireChangeID = Require <code>Change-Id</code> in commit message
headingMaxObjectSizeLimit = Maximum Git object size limit
headingGroupOptions = Group Options
isVisibleToAll = Make group visible to all registered users.
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/restapi/RestApiServlet.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
index d8a2648..6e8c6f6 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/restapi/RestApiServlet.java
@@ -788,8 +788,12 @@
List<String> p = splitProjection(projection);
if (p.size() == 2) {
+ String viewname = p.get(1);
+ if (Strings.isNullOrEmpty(viewname)) {
+ viewname = "/";
+ }
RestView<RestResource> view =
- views.get(p.get(0), method + "." + p.get(1));
+ views.get(p.get(0), method + "." + viewname);
if (view != null) {
return new ViewData(p.get(0), view);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftChange.java
index f47c278..7d3a012 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftChange.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftChange.java
@@ -34,7 +34,8 @@
import java.io.IOException;
-public class DeleteDraftChange implements RestModifyView<ChangeResource, Input> {
+public class DeleteDraftChange implements
+ RestModifyView<ChangeResource, Input>, UiAction<ChangeResource> {
public static class Input {
}
@@ -74,26 +75,16 @@
return Response.none();
}
- static class Action extends DeleteDraftChange implements UiAction<ChangeResource> {
- @Inject
- public Action(Provider<ReviewDb> dbProvider,
- GitRepositoryManager gitManager,
- GitReferenceUpdated gitRefUpdated,
- PatchSetInfoFactory patchSetInfoFactory) {
- super(dbProvider, gitManager, gitRefUpdated, patchSetInfoFactory);
- }
-
- @Override
- public UiAction.Description getDescription(ChangeResource rsrc) {
- try {
- return new UiAction.Description()
- .setTitle(String.format("Delete Draft Change %d",
- rsrc.getChange().getChangeId()))
- .setVisible(rsrc.getChange().getStatus() == Status.DRAFT
- && rsrc.getControl().canDeleteDraft(dbProvider.get()));
- } catch (OrmException e) {
- throw new IllegalStateException(e);
- }
+ @Override
+ public UiAction.Description getDescription(ChangeResource rsrc) {
+ try {
+ return new UiAction.Description()
+ .setTitle(String.format("Delete Draft Change %d",
+ rsrc.getChange().getChangeId()))
+ .setVisible(rsrc.getChange().getStatus() == Status.DRAFT
+ && rsrc.getControl().canDeleteDraft(dbProvider.get()));
+ } catch (OrmException e) {
+ throw new IllegalStateException(e);
}
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java
index dd20a38..d4e17d6 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/DeleteDraftPatchSet.java
@@ -38,7 +38,8 @@
import java.io.IOException;
-public class DeleteDraftPatchSet implements RestModifyView<RevisionResource, Input> {
+public class DeleteDraftPatchSet implements RestModifyView<RevisionResource, Input>,
+ UiAction<RevisionResource> {
public static class Input {
}
@@ -80,6 +81,24 @@
return Response.none();
}
+ @Override
+ public UiAction.Description getDescription(RevisionResource rsrc) {
+ PatchSet.Id current = rsrc.getChange().currentPatchSetId();
+ try {
+ int psCount = dbProvider.get().patchSets()
+ .byChange(rsrc.getChange().getId()).toList().size();
+ return new UiAction.Description()
+ .setTitle(String.format("Delete Draft Revision %d",
+ rsrc.getPatchSet().getPatchSetId()))
+ .setVisible(rsrc.getPatchSet().isDraft()
+ && rsrc.getPatchSet().getId().equals(current)
+ && rsrc.getControl().canDeleteDraft(dbProvider.get())
+ && psCount > 1);
+ } catch (OrmException e) {
+ throw new IllegalStateException(e);
+ }
+ }
+
private void deleteDraftPatchSet(PatchSet patchSet, Change change)
throws ResourceNotFoundException, OrmException, IOException {
try {
@@ -139,32 +158,4 @@
}
});
}
-
- static class Action extends DeleteDraftPatchSet implements UiAction<RevisionResource> {
- @Inject
- public Action(Provider<ReviewDb> dbProvider,
- GitRepositoryManager gitManager,
- GitReferenceUpdated gitRefUpdated,
- PatchSetInfoFactory patchSetInfoFactory) {
- super(dbProvider, gitManager, gitRefUpdated, patchSetInfoFactory);
- }
-
- @Override
- public UiAction.Description getDescription(RevisionResource rsrc) {
- PatchSet.Id current = rsrc.getChange().currentPatchSetId();
- try {
- int psCount = dbProvider.get().patchSets()
- .byChange(rsrc.getChange().getId()).toList().size();
- return new UiAction.Description()
- .setTitle(String.format("Delete Draft Revision %d",
- rsrc.getPatchSet().getPatchSetId()))
- .setVisible(rsrc.getPatchSet().isDraft()
- && rsrc.getPatchSet().getId().equals(current)
- && rsrc.getControl().canDeleteDraft(dbProvider.get())
- && psCount > 1);
- } catch (OrmException e) {
- throw new IllegalStateException(e);
- }
- }
- }
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java
index d292880..25bd80f 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Module.java
@@ -50,7 +50,6 @@
put(CHANGE_KIND, "topic").to(PutTopic.class);
delete(CHANGE_KIND, "topic").to(PutTopic.class);
delete(CHANGE_KIND).to(DeleteDraftChange.class);
- post(CHANGE_KIND, "delete").to(DeleteDraftChange.Action.class);
post(CHANGE_KIND, "abandon").to(Abandon.class);
post(CHANGE_KIND, "publish").to(Publish.CurrentRevision.class);
post(CHANGE_KIND, "restore").to(Restore.class);
@@ -68,7 +67,6 @@
post(REVISION_KIND, "cherrypick").to(CherryPick.class);
get(REVISION_KIND, "commit").to(GetCommit.class);
delete(REVISION_KIND).to(DeleteDraftPatchSet.class);
- post(REVISION_KIND, "delete").to(DeleteDraftPatchSet.Action.class);
get(REVISION_KIND, "mergeable").to(Mergeable.class);
post(REVISION_KIND, "publish").to(Publish.class);
get(REVISION_KIND, "related").to(GetRelated.class);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
index f09015b..c4d06d2 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MergeOp.java
@@ -509,7 +509,7 @@
if (rw.isMergedInto(commit, branchTip)) {
commit.statusCode = CommitMergeStatus.ALREADY_MERGED;
try {
- setMergedPatchSet(chg.getId(), ps.getId());
+ setMerged(chg, null);
} catch (OrmException e) {
log.error("Cannot mark change " + chg.getId() + " merged", e);
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java b/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java
index 5b3f59a..cd6409e 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/mail/CommentSender.java
@@ -170,7 +170,6 @@
CommentRange range = comment.getRange();
if (range != null) {
String prefix = String.format("Line %d: ", range.getStartLine());
- out.append(prefix);
for (int n = range.getStartLine(); n <= range.getEndLine(); n++) {
out.append(n == range.getStartLine()
? prefix
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java
index c7594bc..ce1da95 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/DispatchCommandProvider.java
@@ -60,10 +60,7 @@
return new RegistrationHandle() {
@Override
public void remove() {
- if (!m.remove(name.value(), commandProvider)) {
- throw new IllegalStateException(String.format(
- "can not unregister command: %s", name.value()));
- }
+ m.remove(name.value(), commandProvider);
}
};
}
@@ -71,11 +68,12 @@
public RegistrationHandle replace(final CommandName name,
final Provider<Command> cmd) {
final ConcurrentMap<String, CommandProvider> m = getMap();
- m.put(name.value(), new CommandProvider(cmd, null));
+ final CommandProvider commandProvider = new CommandProvider(cmd, null);
+ m.put(name.value(), commandProvider);
return new RegistrationHandle() {
@Override
public void remove() {
- m.remove(name.value(), cmd);
+ m.remove(name.value(), commandProvider);
}
};
}
diff --git a/plugins/commit-message-length-validator b/plugins/commit-message-length-validator
index 9f988c6..45f347d 160000
--- a/plugins/commit-message-length-validator
+++ b/plugins/commit-message-length-validator
@@ -1 +1 @@
-Subproject commit 9f988c6e5b1e07f66479f0d4d08537281fa4694f
+Subproject commit 45f347d0e258ef7b871b046bfa96b9f902063b10
diff --git a/plugins/replication b/plugins/replication
index 3fffd16..d4871d5 160000
--- a/plugins/replication
+++ b/plugins/replication
@@ -1 +1 @@
-Subproject commit 3fffd16403c1d3a4d6f0b13e9f33f4f78df1f6b4
+Subproject commit d4871d5df64d6968f2b256766dc8fa9a8133fdac
diff --git a/plugins/reviewnotes b/plugins/reviewnotes
index 1fac69b..d470050 160000
--- a/plugins/reviewnotes
+++ b/plugins/reviewnotes
@@ -1 +1 @@
-Subproject commit 1fac69b085cf67706a3a124df366d55e1976cd21
+Subproject commit d47005095fcf3bc918a1dda62d21988cc6e470e6