2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Project.cs (Build): Add outputs to targetOutputs.

2007-03-06  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ExpressionCollection.cs (ConvertToArray): Simplify.

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

	* TaskEngine.cs, ChangeType.cs: Moved Collect* to ChangeType and
	simplified. It still needs tests and refactoring.

2007-02-22  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildEngine.cs (BuildProjectFile): Don't crash on null
	globalProperties.

	* Target.cs: Add Outputs property.

2007-02-20  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Target.cs (Build): Split to GetDependencies () and BuildDependencies
	(). Support condition.
	
	* BatchingImpl.cs (BatchBuildTask): Simplify.

2007-02-18  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ExpressionCollection.cs (ConvertToITaskItemArrayFromString):
	Simplified.

	* ConditionFunctionExpression.cs: Removed warnings.

	* BuildTask.cs (Execute): Write exceptions to std err (they should be
	logged but it's better than swallowing).

2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ConditionTokenizer.cs: Add Putback ().

	* ConditionParser.cs: Add parsing of functions.

	* ConditionFunctionExpression.cs: Add.

2007-02-03  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildPropertyGroup (SetProperty): Throw an exception when trying to
	set property in persisted property group.

2007-01-29  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildTask.cs (Execute): Log errors that happen when invoking ITask
	.ctor.

	* ConsoleLogger.cs (TargetFinishedHandler)
	(TaskFinishedHandler): Increment error count.

2007-01-28  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItem.cs (RemoveMetadata): Remove from XML.
	(SetMetadata): Trigger project reevaluation.

2007-01-26  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildPropertyGroup.cs (SetProperty): Made it work with persisted
	properties.

2007-01-23  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildTask.cs, ConditionFactorExpression.cs, Target.cs,
	TaskEngine.cs, UsingTask.cs, ItemReference.cs, BuildItem.cs,
	BatchingImpl.cs, BuildProperty.cs: Track API changes.

	* Expression.cs (Parse): Added allowItems parameter and made regexes
	static.

	* Import.cs (Evaluate): Moved hack from tools/xbuild/Makefile here. It
	will try to import a.ext when given a.EXT.

2007-01-21  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItemGroup.cs: Store information saying what is the last item
	group that contains build item name.

	* Project.cs (Build): Pass empty array (build default targets).

2007-01-19  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Token.cs: Commented Transform and LiteralSubExpression and added
	FunctionName token.

	* ConditionParser.cs: Removed redundant casts, rewrote
	ParseFactorExpression () and added parsing of '!'.

	* ConditionTokenizer.cs: Always skip whitespaces when getting next
	token (no IgnoreWhiteSpace property). Don't create a token from '->'.
	Moved ReadChar () in front of all ifs.

2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItem.cs (SetMetadata): Escape when we get virtual item or item
	from XML. (not to escape items that have parents twice).

2007-01-16  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItemGroup.cs (AddNewItem): Add XML and mark project as dirty.
	(Project): Renamed to ParentProject.

	* BuildItem.cs (ctor)
	(CopyCustomMetadata): Add null check.

	* BuildPropertyGroup.cs (AddNewProperty): Reorganized.
	(RemoveProperty): Added null check.

	* TargetCollection.cs (RemoveTarget): Added null check.

	* Engine.cs (UnloadProject): Added null check.

	* GroupingCollection.cs (Remove): Check if removed group belongs to
	current project.

	* Project.cs (AddNewItem): Implemented.
	(RemoveItem): Reorganized.
	(SetProjectExtensions): Added null check.

2007-01-14  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItemGroup.cs (Detach): Added.
	(RemoveItem)
	(RemoveItemAt): Used Detach ().

	* BuildItem.cs: Made FromXml and HasParent internal and added
	ParentItem and ParentItemGroup properties (internal).
	(Detach): Added.

	* GroupingCollection.cs (Remove): Used Detach ().

	* Project.cs (ctor): Added PreserveWhitespace = false to get formatted
	text on Save ().
	(GetEvaluatedItemsByNameIgnoringCondition)
	(GetEvaluatedItemsByName)
	(GetEvaluatedProperty): Reevaluate if needed.
	(RemoveItem)
	(RemoveAllItemGroups)
	(RemoveAllPropertyGroups): Implemented.
	(DoLoad): Added closing of TextReader.

2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildPropertyGroup.cs: Don't trigger reevaluation just after a
	change but just mark that it needs it.

	* Project.cs: Reevaluate when it needs reevaluation and one of
	Evaluated* properties is used.

2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Target.cs: Throw an exception when <OnError> is not last element in
	target.

	* BuildPropertyGroup.cs (RemoveProperty): Remove from XML.

	* TargetCollection.cs: If a target is already there replace it with
	new target.

	* BuildProperty.cs: Added XmlElement property.

2007-01-12  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* ImportCollection.cs: Don't add imports that are already added.

	* BuildItemGroup.cs: MonoTODOs.

	* ConditionParser.cs (ParseAndEvaluate): Throw an exception when
	condition can't be evaluated to bool.

	* BuildPropertyGroup.cs (Evaluate): Simplify.

2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildWhen.cs: Moved BindToXml () code to ctor.

	* BuildItemGroup.cs, BuildPropertyGroup.cs: Added XmlElement internal
	property needed for removing groups.

	* Engine.cs: Added StartBuild () that logs build start when Build ()
	was first called.

	* GroupingCollection.cs: Added Remove () for item and property groups.

	* Project.cs (AddNewImport): Implemented.
	(AddNewItemGroup): Implemented.
	(AddNewPropertyGroup): Implemented.
	(AddNewUsingTaskFromAssemblyFile): Implemented.
	(AddNewUsingTaskFromAssemblyName): Implemented.
	(RemoveItemGroup): Implemented.
	(RemovePropertyGroup): Implemented.

2007-01-10  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildItemGroup.cs (Clear): Remove from XML.

	* BuildPropertyGroup.cs (AddNewProperty): Use right namespace and add
	to Project.EvaluatedProperties.
	(Clear): Remove from XML.

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

	* Project.cs (InitializeProperties): Added $(MSBuildProjectDirectory)
	reserved property.

2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* GroupingCollection.cs: Use 2 iterators: add_iterator that is used by
	Add () calls when processing a project from Import and
	evaluate_iterator for evaluation.

2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* Import.cs (GetFullPath): Avoid exceptions from Path.GetDirectoryName
	and prepend relative directory of importing project to full path of
	imported project.

2007-01-08  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildWhen.cs, BuildPropertyGroupCollection.cs,
	BuildItemGroupCollection.cs, Project.cs: Track API changes.

	* GroupingCollection.cs: Now it needs Project reference so added it.

	* BuildTask.cs: Formatting.

	* InvalidProjectFileException.cs: Use MS' names in GetObjectData ().

	* ConditionParser.cs (ParseAndEvaluate): Added.

	* BuildItem.cs: Changed exception message.

2007-01-02  Marek Sieradzki  <marek.sieradzki@gmail.com>

	* BuildWhen.cs, BuildPropertyGroupCollection.cs,
	BuildItemGroupCollection.cs, Project.cs, GroupingCollection.cs:
	GroupingCollection doesn't need Project reference.

	* BuildTask.cs, Target.cs, TaskEngine.cs, BatchingImpl.cs: Formatting

	* BuildItemGroup.cs: Added new readOnly parameter to ctor.
	(Project.EvaluatedItems is a read only item group.)
	(ReplaceWith): Added.

	* BuildPropertyGroup.cs (IsGlobal): Added. Setting a property in
	global property group causes reevaluation of its project.

	* Project.cs: ProcessXml () is internal and can be "safely" invoked by
	other classes.

	* OldExpression.cs: Removed.

	* BuildProperty.cs (Evaluate): Simplified.

	* ChangeType.cs (TemporaryTransform): Simplified.

	* BuildItem.cs: There are now 3 types of build items: from XML, having
	parent from XML, virtual. Added SplitParentItem ().

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

	* Utilities.cs: Added Unescape ().

	* BuildItemGroup.cs, BuildItem.cs: Pass null project to
	BuildItem.Evaluate () to "evaluate" virtual items added to virtual item
	groups (at the moment just unescape).

	* Expression.cs (CopyToExpressionList): Unescape strings.

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

	* Target.cs (ctor): Added ImportedProject argument and removed
	set_IsImported.
	(AddNewTask): Implemented.

	* TargetCollection.cs (AddNewTarget): Implemented.

	* Project.cs: Track API changes.

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

	* Target.cs (Build): Don't throw anything in case of error, just
	return false.

	* BuildItemGroup.cs (set_Condition): Throw an exception if group is
	not from XML.

	* BuildItem.cs: More meaningfull messages in RemoveMetadata () and
	SetMetadata ().

	* BuildProperty.cs (ToString): Throw an exception if property is not
	from XML.
	(op_Explicit): Added a null check.

	* Engine.cs: Better error message.

	* BuildItemGroupCollection.cs (CopyTo): Changed ArgumentException to
	IndexOutOfRangeException.

	* Project.cs (DoLoad, Load): Move try/catch to DoLoad ().
	(MarkProjectAsDirty): Set time.

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

	* BuildItemGroup.cs (Clone): Throw exception.

	* Project.cs (Load): Throw InvalidProjectFileException if anything
	goes wrong.

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

	* ItemReference.cs: Avoid KeyNotFoundException in ConvertToString ()
	and ConvertToITaskItemArray ().

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

	* ItemPropertyGroupingBase.cs, TaskEngineAssemblyResolver.cs: Removed
	classes that were public in Beta 2 and aren't used.

	* Expression.cs: Added replacement for parsing expressions char by
	char. It uses regexes to find item/property/metadata references in
	given text.

	* ExpressionCollection.cs, BuildTask.cs, ConditionFactorExpression.cs,
	Target.cs, TaskEngine.cs, BuildItemGroup.cs, UsingTask.cs, Import.cs,
	BuildItem.cs, BatchingImpl.cs, BuildProperty.cs: Track API changes.

	* ConditionRelationalExpression.cs: Formatting.

	* OldExpression.cs: Commented everything.

	* MetadataReference.cs, ItemReference.cs, PropertyReference.cs: Moved
	parsing to Expression.

	* BuildItem.cs: Check if project is from XML in set_Condition and
	set_Exclude.

	* BuildPropertyGroup.cs, Project.cs: Add ImportedProject to
	Project.ctor.

	* ConditionNotExpression.cs, ConditionAndExpression.cs: Check if we
	can evaluate expression in CanEvaluateToBool ().

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

	* BuildItemGroup.cs (ctor): Add reference to ImportedProject from
	which item group is imported.

	* BuildItem.cs, Project.cs: Use new BuildItemGroup.ctor ().

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

	* BuildWhen.cs, BuildPropertyGroupCollection.cs,
	BuildItemGroupCollection.cs: Little changes related to
	GroupingCollection.

	* ImportCollection.cs: Use GroupingCollection not an internal list.

	* Import.cs (Evaluate): Split to functions and check if
	EvaluatedProjectPath is empty.

	* GroupingCollection.cs, Project.cs: Move evaluation to
	GroupingCollection. Change algorithm to use 2 passes: first for property
	groups and imports and second for item groups.

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

	* TaskEngine.cs, ItemReference.cs: Use IDictionary <string,
	BuildItemGroup> not IDictionary.

	* BuildItemGroup.cs, BuildItem.cs: Evaluate even if condition was
	evaluated to false because we want to add every item to
	Project.EvaluatedItemsByNameIgnoringCondition.

	* Project.cs (Build): Don't throw an exception just return false.
	(GetEvaluatedProperty): Avoid NullReferenceException.
	(SetProjectExtensions): Implemented.

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

	* TaskElement.cs, Xml.cs, ProcessingPass.cs: Removed.

	* Utilities.cs, HostLogger.cs, Target.cs, TaskDatabase.cs,
	BuildItemGroup.cs, BuildPropertyGroup.cs, TargetCollection.cs,
	Engine.cs, GroupingCollection.cs, Project.cs: Reformatted.
	
	* ImportCollection.cs: Added a note.

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

	* BuildTask.cs: Implemented AddOutputItem () and AddOutputProperty ().

	* UsingTaskCollection.cs: Removed [MonoTODO] and used CopyTo in CopyTo
	(UsingTask[] array, int index)

	* TaskEngine.cs: Reformatted PublishOutput () and added copying of
	items to Project.EvaluatedItems in PublishItemGroup ();

	* BuildItemGroup.cs: Added [MonoTODO].

	* UsingTask.cs: Used expression for AssemblyFile to get around
	problems with '\' and '/'.

	* BuildItem.cs (ctor): Added null checks.
	(GetMetadata): Return unevaluatedMetadata not evaluatedMetadata.
	(SetMetadata): Don't escape evaluatedMetadata and escape
	unevaluatedMetadata only when treatPropertyValueAsLiteral.

	* BuildPropertyGroup.cs (GetEnumerator, Evaluate, RemoveProperty): Use
	FromXml () instead of null checks.
	(SetProperty): Escape propertyValue when it is literal.

	* BuildProperty.cs: Changed exception message.

	* Project.cs: Added XmlNamespaceManager and XmlNamespace internal
	properties.
	(GetProjectExtensions): Implemented.

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

	* BuildTask.cs: Remove [MonoTODO], add exception throwing in
	GetParameterValue (), use expressions in ContinueOnError.
	* ConditionFactorException.cs: Throw InvalidProjectFileException ()
	instead of InvalidOperationException ().
	* ImportCollection.cs: Implement CopyTo ().
	* Target.cs: Remove redundant variables (XmlAttributes), return
	String.Empty in DependsOnTargets, add a null check in RemoveTask ().
	* BuildItemGroup.cs, BuildPropertyGroup.cs: Remove [MonoTODO].
	* Import.cs: Throw an exception when file does not exist.
	* Target.cs: Use StringComparer.InvariantCultureIgnoreCase.
	* ConditionTokenizer.cs: Treat '-' as beginning of a number. We'll
	need to treat item as a token probably

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

	* Import.cs: Check for project.FullFileName (Path.DirectoryName would
	throw an exception).
	* BuildItemGroupCollection.cs: Changed exception types.

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.
