예제 #1
0
 private <V> V executeBare(MavenProject project, ICallable<V> callable, IProgressMonitor monitor)
     throws CoreException {
   final MavenSession mavenSession = getSession();
   final FilterRepositorySystemSession repositorySession = getRepositorySession();
   final TransferListener origTransferListener =
       repositorySession.setTransferListener(maven.createArtifactTransferListener(monitor));
   final MavenProject origProject = mavenSession.getCurrentProject();
   final List<MavenProject> origProjects = mavenSession.getProjects();
   try {
     if (project != null) {
       mavenSession.setCurrentProject(project);
       mavenSession.setProjects(Collections.singletonList(project));
     }
     return callable.call(this, monitor);
   } finally {
     repositorySession.setTransferListener(origTransferListener);
     if (project != null) {
       mavenSession.setCurrentProject(origProject);
       mavenSession.setProjects(
           origProjects != null ? origProjects : Collections.<MavenProject>emptyList());
     }
   }
 }