2006-10-08 Marek Sieradzki <marek.sieradzki@gmail.com>
authorMarek Sieradzki <msierad@mono-cvs.ximian.com>
Sun, 8 Oct 2006 11:10:43 +0000 (11:10 -0000)
committerMarek Sieradzki <msierad@mono-cvs.ximian.com>
Sun, 8 Oct 2006 11:10:43 +0000 (11:10 -0000)
        * 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.

svn path=/trunk/mcs/; revision=66403

mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ChangeLog
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ConsoleLogger.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/ImportedProject.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/InternalLoggerException.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/InvalidProjectFileException.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Project.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Target.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/TargetCollection.cs
mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/TaskEngine.cs

index d77ba0247445bdc579303d34905f5a5565b965e2..88e6031ee91ab4fbbd8287d9c9d63c055fe7a743 100644 (file)
@@ -1,3 +1,16 @@
+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.
index 25375a177a6ec99e73b3584fbf3f9d0edaf92307..b34b1e9ee3297844da75769ca3e401f3f1b2a499 100644 (file)
@@ -100,7 +100,7 @@ namespace Microsoft.Build.BuildEngine {
                
                public void BuildStartedHandler (object sender, BuildStartedEventArgs args)
                {
-                       WriteLine ("");
+                       WriteLine (String.Empty);
                        WriteLine (String.Format ("Build started {0}.", args.Timestamp));
                        WriteLine ("__________________________________________________");
                        buildStart = args.Timestamp;
@@ -119,7 +119,7 @@ namespace Microsoft.Build.BuildEngine {
                                TimeSpan timeElapsed = args.Timestamp - buildStart;
                                WriteLine (String.Format ("\t {0} Warning(s)", warningCount));
                                WriteLine (String.Format ("\t {0} Error(s)", errorCount));
-                               WriteLine ("");
+                               WriteLine (String.Empty);
                                WriteLine (String.Format ("Time Elapsed {0}", timeElapsed));
                        } 
                }
@@ -127,14 +127,14 @@ namespace Microsoft.Build.BuildEngine {
                public void ProjectStartedHandler (object sender, ProjectStartedEventArgs args)
                {
                        WriteLine (String.Format ("Project \"{0}\" ({1} target(s)):", args.ProjectFile, args.TargetNames));
-                       WriteLine ("");
+                       WriteLine (String.Empty);
                }
                
                public void ProjectFinishedHandler (object sender, ProjectFinishedEventArgs args)
                {
                        if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Diagnostic)) {
                                WriteLine (String.Format ("Done building project \"{0}\".", args.ProjectFile));
-                               WriteLine ("");
+                               WriteLine (String.Empty);
                        }
                }
                
@@ -150,7 +150,7 @@ namespace Microsoft.Build.BuildEngine {
                        if (IsVerbosityGreaterOrEqual (LoggerVerbosity.Diagnostic))
                                WriteLine (String.Format ("Done building target \"{0}\" in project \"{1}\".",
                                        args.TargetName, args.ProjectFile));
-                       WriteLine ("");
+                       WriteLine (String.Empty);
                }
                
                public void TaskStartedHandler (object sender, TaskStartedEventArgs args)
index 35507af4ec3a6d49d9f86066f2d063fcd3266cb9..c2b2d88b53450e2ad487ba06ac45f489fe3645d5 100644 (file)
@@ -83,4 +83,4 @@ namespace Microsoft.Build.BuildEngine {
        }
 }
 
-#endif
\ No newline at end of file
+#endif
index 8e8d982ec6c42dda41d25b3c6908d75921c374d6..e1b3933a0c12d8bbc0b404cb11b4ebe9bd1ee249 100644 (file)
@@ -29,6 +29,7 @@
 
 using System;
 using System.Runtime.Serialization;
