Merge "Extend Gerrit's top menu with plugin-owned entry"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldAction.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloProjectAction.java
similarity index 77%
copy from src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldAction.java
copy to src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloProjectAction.java
index 29bc4de..e977113 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloProjectAction.java
@@ -20,12 +20,12 @@
import com.google.gerrit.extensions.webui.UiAction;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.IdentifiedUser;
-import com.google.gerrit.server.change.RevisionResource;
+import com.google.gerrit.server.project.ProjectResource;
import com.google.inject.Inject;
import com.google.inject.Provider;
-class HelloWorldAction implements UiAction<RevisionResource>,
- RestModifyView<RevisionResource, HelloWorldAction.Input> {
+class HelloProjectAction implements UiAction<ProjectResource>,
+ RestModifyView<ProjectResource, HelloProjectAction.Input> {
private Provider<CurrentUser> user;
@@ -35,27 +35,26 @@
}
@Inject
- HelloWorldAction(Provider<CurrentUser> user) {
+ HelloProjectAction(Provider<CurrentUser> user) {
this.user = user;
}
@Override
- public String apply(RevisionResource rev, Input input) {
+ public String apply(ProjectResource rsrc, Input input) {
final String greeting = input.french
? "Bonjour"
: "Hello";
- return String.format("%s %s from change %s, patch set %d!",
+ return String.format("%s %s from project %s!",
greeting,
Strings.isNullOrEmpty(input.message)
? Objects.firstNonNull(user.get().getUserName(), "world")
: input.message,
- rev.getChange().getId().toString(),
- rev.getPatchSet().getPatchSetId());
+ rsrc.getName());
}
@Override
public Description getDescription(
- RevisionResource resource) {
+ ProjectResource resource) {
return new Description()
.setLabel("Say hello")
.setTitle("Say hello in different languages")
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldAction.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloRevisionAction.java
similarity index 91%
rename from src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldAction.java
rename to src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloRevisionAction.java
index 29bc4de..21182ed 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloWorldAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HelloRevisionAction.java
@@ -24,8 +24,8 @@
import com.google.inject.Inject;
import com.google.inject.Provider;
-class HelloWorldAction implements UiAction<RevisionResource>,
- RestModifyView<RevisionResource, HelloWorldAction.Input> {
+class HelloRevisionAction implements UiAction<RevisionResource>,
+ RestModifyView<RevisionResource, HelloRevisionAction.Input> {
private Provider<CurrentUser> user;
@@ -35,7 +35,7 @@
}
@Inject
- HelloWorldAction(Provider<CurrentUser> user) {
+ HelloRevisionAction(Provider<CurrentUser> user) {
this.user = user;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HttpModule.java b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HttpModule.java
index 4a43732..6504563 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/HttpModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/HttpModule.java
@@ -24,6 +24,8 @@
protected void configureServlets() {
serve("/say-hello/*").with(HelloWorldServlet.class);
DynamicSet.bind(binder(), WebUiPlugin.class)
- .toInstance(new JavaScriptPlugin("hello.js"));
+ .toInstance(new JavaScriptPlugin("hello-project.js"));
+ DynamicSet.bind(binder(), WebUiPlugin.class)
+ .toInstance(new JavaScriptPlugin("hello-revision.js"));
}
}
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 211850c..8591acf 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.cookbook;
import static com.google.gerrit.server.change.RevisionResource.REVISION_KIND;
+import static com.google.gerrit.server.project.ProjectResource.PROJECT_KIND;
import com.google.gerrit.extensions.registration.DynamicSet;
import com.google.gerrit.extensions.restapi.RestApiModule;
@@ -30,7 +31,8 @@
install(new RestApiModule() {
@Override
protected void configure() {
- post(REVISION_KIND, "say-hello").to(HelloWorldAction.class);
+ post(REVISION_KIND, "hello-revision").to(HelloRevisionAction.class);
+ post(PROJECT_KIND, "hello-project").to(HelloProjectAction.class);
}
});
}
diff --git a/src/main/resources/Documentation/rest-api-hello.md b/src/main/resources/Documentation/rest-api-hello-project.md
similarity index 66%
copy from src/main/resources/Documentation/rest-api-hello.md
copy to src/main/resources/Documentation/rest-api-hello-project.md
index a31f4ce..baff966 100644
--- a/src/main/resources/Documentation/rest-api-hello.md
+++ b/src/main/resources/Documentation/rest-api-hello-project.md
@@ -1,13 +1,13 @@
-cookbook-plugin hello
-=====================
+cookbook-plugin hello-project
+=============================
NAME
----
-say-hello - Print our "Hello <user>!" message
+hello-project - Print our "Hello <user>!" message
SYNOPSIS
--------
-> POST /changes/{change-id}/revisions/{revision-id}/cookbook-plugin~say-hello
+> POST /projects/{project-name}/cookbook-plugin~hello-project
DESCRIPTION
-----------
@@ -31,16 +31,16 @@
Have the server say Hello to the user
-> curl -X POST --digest --user joe:secret http://host:port/a/changes/1/revisions/1/cookbook~say-hello
-> "Hello joe from change 1, patch set 1!"
+> curl -X POST --digest --user joe:secret http://host:port/a/projects/foo/cookbook~hello-project
+> "Hello joe from project foo!"
Have the server say Bonjour to François
> curl -X POST -H "Content-Type: application/json" \
> -d '{message: "François", french: true}' \
> --digest --user joe:secret \
-> http://host:port/a/changes/1/revisions/1/cookbook~say-hello
-> "Bonjour François from change 1, patch set 1!"
+> http://host:port/a/projects/foo/cookbook~hello-project
+> "Bonjour François from project foo!"
SEE ALSO
--------
diff --git a/src/main/resources/Documentation/rest-api-hello.md b/src/main/resources/Documentation/rest-api-hello-revision.md
similarity index 77%
rename from src/main/resources/Documentation/rest-api-hello.md
rename to src/main/resources/Documentation/rest-api-hello-revision.md
index a31f4ce..e0228d8 100644
--- a/src/main/resources/Documentation/rest-api-hello.md
+++ b/src/main/resources/Documentation/rest-api-hello-revision.md
@@ -1,13 +1,13 @@
-cookbook-plugin hello
-=====================
+cookbook-plugin hello-revision
+==============================
NAME
----
-say-hello - Print our "Hello <user>!" message
+hello-revision - Print our "Hello <user>!" message
SYNOPSIS
--------
-> POST /changes/{change-id}/revisions/{revision-id}/cookbook-plugin~say-hello
+> POST /changes/{change-id}/revisions/{revision-id}/cookbook-plugin~hello-revision
DESCRIPTION
-----------
@@ -31,7 +31,7 @@
Have the server say Hello to the user
-> curl -X POST --digest --user joe:secret http://host:port/a/changes/1/revisions/1/cookbook~say-hello
+> curl -X POST --digest --user joe:secret http://host:port/a/changes/1/revisions/1/cookbook~hello-revision
> "Hello joe from change 1, patch set 1!"
Have the server say Bonjour to François
@@ -39,7 +39,7 @@
> curl -X POST -H "Content-Type: application/json" \
> -d '{message: "François", french: true}' \
> --digest --user joe:secret \
-> http://host:port/a/changes/1/revisions/1/cookbook~say-hello
+> http://host:port/a/changes/1/revisions/1/cookbook~hello-revision
> "Bonjour François from change 1, patch set 1!"
SEE ALSO
diff --git a/src/main/resources/static/hello.js b/src/main/resources/static/hello-project.js
similarity index 91%
rename from src/main/resources/static/hello.js
rename to src/main/resources/static/hello-project.js
index 91b082c..6a2f67d 100644
--- a/src/main/resources/static/hello.js
+++ b/src/main/resources/static/hello-project.js
@@ -13,7 +13,7 @@
// limitations under the License.
Gerrit.install(function(self) {
- function onSayHello(c) {
+ function onSayHelloProject(c) {
var f = c.textfield();
var t = c.checkbox();
var b = c.button('Say hello', {onclick: function(){
@@ -33,5 +33,5 @@
b));
f.focus();
}
- self.onAction('revision', 'say-hello', onSayHello);
+ self.onAction('project', 'hello-project', onSayHelloProject);
});
diff --git a/src/main/resources/static/hello.js b/src/main/resources/static/hello-revision.js
similarity index 90%
copy from src/main/resources/static/hello.js
copy to src/main/resources/static/hello-revision.js
index 91b082c..22ae6cf 100644
--- a/src/main/resources/static/hello.js
+++ b/src/main/resources/static/hello-revision.js
@@ -13,7 +13,7 @@
// limitations under the License.
Gerrit.install(function(self) {
- function onSayHello(c) {
+ function onSayHelloRevision(c) {
var f = c.textfield();
var t = c.checkbox();
var b = c.button('Say hello', {onclick: function(){
@@ -33,5 +33,5 @@
b));
f.focus();
}
- self.onAction('revision', 'say-hello', onSayHello);
+ self.onAction('revision', 'hello-revision', onSayHelloRevision);
});