Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rapicault2014-03-26 01:09:34 +0000
committerEike Stepper2014-03-26 02:55:55 +0000
commit46b35ea6d7c5e9c03094f328053424efdb009010 (patch)
tree26fa7dc54035060b30399a90e013b64ab01de115
parenta2cf7313956c614a14131d5f873e7c08be3933bf (diff)
downloadcdo-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>
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/util/WorkspaceUtil.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectsImportTaskImpl.java23
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

Back to the top