Merge branch 'stable-2.10' into stable-2.11
* stable-2.10:
Maven: use same version number for plugin version and API version
Maven: Add missing junit dependency
Consume API version 2.10
Consume API version 2.9
Conflicts:
lib/gerrit/BUCK
pom.xml
Change-Id: If133617f4e8a46821790d0e6ce3d2c576979654e
diff --git a/BUCK b/BUCK
index 066e743..b28f661 100644
--- a/BUCK
+++ b/BUCK
@@ -17,6 +17,15 @@
]
)
+java_test(
+ name = 'cookbook_tests',
+ srcs = glob(['src/test/java/**/*.java']),
+ deps = [
+ ':cookbook-plugin__plugin',
+ '//lib:junit',
+ ],
+)
+
# TODO(davido): is this needed?
# requires for bucklets/tools/eclipse/project.py to work
# not sure, if this does something useful in standalone context
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK
index 80c9229..89c75df 100644
--- a/lib/gerrit/BUCK
+++ b/lib/gerrit/BUCK
@@ -1,7 +1,7 @@
include_defs('//bucklets/maven_jar.bucklet')
-VER = '2.10'
-REPO = MAVEN_CENTRAL
+VER = '2.11-SNAPSHOT'
+REPO = MAVEN_LOCAL
maven_jar(
name = 'plugin-api',
diff --git a/lib/gwt/BUCK b/lib/gwt/BUCK
index e07bf39..394ed92 100644
--- a/lib/gwt/BUCK
+++ b/lib/gwt/BUCK
@@ -1,11 +1,11 @@
include_defs('//bucklets/maven_jar.bucklet')
-VER = '2.6.1'
+VER = '2.7.0'
maven_jar(
name = 'user',
id = 'com.google.gwt:gwt-user:' + VER,
- sha1 = 'c078b1b8cc0281214b0eb458d2c283d039374fad',
+ sha1 = 'bdc7af42581745d3d79c2efe0b514f432b998a5b',
license = 'Apache2.0',
attach_source = False,
deps = [
@@ -17,7 +17,7 @@
maven_jar(
name = 'dev',
id = 'com.google.gwt:gwt-dev:' + VER,
- sha1 = 'db237e4be0aa1fe43425d2c51ab5485dba211ddd',
+ sha1 = 'c2c3dd5baf648a0bb199047a818be5e560f48982',
license = 'Apache2.0',
attach_source = False,
exclude = ['org/eclipse/jetty/*'],
diff --git a/lib/ow2/BUCK b/lib/ow2/BUCK
new file mode 100644
index 0000000..db6c76c
--- /dev/null
+++ b/lib/ow2/BUCK
@@ -0,0 +1,32 @@
+include_defs('//bucklets/maven_jar.bucklet')
+
+VERSION = '5.0.3'
+
+maven_jar(
+ name = 'ow2-asm',
+ id = 'org.ow2.asm:asm:' + VERSION,
+ sha1 = 'dcc2193db20e19e1feca8b1240dbbc4e190824fa',
+ license = 'ow2',
+)
+
+maven_jar(
+ name = 'ow2-asm-analysis',
+ id = 'org.ow2.asm:asm-analysis:' + VERSION,
+ sha1 = 'c7126aded0e8e13fed5f913559a0dd7b770a10f3',
+ license = 'ow2',
+)
+
+maven_jar(
+ name = 'ow2-asm-tree',
+ id = 'org.ow2.asm:asm-tree:' + VERSION,
+ sha1 = '287749b48ba7162fb67c93a026d690b29f410bed',
+ license = 'ow2',
+)
+
+maven_jar(
+ name = 'ow2-asm-util',
+ id = 'org.ow2.asm:asm-util:' + VERSION,
+ sha1 = '1512e5571325854b05fb1efce1db75fcced54389',
+ license = 'ow2',
+)
+
diff --git a/pom.xml b/pom.xml
index d30c292..b765d38 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
<groupId>com.googlesource.gerrit.plugins</groupId>
<artifactId>cookbook-plugin</artifactId>
<packaging>jar</packaging>
- <version>2.10</version>
+ <version>2.11-SNAPSHOT</version>
<properties>
<Gerrit-ApiType>plugin</Gerrit-ApiType>
<Gerrit-ApiVersion>${project.version}</Gerrit-ApiVersion>
@@ -69,7 +69,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
- <version>2.6.1</version>
+ <version>2.7.0</version>
<configuration>
<module>com.googlesource.gerrit.plugins.cookbook.HelloForm</module>
<disableClassMetadata>true</disableClassMetadata>
@@ -99,11 +99,12 @@
<groupId>com.google.gerrit</groupId>
<artifactId>gerrit-plugin-gwtui</artifactId>
<version>${Gerrit-ApiVersion}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
- <version>2.6.1</version>
+ <version>2.7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/Greetings.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/Greetings.java
index 6e02c05..58a9017 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/Greetings.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/Greetings.java
@@ -14,14 +14,14 @@
package com.googlesource.gerrit.plugins.cookbook;
-import java.util.ArrayList;
-import java.util.Collection;
-
import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.extensions.restapi.RestReadView;
import com.google.gerrit.server.change.RevisionResource;
import com.google.inject.Inject;
+import java.util.ArrayList;
+import java.util.Collection;
+
class Greetings implements RestReadView<RevisionResource> {
@Inject
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HashtagValidator.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HashtagValidator.java
new file mode 100644
index 0000000..52f8680
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HashtagValidator.java
@@ -0,0 +1,42 @@
+// Copyright (C) 2014 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.googlesource.gerrit.plugins.cookbook;
+
+import com.google.gerrit.reviewdb.client.Change;
+import com.google.gerrit.server.validators.HashtagValidationListener;
+import com.google.gerrit.server.validators.ValidationException;
+
+import java.util.Set;
+
+public class HashtagValidator implements HashtagValidationListener {
+
+ @Override
+ public void validateHashtags(Change change, Set<String> toAdd, Set<String> toRemove)
+ throws ValidationException {
+ if (change.getProject().get().equals("plugins/cookbook")) {
+ if (toAdd.size() > 0) {
+ for (String hashtag : toAdd) {
+ if (!hashtag.startsWith("cookbook-")) {
+ throw new ValidationException("Invalid cookbook hashtag: " + hashtag);
+ }
+ }
+ }
+
+ if (toRemove.size() > 0) {
+ throw new ValidationException("Cannot remove cookbook hashtags");
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloForm.gwt.xml b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloForm.gwt.xml
index 6616bca..954f97b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloForm.gwt.xml
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloForm.gwt.xml
@@ -18,6 +18,7 @@
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name="com.google.gwt.user.User"/>
<!-- Other module inherits -->
+ <inherits name="com.google.gerrit.GerritGwtUICommon"/>
<inherits name="com.google.gerrit.Plugin"/>
<inherits name="com.google.gwt.http.HTTP"/>
<inherits name="com.google.gwt.json.JSON"/>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloProjectAction.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloProjectAction.java
index e977113..8057bb7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloProjectAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloProjectAction.java
@@ -14,7 +14,7 @@
package com.googlesource.gerrit.plugins.cookbook;
-import com.google.common.base.Objects;
+import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;
import com.google.gerrit.extensions.restapi.RestModifyView;
import com.google.gerrit.extensions.webui.UiAction;
@@ -47,7 +47,7 @@
return String.format("%s %s from project %s!",
greeting,
Strings.isNullOrEmpty(input.message)
- ? Objects.firstNonNull(user.get().getUserName(), "world")
+ ? MoreObjects.firstNonNull(user.get().getUserName(), "world")
: input.message,
rsrc.getName());
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloRevisionAction.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloRevisionAction.java
index 21182ed..0cfbc10 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloRevisionAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloRevisionAction.java
@@ -14,7 +14,7 @@
package com.googlesource.gerrit.plugins.cookbook;
-import com.google.common.base.Objects;
+import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;
import com.google.gerrit.extensions.restapi.RestModifyView;
import com.google.gerrit.extensions.webui.UiAction;
@@ -47,7 +47,7 @@
return String.format("%s %s from change %s, patch set %d!",
greeting,
Strings.isNullOrEmpty(input.message)
- ? Objects.firstNonNull(user.get().getUserName(), "world")
+ ? MoreObjects.firstNonNull(user.get().getUserName(), "world")
: input.message,
rev.getChange().getId().toString(),
rev.getPatchSet().getPatchSetId());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloTopMenu.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloTopMenu.java
index 4d98601..96e22d8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloTopMenu.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloTopMenu.java
@@ -14,13 +14,13 @@
package com.googlesource.gerrit.plugins.cookbook;
-import java.util.List;
-
import com.google.common.collect.Lists;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.webui.TopMenu;
import com.google.inject.Inject;
+import java.util.List;
+
public class HelloTopMenu implements TopMenu {
private final List<MenuEntry> menuEntries;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWeblink.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWeblink.java
index 3a27191..0137ffa 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWeblink.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWeblink.java
@@ -14,28 +14,42 @@
package com.googlesource.gerrit.plugins.cookbook;
+import com.google.gerrit.extensions.common.WebLinkInfo;
+import com.google.gerrit.extensions.webui.BranchWebLink;
import com.google.gerrit.extensions.webui.PatchSetWebLink;
import com.google.gerrit.extensions.webui.ProjectWebLink;
-public class HelloWeblink implements PatchSetWebLink, ProjectWebLink {
+public class HelloWeblink implements PatchSetWebLink, ProjectWebLink, BranchWebLink {
private String name = "HelloLink";
private String placeHolderUrlProject =
"http://my.hellolink.com/project=%s";
+ private String placeHolderUrlProjectBranch =
+ "http://my.hellolink.com/project=%s-branch=%s";
private String placeHolderUrlProjectCommit =
placeHolderUrlProject + "/commit=%s";
+ private String myImageUrl = "http://placehold.it/16x16.gif";
@Override
- public String getLinkName() {
- return name ;
+ public WebLinkInfo getBranchWebLink(String projectName, String branchName) {
+ return new WebLinkInfo(name,
+ myImageUrl,
+ String.format(placeHolderUrlProjectBranch, projectName, branchName),
+ Target.BLANK);
}
@Override
- public String getPatchSetUrl(String project, String commit) {
- return String.format(placeHolderUrlProjectCommit, project, commit);
+ public WebLinkInfo getProjectWeblink(String projectName) {
+ return new WebLinkInfo(name,
+ myImageUrl,
+ String.format(placeHolderUrlProject, projectName),
+ Target.BLANK);
}
@Override
- public String getProjectUrl(String project) {
- return String.format(placeHolderUrlProject, project);
+ public WebLinkInfo getPathSetWebLink(String projectName, String commit) {
+ return new WebLinkInfo(name,
+ myImageUrl,
+ String.format(placeHolderUrlProjectCommit, projectName, commit),
+ Target.BLANK);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldServlet.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldServlet.java
index 9bb80a3..d2c3935 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldServlet.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldServlet.java
@@ -14,14 +14,6 @@
package com.googlesource.gerrit.plugins.cookbook;
-import java.io.IOException;
-import java.io.Writer;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import com.google.gerrit.extensions.annotations.PluginCanonicalWebUrl;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.inject.Inject;
@@ -30,6 +22,14 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.io.Writer;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
@Singleton
class HelloWorldServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java
new file mode 100644
index 0000000..2e35854
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/MergeUserValidator.java
@@ -0,0 +1,78 @@
+// Copyright (C) 2014 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.googlesource.gerrit.plugins.cookbook;
+
+import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.reviewdb.client.PatchSet;
+import com.google.gerrit.reviewdb.client.PatchSetApproval;
+import com.google.gerrit.reviewdb.server.ReviewDb;
+import com.google.gerrit.server.ApprovalsUtil;
+import com.google.gerrit.server.IdentifiedUser;
+import com.google.gerrit.server.git.CodeReviewCommit;
+import com.google.gerrit.server.git.CommitMergeStatus;
+import com.google.gerrit.server.git.validators.MergeValidationException;
+import com.google.gerrit.server.git.validators.MergeValidationListener;
+import com.google.gerrit.server.project.ProjectState;
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.Singleton;
+
+import org.eclipse.jgit.lib.Repository;
+
+// Because we have a dedicated Module, we need to bind to the set
+// there, however, if you are using this as a base for your own
+// plugin, you can simply comment out the 'Listen' annotation and
+// it will work as expected.
+//@Listen
+@Singleton
+public class MergeUserValidator implements MergeValidationListener {
+
+ private final IdentifiedUser.GenericFactory identifiedUserFactory;
+ private final Provider<ReviewDb> reviewDb;
+ private final ApprovalsUtil approvalsUtil;
+
+
+ // Because there is 'No user on merge thread' we need to get the
+ // identified user from IdentifiedUser.GenericFactory, this is
+ // normally not needed and you can, in many cases, just use
+ // Provider<CurrentUser>, unfortunately not this one.
+ @Inject
+ MergeUserValidator(IdentifiedUser.GenericFactory identifiedUserFactory,
+ Provider<ReviewDb> reviewDb,
+ ApprovalsUtil approvalsUtil) {
+ this.identifiedUserFactory = identifiedUserFactory;
+ this.reviewDb = reviewDb;
+ this.approvalsUtil = approvalsUtil;
+ }
+
+ /**
+ * Reject all merges if the submitter is not an administrator
+ */
+ @Override
+ public void onPreMerge(Repository repo, CodeReviewCommit commit,
+ ProjectState destProject, Branch.NameKey destBranch, PatchSet.Id patchSetId)
+ throws MergeValidationException {
+ PatchSetApproval psa =
+ approvalsUtil.getSubmitter(reviewDb.get(), commit.notes(), patchSetId);
+ if (psa == null) {
+ throw new MergeValidationException(CommitMergeStatus.NO_PATCH_SET);
+ }
+ IdentifiedUser submitter =
+ identifiedUserFactory.create(psa.getAccountId());
+ if (!submitter.getCapabilities().canAdministrateServer()) {
+ throw new MergeValidationException(CommitMergeStatus.MISSING_DEPENDENCY);
+ }
+ }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java
index 5f88178..cf6c433 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java
@@ -19,16 +19,19 @@
import com.google.common.collect.ImmutableList;
import com.google.gerrit.extensions.annotations.Exports;
-import com.google.gerrit.extensions.common.InheritableBoolean;
+import com.google.gerrit.extensions.client.InheritableBoolean;
import com.google.gerrit.extensions.events.UsageDataPublishedListener;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.RestApiModule;
+import com.google.gerrit.extensions.webui.BranchWebLink;
import com.google.gerrit.extensions.webui.PatchSetWebLink;
import com.google.gerrit.extensions.webui.ProjectWebLink;
import com.google.gerrit.extensions.webui.TopMenu;
import com.google.gerrit.server.config.ProjectConfigEntry;
+import com.google.gerrit.server.git.validators.MergeValidationListener;
import com.google.gerrit.server.git.validators.UploadValidationListener;
import com.google.gerrit.server.plugins.ServerPluginProvider;
+import com.google.gerrit.server.validators.HashtagValidationListener;
import com.google.inject.AbstractModule;
import com.googlesource.gerrit.plugins.cookbook.pluginprovider.HelloSshPluginProvider;
@@ -41,6 +44,7 @@
.to(HelloTopMenu.class);
DynamicSet.bind(binder(), PatchSetWebLink.class).to(HelloWeblink.class);
DynamicSet.bind(binder(), ProjectWebLink.class).to(HelloWeblink.class);
+ DynamicSet.bind(binder(), BranchWebLink.class).to(HelloWeblink.class);
DynamicSet.bind(binder(), ServerPluginProvider.class).to(
HelloSshPluginProvider.class);
DynamicSet.bind(binder(), UsageDataPublishedListener.class).to(UsageDataLogger.class);
@@ -55,6 +59,10 @@
});
DynamicSet.bind(binder(), UploadValidationListener.class)
.to(DenyUploadExample.class);
+ DynamicSet.bind(binder(), MergeValidationListener.class)
+ .to(MergeUserValidator.class);
+ DynamicSet.bind(binder(), HashtagValidationListener.class)
+ .to(HashtagValidator.class);
configurePluginParameters();
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/client/IndexScreen.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/client/IndexScreen.java
index c50dc36..0edf949 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/client/IndexScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/client/IndexScreen.java
@@ -14,7 +14,9 @@
package com.googlesource.gerrit.plugins.cookbook.client;
+import com.google.gerrit.client.Resources;
import com.google.gerrit.plugin.client.screen.Screen;
+import com.google.gwt.core.client.GWT;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -24,6 +26,8 @@
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.TextArea;
@@ -41,12 +45,19 @@
private TextBox usernameTxt;
private TextArea greetingTxt;
+ private Resources RESOURCES = GWT.create(Resources.class);
IndexScreen() {
setStyleName("cookbook-panel");
+ Panel labelImagePanel = new HorizontalPanel();
Panel usernamePanel = new VerticalPanel();
- usernamePanel.add(new Label("Username:"));
+ Image img = new Image(RESOURCES.info());
+ img.setTitle("User to send greetings to");
+ labelImagePanel.add(new Label("Username"));
+ labelImagePanel.add(img);
+ labelImagePanel.add(new Label(":"));
+ usernamePanel.add(labelImagePanel);
usernameTxt = new TextBox() {
@Override
public void onBrowserEvent(Event event) {
diff --git a/src/main/resources/Documentation/cmd-admin.md b/src/main/resources/Documentation/cmd-admin.md
index 312bd2b..edc054b 100644
--- a/src/main/resources/Documentation/cmd-admin.md
+++ b/src/main/resources/Documentation/cmd-admin.md
@@ -1,13 +1,13 @@
-cookbook-plugin admin
+@PLUGIN@ admin
=====================
NAME
----
-cookbook-plugin admin - Administrate the cookbook plugin
+@PLUGIN@ admin - Administrate the cookbook plugin
SYNOPSIS
--------
-> ssh -p <port> <host> cookbook-plugin admin
+> ssh -p <port> <host> @PLUGIN@ admin
DESCRIPTION
-----------
@@ -28,7 +28,7 @@
Have the server say hello to the administrator.
-> $ ssh -p 29418 review.example.com cookbook-plugin admin
+> $ ssh -p 29418 review.example.com @PLUGIN@ admin
SEE ALSO
--------
diff --git a/src/main/resources/Documentation/cmd-print.md b/src/main/resources/Documentation/cmd-print.md
index 717b564..d471ec0 100644
--- a/src/main/resources/Documentation/cmd-print.md
+++ b/src/main/resources/Documentation/cmd-print.md
@@ -1,13 +1,13 @@
-cookbook-plugin print
+@PLUGIN@ print
=====================
NAME
----
-cookbook-plugin print - Print our "Hello world" message
+@PLUGIN@ print - Print our "Hello world" message
SYNOPSIS
--------
-> ssh -p <port> <host> cookbook-plugin print
+> ssh -p <port> <host> @PLUGIN@ print
> [--french]
> [name]
@@ -42,15 +42,15 @@
Have the server say hi to the world.
-> $ ssh -p 29418 review.example.com cookbook-plugin print
+> $ ssh -p 29418 review.example.com @PLUGIN@ print
Have the server say hi to the world in French.
-> $ ssh -p 29418 review.example.com cookbook-plugin print --french
+> $ ssh -p 29418 review.example.com @PLUGIN@ print --french
Have the server say hi to you in French.
-> $ ssh -p 29418 review.example.com cookbook-plugin print --french \'Revi Ewer\'
+> $ ssh -p 29418 review.example.com @PLUGIN@ print --french \'Revi Ewer\'
SEE ALSO
--------
diff --git a/src/main/resources/Documentation/rest-api-hello-project.md b/src/main/resources/Documentation/rest-api-hello-project.md
index 4e51809..e1fb49d 100644
--- a/src/main/resources/Documentation/rest-api-hello-project.md
+++ b/src/main/resources/Documentation/rest-api-hello-project.md
@@ -1,4 +1,4 @@
-cookbook-plugin hello-project
+@PLUGIN@ hello-project
=============================
NAME
diff --git a/src/main/resources/Documentation/rest-api-hello-revision.md b/src/main/resources/Documentation/rest-api-hello-revision.md
index 403bb57..a3d7ec1 100644
--- a/src/main/resources/Documentation/rest-api-hello-revision.md
+++ b/src/main/resources/Documentation/rest-api-hello-revision.md
@@ -1,4 +1,4 @@
-cookbook-plugin hello-revision
+@PLUGIN@ hello-revision
==============================
NAME
diff --git a/src/main/resources/Documentation/servlet-hello.md b/src/main/resources/Documentation/servlet-hello.md
index e4902bf..d2be599 100644
--- a/src/main/resources/Documentation/servlet-hello.md
+++ b/src/main/resources/Documentation/servlet-hello.md
@@ -1,4 +1,4 @@
-cookbook-plugin hello
+@PLUGIN@ hello
=====================
NAME
@@ -7,7 +7,7 @@
SYNOPSIS
--------
-> http://<host>:<port>/cookbook-plugin/say-hello/
+> http://<host>:<port>/plugins/@PLUGIN@/say-hello/
DESCRIPTION
-----------
diff --git a/src/main/resources/static/hello-change.js b/src/main/resources/static/hello-change.js
index 4c668fd..ad339f3 100644
--- a/src/main/resources/static/hello-change.js
+++ b/src/main/resources/static/hello-change.js
@@ -18,16 +18,21 @@
+ c.id
+ ", revision: " + r.name);
}
- function onSubmitChange(c, r) {
- return confirm("Really submit change:\n"
- + c.id + "\n"
- + "revision: " + r.name
- + "?");
+ function onSubmitSomeoneElsesChange(c, r) {
+ var u = self.getCurrentUser();
+ if (u._account_id != c.owner._account_id) {
+ return confirm("Really submit change:\n"
+ + c.id + "\n"
+ + "revision: " + r.name + "\n"
+ + "from: " + c.owner.name
+ + "?");
+ }
+ return true;
}
function onHistory(t) {
console.log("History: " + t);
}
Gerrit.on('showchange', onShowChange);
- Gerrit.on('submitchange', onSubmitChange);
+ Gerrit.on('submitchange', onSubmitSomeoneElsesChange);
Gerrit.on('history', onHistory);
});
diff --git a/src/test/java/com/googlesource/gerrit/plugins/cookbook/CookbookTest.java b/src/test/java/com/googlesource/gerrit/plugins/cookbook/CookbookTest.java
new file mode 100644
index 0000000..d6376ae
--- /dev/null
+++ b/src/test/java/com/googlesource/gerrit/plugins/cookbook/CookbookTest.java
@@ -0,0 +1,28 @@
+// Copyright (C) 2014 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.googlesource.gerrit.plugins.cookbook;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+public class CookbookTest {
+ @Test
+ public void cookbookTest() {
+ // Dummy test, only used to make sure the cookbook plugin gets compiled
+ // when running `buck test`, thus highlighting any compilation errors.
+ assertTrue(true);
+ }
+}