2006-10-14  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Engine.cs: Removed redundant cast.
	* BuildWhen.cs:
	* UsingTaskCollection.cs:
	* ImportCollection:
	* BuildChoose.cs:
	* BuildItem.cs:
	* TargetCollection.cs: Comment unused variable.
	* ConditionTokenizer.cs: Simplified checking if current token is a
	keyword.
	* Target.cs: Removed old code.

2006-10-08  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Target.cs: Changed "" to String.Empty.
	* TaskEngine.cs: Don't try to convert a parameter to specific type if
	string was evaluated to String.Empty.
	* InternalLoggerException.cs:
	* InvalidProjectFileException.cs: Added LinkDemand before
	GetObjectData ().
	* ConsoleLogger.cs: Changed "" to String.Empty.
	* TargetCollection.cs: Fixed GetEnumerator () (stupid bug introduced
	with change to generics).
	* Project.cs: Made Build () throw more meaningful exception.

2006-10-06  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Target.cs: Reformatted.
	* TaskEngine.cs: Removed redundant code.
	* BuildPropertyGroup.cs: Fixed Clear () and AddNewProperty ().
	* Engine.cs: Made BuildProjectFile () load project file if it's not
	loaded yet.

2006-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ConditionRelationalExpression.cs: Change comparers to case
	insensitive.
	* ImportCollection.cs: Add NotImplementedExceptions.
	* BuildPropertyGroup.cs: Reformatted a bit.
	* BuildProperty.cs: The same.
	* Project.cs: Moved evaluation of imports before evaluation of
	properties. This may "work" until importing projects is redesigned but
	probably isn't correct.

2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildPropertyGroup.cs: Check for XmlNodes that aren't XmlElements
	(like comments)
	* BuildItemGroup.cs: Change return to continue.

2006-09-20  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ConditionParser.cs: Copyright note.
	* ExpressionCollection.cs: Fixed arrays passing.

2006-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildTask.cs, UsingTaskCollection.cs, ImportCollection.cs,
	Target.cs, TaskDatabase.cs, TaskEngine.cs, BuildItemGroup.cs,
	BuildChoose.cs, DirectoryScanner.cs, BuildPropertyGroup.cs,
	TargetCollection.cs, Engine.cs, Project.cs: Started to use generics.

2006-06-25  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Token.cs: Changed names: removed "than".
	* ConditionRelationalExpression.cs: Added.
	* ConditionFactorExpression.cs: Added.
	* BuildItemGroup.cs: Changed Condition property return value to return
	String.Empty instead of null.
	* ConditionParser.cs: Added support for parsing relational expressions
	and factors.
	* ConditionExpression.cs: Removed Evaluate (). Added 2 sets of
	abstract functions: BoolEvaluate (), NumberEvaluate () and StringEvaluate ()
	and CanEvaluateToBool (), CanEvaluateToNumber () and
	CanEvaluateToString ().
	* ConditionOrExpression.cs, ConditionAndExpression.cs: Changed
	appropriately to ConditionExpression base class.
	* ConditionTokenizer.cs: Added null check and changed names in enums:
	removed "than".
	* ConditionNotExpression.cs: Added.
	* BatchingImpl.cs: Changed to use BoolEvaluate ().
	* Project.cs: Added checks for condition.

2006-06-22  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ConditionalTokenizer.cs, ConditionalExpression.cs,
	ConditionalParser.cs: Changed name,
	removed -al.
	* ConditionExpression.cs: Added Evaluate ().
	* ConditionOrExpression.cs, ConditionAndExpression.cs: Added.
	* BatchingImpl.cs: Added check if task should be executed.

2006-06-14  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* UsingTask.cs: Changed properties to return null on empty attribute.
	* UsingTaskCollection.cs: Added object to SyncRoot.
	* BuildPropertyGroup.cs: Added NotImplementedException throwing.

2006-06-02  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItem.cs, BuildProperty.cs, BuildPropertyGroup.cs,
	BuildPropertyGroupCollection.cs: Fixed to match the tests.

2006-05-27  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Utilities.cs: Implemented Escape ().
	* BuildItem.cs: Added null checks.
	* BuildPropertyGroup.cs, BuildProperty.cs: Moved FromXml property.
	* Project.cs: Commented out redundant Evaluate ().
	* BuildChoose.cs: Minor changes.

