mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Removed unnecessary changes against master
This commit is contained in:
parent
bbec91c5bc
commit
2559c118ec
4 changed files with 134 additions and 199 deletions
|
@ -75,7 +75,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
final static Class DP4= Providers.Dummy4.class;
|
||||
final static Class DP5= Providers.Dummy5.class;
|
||||
final static Class[] DPS= new Class[] {DP4, DP2, DP1, DP3, DP5};
|
||||
|
||||
|
||||
/*
|
||||
* Fictional compatibility ranges for testing
|
||||
*/
|
||||
|
@ -83,9 +83,9 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
final static VersionRange VERSION_401= new VersionRange("[36,37]");
|
||||
final static VersionRange VERSION_405= new VersionRange("[37,39]");
|
||||
final static VersionRange VERSION_502= new VersionRange("[89,91]");
|
||||
|
||||
|
||||
final CCorePlugin core= CCorePlugin.getDefault();
|
||||
|
||||
|
||||
public IndexProviderManagerTest() {
|
||||
super("IndexProviderManagerTest");
|
||||
}
|
||||
|
@ -106,11 +106,11 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
IndexProviderManager ipm= ((PDOMManager)CCorePlugin.getIndexManager()).getIndexProviderManager();
|
||||
ipm.reset(); ipm.startup();
|
||||
}
|
||||
|
||||
|
||||
public void testProvider_SimpleLifeCycle_200958() throws Exception {
|
||||
for (Class element : DPS)
|
||||
DPT.reset(element);
|
||||
|
||||
|
||||
List cprojects = new ArrayList(), expectedTrace = new ArrayList();
|
||||
try {
|
||||
for(int i=0; i<3; i++) {
|
||||
|
@ -137,7 +137,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
|
||||
public void testProvider_OverDeleteAndAdd() throws Exception {
|
||||
DPT.reset(DP1);
|
||||
|
||||
|
||||
List expectedTrace = new ArrayList();
|
||||
ICProject cproject = null;
|
||||
try {
|
||||
|
@ -180,7 +180,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
File newLocation = CProjectHelper.freshDir();
|
||||
IProjectDescription description = cproject.getProject().getDescription();
|
||||
description.setLocationURI(newLocation.toURI());
|
||||
cproject.getProject().move(description, IResource.FORCE | IResource.SHALLOW, new NullProgressMonitor());
|
||||
cproject.getProject().move(description, IResource.FORCE | IResource.SHALLOW, new NullProgressMonitor());
|
||||
|
||||
index = CCorePlugin.getIndexManager().getIndex(cproject);
|
||||
assertEquals(expectedTrace, DPT.getProjectsTrace(DP1));
|
||||
|
@ -190,19 +190,19 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void testVersioning_IncompatibleIgnored() throws Exception {
|
||||
IndexProviderManager ipm= ((PDOMManager)CCorePlugin.getIndexManager()).getIndexProviderManager();
|
||||
|
||||
|
||||
ICProject cproject = null;
|
||||
try {
|
||||
cproject= CProjectHelper.createCCProject("IndexFactoryConfigurationUsageTest", IPDOMManager.ID_NO_INDEXER);
|
||||
IProject project= cproject.getProject();
|
||||
|
||||
|
||||
|
||||
|
||||
MockState mockState = new MockState(cproject);
|
||||
mockState.setConfig(MockState.REL_V1_ID);
|
||||
|
||||
|
||||
IIndexProvider provider1= new IIndexFragmentProvider() {
|
||||
IIndexFragment[] fragments= new IIndexFragment[] {
|
||||
new MockPDOM("contentID.contentA", "36"),
|
||||
|
@ -211,11 +211,9 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
new MockPDOM("contentID.bar", "91"),
|
||||
new MockPDOM("contentID.baz", "89")
|
||||
};
|
||||
@Override
|
||||
public IIndexFragment[] getIndexFragments(ICConfigurationDescription config) {
|
||||
return fragments;
|
||||
}
|
||||
@Override
|
||||
public boolean providesFor(ICProject project) throws CoreException {
|
||||
return true;
|
||||
}
|
||||
|
@ -225,22 +223,20 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
new MockPDOM("contentID.baz", "90"),
|
||||
new MockPDOM("contentID.contentA", "38"),
|
||||
};
|
||||
@Override
|
||||
public IIndexFragment[] getIndexFragments(ICConfigurationDescription config) {
|
||||
return fragments;
|
||||
}
|
||||
@Override
|
||||
public boolean providesFor(ICProject project) throws CoreException {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); // ensure IPM is called only once under test conditions
|
||||
setExpectedNumberOfLoggedNonOKStatusObjects(3); // foo, bar and baz have no compatible fragments available
|
||||
|
||||
|
||||
ipm.reset(VERSION_405); ipm.startup();
|
||||
ipm.addIndexProvider(provider1); ipm.addIndexProvider(provider2);
|
||||
|
||||
|
||||
IIndexFragment[] actual = ipm.getProvidedIndexFragments(mockState.getCurrentConfig(), true);
|
||||
assertEquals(1, actual.length);
|
||||
assertFragmentPresent("contentID.contentA", "38", actual);
|
||||
|
@ -250,19 +246,19 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void testVersioning_NoCompatibleVersionsFound() throws Exception {
|
||||
IndexProviderManager ipm= ((PDOMManager)CCorePlugin.getIndexManager()).getIndexProviderManager();
|
||||
|
||||
|
||||
ICProject cproject = null;
|
||||
try {
|
||||
cproject= CProjectHelper.createCCProject("IndexFactoryConfigurationUsageTest", IPDOMManager.ID_NO_INDEXER);
|
||||
IProject project= cproject.getProject();
|
||||
|
||||
|
||||
|
||||
|
||||
MockState mockState = new MockState(cproject);
|
||||
mockState.setConfig(MockState.REL_V1_ID);
|
||||
|
||||
|
||||
IIndexProvider provider1= new IIndexFragmentProvider() {
|
||||
IIndexFragment[] fragments= new IIndexFragment[] {
|
||||
new MockPDOM("contentID.contentA", "36"),
|
||||
|
@ -271,11 +267,9 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
new MockPDOM("contentID.bar", "91"),
|
||||
new MockPDOM("contentID.baz", "89")
|
||||
};
|
||||
@Override
|
||||
public IIndexFragment[] getIndexFragments(ICConfigurationDescription config) {
|
||||
return fragments;
|
||||
}
|
||||
@Override
|
||||
public boolean providesFor(ICProject project) throws CoreException {
|
||||
return true;
|
||||
}
|
||||
|
@ -284,22 +278,20 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
IIndexFragment[] fragments= new IIndexFragment[] {
|
||||
new MockPDOM("contentID.contentA", "41"),
|
||||
};
|
||||
@Override
|
||||
public IIndexFragment[] getIndexFragments(ICConfigurationDescription config) {
|
||||
return fragments;
|
||||
}
|
||||
@Override
|
||||
public boolean providesFor(ICProject project) throws CoreException {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
CCorePlugin.getIndexManager().joinIndexer(8000, npm()); // ensure IPM is called only once under test conditions
|
||||
setExpectedNumberOfLoggedNonOKStatusObjects(1); // contentA has no compatible fragments available
|
||||
|
||||
|
||||
ipm.reset(VERSION_502); ipm.startup();
|
||||
ipm.addIndexProvider(provider1); ipm.addIndexProvider(provider2);
|
||||
|
||||
|
||||
IIndexFragment[] actual = ipm.getProvidedIndexFragments(mockState.getCurrentConfig(), true);
|
||||
assertEquals(3, actual.length);
|
||||
assertFragmentPresent("contentID.foo", "90", actual);
|
||||
|
@ -311,7 +303,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void assertFragmentPresent(String id, String version, IIndexFragment[] fragments) throws Exception {
|
||||
for (IIndexFragment candidate : fragments) {
|
||||
String cid= null, csver= null;
|
||||
|
@ -327,49 +319,49 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
}
|
||||
fail("Fragment matching (id="+id+",version="+version+") was not present");
|
||||
}
|
||||
|
||||
|
||||
public void testIndexFactoryConfigurationUsage() throws Exception {
|
||||
IIndex index;
|
||||
|
||||
|
||||
ICProject cproject = null;
|
||||
// Modifying the .project file triggers an indexer job, suppress that:
|
||||
DeltaAnalyzer.sSuppressPotentialTUs= true;
|
||||
try {
|
||||
cproject = CProjectHelper.createCCProject("IndexFactoryConfigurationUsageTest", IPDOMManager.ID_NO_INDEXER);
|
||||
IProject project= cproject.getProject();
|
||||
|
||||
|
||||
ICProjectDescription pd= core.getProjectDescription(project);
|
||||
ICConfigurationDescription cfg1= newCfg(pd, "project", "config1");
|
||||
ICConfigurationDescription cfg2= newCfg(pd, "project", "config2");
|
||||
core.setProjectDescription(project, pd);
|
||||
|
||||
|
||||
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||
CCorePlugin.getIndexManager().joinIndexer(8000, npm());
|
||||
|
||||
|
||||
DPT.reset(DP1);
|
||||
changeConfigRelations(project, ICProjectDescriptionPreferences.CONFIGS_LINK_SETTINGS_AND_ACTIVE);
|
||||
assertEquals(0, DPT.getProjectsTrace(DP1).size());
|
||||
assertEquals(0, DPT.getCfgsTrace(DP1).size());
|
||||
|
||||
|
||||
changeActiveConfiguration(project, cfg1);
|
||||
DPT.reset(DP1);
|
||||
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||
assertEquals(0, DPT.getProjectsTrace(DP1).size());
|
||||
assertEquals(1, DPT.getCfgsTrace(DP1).size());
|
||||
assertEquals("project.config1", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId());
|
||||
|
||||
|
||||
changeActiveConfiguration(project, cfg2);
|
||||
DPT.reset(DP1);
|
||||
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||
assertEquals(0, DPT.getProjectsTrace(DP1).size());
|
||||
assertEquals(1, DPT.getCfgsTrace(DP1).size());
|
||||
assertEquals("project.config2", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId());
|
||||
|
||||
|
||||
DPT.reset(DP1);
|
||||
changeConfigRelations(project, ICProjectDescriptionPreferences.CONFIGS_INDEPENDENT);
|
||||
assertEquals(0, DPT.getProjectsTrace(DP1).size());
|
||||
assertEquals(0, DPT.getCfgsTrace(DP1).size());
|
||||
|
||||
|
||||
changeActiveConfiguration(project, cfg1);
|
||||
DPT.reset(DP1);
|
||||
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||
|
@ -377,7 +369,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
assertEquals(1, DPT.getCfgsTrace(DP1).size());
|
||||
// should still be config2, as the change in active configuration does not matter
|
||||
assertEquals("project.config2", ((ICConfigurationDescription)DPT.getCfgsTrace(DP1).get(0)).getId());
|
||||
|
||||
|
||||
changeActiveConfiguration(project, cfg2);
|
||||
DPT.reset(DP1);
|
||||
index= CCorePlugin.getIndexManager().getIndex(cproject);
|
||||
|
@ -392,7 +384,7 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void testGetProvidedFragments() throws Exception {
|
||||
ICProject cproject= CProjectHelper.createCProject("IndexProviderManagerTest", "bin", IPDOMManager.ID_NO_INDEXER);
|
||||
|
||||
|
@ -499,20 +491,20 @@ public class IndexProviderManagerTest extends IndexTestBase {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private ICConfigurationDescription newCfg(ICProjectDescription des, String project, String config) throws CoreException {
|
||||
CDefaultConfigurationData data= new CDefaultConfigurationData(project+"."+config, project+" "+config+" name", null);
|
||||
data.initEmptyData();
|
||||
return des.createConfiguration(CCorePlugin.DEFAULT_PROVIDER_ID, data);
|
||||
return des.createConfiguration(CCorePlugin.DEFAULT_PROVIDER_ID, data);
|
||||
}
|
||||
|
||||
|
||||
private void changeActiveConfiguration(IProject project, ICConfigurationDescription cfg) throws CoreException {
|
||||
ICProjectDescription pd= core.getProjectDescription(project);
|
||||
pd.setActiveConfiguration(pd.getConfigurationById(cfg.getId()));
|
||||
core.setProjectDescription(project, pd);
|
||||
CCorePlugin.getIndexManager().joinIndexer(8000, npm());
|
||||
}
|
||||
|
||||
|
||||
private void changeConfigRelations(IProject project, int option) throws CoreException {
|
||||
ICProjectDescription pd= core.getProjectDescription(project);
|
||||
pd.setConfigurationRelations(option);
|
||||
|
@ -528,7 +520,6 @@ class MockStateIndexProvider implements IIndexProvider {
|
|||
this.targetProject = cproject;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean providesFor(ICProject cproject) throws CoreException {
|
||||
return this.targetProject.equals(cproject);
|
||||
}
|
||||
|
@ -537,7 +528,7 @@ class MockStateIndexProvider implements IIndexProvider {
|
|||
class MockStateIndexFragmentProvider extends MockStateIndexProvider implements IIndexFragmentProvider {
|
||||
private boolean invert;
|
||||
final IIndexFragment[] fragments;
|
||||
|
||||
|
||||
public void invert() {
|
||||
invert = !invert;
|
||||
}
|
||||
|
@ -551,7 +542,6 @@ class MockStateIndexFragmentProvider extends MockStateIndexProvider implements I
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIndexFragment[] getIndexFragments(ICConfigurationDescription config) throws CoreException {
|
||||
int index = MockState.states.indexOf(config.getId());
|
||||
index = invert ? (fragments.length-1)-index : index;
|
||||
|
@ -574,201 +564,146 @@ class MockConfig implements ICConfigurationDescription {
|
|||
this.project= project;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICConfigExtensionReference create(String extensionPoint,
|
||||
String extension) throws CoreException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICExternalSetting createExternalSetting(String[] languageIDs,
|
||||
String[] contentTypeIds, String[] extensions,
|
||||
ICSettingEntry[] entries) throws WriteAccessException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICFileDescription createFileDescription(IPath path,
|
||||
ICResourceDescription base) throws CoreException,
|
||||
WriteAccessException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICFolderDescription createFolderDescription(IPath path,
|
||||
ICFolderDescription base) throws CoreException,
|
||||
WriteAccessException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICConfigExtensionReference[] get(String extensionPointID) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICBuildSetting getBuildSetting() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getBuildSystemId() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICdtVariablesContributor getBuildVariablesContributor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CConfigurationData getConfigurationData() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICExternalSetting[] getExternalSettings() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICFileDescription[] getFileDescriptions() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICFolderDescription[] getFolderDescriptions() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICProjectDescription getProjectDescription() {
|
||||
return CoreModel.getDefault().getProjectDescription(project);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map getReferenceInfo() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICResourceDescription getResourceDescription(IPath path,
|
||||
boolean exactPath) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICResourceDescription[] getResourceDescriptions() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICFolderDescription getRootFolderDescription() {return null;}
|
||||
@Override
|
||||
public Object getSessionProperty(QualifiedName name) {return null;}
|
||||
@Override
|
||||
public ICSourceEntry[] getSourceEntries() {return null;}
|
||||
@Override
|
||||
public ICTargetPlatformSetting getTargetPlatformSetting() {return null;}
|
||||
@Override
|
||||
public boolean isActive() {return false;}
|
||||
@Override
|
||||
public boolean isModified() {return false;}
|
||||
@Override
|
||||
public boolean isPreferenceConfiguration() {return false;}
|
||||
@Override
|
||||
public void remove(ICConfigExtensionReference ext) throws CoreException {}
|
||||
@Override
|
||||
public void remove(String extensionPoint) throws CoreException {}
|
||||
@Override
|
||||
public void removeExternalSetting(ICExternalSetting setting) throws WriteAccessException {}
|
||||
@Override
|
||||
public void removeExternalSettings() throws WriteAccessException {}
|
||||
@Override
|
||||
public void removeResourceDescription(ICResourceDescription des)
|
||||
throws CoreException, WriteAccessException {}
|
||||
@Override
|
||||
public void setActive() throws WriteAccessException {}
|
||||
@Override
|
||||
public void setConfigurationData(String buildSystemId,
|
||||
CConfigurationData data) throws WriteAccessException {}
|
||||
@Override
|
||||
public void setDescription(String des) throws WriteAccessException {}
|
||||
@Override
|
||||
public void setName(String name) throws WriteAccessException {}
|
||||
@Override
|
||||
public void setReferenceInfo(Map<String, String> refs) throws WriteAccessException {}
|
||||
@Override
|
||||
public void setSessionProperty(QualifiedName name, Object value) {}
|
||||
@Override
|
||||
public void setSourceEntries(ICSourceEntry[] entries) throws CoreException,
|
||||
WriteAccessException {}
|
||||
@Override
|
||||
public ICSettingObject[] getChildSettings() {return null;}
|
||||
@Override
|
||||
public ICConfigurationDescription getConfiguration() {return null;}
|
||||
@Override
|
||||
public String getName() {return null;}
|
||||
@Override
|
||||
public ICSettingContainer getParent() {return null;}
|
||||
@Override
|
||||
public int getType() {return 0;}
|
||||
@Override
|
||||
public boolean isReadOnly() {return false;}
|
||||
@Override
|
||||
public boolean isValid() {return false;}
|
||||
@Override
|
||||
public ICStorageElement getStorage(String id, boolean create) throws CoreException {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public ICStorageElement importStorage(String id, ICStorageElement storage) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeStorage(String id) throws CoreException {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICLanguageSetting getLanguageSettingForFile(IPath path, boolean ignoreExludeStatus) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getExternalSettingsProviderIds() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExternalSettingsProviderIds(String[] ids) {}
|
||||
|
||||
@Override
|
||||
public void updateExternalSettingsProviders(String[] ids) {}
|
||||
|
||||
@Override
|
||||
public ICSourceEntry[] getResolvedSourceEntries() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CConfigurationStatus getConfigurationStatus() {
|
||||
return CConfigurationStatus.CFG_STATUS_OK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReadOnly(boolean readOnly, boolean keepModify) {}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -801,12 +736,12 @@ class MockState {
|
|||
class MockPDOM extends EmptyIndexFragment {
|
||||
String id;
|
||||
String version;
|
||||
|
||||
|
||||
MockPDOM(String id, String version) {
|
||||
this.id= id;
|
||||
this.version= version;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getProperty(String propertyName) throws CoreException {
|
||||
if(IIndexFragment.PROPERTY_FRAGMENT_ID.equals(propertyName)) {
|
||||
|
@ -820,9 +755,9 @@ class MockPDOM extends EmptyIndexFragment {
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[Mock index fragment "+id+"."+System.identityHashCode(this)+"]";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -147,12 +147,12 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
private final PDOMIndexerJob fIndexerJob;
|
||||
private IPDOMIndexerTask fCurrentTask;
|
||||
private int fSourceCount, fHeaderCount, fTickCount;
|
||||
|
||||
|
||||
private final LinkedList<Runnable> fChangeEvents= new LinkedList<Runnable>();
|
||||
private final Job fNotificationJob;
|
||||
|
||||
private final AtomicMultiSet<IIndexFileLocation> fFilesIndexedUnconditionlly= new AtomicMultiSet<IIndexFileLocation>();
|
||||
|
||||
private final AtomicMultiSet<IIndexFileLocation> fFilesIndexedUnconditionlly= new AtomicMultiSet<IIndexFileLocation>();
|
||||
|
||||
/**
|
||||
* Stores mapping from pdom to project, used to serialize creation of new pdoms.
|
||||
*/
|
||||
|
@ -160,7 +160,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
private Map<File, ICProject> fFileToProject= new HashMap<File, ICProject>();
|
||||
private ListenerList fChangeListeners= new ListenerList();
|
||||
private ListenerList fStateListeners= new ListenerList();
|
||||
|
||||
|
||||
private IndexChangeEvent fIndexChangeEvent= new IndexChangeEvent();
|
||||
private IndexerStateEvent fIndexerStateEvent= new IndexerStateEvent();
|
||||
|
||||
|
@ -170,17 +170,17 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
private final ICProjectDescriptionListener fProjectDescriptionListener;
|
||||
private final JobChangeListener fJobChangeListener;
|
||||
private final IPreferenceChangeListener fPreferenceChangeListener;
|
||||
|
||||
|
||||
private IndexFactory fIndexFactory= new IndexFactory(this);
|
||||
private IndexProviderManager fIndexProviderManager = new IndexProviderManager();
|
||||
|
||||
|
||||
/**
|
||||
* Serializes creation of new indexer, when acquiring the lock you are
|
||||
* Serializes creation of new indexer, when acquiring the lock you are
|
||||
* not allowed to hold a lock on fPDOMs.
|
||||
*/
|
||||
private Map<ICProject, IndexUpdatePolicy> fUpdatePolicies= new HashMap<ICProject, IndexUpdatePolicy>();
|
||||
private Set<String> fClosingProjects= new HashSet<String>();
|
||||
|
||||
|
||||
private Map<IProject, PCL> fPrefListeners= new HashMap<IProject, PCL>();
|
||||
private List<IndexerSetupParticipant> fSetupParticipants= new ArrayList<IndexerSetupParticipant>();
|
||||
private Set<ICProject> fPostponedProjects= new HashSet<ICProject>();
|
||||
|
@ -188,7 +188,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
private boolean fInShutDown;
|
||||
|
||||
boolean fTraceIndexerSetup;
|
||||
|
||||
|
||||
public PDOMManager() {
|
||||
PDOM.sDEBUG_LOCKS= "true".equals(Platform.getDebugOption(CCorePlugin.PLUGIN_ID + "/debug/index/locks")); //$NON-NLS-1$//$NON-NLS-2$
|
||||
addIndexerSetupParticipant(new WaitForRefreshJobs());
|
||||
|
@ -204,7 +204,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
fIndexerJob= new PDOMIndexerJob(this);
|
||||
fNotificationJob= createNotifyJob();
|
||||
}
|
||||
|
||||
|
||||
public Job startup() {
|
||||
fInShutDown= false;
|
||||
Job postStartupJob= new Job(CCorePlugin.getResourceString("CCorePlugin.startupJob")) { //$NON-NLS-1$
|
||||
|
@ -219,10 +219,10 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
};
|
||||
postStartupJob.setSystem(true);
|
||||
return postStartupJob;
|
||||
return postStartupJob;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Called from a job after plugin start.
|
||||
*/
|
||||
protected void postStartup() {
|
||||
|
@ -234,7 +234,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
adjustCacheSize();
|
||||
updatePathCanonicalizationStrategy();
|
||||
fIndexProviderManager.startup();
|
||||
|
||||
|
||||
fTraceIndexerSetup= String.valueOf(true).equals(Platform.getDebugOption(TRACE_INDEXER_SETUP));
|
||||
final CoreModel model = CoreModel.getDefault();
|
||||
ResourcesPlugin.getWorkspace().addResourceChangeListener(fCModelListener, IResourceChangeEvent.POST_BUILD);
|
||||
|
@ -268,7 +268,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
fTaskQueue.clear();
|
||||
jobToCancel= fIndexerJob;
|
||||
}
|
||||
|
||||
|
||||
if (jobToCancel != null) {
|
||||
assert !Thread.holdsLock(fTaskQueue);
|
||||
jobToCancel.cancelJobs(null, false);
|
||||
|
@ -290,7 +290,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
reindexAll();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void adjustCacheSize() {
|
||||
IPreferencesService prefs = Platform.getPreferencesService();
|
||||
int cachePct= prefs.getInt(CCorePlugin.PLUGIN_ID, CCorePreferenceConstants.INDEX_DB_CACHE_SIZE_PCT, 10, null);
|
||||
|
@ -313,7 +313,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
|
||||
/**
|
||||
* Returns the pdom for the project.
|
||||
* Returns the pdom for the project.
|
||||
* @throws CoreException
|
||||
*/
|
||||
public IPDOM getPDOM(ICProject project) throws CoreException {
|
||||
|
@ -327,9 +327,9 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
return pdom;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the pdom for the project. The call to the method may cause
|
||||
* Returns the pdom for the project. The call to the method may cause
|
||||
* opening the database. In case there is a version mismatch the data
|
||||
* base is cleared, in case it does not exist it is created. In any
|
||||
* case a pdom ready to use is returned.
|
||||
|
@ -390,7 +390,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
pdom.setASTFilePathResolver(new ProjectIndexerInputAdapter(project, false));
|
||||
pdom.addListener(this);
|
||||
|
||||
|
||||
fFileToProject.put(dbFile, project);
|
||||
fProjectToPDOM.put(rproject, pdom);
|
||||
if (pdomProxy instanceof PDOMProxy) {
|
||||
|
@ -438,7 +438,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
public void setDefaultIndexerId(String indexerId) {
|
||||
IndexerPreferences.setDefaultIndexerId(indexerId);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getIndexerId(ICProject project) {
|
||||
IProject prj= project != null ? project.getProject() : null;
|
||||
|
@ -451,7 +451,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
IndexerPreferences.set(prj, IndexerPreferences.KEY_INDEXER_ID, indexerId);
|
||||
CCoreInternals.savePreferences(prj, IndexerPreferences.getScope(prj) == IndexerPreferences.SCOPE_PROJECT_SHARED);
|
||||
}
|
||||
|
||||
|
||||
protected void onPreferenceChange(ICProject cproject, PreferenceChangeEvent event) {
|
||||
if (IndexerPreferences.KEY_UPDATE_POLICY.equals(event.getKey())) {
|
||||
changeUpdatePolicy(cproject);
|
||||
|
@ -482,17 +482,17 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
|
||||
private void changeIndexer(ICProject cproject) throws CoreException {
|
||||
assert !Thread.holdsLock(fProjectToPDOM);
|
||||
|
||||
|
||||
// if there is no indexer, don't touch the preferences.
|
||||
IPDOMIndexer oldIndexer= getIndexer(cproject);
|
||||
if (oldIndexer == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
IProject prj= cproject.getProject();
|
||||
String newid= IndexerPreferences.get(prj, IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_NO_INDEXER);
|
||||
Properties props= IndexerPreferences.getProperties(prj);
|
||||
|
||||
|
||||
// Workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=359485
|
||||
synchronized (new ProjectScope(prj).getNode(CCorePlugin.PLUGIN_ID)) {
|
||||
synchronized (fUpdatePolicies) {
|
||||
|
@ -519,7 +519,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
enqueue(new PDOMRebuildTask(indexer));
|
||||
}
|
||||
}}
|
||||
|
||||
|
||||
if (oldIndexer != null) {
|
||||
stopIndexer(oldIndexer);
|
||||
}
|
||||
|
@ -546,26 +546,26 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
void createIndexer(ICProject project, IProgressMonitor pm) throws InterruptedException {
|
||||
final IProject prj= project.getProject();
|
||||
final String name = prj.getName();
|
||||
if (fTraceIndexerSetup)
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Creation for project " + name); //$NON-NLS-1$
|
||||
|
||||
|
||||
assert !Thread.holdsLock(fProjectToPDOM);
|
||||
try {
|
||||
// Workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=359485
|
||||
synchronized (new ProjectScope(prj).getNode(CCorePlugin.PLUGIN_ID)) {
|
||||
synchronized (fUpdatePolicies) {
|
||||
if (fClosingProjects.contains(name)) {
|
||||
if (fTraceIndexerSetup)
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Aborting setup (1) for closing project " + name + " [1]"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
WritablePDOM pdom= getOrCreatePDOM(project);
|
||||
Properties props= IndexerPreferences.getProperties(prj);
|
||||
IPDOMIndexer indexer= newIndexer(getIndexerId(project), props);
|
||||
IndexUpdatePolicy policy= createPolicy(project);
|
||||
|
||||
boolean rebuild=
|
||||
boolean rebuild=
|
||||
pdom.isClearedBecauseOfVersionMismatch() ||
|
||||
pdom.isCreatedFromScratch() ||
|
||||
policy.isInitialRebuildRequested();
|
||||
|
@ -593,7 +593,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
pdom.releaseReadLock();
|
||||
}
|
||||
if (resume) {
|
||||
if (fTraceIndexerSetup)
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Resuming for project " + name); //$NON-NLS-1$
|
||||
|
||||
enqueue(new PDOMUpdateTask(indexer,
|
||||
|
@ -612,7 +612,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
synchronized (new ProjectScope(prj).getNode(CCorePlugin.PLUGIN_ID)) {
|
||||
synchronized (fUpdatePolicies) {
|
||||
if (fClosingProjects.contains(name)) {
|
||||
if (fTraceIndexerSetup)
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Aborting setup for closing project " + name + " [2]"); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
return;
|
||||
}
|
||||
|
@ -626,13 +626,13 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
|
||||
IPDOMIndexerTask task= null;
|
||||
if (operation.wasSuccessful()) {
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Imported shared index for project " + name); //$NON-NLS-1$
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Imported shared index for project " + name); //$NON-NLS-1$
|
||||
task= new PDOMUpdateTask(indexer,
|
||||
IIndexManager.UPDATE_CHECK_TIMESTAMPS | IIndexManager.UPDATE_CHECK_CONTENTS_HASH);
|
||||
} else {
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Rebuiding for project " + name); //$NON-NLS-1$
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Rebuiding for project " + name); //$NON-NLS-1$
|
||||
task= new PDOMRebuildTask(indexer);
|
||||
}
|
||||
enqueue(task);
|
||||
|
@ -644,7 +644,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private IPDOMIndexer newIndexer(String indexerId, Properties props) throws CoreException {
|
||||
IPDOMIndexer indexer = null;
|
||||
// Look up in extension point
|
||||
|
@ -659,14 +659,14 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
indexer.setProperties(props);
|
||||
} catch (CoreException e) {
|
||||
CCorePlugin.log(e);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Unknown index, default to the null one
|
||||
if (indexer == null)
|
||||
if (indexer == null)
|
||||
indexer = new PDOMNullIndexer();
|
||||
|
||||
return indexer;
|
||||
|
@ -700,7 +700,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
fIndexerJob.schedule();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void getReferencingProjects(IProject prj, HashSet<IProject> result) {
|
||||
LinkedList<IProject> projectsToSearch= new LinkedList<IProject>();
|
||||
projectsToSearch.add(prj);
|
||||
|
@ -731,7 +731,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
void cancelledIndexerJob(boolean byManager) {
|
||||
synchronized (fTaskQueue) {
|
||||
fCurrentTask= null;
|
||||
|
@ -743,7 +743,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isIndexerIdle() {
|
||||
return Job.getJobManager().find(this).length == 0;
|
||||
|
@ -753,19 +753,19 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
final String name = cproject.getProject().getName();
|
||||
if (fTraceIndexerSetup) {
|
||||
System.out.println("Indexer: Adding new project " + name); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
synchronized (fUpdatePolicies) {
|
||||
fClosingProjects.remove(name);
|
||||
}
|
||||
|
||||
|
||||
setupProject(cproject);
|
||||
}
|
||||
|
||||
void setupProject(final ICProject cproject) {
|
||||
if (fInShutDown)
|
||||
return;
|
||||
|
||||
|
||||
synchronized (fProjectQueue) {
|
||||
fProjectQueue.add(cproject);
|
||||
}
|
||||
|
@ -804,7 +804,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
if (indexer != null && indexer.getID().equals(IPDOMManager.ID_NO_INDEXER)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (added.length > 0 || changed.length > 0 || removed.length > 0) {
|
||||
synchronized (fUpdatePolicies) {
|
||||
IndexUpdatePolicy policy= createPolicy(project);
|
||||
|
@ -835,7 +835,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
|
||||
public void preDeleteProject(ICProject cproject) {
|
||||
preRemoveProject(cproject, true);
|
||||
preRemoveProject(cproject, true);
|
||||
}
|
||||
|
||||
public void preCloseProject(ICProject cproject) {
|
||||
|
@ -848,8 +848,8 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
final IProject rproject= cproject.getProject();
|
||||
final String name = rproject.getName();
|
||||
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Removing project " + name + "; delete=" + delete); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
if (fTraceIndexerSetup)
|
||||
System.out.println("Indexer: Removing project " + name + "; delete=" + delete); //$NON-NLS-1$ //$NON-NLS-2$
|
||||
|
||||
IPDOMIndexer indexer;
|
||||
synchronized (fUpdatePolicies) {
|
||||
|
@ -896,12 +896,12 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
job.setSystem(true);
|
||||
job.schedule();
|
||||
}
|
||||
|
||||
|
||||
synchronized (fUpdatePolicies) {
|
||||
fUpdatePolicies.remove(cproject);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void removeProject(ICProject cproject, ICElementDelta delta) {
|
||||
synchronized (fProjectToPDOM) {
|
||||
IProject rproject= cproject.getProject();
|
||||
|
@ -921,7 +921,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
policy.clearTUs();
|
||||
policy.setIndexer(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cancelIndexerJobs(indexer);
|
||||
}
|
||||
|
@ -937,13 +937,13 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
jobToCancel= fIndexerJob;
|
||||
}
|
||||
|
||||
|
||||
if (jobToCancel != null) {
|
||||
assert !Thread.holdsLock(fTaskQueue);
|
||||
jobToCancel.cancelJobs(indexer, true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void reindexAll() {
|
||||
ICProject[] cProjects;
|
||||
try {
|
||||
|
@ -958,7 +958,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
|
||||
@Override
|
||||
public void reindex(final ICProject project) {
|
||||
Job job= new Job(Messages.PDOMManager_notifyJob_label) {
|
||||
Job job= new Job(Messages.PDOMManager_notifyJob_label) {
|
||||
@Override
|
||||
protected IStatus run(IProgressMonitor monitor) {
|
||||
IPDOMIndexer indexer= null;
|
||||
|
@ -999,7 +999,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
public void removeIndexChangeListener(IIndexChangeListener listener) {
|
||||
fChangeListeners.remove(listener);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addIndexerStateListener(IIndexerStateListener listener) {
|
||||
fStateListeners.add(listener);
|
||||
|
@ -1029,7 +1029,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
notify.setSystem(true);
|
||||
return notify;
|
||||
}
|
||||
|
||||
|
||||
private void scheduleNotification(Runnable notify) {
|
||||
if (fInShutDown)
|
||||
return;
|
||||
|
@ -1079,12 +1079,12 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
if (fChangeListeners.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ICProject project;
|
||||
synchronized (fProjectToPDOM) {
|
||||
project = fFileToProject.get(pdom.getPath());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (project != null) {
|
||||
final ICProject finalProject= project;
|
||||
Runnable notify= new Runnable() {
|
||||
|
@ -1145,10 +1145,10 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int getMonitorMessage(PDOMIndexerJob job, int currentTicks, int base) {
|
||||
assert !Thread.holdsLock(fTaskQueue);
|
||||
|
||||
|
||||
int sourceCount, sourceEstimate, headerCount, tickCount, tickEstimate;
|
||||
String detail= null;
|
||||
synchronized (fTaskQueue) {
|
||||
|
@ -1175,14 +1175,14 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
detail= PDOMIndexerJob.sMonitorDetail;
|
||||
}
|
||||
}
|
||||
|
||||
String msg= MessageFormat.format(Messages.PDOMManager_indexMonitorDetail, new Object[] {
|
||||
new Integer(sourceCount), new Integer(sourceEstimate),
|
||||
new Integer(headerCount)});
|
||||
|
||||
String msg= MessageFormat.format(Messages.PDOMManager_indexMonitorDetail, new Object[] {
|
||||
new Integer(sourceCount), new Integer(sourceEstimate),
|
||||
new Integer(headerCount)});
|
||||
if (detail != null) {
|
||||
msg += ": " + detail; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
|
||||
job.subTask(msg);
|
||||
if (tickCount > 0 && tickCount <= tickEstimate) {
|
||||
int newTick= tickCount*base/tickEstimate;
|
||||
|
@ -1218,7 +1218,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
public IIndex getIndex(ICProject[] projects, int options) throws CoreException {
|
||||
return fIndexFactory.getIndex(projects, options);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Exports the project PDOM to the specified location, rewriting locations with
|
||||
* the specified location converter.
|
||||
|
@ -1255,7 +1255,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
|
||||
// overwrite internal location representations
|
||||
final WritablePDOM newPDOM = new WritablePDOM(targetLocation, pdom.getLocationConverter(), getLinkageFactories());
|
||||
final WritablePDOM newPDOM = new WritablePDOM(targetLocation, pdom.getLocationConverter(), getLinkageFactories());
|
||||
newPDOM.acquireWriteLock();
|
||||
try {
|
||||
newPDOM.rewriteLocations(newConverter);
|
||||
|
@ -1275,7 +1275,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
|
||||
/**
|
||||
* Resets the pdom for the project with the provided stream.
|
||||
* Resets the pdom for the project with the provided stream.
|
||||
* @throws CoreException
|
||||
* @throws OperationCanceledException in case the thread was interrupted
|
||||
* @since 4.0
|
||||
|
@ -1294,11 +1294,11 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
if (version > PDOM.getMaxSupportedVersion()) {
|
||||
final IStatus status = new Status(IStatus.WARNING, CCorePlugin.PLUGIN_ID, 0, CCorePlugin.getResourceString("PDOMManager.unsupportedHigherVersion"), null); //$NON-NLS-1$
|
||||
throw new CoreException(status);
|
||||
throw new CoreException(status);
|
||||
}
|
||||
if ( !PDOM.isSupportedVersion( version ) ) {
|
||||
final IStatus status = new Status(IStatus.WARNING, CCorePlugin.PLUGIN_ID, 0, CCorePlugin.getResourceString("PDOMManager.unsupportedVersion"), null); //$NON-NLS-1$
|
||||
throw new CoreException(status);
|
||||
throw new CoreException(status);
|
||||
}
|
||||
byte[] buffer= new byte[2048];
|
||||
int read;
|
||||
|
@ -1308,7 +1308,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
} finally {
|
||||
out.close();
|
||||
}
|
||||
|
||||
|
||||
WritablePDOM pdom= (WritablePDOM) getPDOM(project);
|
||||
try {
|
||||
pdom.acquireWriteLock();
|
||||
|
@ -1323,7 +1323,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
pdom.releaseWriteLock();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void export(ICProject project, String location, int options, IProgressMonitor monitor) throws CoreException {
|
||||
TeamPDOMExportOperation operation= new TeamPDOMExportOperation(project);
|
||||
|
@ -1331,7 +1331,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
operation.setOptions(options);
|
||||
operation.run(monitor);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Write metadata appropriate for a project pdom
|
||||
* @param pdom the pdom to write to
|
||||
|
@ -1362,7 +1362,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
for (Map.Entry<ICProject, List<ICElement>> entry : projectsToElements.entrySet()) {
|
||||
ICProject project = entry.getKey();
|
||||
List<ICElement> filesAndFolders = entry.getValue();
|
||||
|
||||
|
||||
update(project, filesAndFolders, options);
|
||||
}
|
||||
}
|
||||
|
@ -1389,14 +1389,14 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
} else if (contains(element, other)) {
|
||||
set.set(j, element);
|
||||
continue allElements;
|
||||
}
|
||||
}
|
||||
}
|
||||
set.add(element);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private boolean contains(final ICElement a, ICElement b) {
|
||||
if (a.equals(b)) {
|
||||
return true;
|
||||
|
@ -1493,7 +1493,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
if (fPostponedProjects.contains(project)) {
|
||||
setupProject(project);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -1512,7 +1512,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param project
|
||||
* @return whether the specified project has been registered. If a project has
|
||||
|
@ -1522,7 +1522,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
public boolean isProjectRegistered(ICProject project) {
|
||||
return getIndexer(project) != null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param cproject the project to check
|
||||
* @return whether the content in the project fragment of the specified project's index
|
||||
|
@ -1532,7 +1532,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
public boolean isProjectContentSynced(ICProject cproject) throws CoreException {
|
||||
if (!"true".equals(IndexerPreferences.get(cproject.getProject(), IndexerPreferences.KEY_INDEX_ALL_FILES, null))) //$NON-NLS-1$
|
||||
return true; // no check performed in this case
|
||||
|
||||
|
||||
Set<ITranslationUnit> sources= new HashSet<ITranslationUnit>();
|
||||
cproject.accept(new TranslationUnitCollector(sources, null, new NullProgressMonitor()));
|
||||
|
||||
|
@ -1558,7 +1558,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private boolean isSubjectToIndexing(ILanguage language) {
|
||||
final int linkageID=language.getLinkageID();
|
||||
for (int id : IDS_FOR_LINKAGES_TO_INDEX) {
|
||||
|
@ -1580,7 +1580,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
private static boolean areSynchronized(Set<IIndexFileLocation> trail, IIndex index, IResource resource, IIndexFileLocation location) throws CoreException {
|
||||
if (!trail.contains(location)) {
|
||||
trail.add(location);
|
||||
|
||||
|
||||
IIndexFile[] file= index.getFiles(location);
|
||||
|
||||
// pre-includes may be listed twice (191989)
|
||||
|
@ -1606,7 +1606,7 @@ public class PDOMManager implements IWritableIndexManager, IListener {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -653,9 +653,9 @@
|
|||
<extension-point id="templateProcessTypes" name="%templateProcessTypes.name" schema="schema/templateProcessTypes.exsd"/>
|
||||
<extension-point id="templateAssociations" name="%templateAssociations.name" schema="schema/templateAssociations.exsd"/>
|
||||
<extension-point id="ScannerInfoProvider2" name="%scannerInfoProvider2.name" schema="schema/ScannerInfoProvider2.exsd"/>
|
||||
<extension-point id="EFSExtensionProvider" name="EFSExtensionProvider" schema="schema/EFSExtensionProvider.exsd"/>
|
||||
<extension-point id="EFSExtensionProvider" name="%efsExtensionProvider.name" schema="schema/EFSExtensionProvider.exsd"/>
|
||||
<extension-point id="RefreshExclusionFactory" name="%refreshExclusionFactory.name" schema="schema/RefreshExclusionFactory.exsd"/>
|
||||
<extension-point id="LanguageSettingsProvider" name="%LanguageSettingsProvider.name" schema="schema/LanguageSettingsProvider.exsd"/>
|
||||
<extension-point id="RefreshExclusionFactory" name="Refresh Exclusion Factory" schema="schema/RefreshExclusionFactory.exsd"/>
|
||||
<extension-point id="UNCPathConverter" name="%uncPathConverter.name" schema="schema/UNCPathConverter.exsd"/>
|
||||
|
||||
<extension
|
||||
|
|
|
@ -713,7 +713,7 @@ outer:
|
|||
* @return URI
|
||||
* @since 5.1
|
||||
*/
|
||||
public URI toURI(IPath path) {
|
||||
private URI toURI(IPath path) {
|
||||
// try {
|
||||
URI baseURI = getWorkingDirectoryURI();
|
||||
String uriString = path.toString();
|
||||
|
|
Loading…
Add table
Reference in a new issue