2003-11-10 Bogdan Gheorghe
	- Added a null resource check in UpdateDependency to fix up
	  a potential NPE in the test suite
	
2003-10-23 Bogdan Gheorghe
	- Added UpdateDependency job
	
2003-09-25 Bogdan Gheorghe
	- As a result of folding the dependency service into the indexer
	  have removed the following files:
	  
	* src/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyManager.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequest.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequestor.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencySelector.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/EntireProjectDependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/IPreprocessorOutput.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/ISourceDependency.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/PreprocessorOutput.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/RemoveFromDependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntry.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntryHashedArray.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/impl/InMemoryTree.java

	
	  
2003-09-22 Bogdan Gheorghe
	- Took out enable section for DependencyManager
	
2003-09-11 Bogdan Gheorghe
	- Added null guard to DependencyManager.getDependencyTree(), 
	  DependencyTree.getFileDependencies()
	
2003-09-08 Andrew Niefer
	- Modified calls to ParserFactory to specify which language to use
	- Modified IDependencyTree.add to take ParserLanguage as a parameter so that it can
	  be passed on when creating the preprocessor

2003-07-23 Bogdan Gheorghe

	Added initial dependency implementation
	
	* src/org/eclipse/cdt/internal/core/sourcedependency/AddFileToDependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyManager.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DenpendencyQueryJob.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequest.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyRequestor.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/DependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/EntireProjectDependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/IDependencyTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/IPreprocessorOutput.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/ISourceDependency.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/PreprocessorOutput.java
	
	* src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntry.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/impl/IncludeEntryHashedArray.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/impl/InMemoryTree.java
	* src/org/eclipse/cdt/internal/core/sourcedependency/impl/Node.java
	
-
	