2006-05-22  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Token: Added new few missing tokens.
	* Target.cs, Project.cs: Patch from Matthew Metnesky.
	* BuildItemGroup.cs, OldExpression.cs, MetadataReference.cs,
	ItemReference.cs, PropertyReference.cs, ConditionalTokenizer.cs,
	ConditionalParser.cs, Tokenizer.cs, LiteralExpression.cs,
	LiteralTokenizer.cs:
	Removed literal expression parsing based on tokenizer and
	parser. It needs to be done by regex.
	
	Moved tokenizer to ConditionalTokenizer.cs.

2006-05-05  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ExpressionCollection.cs, BuildItemGroup.cs, BuildItem.cs,
	ItemReference.cs, PropertyReference.cs: Changed name of *Reference
	methods converting reference to string from ToString () to
	ConvertToString () to avoid mistakes like using ToString () provided
	by default.

2006-05-03  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Target.cs, TaskEngine.cs, BuildItemGroup.cs, MetadataReference.cs,
	Import.cs, ItemReference.cs, BuildItem.cs, BatchingImpl.cs,
	PropertyReference.cs, BuildProperty.cs: Changed Expression to
	OldExpression and changed To* functions to one ConvertTo ().
	* TaskEngine.cs: Fixed PublishOutput ().
	* OldExpression.cs: Added. It will be temporarily used before
	LiteralExpression will be written using Tokenizer.
	* Tokenizer.cs, Token.cs, ExpressionCollection.cs,
	ExpressionParseException.cs, LiteralExpression.cs: Added.

2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ImportedProject.cs: Removed warning.
	* Engine.cs, Project.cs, TaskDatabase.cs: Added registration of
	default tasks.

2006-04-24  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Project.cs: Removed unnecessary variable.
	* Engine.cs: Added fixme.

2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItem.cs: Moved checking if metadata name is reserved to internal
	class (Mono.XBuild.Utilities.ReservedNameUtils).
		
2006-04-14  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildTask.cs: Removed unnecessary variable.
	* Engine.cs: Added logging of the build start.
	* Project.cs: Removed unnecessary variable.

2006-04-07  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* GlobalEngineAccessor.cs, ProjectFileEncoding.cs: Removed.

2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItem.cs, BuildItemGroup.cs: Coding style fixes.

2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
	
	* BuildItem.cs: Fix typo?

2006-03-29  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* InternalLoggerException.cs, InvalidProjectFileException.cs,
	Engine.cs, Project.cs: Coding style fixes.

2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
	
	* BuildItem.cs, BuildItemGroup.cs: Cleaned up build items.

2006-03-29  Crestez Leonard  <cdleonard@gmail.com>
	
	* InternalLoggerException.cs, InvalidProjectFileException.cs: Fixed
	to pass tests. Wrote serialization constructor.
	* Engine.cs, Project.cs: Global engine and project unloading, test and
	formatting fixes.

2006-03-28  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* UsingTask.cs: Formatting changes.

2006-03-27  Crestez Leonard  <cdleonard@gmail.com>

	* ImportCollection.cs, UsingTaskCollection.cs: Cleaned up, switched
	to lists instead of hashtables.
	* Import.cs: Cleaned up, moved importing from Project.cs
	* BuildProperty.cs, BuildPropertyGroup.cs: Minor fixes.
	* Engine.cs: Cleaned up properties.
	* Project.cs: Moved importing to Import.cs, cleaned up properties,
	Separated evaluation and loading.
	
2006-03-21  Crestez Leonard  <cdleonard@gmail.com>

	* Target.cs, TaskEngine.cs, BuildItemGroup.cs, BuildItem.cs,
	BuildPropertyGroup.cs, TargetCollection.cs, BuildProperty.cs,
	Engine.cs, Project.cs, BuildTask.cs, UsingTask.cs: Separate xml
	binding and evaluation, merge xml binding in constructors.
	* DirectoryScanner.cs: Includes CAN be empty.
	* BuildChoose.cs, ItemReference.cs, ChangeType.cs: Newline at EOF.
	* ConsoleLogger.cs: Fix compilation warning.

2006-03-19  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildPropertyGroup.cs, Expression.cs: Coding style fixed.

