[nobug] Fixing migration
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java
index 6980474..f7f8023 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleMigratorManager.java
@@ -6,7 +6,7 @@
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.WorkspaceJob;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -18,6 +18,7 @@
import org.eclipse.wst.common.componentcore.datamodel.properties.IProjectMigratorDataModelProperties;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.internal.datamodel.IWorkspaceRunnableWithStatus;
import org.eclipse.wst.common.internal.emfworkbench.WorkbenchResourceHelper;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
@@ -36,53 +37,69 @@
return manager;
}
private void migrateComponentsIfNecessary(IProject project) {
- migrated.add(project);
- WorkspaceJob job = new WorkspaceJob("Adding Facets")
- {
-
- public IStatus runInWorkspace(IProgressMonitor monitor)
- {
- try
- {
+
+// WorkspaceJob job = new WorkspaceJob("Adding Facets")
+// {
+//
+// public IStatus runInWorkspace(IProgressMonitor monitor)
+// {
+// try
+// {
IProject[] projects = WorkbenchResourceHelper.getWorkspace().getRoot().getProjects();
for (int i = 0; i < projects.length; i++) {
- IProject project = projects[i];
-
+ IProject proj = projects[i];
+ migrated.add(proj);
IDataModel dm = DataModelFactory.createDataModel(new ProjectMigratorDataModelProvider());
- dm.setStringProperty(IProjectMigratorDataModelProperties.PROJECT_NAME,project.getName());
+ dm.setStringProperty(IProjectMigratorDataModelProperties.PROJECT_NAME,proj.getName());
try {
dm.getDefaultOperation().execute(null,null);
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+ }
- }}
- catch (Exception e)
- {
- return Status.CANCEL_STATUS;
- }
- return Status.OK_STATUS;
- }
- };
- job.schedule(5000);
+// }}
+// catch (Exception e)
+// {
+// return Status.CANCEL_STATUS;
+// }
+// return Status.OK_STATUS;
+// }
+// };
+// job.setRule(ResourcesPlugin.getWorkspace().getRuleFactory().buildRule());
+// job.schedule();
}
public synchronized void migrateOldMetaData(IProject aProject) throws CoreException {
- migrating = true;
- try {
- if (aProject.isAccessible() && ModuleCoreNature.isFlexibleProject(aProject)) {
- if (aProject.findMember(".wtpmodules") != null && (!moved.contains(aProject)))
- moveOldMetaDataFile();
- if ((aProject.findMember(".settings/.component") != null) &&
- (ProjectFacetsManager.create(aProject) == null) &&
- (!migrated.contains(aProject)))
- migrateComponentsIfNecessary(aProject);
+
+ IWorkspaceRunnableWithStatus workspaceRunnable = new IWorkspaceRunnableWithStatus(aProject) {
+ public void run(IProgressMonitor pm) throws CoreException {
+ IProject aProj = (IProject)this.getInfo();
+ migrating = true;
+ try {
+ if (aProj.isAccessible() && ModuleCoreNature.isFlexibleProject(aProj)) {
+ if (aProj.findMember(".wtpmodules") != null) {
+ if (!moved.contains(aProj))
+ moveOldMetaDataFile();
+ } else moved.add(aProj);
+ if ((aProj.findMember(".settings/.component") != null) &&
+ (ProjectFacetsManager.create(aProj) == null) &&
+ (!migrated.contains(aProj)))
+ migrateComponentsIfNecessary(aProj);
+ }
+ } finally {
+ migrating = false;
+ }
}
- } finally {
- migrating = false;
- }
+ };
+
+ ResourcesPlugin.getWorkspace().run(workspaceRunnable, null);
+
+
+
+
}
private void moveMetaDataFile(IProject project) {
IResource oldfile = project.findMember(".wtpmodules");
@@ -99,11 +116,11 @@
}
}
private void moveOldMetaDataFile() {
- WorkspaceJob job = new WorkspaceJob("Migrating metadata")
- {
-
- public IStatus runInWorkspace(IProgressMonitor monitor)
- {
+// WorkspaceJob job = new WorkspaceJob("Migrating metadata")
+// {
+//
+// public IStatus runInWorkspace(IProgressMonitor monitor)
+// {
try
{
IProject[] projects = WorkbenchResourceHelper.getWorkspace().getRoot().getProjects();
@@ -113,19 +130,18 @@
moveMetaDataFile(project);
IFolder depFolder = project.getFolder(".deployables");
if (depFolder.exists())
- depFolder.delete(true,monitor);
- project.refreshLocal(IResource.DEPTH_INFINITE,monitor);
+ depFolder.delete(true,null);
+ project.refreshLocal(IResource.DEPTH_INFINITE,null);
moved.add(project);
}
- }
- catch (Exception e)
- {
- return Status.CANCEL_STATUS;
+
+ } catch (Exception e) {
}
- return Status.OK_STATUS;
- }
- };
- job.schedule();
+// return Status.OK_STATUS;
+// }
+// };
+// job.setRule(ResourcesPlugin.getWorkspace().getRuleFactory().buildRule());
+// job.schedule();
}
protected boolean isMigrating() {
return migrating;
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
index 80be515..7013a2e 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/ModuleStructuralModel.java
@@ -117,7 +117,7 @@
addProjectModulesIfNecessary(res);
} catch (IOException e) {
Platform.getLog(ModulecorePlugin.getDefault().getBundle()).log(new Status(IStatus.ERROR, ModulecorePlugin.PLUGIN_ID, IStatus.ERROR, e.getMessage(), e));
- }
+ }
return res;
}