Define PluginName and use it instead of ITS_NAME_RTC

Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
Change-Id: I129c5649249c034ab99d1672da72f363d35ce9e3
diff --git a/pom.xml b/pom.xml
index f0b254b..31c14ef 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,7 @@
     <Gerrit-ApiType>plugin</Gerrit-ApiType>
     <Gerrit-ApiVersion>${project.version}</Gerrit-ApiVersion>
     <Gerrit-ReloadMode>reload</Gerrit-ReloadMode>
+    <Gerrit-PluginName>its-rtc</Gerrit-PluginName>
     <Gerrit-InitStep>com.googlesource.gerrit.plugins.hooks.rtc.InitRTC</Gerrit-InitStep>
     <Gerrit-Module>com.googlesource.gerrit.plugins.hooks.rtc.RTCModule</Gerrit-Module>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -311,6 +312,7 @@
                 <Gerrit-ApiType>${Gerrit-ApiType}</Gerrit-ApiType>
                 <Gerrit-ApiVersion>${Gerrit-ApiVersion}</Gerrit-ApiVersion>
                 <Gerrit-ReloadMode>${Gerrit-ReloadMode}</Gerrit-ReloadMode>
+                <Gerrit-PluginName>${Gerrit-PluginName}</Gerrit-PluginName>
                 <Gerrit-InitStep>${Gerrit-InitStep}</Gerrit-InitStep>
                 <Gerrit-Module>${Gerrit-Module}</Gerrit-Module>
               </manifestEntries>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/InitRTC.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/InitRTC.java
index 23be84b..e818bec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/InitRTC.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/InitRTC.java
@@ -18,6 +18,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.pgm.init.InitStep;
 import com.google.gerrit.pgm.init.Section;
 import com.google.gerrit.pgm.init.Section.Factory;
