protected void bindExtensionService(ExtensionService<?> extensionService) {
   String shortName = extensionService.getShortName();
   if (byShortName.containsKey(shortName)) {
     throw new RuntimeException(
         MessageFormat.format(
             "There is already an extension registered with the short name ''{0}''", shortName));
   }
   byShortName.put(extensionService.getShortName(), extensionService);
   String extensionClassName = extensionService.getExtensionClass().getName();
   byExtensionClassName.put(extensionClassName, extensionService);
   LOG.info(MessageFormat.format("[ExtensionServices][registered {0}]", extensionClassName));
 }
 protected void unbindExtensionService(ExtensionService<?> extensionService) {
   String extensionClassName = extensionService.getExtensionClass().getName();
   byExtensionClassName.remove(extensionClassName);
   byShortName.remove(extensionService.getShortName());
   LOG.info(MessageFormat.format("[ExtensionServices][unregistered {0}]", extensionClassName));
 }