docs: public static void updateFileFromUrl(final String sourceUrl, final String destinationFilePath,
                                           final String username, final String password,
                                           final URLFileUpdaterFactory factory) throws
          UpdateException {
          String tusername = username;
          String tpassword = password;
          URL url;
          try {
              url = new URL(sourceUrl);
              if (null == username && null == password && null != url.getUserInfo()) {
                  //try to extract userinfo from URL
                  final String userInfo = url.getUserInfo();
                  final String[] split = userInfo.split(":", 2);
                  if (2 == split.length) {
                      tusername = split[0];
                      tpassword = split[1];
                      url = new URL(url.getProtocol(), url.getHost(), url.getPort(), url.getFile());
                  }
              }
          } catch (MalformedURLException e) {
              throw new UpdateException(e);
          }
          final File destinationFile = new File(destinationFilePath);
          final long mtime = destinationFile.exists() ? destinationFile.lastModified() : 0;
  
          update(factory.fileUpdaterFromURL(url, tusername, tpassword), destinationFile);
          if (destinationFile.lastModified() > mtime) {
              logger.info("updated file: " + destinationFile.getAbsolutePath());
          } else {
              logger.info("file already up to date: " + destinationFile.getAbsolutePath());
          }
  
      }