code: @Override
      public File downloadResource(String namespace,
              String namespaceDownloadLocation) throws ResourceDownloadError {
          try {
              URL ftpNamespaceUrl = new URL(namespace);
              ftpConnector.connectAndLogin(ftpNamespaceUrl);
  
              String filePath = ftpNamespaceUrl.getFile().substring(1); //remove leading '/' since it's merely a delimiter in the ftp url specification.
              ftpConnector.retrieveFile(filePath, namespaceDownloadLocation);
  
              return new File(namespaceDownloadLocation);
          } catch (UnknownHostException e) {
              final String url = namespaceDownloadLocation;
              final String msg = e.getMessage();
              throw new ResourceDownloadError(url, msg, e);
          } catch (MalformedURLException e) {
              final String url = namespaceDownloadLocation;
              final String msg = e.getMessage();
              throw new ResourceDownloadError(url, msg, e);
          } catch (IOException e) {
              final String url = namespaceDownloadLocation;
              final String msg = e.getMessage();
              throw new ResourceDownloadError(url, msg, e);
          }
      }
docs: {@inheritDoc}