2006-03-18  Marek Sieradzki  <marek.sieradzki@gmail.com> 

	* Engine.cs: API cleanup.

2006-03-18  Crestez Leonard  <cdleonard@gmail.com>

	* Project.cs: Cleaned up add.
	* Expression.cs: Hacked to transform \ and / to path separators.
	* BuildPropertyGroup.cs: Small cleanup.
	* BuildTask.cs, TaskEngine.cs: Fix TaskEngine not getting a Project
	reference.
	
2006-03-11  Marek Sieradzki  <marek.sieradzki@gmail.com> 

	* BatchingImpl.cs: Updated with BuildTask instead of TaskElement.
	* BuildItem.cs: Updated for new API and fixed crashing on non-existent
	files.
	* BuildItemGroup.cs, BuildItemGroupCollection.cs, BuildProperty.cs,
	BuildPropertyGroup.cs, BuildPropertyGroupCollection.cs, ConsoleLogger.cs,
	Engine.cs, Project.cs, Target.cs, TargetCollection.cs: Updated for new
	API.
	* DirectoryScanner.cs: Fixed ordering and crashing on duplicated items.
	* TaskElement.cs: Temporarily removed.
	* Xml.cs: Changed to static.

2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* IBuildProperty.cs, ICultureStringUtilities.cs, IProject.cs,
	IGlobalEngineAccessor.cs, ITaskElement.cs, IBuildPropertyGroup.cs,
	ITargetCollection.cs, IEngine.cs, IBuildItemGroupCollection.cs,
	IHostLogger.cs, IBuildItem.cs, IHostFeedback.cs,
	ILangSecurityLevelChecker.cs, ITarget.cs, IBuildItemGroup.cs,
	IBuildPropertyGroupCollection.cs: Removed.

2006-02-26  Marek Sieradzki  <marek.sieradzki@gmail.com> 

	* BuildItem.cs: Removed IBuildItem references.
	* BuildItemGroup.cs: Removed ItemPropertyGroupingBase and
	IBuildItemGroup references. Changed Evaluate to internal.
	* BuildItemGroupCollection.cs. Removed IBuildItemGroupCollection
	reference and hidden constructors.
	* BuildProperty.cs: Removed IBuildProperty reference.
	* BuildPropertyGroup.cs: Removed ItemPropertyGroupingBase and
	IBuildPropertyGroup references. Changed Evaluate to internal.
	* BuildPropertyGroupCollection.cs: Removed IBuildPropertyGroupCollection
	reference and hidden constructors.
	* ConsoleLogger.cs: Updated names of event handlers.
	* Engine.cs: Removed IEngine reference. Removed ClearAllProjects and
	Escape. Added UnloadAllProjects () and UnloadProject ().
	* FileLogger.cs: Removed ApplyParameter ().
	* GroupingCollection.cs: Hidden.
	* InvalidProjectFileException.cs: Removed HasBeenLogged property.
	* ItemPropertyGroupingBase.cs: Commented.
	* ProcessingPass.cs: Hidden.
	* Project.cs: Removed IProject reference. Changed CurrentEncoding to
	Encoding.
	* Target.cs: Removed ITarget reference.
	* TargetCollection.cs: Removed ITargetCollection reference.
	* TaskElement.cs: Removed ITaskElement reference.
	* TaskEngineAssemblyResolver.cs: Hidden.
	* Utilities.cs: Made static class, removed CheckPath (),
	ValidateCulture (), GetSupportedCultures () and added Escape ().

2006-02-24  Marek Sieradzki <marek.sieradzki@gmail.com> 

	* ConsoleLogger.cs, Engine.cs: Quick hacks to make it compile with new
	API.

