docs: public void resolveDependencies(boolean downloadArtifacts, Map<String,String> properties) throws URLException, DependencyException {
          log.debug( "Resolving Dependencies" );
          
          log.debug("Local Repo Path: {}", localRepoPath);
  
          if ( log.isDebugEnabled() ) {
              log.debug("Remote Repositories:");
              for (RemoteRepository repo : getRemoteRepositories()) {
                  log.debug("  {}", repo.toString());
              }
          }
  
          RepositoryClient repoClient = new RepositoryClient(this.getLocalRepoPath());
          if ( properties != null ) {
              repoClient.setProperties( properties );
          }
          
          // If there are local build artifacts, create a BuildWorkspaceReader to
          // override remote artifacts with the local build artifacts.
          if ( buildArtifacts.size() > 0 ) {
              repoClient.setBuildWorkspaceReader( buildArtifacts );
          }
          
          CollectRequest collectRequest = new CollectRequest();
          collectRequest.setDependencies( new ArrayList<Dependency>(getDependencies()));
          
          try {
              collectRequest.addRepository(RepoBuilder.remoteRepositoryFromUrl("file:" + this.getLocalRepoPath()));
          } catch (MalformedURLException e) {
              throw new URLException("Failed to add local repo to request", e);
          }
  
          for (RemoteRepository repo : getRemoteRepositories()) {
              collectRequest.addRepository(repo);
          }
  
          CollectResult collectResult;
          try {
              collectResult = repoClient.collectDependencies(collectRequest);
          } catch (DependencyCollectionException e) {
              throw new DependencyException(e);
          }
  
          preorderedNodeList = new PreorderNodeListGenerator();
          if (downloadArtifacts) {
              DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, null);
  
              log.debug("Resolving dependencies to files");
              DependencyResult dependencyResult;
              try {
                  dependencyResult = repoClient.resolveDependencies(dependencyRequest);
              } catch (DependencyResolutionException e) {
                  throw new DependencyException(e);
              }
              dependencyResult.getRoot().accept(preorderedNodeList);
  
          } else {
              collectResult.getRoot().accept(preorderedNodeList);
          }
  
          //this.setDependencies( new HashSet<Dependency>(preorderedNodeList.getDependencies(true)));
          log.debug("Setting resolved dependencies: {}", this.getDependencies());
      }