private static @Nullable ArtifactAuthenticationData loadRemoteRepositoryAuthenticationFromSystemProperty(
    @NotNull JpsRemoteRepositoryDescription description
  ) {
    String propertyName = REMOTE_REPOSITORY_AUTH_PROPERTY_PREFIX + description.getId();
    String propertyValue = System.getProperty(propertyName);
    if (propertyValue == null) {
      return null;
    }

    // Expected 'username:password' property value.
    // Use of ':' as separator is OK - the same one is used in HTTP Basic Authentication (RFC 7617).
    String[] tokens = propertyValue.split(":");
    if (tokens.length != 2) {
      throw new IllegalArgumentException("Malformed remote repository authentication system property for repository with id '" +
                                         description.getId() + "'. " +
                                         "Expected system property format is '" + propertyName + "=username:password'");
    }

    String username = tokens[0];
    String password = tokens[1];
    return new ArtifactAuthenticationData(username, password);
  }
private static @Nullable ArtifactAuthenticationData loadRemoteRepositoryAuthenticationFromSystemProperty(
    @NotNull JpsRemoteRepositoryDescription description
  )