2005-09-22  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Project.cs: Added MonoTODO attributes.
	* Utilities.cs, TaskElement.cs, IBuildProperty.cs, HostLogger.cs,
	ProjectFileEncoding.cs, ICultureStringUtilities.cs, FileLogger.cs,
	IProject.cs, BuildSettings.cs, BuildWhen.cs, IGlobalEngineAccessor.cs,
	BuildEngine.cs, ITaskElement.cs, Target.cs, TaskDatabase.cs,
	SolutionParser.cs, IBuildPropertyGroup.cs, InternalLoggerException.cs,
	BuildItemGroup.cs, InvalidProjectFileException.cs,
	BuildPropertyGroupCollection.cs, MetadataReference.cs, Expression.cs,
	Xml.cs, BuildChoose.cs, EventSource.cs, ProcessingPass.cs,
	PropertyPosition.cs, GlobalEngineAccessor.cs, ITargetCollection.cs,
	ItemReference.cs, IEngine.cs, BuildItem.cs, DirectoryScanner.cs,
	IBuildItemGroupCollection.cs, BuildPropertyGroup.cs, IHostLogger.cs,
	IBuildItem.cs, ChangeType.cs, WriteHandler.cs, IHostFeedback.cs,
	ILangSecurityLevelChecker.cs, ITarget.cs, BatchingImpl.cs,
	ConsoleLogger.cs, TargetCollection.cs, PropertyReference.cs,
	IBuildItemGroup.cs, BuildProperty.cs, Engine.cs,
	IBuildPropertyGroupCollection.cs, GroupingCollection.cs,Project.cs,
	BuildItemGroupCollection.cs, ItemPropertyGroupingBase.cs,
	ImportedProject.cs, TaskEngineAssemblyResolver.cs: Added #if NET_2_0.

2005-09-21  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* TaskDatabase.cs: Change Shared to Framework.
	* BuildPropertyGroup.cs, Project.cs: Remove obsoleted
	CaseInsensitiveHashCodeProvider

2005-09-11  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* TaskDatabase.cs: Added handling of LoadInfoType.AssemblyName.
	* Engine.cs, Project.cs: Added handling of MSBuildBinPath reserved
	property.

2005-09-09  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* InternalLoggerException.cs: Changed protected fields to private.

2005-09-03  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Engine.cs: Added check for globalProperties.
	* Project.cs: Added using path from importedProject.FullFileName when
	adding UsingTask elements.

2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* TaskElement.cs: Changed ReflectedType to PropertyType.
	* ChangeType.cs (TransformToString): Changed to pass proper Type to
	TemporaryTransform. 

2005-09-01  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildPropertyGroup.cs: Added check for PropertyType when adding a
	new property.
	* BuildProperty.cs: Organized PropertyType enum.
	* Engine.cs: Added setting CommandLine PropertyType of global
	properties.

2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* InvalidProjectFileException.cs: Changed Message property.
	* ChangeType.cs (TransformToString): Added separator between items.
	* TaskEngineAssemblyResolver.cs: Formatting.

2005-08-31  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* DirectoryScanner.cs: Added.
	* BuildItem.cs: Moved file scanning code to DirectoryScanner.
	* BuildPropertyGroup.cs: Changed Project.Evaluate to Expression.
	* Project.cs: Removed Evalute* ().

2005-08-30  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Target.cs: Formatting.
	* Expression.cs: Added check if array == null.
	* BuildItem.cs: Removed 'break' to remove warnings.
	* ConsoleLogger.cs: Formatting.
	* Engine.cs: Added handling of default target(s).
	* Project.cs: Added handling of default target(s).

2005-08-29  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* TaskElement.cs: Added check for parameters.
	* Target.cs: Added logging of target skipping.
	* Expression.cs: Changed returning object[] to string[], bool[]... in
	ToArray ().
	* ItemReference.cs: Fixed for item references without custom
	separators.
	* BatchingImpl.cs: Added real inputs/outputs checking.
	* Engine.cs: Moved global properties setting.
	* Project.cs: Moved global properties setting.

2005-08-27  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Target.cs: Added checks for target existence.
	* BuildItemGroup.cs: Changed to use transforms.
	* MetadataReference.cs: Wrote real implementation.
	* ItemReference.cs: Rewritten to use transforms.
	* BuildItem.cs: Changes for transforms and metadata.
	* ConsoleLogger.cs: Added verbosity checking and fixed error/warning
	formatting.
	* Project.cs: Fixed project importing.
	* ImportedProject.cs: Changed to throw exceptions instead of returning
	bool.

2005-08-24  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Engine.cs: Removed FIXME.
	* Project.cs: Splitted ProcessElements and added project importing.
	* ImportedProject.cs: Rewritten.