+using System.Security.Permissions;
 using Microsoft.Build.Framework;
 
 namespace Microsoft.Build.BuildEngine {
@@ -66,6 +67,7 @@ namespace Microsoft.Build.BuildEngine {
                        helpKeyword = info.GetString ("HelpKeywordPrefix");
                }
 
+               [SecurityPermission (SecurityAction.LinkDemand, SerializationFormatter = true)]
                public override void GetObjectData (SerializationInfo info,
                                                    StreamingContext context)
                {
index a21d3f4118d593c65c14cd637a70963fc55177c7..d74378558c1a99e0d29900c911777dcdaa82d7ca 100644 (file)
@@ -29,6 +29,7 @@
 
 using System;
 using System.Runtime.Serialization;
+using System.Security.Permissions;
 using System.Xml;
 
 namespace Microsoft.Build.BuildEngine {
@@ -109,6 +110,7 @@ namespace Microsoft.Build.BuildEngine {
                        this.projectFile = info.GetString ("ProjectFile");
                }
 
+               [SecurityPermission (SecurityAction.LinkDemand, SerializationFormatter = true)]
                public override void GetObjectData (SerializationInfo info,
                                                    StreamingContext context)
                {
index e97588eb4e04e11f2f0cd6847263d36150bb4290..6f0e4218fa91c7ec0a27b5f08a74df534dd8d191 100644 (file)
@@ -159,7 +159,7 @@ namespace Microsoft.Build.BuildEngine {
                public bool Build (string targetName)
                {
                        if (targets.Exists (targetName) == false)
-                               throw new Exception ("Target specified to build does not exist.");
+                               throw new Exception (String.Format ("Target {0} does not exist.", targetName));
                        
                        return this.targets [targetName].Build ();
                }
index 9640383efeab12bdce38e1aed00572b36ffefb6b..9b8c49533dfffe533c6ce23e3eb0a134e0e94299 100644 (file)
@@ -88,7 +88,7 @@ namespace Microsoft.Build.BuildEngine {
                        buildState = BuildState.Started;
                        if (dependsOnTargets == null) {
                                ;
-                       } else if (dependsOnTargets.Value == "") {
+                       } else if (dependsOnTargets.Value == String.Empty) {
                                ;
                        } else {
                                OldExpression dependencies = new OldExpression (Project);
index 92d397ef479211a29ce02f400f6e9d65519c934f..1819237cb39f36e34b8afb1029c969d071c887a0 100644 (file)
@@ -69,7 +69,7 @@ namespace Microsoft.Build.BuildEngine {
                public IEnumerator GetEnumerator ()
                {
                        foreach (KeyValuePair <string, Target> kvp in targetsByName) {
-                               yield return kvp.Key;
+                               yield return kvp.Value;
                        }
                }
 
index 52475e0d4b829987ea4ab8de469859655c6380d0..ea4e29db8f88b721fa6647f99586194204e6d272 100644 (file)
@@ -63,6 +63,7 @@ namespace Microsoft.Build.BuildEngine {
                        Dictionary <string, object>     values;
                        PropertyInfo    currentProperty;
                        PropertyInfo[]  properties;
+                       object          value;
                        
                        this.task = task;
                        this.taskElement = taskElement;
@@ -74,7 +75,11 @@ namespace Microsoft.Build.BuildEngine {
                                if (currentProperty == null)
                                        throw new InvalidProjectFileException (String.Format ("Task does not have property \"{0}\" defined",
                                                de.Key));
-                               values.Add (de.Key, GetObjectFromString (de.Value, currentProperty.PropertyType));
+                               
+                               value = GetObjectFromString (de.Value, currentProperty.PropertyType);           
+                               
+                               if (value != null)
+                                       values.Add (de.Key, value);
                        }
                        
                        properties = taskType.GetProperties ();
@@ -107,9 +112,9 @@ namespace Microsoft.Build.BuildEngine {
                                        
                                        if (xmlElement.Name != "Output")
                                                throw new InvalidProjectFileException ("Only Output elements can be Task's child nodes.");
-                                       if (xmlElement.GetAttribute ("ItemName") != "" && xmlElement.GetAttribute ("PropertyName") != "")
+                                       if (xmlElement.GetAttribute ("ItemName") != String.Empty && xmlElement.GetAttribute ("PropertyName") != String.Empty)
                                                throw new InvalidProjectFileException ("Only one of ItemName and ProperytyName attributes can be specified.");
-                                       if (xmlElement.GetAttribute ("TaskParameter") == "")
+                                       if (xmlElement.GetAttribute ("TaskParameter") == String.Empty)
                                                throw new InvalidProjectFileException ("TaskParameter attribute must be specified.");
                                                
                                        taskParameter = xmlElement.GetAttribute ("TaskParameter");
@@ -229,6 +234,9 @@ namespace Microsoft.Build.BuildEngine {
                        e = new OldExpression (parentProject);
                        e.ParseSource (raw);
                        
+                       if ((string) e.ConvertTo (typeof (string)) == String.Empty)
+                               return null;
+                       
                        result = e.ConvertTo (type);
                        
                        return result;