docs: @Override
      public Map<String, String> getProperties() {
          HashMap<String, String> props = new HashMap<>();
          Properties sysProps = getSystemProperties();
          Set<String> keys = sysProps.stringPropertyNames();
          for (String key : keys) {
              if (key != null) {
                  String value = sysProps.getProperty(key);
                  if (value != null) { //it is possible that a property could be removed while we are looking at them
                      props.put(key, value);
                  }
              }
          }
  
          return props;
      }