2005-08-20  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* TaskElement.cs: Added getting of objects of every type.
	* BuildItemGroup.cs: Added ToITaskItemArray ().
	* Expression.cs: Implemented part that is not using metadata.
	* ItemReference.cs: Implemented parsing item references. Need to fix
	validity checking.
	* BuildItem.cs: Fixed ToITaskItem ().
	* PropertyReference.cs: Implemented parsing property references. This
	also needs validity checking.

2005-08-19  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* TaskElement.cs: Added Output element handling.
	* Target.cs: Cleaned up.
	* BuildItemGroup.cs: Added creating BuildItem from TaskItem.
	* Expression.cs, MetadataReference.cs, PropertyReference.cs,
	ItemReference.cs, ChangeType.cs: Added.
	* BuildItem.cs: Added creating BuildItem from TaskItem.
	* BuildPropertyGroup.cs: Small changes.
	* BatchingImpl.cs: Fixed to return real task execution result.
	* BuildProperty.cs: Fixed FinalValue property.
	* Engine.cs: Reformatted logging.
	* Project.cs: Added check to EvaluateProperty.

2005-08-16  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* TaskElement.cs: Added part of execution engine.
	* BuildEngine.cs: Added handling of TaskStarted and TaskFinished.
	* BuildItemGroup.cs: Iterating by XmlNode casted to XmlElement.
	* EventSource.cs: Added FireTaskStarted and FireTaskFinished.
	* BuildItem.cs: Added handling of built-in metadata and referencing
	Items by name not FullName.
	* BatchingImpl.cs: Added temporary task "batching".
	* ConsoleLogger.cs: Added temporary workaround to not show sender.
	* Project.cs: Added Evaluate. It will be moved to separate class.

2005-08-14  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* EventSource.cs, Engine.cs: Added CriticalEvents.
	* BuildItem.cs, BuildItemGroup.cs, BuildItemGroupCollection.cs,
	Project.cs: Added some support for items.
	* BuildProperty.cs, BuildPropertyGroup.cs: Cleaned up.

2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildProperty.cs, BuildPropertyGroup.cs, Project.cs: Added loading
	of properties.

2005-08-12  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BatchingImpl.cs: Added.
	* BuildWhen.cs, BuildEngine.cs, Target.cs,
	BuildPropertyGroupCollection.cs, BuildChoose.cs, EventSource.cs,
	BuildItem.cs, BuildPropertyGroup.cs, ConsoleLogger.cs,
	TargetCollection.cs, BuildProperty.cs, Engine.cs, Project.cs,
	GroupingCollection.cs: Updated.

2005-08-06  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildChoose.cs, BuildEngine.cs, BuildItem.cs,
	BuildItemGroupCollection.cs, BuildItemGroup.cs, BuildProperty.cs,
	BuildPropertyGroupCollection.cs, BuildPropertyGroup.cs,
	BuildSettings.cs, BuildWhen.cs, ConsoleLogger.cs, Engine.cs,
	EventSource.cs, FileLogger.cs, GlobalEngineAccessor.cs,
	GroupingCollection.cs, HostLogger.cs, ImportedProject.cs,
	InternalLoggerException.cs, InvalidProjectFileException.cs,
	ItemPropertyGroupingBase.cs, ProcessingPass.cs, Project.cs,
	ProjectFileEncoding.cs, PropertyPosition.cs, SolutionParser.cs,
	TargetCollection.cs, Target.cs, TaskDatabase.cs, TaskElement.cs,
	TaskEngineAssemblyResolver.cs, Utilities.cs, WriteHandler.cs, Xml.cs:
	Initial check-in of implementations.

2005-07-16  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* conditions.jay, IBuildItem.cs, IBuildItemGroup.cs,
	IBuildItemGroupCollection.cs, IBuildProperty.cs,
	IBuildPropertyGroup.cs, IBuildPropertyGroupCollection.cs,
	ICultureStringUtilities.cs, IEngine.cs, IGlobalEngineAccessor.cs,
	IHostFeedback.cs, IHostLogger.cs, ILangSecurityLevelChecker.cs,
	IProject.cs, ITargetCollection.cs, ITarget.cs, ITaskElement.cs:
	Initial check-in of interfaces and a syntax file, real classes are
	changing a lot so I'll wait a moment with checking them in.
