diff --git a/BUILD b/BUILD
index f1afcbf..1d1af8c 100644
--- a/BUILD
+++ b/BUILD
@@ -13,6 +13,7 @@
         "//example-restApiPostRevision",
         "//example-servlet",
         "//example-simpleSshCommand",
+        "//example-sshAndRestCommandOptionBeanParseListener",
         "//example-sshCommandAlias",
         "//example-sshCommandOption",
         "//example-topMenu",
diff --git a/example-sshAndRestCommandOptionBeanParseListener/.buckconfig b/example-sshAndRestCommandOptionBeanParseListener/.buckconfig
new file mode 100644
index 0000000..27bcd93
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/.buckconfig
@@ -0,0 +1,15 @@
+[alias]
+  plugin = //:example-sshCommandOptionBeanParseListner
+
+[java]
+  src_roots = java, resources
+  source_level = 8
+  target_level = 8
+
+[project]
+  ignore = .git
+
+[cache]
+  mode = dir
+  dir = buck-out/cache
+
diff --git a/example-sshAndRestCommandOptionBeanParseListener/.gitignore b/example-sshAndRestCommandOptionBeanParseListener/.gitignore
new file mode 100644
index 0000000..ef47a02
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/.gitignore
@@ -0,0 +1,9 @@
+/target
+/.classpath
+/.settings
+/.project
+/.buckd
+/buck-cache
+/buck-out
+*.iml
+/bazel-example-sshCommandOptionBeanParseListener
diff --git a/example-sshAndRestCommandOptionBeanParseListener/BUCK b/example-sshAndRestCommandOptionBeanParseListener/BUCK
new file mode 100644
index 0000000..1559199
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/BUCK
@@ -0,0 +1,19 @@
+include_defs('//bucklets/gerrit_plugin.bucklet')
+
+gerrit_plugin(
+  name = 'example-sshAndRestCommandOptionBeanParseListener',
+  srcs = glob(['src/main/java/**/*.java']),
+  resources = glob(['src/main/**/*']),
+  manifest_entries = [
+    'Gerrit-PluginName: example-sshAndRestCommandOptionBeanParseListener',
+    'Gerrit-HttpModule: com.googlesource.gerrit.plugins.examples.sshandrestcommandoptionbeanparselistener.Modules$HttpModule',
+    'Gerrit-SshModule: com.googlesource.gerrit.plugins.examples.sshandrestcommandoptionbeanparselistener.Modules$SshModule',
+    'Implementation-Title: Example Simple SSH and REST Command Option Bean Parse Listener',
+    'Implementation-URL: https://gerrit-review.googlesource.com/#/admin/projects/plugins/examples',
+  ],
+)
+
+java_library(
+  name = 'classpath',
+  deps = [':example-sshAndRestCommandOptionBeanParseListener__plugin'],
+)
diff --git a/example-sshAndRestCommandOptionBeanParseListener/BUILD b/example-sshAndRestCommandOptionBeanParseListener/BUILD
new file mode 100644
index 0000000..39beb91
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/BUILD
@@ -0,0 +1,13 @@
+load("//tools/bzl:plugin.bzl", "gerrit_plugin")
+
+gerrit_plugin(
+    name = "example-sshAndRestCommandOptionBeanParseListener",
+    srcs = glob(["src/main/java/**/*.java"]),
+    manifest_entries = [
+        "Gerrit-PluginName: example-sshAndRestCommandOptionBeanParseListener",
+        "Gerrit-SshModule: com.googlesource.gerrit.plugins.examples.sshandrestcommandoptionbeanparselistener.Modules$SshModule",
+        "Gerrit-HttpModule: com.googlesource.gerrit.plugins.examples.sshandrestcommandoptionbeanparselistener.Modules$HttpModule",
+        "Implementation-Title: Example Simple SSH and REST Command Option Bean Parse Listener",
+    ],
+    resources = glob(["src/main/resources/**/*"]),
+)
diff --git a/example-sshAndRestCommandOptionBeanParseListener/LICENSE b/example-sshAndRestCommandOptionBeanParseListener/LICENSE
new file mode 100644
index 0000000..11069ed
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/LICENSE
@@ -0,0 +1,201 @@
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+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.
diff --git a/example-sshAndRestCommandOptionBeanParseListener/WORKSPACE b/example-sshAndRestCommandOptionBeanParseListener/WORKSPACE
new file mode 100644
index 0000000..2f5c506
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/WORKSPACE
@@ -0,0 +1,26 @@
+workspace(name = "sshCommandOptionBeanParseListener")
+
+load("//:bazlets.bzl", "load_bazlets")
+
+load_bazlets(
+    commit = "1affa0acc6e730f8959c28a2098b562d11a90f91",
+    #    local_path = "/home/<user>/projects/bazlets",
+)
+
+# Release Plugin API
+#load(
+#    "@com_googlesource_gerrit_bazlets//:gerrit_api.bzl",
+#    "gerrit_api",
+#)
+
+# Snapshot Plugin API
+load(
+    "@com_googlesource_gerrit_bazlets//:gerrit_api_maven_local.bzl",
+    "gerrit_api_maven_local",
+)
+
+# Load release Plugin API
+#gerrit_api()
+
+# Load snapshot Plugin API
+gerrit_api_maven_local()
diff --git a/example-sshAndRestCommandOptionBeanParseListener/bazlets.bzl b/example-sshAndRestCommandOptionBeanParseListener/bazlets.bzl
new file mode 100644
index 0000000..e14e488
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/bazlets.bzl
@@ -0,0 +1,17 @@
+NAME = "com_googlesource_gerrit_bazlets"
+
+def load_bazlets(
+    commit,
+    local_path = None
+  ):
+  if not local_path:
+      native.git_repository(
+          name = NAME,
+          remote = "https://gerrit.googlesource.com/bazlets",
+          commit = commit,
+      )
+  else:
+      native.local_repository(
+          name = NAME,
+          path = local_path,
+      )
diff --git a/example-sshAndRestCommandOptionBeanParseListener/lib/gerrit/BUCK b/example-sshAndRestCommandOptionBeanParseListener/lib/gerrit/BUCK
new file mode 100644
index 0000000..20c888c
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/lib/gerrit/BUCK
@@ -0,0 +1,12 @@
+include_defs('//bucklets/maven_jar.bucklet')
+
+VER = '2.15-SNAPSHOT'
+REPO = MAVEN_LOCAL
+
+maven_jar(
+  name = 'plugin-api',
+  id = 'com.google.gerrit:gerrit-plugin-api:' + VER,
+  license = 'Apache2.0',
+  attach_source = False,
+  repository = REPO,
+)
diff --git a/example-sshAndRestCommandOptionBeanParseListener/pom.xml b/example-sshAndRestCommandOptionBeanParseListener/pom.xml
new file mode 100644
index 0000000..f0b45c9
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (C) 2013 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>com.googlesource.gerrit.plugins</groupId>
+  <artifactId>example-sshAndRestCommandOptionBeanParseListener</artifactId>
+  <packaging>jar</packaging>
+  <version>2.15-SNAPSHOT</version>
+  <properties>
+    <Gerrit-ApiType>plugin</Gerrit-ApiType>
+    <Gerrit-ApiVersion>${project.version}</Gerrit-ApiVersion>
+  </properties>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.4</version>
+        <configuration>
+          <archive>
+            <manifestEntries>
+              <Gerrit-PluginName>example-sshAndRestCommandOptionBeanParseListener</Gerrit-PluginName>
+              <Gerrit-SshModule>com.googlesource.gerrit.plugins.examples.sshandrestcommandoptionbeanparselistener.Modules$SshModule</Gerrit-SshModule>
+              <Gerrit-HttpModule>com.googlesource.gerrit.plugins.examples.sshandrestcommandoptionbeanparselistener.Modules$HttpModule</Gerrit-HttpModule>
+
+              <Implementation-Vendor>Gerrit Code Review</Implementation-Vendor>
+              <Implementation-URL>https://gerrit-review.googlesource.com/#/admin/projects/plugins/examples</Implementation-URL>
+
+              <Implementation-Title>Example Simple SSH and REST Command Option Bean Parse Listener</Implementation-Title>
+              <Implementation-Version>${project.version}</Implementation-Version>
+
+              <Gerrit-ApiType>${Gerrit-ApiType}</Gerrit-ApiType>
+              <Gerrit-ApiVersion>${Gerrit-ApiVersion}</Gerrit-ApiVersion>
+            </manifestEntries>
+          </archive>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.3.2</version>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+          <encoding>UTF-8</encoding>
+        </configuration>
+      </plugin>
+    </plugins>
+
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.google.gerrit</groupId>
+      <artifactId>gerrit-${Gerrit-ApiType}-api</artifactId>
+      <version>${Gerrit-ApiVersion}</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+  <repositories>
+    <repository>
+      <id>maven.org</id>
+      <url>http://repo1.maven.org/maven2</url>
+    </repository>
+  </repositories>
+</project>
diff --git a/example-sshAndRestCommandOptionBeanParseListener/src/main/java/com/googlesource/gerrit/plugins/examples/sshandrestcommandoptionbeanparselistener/Modules.java b/example-sshAndRestCommandOptionBeanParseListener/src/main/java/com/googlesource/gerrit/plugins/examples/sshandrestcommandoptionbeanparselistener/Modules.java
new file mode 100644
index 0000000..850d4aa
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/src/main/java/com/googlesource/gerrit/plugins/examples/sshandrestcommandoptionbeanparselistener/Modules.java
@@ -0,0 +1,79 @@
+// Copyright (C) 2017 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.examples.sshandrestcommandoptionbeanparselistener;
+
+import com.google.gerrit.extensions.annotations.Exports;
+import com.google.gerrit.httpd.plugins.HttpPluginModule;
+import com.google.gerrit.server.DynamicOptions;
+import com.google.gerrit.server.query.change.QueryChanges;
+import com.google.gerrit.sshd.commands.Query;
+import com.google.inject.AbstractModule;
+import org.kohsuke.args4j.Option;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Modules {
+
+  public static class HttpModule extends HttpPluginModule {
+    @Override
+    protected void configureServlets() {
+      bind(DynamicOptions.DynamicBean.class)
+          .annotatedWith(Exports.named(QueryChanges.class))
+          .to(QueryOptions.class);
+    }
+  }
+
+  public static class SshModule extends AbstractModule {
+    @Override
+    protected void configure() {
+      bind(DynamicOptions.DynamicBean.class)
+          .annotatedWith(Exports.named(Query.class))
+          .to(QueryOptions.class);
+    }
+  }
+
+  public static class QueryOptions
+      implements DynamicOptions.DynamicBean, DynamicOptions.BeanParseListener {
+    private static final Logger log = LoggerFactory.getLogger(QueryOptions.class);
+
+    private Object bean;
+
+    @Option(
+      name = "--log",
+      aliases = {"-l"},
+      usage = "Say Hello in the Log a few times"
+    )
+    private void parse(String arg) {
+      String msg = "Hellow unknown api query user: " + arg;
+      if (bean instanceof Query) {
+        msg = "Hello ssh api query user: " + arg;
+      } else if (bean instanceof QueryChanges) {
+        msg = "Hello rest api query user: " + arg;
+      }
+      log.error(msg);
+    }
+
+    @Override
+    public void onBeanParseStart(String plugin, Object bean) {
+      this.bean = bean;
+      log.error("hello - parse start");
+    }
+
+    @Override
+    public void onBeanParseEnd(String plugin, Object bean) {
+      log.error("hello - parse end");
+    }
+  }
+}
diff --git a/example-sshAndRestCommandOptionBeanParseListener/src/main/resources/Documentation/about.md b/example-sshAndRestCommandOptionBeanParseListener/src/main/resources/Documentation/about.md
new file mode 100644
index 0000000..ee7e683
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/src/main/resources/Documentation/about.md
@@ -0,0 +1,3 @@
+Sample plugin to demonstrate the ability to register options to REST and SSH Commands in
+Gerrit via plugin and to hook in to the bean parse listener to be called before and after
+option parsing.
diff --git a/example-sshAndRestCommandOptionBeanParseListener/tools/bazel.rc b/example-sshAndRestCommandOptionBeanParseListener/tools/bazel.rc
new file mode 100644
index 0000000..4ed16cf
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/tools/bazel.rc
@@ -0,0 +1,2 @@
+build --workspace_status_command=./tools/workspace-status.sh
+test --build_tests_only
diff --git a/example-sshAndRestCommandOptionBeanParseListener/tools/bzl/BUILD b/example-sshAndRestCommandOptionBeanParseListener/tools/bzl/BUILD
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/tools/bzl/BUILD
diff --git a/example-sshAndRestCommandOptionBeanParseListener/tools/bzl/plugin.bzl b/example-sshAndRestCommandOptionBeanParseListener/tools/bzl/plugin.bzl
new file mode 100644
index 0000000..2b1df8c
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/tools/bzl/plugin.bzl
@@ -0,0 +1,4 @@
+load(
+    "@com_googlesource_gerrit_bazlets//:gerrit_plugin.bzl",
+    "gerrit_plugin",
+)
diff --git a/example-sshAndRestCommandOptionBeanParseListener/tools/workspace-status.sh b/example-sshAndRestCommandOptionBeanParseListener/tools/workspace-status.sh
new file mode 100755
index 0000000..6147a57
--- /dev/null
+++ b/example-sshAndRestCommandOptionBeanParseListener/tools/workspace-status.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# This script will be run by bazel when the build process starts to
+# generate key-value information that represents the status of the
+# workspace. The output should be like
+#
+# KEY1 VALUE1
+# KEY2 VALUE2
+#
+# If the script exits with non-zero code, it's considered as a failure
+# and the output will be discarded.
+
+function rev() {
+  git describe --always --match "v[0-9].*" --dirty
+}
+
+echo STABLE_BUILD_EXAMPLE-SSHANDRESTCOMMANDOPTIONBEANPARSELISTENER_LABEL $(rev)
