Configure plugin specific list parameters as ProjectConfigEntries

Change-Id: Idc1b5a1c59e34de12982fbd29bb13b1dbf0d8437
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 92e80c2..d73fc6c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/cookbook/Module.java
@@ -17,9 +17,13 @@
 import static com.google.gerrit.server.change.RevisionResource.REVISION_KIND;
 import static com.google.gerrit.server.project.ProjectResource.PROJECT_KIND;
 
+import com.google.common.collect.ImmutableList;
+import com.google.gerrit.extensions.annotations.Exports;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.extensions.restapi.RestApiModule;
 import com.google.gerrit.extensions.webui.TopMenu;
+import com.google.gerrit.reviewdb.client.Project.InheritableBoolean;
+import com.google.gerrit.server.config.ProjectConfigEntry;
 import com.google.inject.AbstractModule;
 
 public class Module extends AbstractModule {
@@ -36,5 +40,31 @@
         get(REVISION_KIND, "greetings").to(Greetings.class);
       }
     });
+    configurePluginParameters();
+  }
+
+  private void configurePluginParameters() {
+    bind(ProjectConfigEntry.class)
+        .annotatedWith(Exports.named("enabled-hello"))
+        .toInstance(new ProjectConfigEntry("Enable Greeting", true));
+    bind(ProjectConfigEntry.class)
+       .annotatedWith(Exports.named("enabled-goodby"))
+       .toInstance(new ProjectConfigEntry("Enable Say Good By",
+           InheritableBoolean.TRUE,
+           InheritableBoolean.class, true));
+    bind(ProjectConfigEntry.class)
+       .annotatedWith(Exports.named("default-greet"))
+       .toInstance(new ProjectConfigEntry("Default Greet",
+           "Hey dude, how are you?", true));
+    bind(ProjectConfigEntry.class)
+        .annotatedWith(Exports.named("language"))
+        .toInstance(new ProjectConfigEntry("Preferred Language", "en",
+            ImmutableList.of("en", "de", "fr"), true));
+    bind(ProjectConfigEntry.class)
+        .annotatedWith(Exports.named("greet-number-per-week"))
+        .toInstance(new ProjectConfigEntry("Greets Per Week", 42, true));
+    bind(ProjectConfigEntry.class)
+       .annotatedWith(Exports.named("greet-number-per-year"))
+       .toInstance(new ProjectConfigEntry("Greets Per Year", 4711L, true));
   }
 }