@@ -33,6 +34,7 @@
 class InitRTC extends InitIts implements InitStep {
   private static final Logger log = LoggerFactory.getLogger(InitRTC.class);
   private static final String COMMENT_LINK_SECTION = "commentLink";
+  private final String pluginName;
   private final ConsoleUI ui;
   private Section rtc;
   private Section rtcComment;
@@ -43,15 +45,17 @@
 
 
   @Inject
-  InitRTC(final ConsoleUI ui,  final Section.Factory sections) {
+  InitRTC(final @PluginName String pluginName, final ConsoleUI ui,
+      final Section.Factory sections) {
+    this.pluginName = pluginName;
     this.ui = ui;
     this.sections = sections;
   }
 
   public void run() {
-    this.rtc = sections.get(RTCItsFacade.ITS_NAME_RTC, null);
+    this.rtc = sections.get(pluginName, null);
     this.rtcComment =
-        sections.get(COMMENT_LINK_SECTION, RTCItsFacade.ITS_NAME_RTC);
+        sections.get(COMMENT_LINK_SECTION, pluginName);
 
     ui.message("\n");
     ui.header("IBM Rational Team Concert connectivity");
@@ -73,7 +77,7 @@
     rtcComment.string("RTC Issue-Id regex", "match", "RTC#([0-9]+)");
     rtcComment.set("html",
         String.format("<a href=\"%s/browse/$1\">$1</a>", rtcUrl));
-    
+
     rtcComment.select("RTC Issue-Id enforced in commit message", "association",
         ItsAssociationPolicy.OPTIONAL);
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCItsFacade.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCItsFacade.java
index 54f1b96..dafcf65 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCItsFacade.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCItsFacade.java
@@ -20,6 +20,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.inject.Inject;
 import com.google.inject.Injector;
@@ -31,8 +32,6 @@
 
 public class RTCItsFacade implements ItsFacade {
 
-  public static final String ITS_NAME_RTC = "rtc";
-
   public static final String GERRIT_CONFIG_RTC_USERNAME = "username";
   public static final String GERRIT_CONFIG_RTC_PASSWORD = "password";
   public static final String GERRIT_CONFIG_CCM_URL = "url";
@@ -40,6 +39,7 @@
 
   private Logger log = LoggerFactory.getLogger(RTCItsFacade.class);
 
+  private final String pluginName;
   Config gerritConfig;
 
   private RTCClient client;
@@ -47,7 +47,9 @@
   private Injector injector;
 
   @Inject
-  public RTCItsFacade(@GerritServerConfig Config gerritConfig, Injector injector) {
+  public RTCItsFacade(@PluginName String pluginName,
+      @GerritServerConfig Config gerritConfig, Injector injector) {
+    this.pluginName = pluginName;
     try {
       this.injector = injector;
       this.gerritConfig = gerritConfig;
@@ -115,21 +117,21 @@
   }
 
   private String getRtcPassword() {
-    return gerritConfig.getString(ITS_NAME_RTC, null,
+    return gerritConfig.getString(pluginName, null,
         GERRIT_CONFIG_RTC_PASSWORD);
   }
 
   private String getRtcUser() {
-    return gerritConfig.getString(ITS_NAME_RTC, null,
+    return gerritConfig.getString(pluginName, null,
         GERRIT_CONFIG_RTC_USERNAME);
   }
 
   private String getRtcUrl() {
-    return gerritConfig.getString(ITS_NAME_RTC, null, GERRIT_CONFIG_CCM_URL);
+    return gerritConfig.getString(pluginName, null, GERRIT_CONFIG_CCM_URL);
   }
 
   private boolean getSslVerify() {
-    return gerritConfig.getBoolean(ITS_NAME_RTC, null,
+    return gerritConfig.getBoolean(pluginName, null,
         GERRIT_CONFIG_SSL_VERIFY, true);
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCModule.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCModule.java
index b5d85d7..2eefa6c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/RTCModule.java
@@ -22,13 +22,14 @@
 import org.slf4j.LoggerFactory;
 
 import com.google.gerrit.common.ChangeListener;
+import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.registration.DynamicSet;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.git.validators.CommitValidationListener;
 import com.google.inject.AbstractModule;
 import com.google.inject.Inject;
+
 import com.googlesource.gerrit.plugins.hooks.its.ItsFacade;
-import com.googlesource.gerrit.plugins.hooks.its.ItsName;
 import com.googlesource.gerrit.plugins.hooks.rtc.filters.RTCAddComment;
 import com.googlesource.gerrit.plugins.hooks.rtc.filters.RTCAddRelatedLinkToChangeId;
 import com.googlesource.gerrit.plugins.hooks.rtc.filters.RTCAddRelatedLinkToGitWeb;
@@ -40,16 +41,19 @@
   private static final Logger LOG = LoggerFactory.getLogger(RTCModule.class);
   private static final int THREAD_POOL_EXECUTORS = 10;
 
+  private final String pluginName;
   private final Config gerritConfig;
 
   @Inject
-  public RTCModule(@GerritServerConfig final Config config) {
+  public RTCModule(@PluginName String pluginName,
+      @GerritServerConfig final Config config) {
+    this.pluginName = pluginName;
     this.gerritConfig = config;
   }
 
   @Override
   protected void configure() {
-    if (isConfigPresent(RTCItsFacade.ITS_NAME_RTC)) {
+    if (isConfigPresent(pluginName)) {
       LOG.info("RTC is configured as ITS");
       bind(ItsFacade.class).to(RTCItsFacade.class);
 
@@ -58,8 +62,6 @@
 
       bind(ExecutorService.class).toInstance(
           new ScheduledThreadPoolExecutor(THREAD_POOL_EXECUTORS));
-      bind(String.class).annotatedWith(ItsName.class).toInstance(
-          RTCItsFacade.ITS_NAME_RTC);
 
       DynamicSet.bind(binder(), ChangeListener.class).to(
           RTCAddRelatedLinkToChangeId.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCClient.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCClient.java
index 0c57f60..b48fc36 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCClient.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCClient.java
@@ -38,11 +38,11 @@
 import org.apache.http.protocol.HttpContext;
 import org.eclipse.jgit.lib.Config;
 
+import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import com.google.inject.Inject;
-import com.googlesource.gerrit.plugins.hooks.rtc.RTCItsFacade;
 import com.googlesource.gerrit.plugins.hooks.rtc.api.RtcEntity;
 import com.googlesource.gerrit.plugins.hooks.rtc.api.RtcEntityDeserializer;
 import com.googlesource.gerrit.plugins.hooks.rtc.session.SessionApi;
@@ -80,10 +80,11 @@
   private String rtcPassword;
 
   @Inject
-  public RTCClient(@GerritServerConfig Config config, RTCHttpParams httpParams)
+  public RTCClient(@PluginName String pluginName,
+      @GerritServerConfig Config config, RTCHttpParams httpParams)
       throws IOException {
-    this(config.getString(RTCItsFacade.ITS_NAME_RTC, null, "url"), config
-        .getBoolean(RTCItsFacade.ITS_NAME_RTC, null, "sslVerify", true),
+    this(config.getString(pluginName, null, "url"), config
+        .getBoolean(pluginName, null, "sslVerify", true),
         httpParams);
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCHttpParams.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCHttpParams.java
index ed0d839..6b885a0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCHttpParams.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/rtc/network/RTCHttpParams.java
@@ -23,9 +23,9 @@
 import org.eclipse.jgit.lib.Config;
 
 import com.google.common.base.Objects;
+import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.inject.Inject;
-import com.googlesource.gerrit.plugins.hooks.rtc.RTCItsFacade;
 
 @SuppressWarnings("deprecation")
 public class RTCHttpParams implements HttpParams {
@@ -103,10 +103,12 @@
     TYPES.put(ConnManagerPNames.TIMEOUT, TYPE_LONG);
     TYPES.put(ConnManagerPNames.MAX_TOTAL_CONNECTIONS, TYPE_INT);
   }
+  private final String pluginName;
   private Config config;
 
   @Inject
-  public RTCHttpParams(@GerritServerConfig Config config) {
+  public RTCHttpParams(@PluginName String pluginName, @GerritServerConfig Config config) {
+    this.pluginName = pluginName;
     this.config = config;
   }
 
@@ -126,7 +128,7 @@
   @Override
   public Object getParameter(String name) {
     String value =
-        config.getString(RTCItsFacade.ITS_NAME_RTC, null, getParamName(name));
+        config.getString(pluginName, null, getParamName(name));
     return getParameterParser(name).parse(value);
   }
 
@@ -156,7 +158,7 @@
 
   @Override
   public long getLongParameter(String name, long defaultValue) {
-    return config.getLong(RTCItsFacade.ITS_NAME_RTC, null, getParamName(name),
+    return config.getLong(pluginName, null, getParamName(name),
         defaultValue);
   }
 
@@ -167,7 +169,7 @@
 
   @Override
   public int getIntParameter(String name, int defaultValue) {
-    return config.getInt(RTCItsFacade.ITS_NAME_RTC, null, getParamName(name),
+    return config.getInt(pluginName, null, getParamName(name),
         defaultValue);
   }
 
@@ -188,7 +190,7 @@
 
   @Override
   public boolean getBooleanParameter(String name, boolean defaultValue) {
-    return config.getBoolean(RTCItsFacade.ITS_NAME_RTC, null,
+    return config.getBoolean(pluginName, null,
         getParamName(name), defaultValue);
   }
 
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index 41b4604..24c82c3 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -45,7 +45,7 @@
 
 **Example:**
 
-    [commentLink "RTC"]
+    [commentLink "its-rtc"]
     match = RTC#([0-9]*)
     html = "<a href=\"https://rtc.gerritforge.com:9443/ccm/browse/$1\">$1</a>"
     association = OPTIONAL
@@ -58,11 +58,11 @@
 -----------------
 
 In order for Gerrit to connect to RTC REST-API, url and credentials
-are required in your gerrit.config / secure.config under the [rtc] section.
+are required in your gerrit.config / secure.config under the [its-rtc] section.
 
 **Example:**
 
-    [rtc]
+    [its-rtc]
     url=https://rtc.gerritforge.com:9443/ccm
     username=rtcuser
     passsword=rtcpass
@@ -81,7 +81,7 @@
 to have full control of the output pipe to RTC and the propagation of the Change events
 to the associated issues in a high-loaded production environment.
 
-All settings are defined in gerrit.config under the same [rtc] section.
+All settings are defined in gerrit.config under the same [its-rtc] section.
 See below the list of the most important parameters and their associated meaning.
 
 `sslVerify`