docs: protected Map<String, String> extract(String propertyPrefix, Map<String, String> properties, boolean removeProps) {
  
          if (null == properties || properties.isEmpty()) {
              return Collections.<String, String> emptyMap();
          }
  
          Map<String, String> extractProps = new HashMap<String, String>();
  
          Iterator<Map.Entry<String, String>> propIter = properties.entrySet().iterator();
          while (propIter.hasNext()) {
              Map.Entry<String, String> propEntry = propIter.next();
              if (null != propEntry.getKey() && propEntry.getKey().startsWith(propertyPrefix)) {
                  String propKey = propEntry.getKey().substring(propertyPrefix.length());
                  extractProps.put(propKey, propEntry.getValue());
                  if (removeProps) {
                      propIter.remove();
                  }
              }
          }
          return extractProps;
      }