docs: public static List<ExtPluginConfiguration> listPluginConfigurations(
              final Map<String, String> props,
              final String keyprefix,
              final String serviceName,
              final boolean extra
      )
      {
          final ArrayList<ExtPluginConfiguration> list = new ArrayList<>();
          int i = 1;
          boolean done = false;
          while (!done) {
              final String prefix = keyprefix + "." + i;
              if (props.containsKey(prefix + ".type")) {
                  final String providerType = props.get(prefix + ".type");
                  final Map<String, Object> configProps = new HashMap<>();
                  final Map<String, Object> extraData = extra ? new HashMap<>() : null;
                  final int len = (prefix + ".config.").length();
                  for (final Object o : props.keySet()) {
                      final String key = (String) o;
                      if (key.startsWith(prefix + ".config.")) {
                          configProps.put(key.substring(len), props.get(key));
                      }
                  }
                  if (extra) {
                      //list all extra props
                      for (String s : props.keySet()) {
                          if (s.startsWith(prefix + ".")) {
                              String suffix = s.substring(prefix.length() + 1);
                              if (!"type".equalsIgnoreCase(suffix) && !suffix.startsWith("config.")) {
                                  extraData.put(suffix, props.get(s));
                              }
                          }
                      }
                  }
                  list.add(new SimplePluginConfiguration(serviceName, providerType, configProps, extraData));
              } else {
                  done = true;
              }
              i++;
          }
          return list;
      }