diff --git a/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java b/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java index 13bd7c06494..86866c452b2 100644 --- a/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java +++ b/core/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java @@ -51,6 +51,9 @@ public class AutomatedIntegrationSuite extends TestSuite { public static Test suite() { final AutomatedIntegrationSuite suite = new AutomatedIntegrationSuite(); + //TODO: BOG Take this out once null indexer id added to suite project creation + CCorePlugin.getDefault().getCoreModel().getIndexManager().setEnableUpdates(false); + // Add all success tests suite.addTest(CDescriptorTests.suite()); //suite.addTest(GCCErrorParserTests.suite()); diff --git a/core/org.eclipse.cdt.core/index/ChangeLog b/core/org.eclipse.cdt.core/index/ChangeLog index 2138ce41d5a..9437fb50736 100644 --- a/core/org.eclipse.cdt.core/index/ChangeLog +++ b/core/org.eclipse.cdt.core/index/ChangeLog @@ -1,3 +1,6 @@ +2005-03-15 Bogdan Gheorghe + Added a check for closed projects to update code + 2005-03-14 Bogdan Gheorghe Added update code for old indexer projects diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java index ea8594da8de..681e7819338 100644 --- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java +++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java @@ -27,13 +27,18 @@ import org.eclipse.cdt.internal.core.search.processing.JobManager; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IWorkspaceRunnable; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.QualifiedName; +import org.eclipse.core.runtime.Status; +import org.eclipse.core.runtime.jobs.Job; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -66,6 +71,7 @@ public class IndexManager extends JobManager{ private int upgradeIndexProblems = 0; private ReadWriteMonitor monitor = new ReadWriteMonitor(); + private boolean enableUpdates = true; /** * Create an indexer only on request @@ -92,6 +98,29 @@ public class IndexManager extends JobManager{ } + private class UpdateIndexVersionJob extends Job{ + private final IProject project; + public UpdateIndexVersionJob( IProject project, String name ){ + super( name ); + this.project = project; + } + + protected IStatus run(IProgressMonitor monitor) { + IWorkspaceRunnable job = new IWorkspaceRunnable( ){ + public void run(IProgressMonitor monitor){ + doProjectUpgrade(project); + doSourceIndexerUpgrade(project); + } + }; + try { + CCorePlugin.getWorkspace().run(job, project, 0, null); + } catch (CoreException e) { + } + return Status.OK_STATUS; + } + } + + /** * Flush current state @@ -121,7 +150,8 @@ public class IndexManager extends JobManager{ //where neccesary for (int i=0; i