diff options
author | Pascal Rapicault | 2014-03-26 01:09:34 +0000 |
---|---|---|
committer | Eike Stepper | 2014-03-26 02:55:55 +0000 |
commit | 46b35ea6d7c5e9c03094f328053424efdb009010 (patch) | |
tree | 26fa7dc54035060b30399a90e013b64ab01de115 | |
parent | a2cf7313956c614a14131d5f873e7c08be3933bf (diff) | |
download | cdo-46b35ea6d7c5e9c03094f328053424efdb009010.tar.gz cdo-46b35ea6d7c5e9c03094f328053424efdb009010.tar.xz cdo-46b35ea6d7c5e9c03094f328053424efdb009010.zip |
[429246] [Oomph] Import project by browsing file system
https://bugs.eclipse.org/bugs/show_bug.cgi?id=429246
Signed-off-by: Pascal Rapicault <pascal.rapicault@ericsson.com>
2 files changed, 21 insertions, 7 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/util/WorkspaceUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/util/WorkspaceUtil.java index 4748cb7dc7..73eca14ac4 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/util/WorkspaceUtil.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/util/WorkspaceUtil.java @@ -73,6 +73,11 @@ public final class WorkspaceUtil public static int importProjects(final Collection<File> projectLocations, IProgressMonitor monitor) throws CoreException { + if (projectLocations.isEmpty()) + { + return 0; + } + final AtomicInteger count = new AtomicInteger(); WORKSPACE.run(new IWorkspaceRunnable() { diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectsImportTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectsImportTaskImpl.java index 5061a90afb..ae8ddada0b 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectsImportTaskImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectsImportTaskImpl.java @@ -4,6 +4,7 @@ package org.eclipse.emf.cdo.releng.setup.impl; import org.eclipse.emf.cdo.releng.internal.setup.util.BasicProjectAnalyzer; import org.eclipse.emf.cdo.releng.internal.setup.util.WorkspaceUtil; +import org.eclipse.emf.cdo.releng.predicates.Predicate; import org.eclipse.emf.cdo.releng.setup.AutomaticSourceLocator; import org.eclipse.emf.cdo.releng.setup.ProjectsImportTask; import org.eclipse.emf.cdo.releng.setup.SetupPackage; @@ -23,6 +24,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.IProgressMonitor; import java.io.File; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -219,15 +221,22 @@ public class ProjectsImportTaskImpl extends SetupTaskImpl implements ProjectsImp public void perform(SetupTaskContext context) throws Exception { - EList<AutomaticSourceLocator> locators = getSourceLocators(); - for (AutomaticSourceLocator source : locators) + List<File> projectFolders = new ArrayList<File>(); + BasicProjectAnalyzer<IProject> analyzer = new BasicProjectAnalyzer<IProject>(); + ProgressLogMonitor monitor = new ProgressLogMonitor(context); + + for (AutomaticSourceLocator source : getSourceLocators()) { - context.log("Importing projects from " + source.getRootFolder()); - Map<IProject, File> projects = new BasicProjectAnalyzer<IProject>().collectProjects( - new File(source.getRootFolder()), source.getPredicates(), source.isLocateNestedProjects(), - new ProgressLogMonitor(context)); - WorkspaceUtil.importProjects(projects.values(), new ProgressLogMonitor(context)); + File rootFolder = new File(source.getRootFolder()); + EList<Predicate> predicates = source.getPredicates(); + boolean locateNestedProjects = source.isLocateNestedProjects(); + + context.log("Importing projects from " + rootFolder); + Map<IProject, File> projects = analyzer.collectProjects(rootFolder, predicates, locateNestedProjects, monitor); + projectFolders.addAll(projects.values()); } + + WorkspaceUtil.importProjects(projectFolders, monitor); } @Override |