List:Commits« Previous MessageNext Message »
From:Mike Lischke Date:April 6 2011 12:58pm
Subject:bzr commit into wex-installer-1.0 branch (mike.lischke:409)
View as plain text  
#At file:///D:/Work/MySQL/installer/ based on revid:iggy@mysql.com-20110405053642-mhidipa327han40v

  409 Mike Lischke	2011-04-06
      - Installer: check for .NET 3.5 client profile, instead full profile.
      - Manifest template: removed remaining occurances of "essential".
      - Tried to remove any remaining "Universal" string from all files.
      - ConfigurationController: clean up and better logging.
      - IniTemplate: fixed disabled state for server port.
      - WelcomeControl: use plural form for Add/Modify text.

    modified:
      Setup/Product.wxs
      Setup/manifest-base.xml
      StandardPlugins/Examples/ConfigurationController.cs
      StandardPlugins/Server/IniTemplate.cs
      WexInstaller.Core/Package.cs
      WexInstaller.Core/ProductManifest.cs
      WexInstaller/Controls/WelcomeControl.Designer.cs
      WexInstaller/UnitTests/MultiCoreTest.cs
      WiX_CustomAction/WiX_CustomAction.rc
=== modified file 'Setup/Product.wxs'
=== modified file 'Setup/Product.wxs'
--- a/Setup/Product.wxs	2011-03-31 14:43:55 +0000
+++ b/Setup/Product.wxs	2011-04-06 12:58:23 +0000
@@ -65,9 +65,9 @@
       <ComponentRef Id="C_ShortCut"/>
     </Feature>
 
-    <PropertyRef Id="NETFRAMEWORK35"/>
-    <Condition Message="This application requires .NET Framework 3.5. Please install the .NET Framework then run this installer again.">
-      <![CDATA[Installed OR NETFRAMEWORK35]]>
+    <PropertyRef Id="NETFRAMEWORK35_CLIENT"/>
+    <Condition Message="This application requires .NET Framework 3.5 client profile. Please install the .NET Framework then run this installer again.">
+      <![CDATA[Installed OR NETFRAMEWORK35_CLIENT]]>
     </Condition>
 
     <Binary Id="MySQLCA" SourceFile="MySQLCA.CA.dll"/>

=== modified file 'Setup/manifest-base.xml'
--- a/Setup/manifest-base.xml	2011-04-04 23:23:16 +0000
+++ b/Setup/manifest-base.xml	2011-04-06 12:58:23 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<ProductManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="4" format="1">
+<ProductManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="5" format="1">
   <UpdateURL></UpdateURL>
   <UpdateVersion></UpdateVersion>
   <UpdateHash></UpdateHash>
@@ -40,7 +40,7 @@
         <CatalogProduct productId="documents-5.5" setupTypeFlags="5"/>
       </CatalogProducts>
     </ProductCatalog>
-    <ProductCatalog id="mysql-5.1-win32-gpl" name="MySQL 5.1 essentials" description="MySQL 5.1 Community Edition (essentials)" commercial="false">
+    <ProductCatalog id="mysql-5.1-win32-gpl" name="MySQL 5.1" description="MySQL 5.1 Community Edition" commercial="false">
       <SetupTypes>
         <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server.&#13;&#10;&#13;&#10;This Setup Type includes:&#13;&#10;&#13;&#10;* MySQL Server&#13;&#10;&#13;&#10;* MySQL Workbench&#13;&#10;The GUI application to develop for and manage the server.&#13;&#10;&#13;&#10;* MySQL Visual Studio Plugin&#13;&#10;To work with the MySQL Server from VS.&#13;&#10;&#13;&#10;* MySQL Connectors&#13;&#10;Connector/Net, Java, C/C++, OBDC and others.&#13;&#10;&#13;&#10;* Examples and tutorials&#13;&#10;To help you get started with your development.&#13;&#10;&#13;&#10;* Documentation&#13;&#10;Allows you to read the documentation offline." />
         <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
@@ -49,7 +49,7 @@
         <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
       </SetupTypes>
       <CatalogProducts>
-        <CatalogProduct productId="mysql-server-5.1-win32-gpl-essentials" setupTypeFlags="3" />
+        <CatalogProduct productId="mysql-server-5.1-win32-gpl" setupTypeFlags="3" />
         <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
         <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
         <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
@@ -58,7 +58,7 @@
         <CatalogProduct productId="documents-5.1" setupTypeFlags="5"/>
       </CatalogProducts>
     </ProductCatalog>
-    <ProductCatalog id="mysql-5.1-winx64-gpl" name="MySQL 5.1 essentials" description="MySQL 5.1 Community Edition (essentials)" commercial="false">
+    <ProductCatalog id="mysql-5.1-winx64-gpl" name="MySQL 5.1" description="MySQL 5.1 Community Edition" commercial="false">
       <SetupTypes>
         <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server.&#13;&#10;&#13;&#10;This Setup Type includes:&#13;&#10;&#13;&#10;* MySQL Server&#13;&#10;&#13;&#10;* MySQL Workbench&#13;&#10;The GUI application to develop for and manage the server.&#13;&#10;&#13;&#10;* MySQL Visual Studio Plugin&#13;&#10;To work with the MySQL Server from VS.&#13;&#10;&#13;&#10;* MySQL Connectors&#13;&#10;Connector/Net, Java, C/C++, OBDC and others.&#13;&#10;&#13;&#10;* Examples and tutorials&#13;&#10;To help you get started with your development.&#13;&#10;&#13;&#10;* Documentation&#13;&#10;Allows you to read the documentation offline." />
         <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
@@ -67,7 +67,7 @@
         <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
       </SetupTypes>
       <CatalogProducts>
-        <CatalogProduct productId="mysql-server-5.1-winx64-gpl-essentials" setupTypeFlags="3" />
+        <CatalogProduct productId="mysql-server-5.1-winx64-gpl" setupTypeFlags="3" />
         <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
         <CatalogProduct productId="connector-odbc-winx64" setupTypeFlags="5" />
         <CatalogProduct productId="connector-c-winx64" setupTypeFlags="5" />

=== modified file 'StandardPlugins/Examples/ConfigurationController.cs'
--- a/StandardPlugins/Examples/ConfigurationController.cs	2011-04-04 22:51:44 +0000
+++ b/StandardPlugins/Examples/ConfigurationController.cs	2011-04-06 12:58:23 +0000
@@ -1,247 +1,266 @@
 using System;
 using System.Collections.Generic;
+using System.ComponentModel;
 using System.IO;
 using System.Text;
-using System.Text.RegularExpressions;
 using System.Windows.Forms;
+
+using MySql.Data.MySqlClient;
+
 using WexInstaller.Core;
-using MySql.Data;
-using MySql.Data.MySqlClient;
-using System.ComponentModel;
-using System.Threading;
-using System.Diagnostics;
 using WexInstaller.Plugins.Properties;
-using Microsoft.Win32;
 
 namespace WexInstaller.Plugins
 {
-    [ProductConfiguration("examples", 1)]
-    public class ExamplesConfigurationController : ProductConfigurationController
-    {
-        InstallerPanel[] p = new InstallerPanel[1];
-        List<ProductCatalog> owningCatalogs;
-        List<Product> relatedServers;
-        List<Product> installedServers;
-        List<Product> runningServers;
-        string connectionString;
-        List<SampleDatabase> databasesToInstall = null;
+  [ProductConfiguration("examples", 1)]
+  public class ExamplesConfigurationController : ProductConfigurationController
+  {
+    List<ProductCatalog> owningCatalogs;
+    List<Product> relatedServers;
+    List<Product> installedServers;
+    List<Product> runningServers;
+    string connectionString;
+    List<SampleDatabase> databasesToInstall = null;
 
-        public List<ServerProductConfigurationController> Servers = new List<ServerProductConfigurationController>();
+    public List<ServerProductConfigurationController> Servers = new List<ServerProductConfigurationController>();
         
-        public override int NumPages
-        {
-            get { return 0; }
-        }
-
-        public override UserControl[] Pages
-        {
-            get { return null; }
-        }
-
-        public override void  Initialize(bool afterInstallation)
-        {
-        }
-
-        protected override void BackgroundConfigure(object sender, DoWorkEventArgs e)
-        {
-            // determine if we have any features to configure
-            if (databasesToInstall == null)
-                CheckForFeaturesToConfigure();
-            if (databasesToInstall.Count == 0)
-            {
-                ReportStatus(ConfigurationEventType.Success, null, Resources.ConfigSuccessNoFeaturesToConfig, 100);
-                return;
-            }
-
-            // load up our owning catalogs
-            if (!GetOwningCatalogsAndRelatedServerProducts()) return;
-
-            if (!GetInstalledServers()) return;
-            if (!GetRunningServers()) return;
-
-            Product p = runningServers[0];
-            ServerProductConfigurationController controller = p.Controller as ServerProductConfigurationController;
+    public override int NumPages
+    {
+      get { return 0; }
+    }
+
+    public override UserControl[] Pages
+    {
+      get { return null; }
+    }
+
+    public override void  Initialize(bool afterInstallation)
+    {
+    }
+
+    protected override void BackgroundConfigure(object sender, DoWorkEventArgs e)
+    {
+      // determine if we have any features to configure
+      if (databasesToInstall == null)
+          CheckForFeaturesToConfigure();
+      if (databasesToInstall.Count == 0)
+      {
+        ReportStatus(ConfigurationEventType.Success, null, Resources.ConfigSuccessNoFeaturesToConfig, 100);
+        return;
+      }
+
+      // load up our owning catalogs
+      if (!GetOwningCatalogsAndRelatedServerProducts())
+        return;
+
+      if (!GetInstalledServers())
+        return;
+      if (!GetRunningServers())
+        return;
+
+      Product p = runningServers[0];
+      ServerProductConfigurationController controller = p.Controller as ServerProductConfigurationController;
             
-            // now ask the controller for a connection string, prompting for credentials if we need to
-            connectionString = controller.GetConnectionString(true);
-            if (String.IsNullOrEmpty(connectionString))
-            {
-                ReportStatus(ConfigurationEventType.Error, "", Resources.ConfigErrorServerBadConnectionString, 100);
-                return;
-            }
-
-            RunDatabaseScripts();
-        }
-
-        private void GetRelatedServers()
-        {
-            if (relatedServers != null) return;
-            if (owningCatalogs == null) return;
-
-            relatedServers = new List<Product>();
-            foreach (ProductCatalog catalog in owningCatalogs)
-            {
-                foreach (CatalogProduct catalogProduct in catalog.Products)
-                {
-                    if (!catalogProduct.ReferencedProduct.IsServerProduct) continue;
-                    Product p = catalogProduct.ReferencedProduct;
-                    relatedServers.Add(p);
-                }
-            }
-        }
-
-        private bool GetRunningServers()
-        {
-            runningServers = new List<Product>();
-            if (installedServers == null || installedServers.Count == 0) return false;
-
-            foreach (Product p in installedServers)
-            {
-                ServerProductConfigurationController controller = p.Controller as ServerProductConfigurationController;
-                if (!controller.IsRunning) continue;
-                runningServers.Add(p);
-            }
-            if (runningServers == null || runningServers.Count == 0)
-            {
-                ReportStatus(ConfigurationEventType.Error, "", Resources.ConfigErrorServerNotRunning, 100);
-                return false;
-            }
-            return true;
-        }
-
-        /// <summary>
-        /// Looks at the features for this product and returns all features that installed and need configuring
-        /// </summary>
-        private void CheckForFeaturesToConfigure()
-        {
-            databasesToInstall = new List<SampleDatabase>();
-
-            ReportStatus(ConfigurationEventType.Info, null, Resources.ConfigInfoCheckingFeaturesToConfigure, 10);
-
-            string sampleDbLocation = Owner.GetInstalledProductRegistryKey("Sample Databases");
-            if (String.IsNullOrEmpty(sampleDbLocation))
-            {
-                ReportStatus(ConfigurationEventType.Info, null, Resources.ConfigInfoNoSampleDbsToConfigure, 10);
-                return;
-            }
-
-            string[] sampleDirs = Directory.GetDirectories(sampleDbLocation);
-            foreach (string dir in sampleDirs)
-            {
-                SampleDatabase db = new SampleDatabase();
-                db.Path = dir;
-                db.Installed = false;
-                string[] files = Directory.GetFiles(dir);
-                foreach (string file in files)
-                {
-                    string lowerFile = file.ToLowerInvariant();
-                    if (lowerFile.EndsWith("-schema.sql"))
-                        db.SchemaFile = file;
-                    else if (lowerFile.EndsWith("-data.sql"))
-                        db.DataFile = file;
-                }
-                if (!String.IsNullOrEmpty(db.SchemaFile))
-                    databasesToInstall.Add(db);
-            }
-        }
-
-        private void RunDatabaseScripts()
-        {
-            using (MySqlConnection connection = new MySqlConnection(connectionString))
-            {
-                connection.Open();
-                MySqlScript script = new MySqlScript(connection);
-                foreach (SampleDatabase db in databasesToInstall)
-                {
-                    if (db.Installed) continue;
-                    if (String.IsNullOrEmpty(db.SchemaFile)) continue;
-
-                    try
-                    {
-                        StreamReader sr = new StreamReader(db.SchemaFile, Encoding.Default);
-                        string sql = sr.ReadToEnd();
-                        script.Query = sql;
-                        int processed = script.Execute();
-
-                        if (!String.IsNullOrEmpty(db.DataFile))
-                        {
-                            sr = new StreamReader(db.DataFile, Encoding.Default);
-                            sql = sr.ReadToEnd();
-                            script.Query = sql;
-                            processed = script.Execute();
-                        }
-                        db.Installed = true;
-                    }
-                    catch (Exception)
-                    {
-                        //TODO:  improve this
-                        ReportError(null, "Error installing sample database");
-                    }
-                }
-            }
-        }
-
-        private bool GetInstalledServers()
-        {
-            installedServers = new List<Product>();
-
-            foreach (Product p in relatedServers)
-            {
-                if (!p.Installed) continue;
-                installedServers.Add(p);
-            }
-            if (installedServers == null || installedServers.Count == 0)
-            {
-                ReportStatus(ConfigurationEventType.Error, "", Resources.ConfigErrorServerNotInstalled, 100);
-                return false;
-            }
-            return true;
-        }
-
-        private bool GetOwningCatalogsAndRelatedServerProducts()
-        {
-            GetOwningCatalogs();
-
-            if (owningCatalogs == null || owningCatalogs.Count == 0)
-            {
-                ReportStatus(ConfigurationEventType.Info, "SERVER_PRODUCT",
-                     "Unable to determine server product as we are not in a catalog", 100);
-                return false;
-            }
-
-            GetRelatedServers();
-            if (relatedServers == null || relatedServers.Count == 0)
-            {
-                ReportStatus(ConfigurationEventType.Error, "", "Unable to configure as there is no server product available", 100);
-                return false;
-            }
-            return true;
-        }
-

-
-        private void GetOwningCatalogs()
-        {
-            if (owningCatalogs != null) return;
-
-            // find out what catalog our owner belongs to
-            ReportStatus(ConfigurationEventType.Info, "CATALOG", "Determining product catalog", 0);
-
-            owningCatalogs = new List<ProductCatalog>();
-            foreach (ProductCatalog catalog in ProductManager.Catalogs)
-                foreach (CatalogProduct catalogProduct in catalog.Products)
-                    if (catalogProduct.ReferencedProduct == Owner) 
-                    {
-                        ReportStatus(ConfigurationEventType.Success, "CATALOG", "Found containing catalog", 10);
-                        owningCatalogs.Add(catalog);
-                    }
-        }
-    }
-
-    class SampleDatabase
-    {
-        public string Path;
-        public string SchemaFile;
-        public string DataFile;
-        public bool Installed;
-    }
+      // now ask the controller for a connection string, prompting for credentials if we need to
+      connectionString = controller.GetConnectionString(true);
+      if (String.IsNullOrEmpty(connectionString))
+      {
+        ReportStatus(ConfigurationEventType.Error, "", Resources.ConfigErrorServerBadConnectionString, 100);
+        return;
+      }
+
+      RunDatabaseScripts();
+    }
+
+    private void GetRelatedServers()
+    {
+      if (relatedServers != null)
+        return;
+      if (owningCatalogs == null)
+        return;
+
+      relatedServers = new List<Product>();
+      foreach (ProductCatalog catalog in owningCatalogs)
+      {
+        foreach (CatalogProduct catalogProduct in catalog.Products)
+        {
+          if (!catalogProduct.ReferencedProduct.IsServerProduct)
+            continue;
+          Product p = catalogProduct.ReferencedProduct;
+          relatedServers.Add(p);
+        }
+      }
+    }
+
+    private bool GetRunningServers()
+    {
+      runningServers = new List<Product>();
+      if (installedServers == null || installedServers.Count == 0)
+        return false;
+
+      foreach (Product p in installedServers)
+      {
+        ServerProductConfigurationController controller = p.Controller as ServerProductConfigurationController;
+        if (!controller.IsRunning)
+          continue;
+        runningServers.Add(p);
+      }
+      if (runningServers == null || runningServers.Count == 0)
+      {
+        ReportStatus(ConfigurationEventType.Error, "", Resources.ConfigErrorServerNotRunning, 100);
+        return false;
+      }
+      return true;
+    }
+
+    /// <summary>
+    /// Looks at the features for this product and returns all features that installed and need configuring
+    /// </summary>
+    private void CheckForFeaturesToConfigure()
+    {
+      databasesToInstall = new List<SampleDatabase>();
+
+      ReportStatus(ConfigurationEventType.Info, null, Resources.ConfigInfoCheckingFeaturesToConfigure, 10);
+
+      string sampleDbLocation = Owner.GetInstalledProductRegistryKey("Sample Databases");
+      if (String.IsNullOrEmpty(sampleDbLocation))
+      {
+        ReportStatus(ConfigurationEventType.Info, null, Resources.ConfigInfoNoSampleDbsToConfigure, 10);
+        return;
+      }
+
+      string[] sampleDirs = Directory.GetDirectories(sampleDbLocation);
+      foreach (string dir in sampleDirs)
+      {
+        SampleDatabase db = new SampleDatabase();
+        db.Path = dir;
+        db.Installed = false;
+        string[] files = Directory.GetFiles(dir);
+        foreach (string file in files)
+        {
+          string lowerFile = file.ToLowerInvariant();
+          if (lowerFile.EndsWith("-schema.sql"))
+            db.SchemaFile = file;
+          else
+            if (lowerFile.EndsWith("-data.sql"))
+              db.DataFile = file;
+        }
+        if (!String.IsNullOrEmpty(db.SchemaFile))
+          databasesToInstall.Add(db);
+      }
+    }
+
+    private void RunDatabaseScripts()
+    {
+      using (MySqlConnection connection = new MySqlConnection(connectionString))
+      {
+        try
+        {
+          connection.Open();
+        }
+        catch
+        {
+          ReportError("CONFIGURATION", string.Format("Could not open connection to database using " +
+            "the connection string:\n\t{0}", connectionString));
+          return;
+        }
+
+        MySqlScript script = new MySqlScript(connection);
+        foreach (SampleDatabase db in databasesToInstall)
+        {
+          if (db.Installed)
+            continue;
+          if (String.IsNullOrEmpty(db.SchemaFile))
+            continue;
+
+          try
+          {
+            StreamReader sr = new StreamReader(db.SchemaFile, Encoding.Default);
+            string sql = sr.ReadToEnd();
+            script.Query = sql;
+            int processed = script.Execute();
+
+            if (!String.IsNullOrEmpty(db.DataFile))
+            {
+              sr = new StreamReader(db.DataFile, Encoding.Default);
+              sql = sr.ReadToEnd();
+              script.Query = sql;
+              processed = script.Execute();
+            }
+            db.Installed = true;
+          }
+          catch (Exception e)
+          {
+            ReportError("CONFIGURATION", string.Format("Error installing sample database. " + 
+              "The error is:\n\t{0}", e.ToString()));
+          }
+        }
+      }
+    }
+
+    private bool GetInstalledServers()
+    {
+      installedServers = new List<Product>();
+
+      foreach (Product p in relatedServers)
+      {
+        if (!p.Installed)
+          continue;
+        installedServers.Add(p);
+      }
+      if (installedServers == null || installedServers.Count == 0)
+      {
+        ReportStatus(ConfigurationEventType.Error, "", Resources.ConfigErrorServerNotInstalled, 100);
+        return false;
+      }
+      return true;
+    }
+
+    private bool GetOwningCatalogsAndRelatedServerProducts()
+    {
+      GetOwningCatalogs();
+
+      if (owningCatalogs == null || owningCatalogs.Count == 0)
+      {
+        ReportStatus(ConfigurationEventType.Info, "SERVER_PRODUCT",
+          "Unable to determine server product as we are not in a catalog", 100);
+        return false;
+      }
+
+      GetRelatedServers();
+      if (relatedServers == null || relatedServers.Count == 0)
+      {
+        ReportStatus(ConfigurationEventType.Error, "", "Unable to configure as there is no server product available", 100);
+        return false;
+      }
+      return true;
+    }
+
+
+    private void GetOwningCatalogs()
+    {
+      if (owningCatalogs != null)
+        return;
+
+      // find out what catalog our owner belongs to
+      ReportStatus(ConfigurationEventType.Info, "CATALOG", "Determining product catalog", 0);
+
+      owningCatalogs = new List<ProductCatalog>();
+      foreach (ProductCatalog catalog in ProductManager.Catalogs)
+        foreach (CatalogProduct catalogProduct in catalog.Products)
+          if (catalogProduct.ReferencedProduct == Owner) 
+          {
+            ReportStatus(ConfigurationEventType.Success, "CATALOG", "Found containing catalog", 10);
+            owningCatalogs.Add(catalog);
+          }
+    }
+  }
+
+  class SampleDatabase
+  {
+    public string Path;
+    public string SchemaFile;

+    public string DataFile;
+    public bool Installed;
+  }
 }

=== modified file 'StandardPlugins/Server/IniTemplate.cs'
--- a/StandardPlugins/Server/IniTemplate.cs	2011-02-08 18:41:30 +0000
+++ b/StandardPlugins/Server/IniTemplate.cs	2011-04-06 12:58:23 +0000
@@ -174,7 +174,7 @@
                                         break;
                                     case "CLIENT_PORT":
                                     case "SERVER_PORT":
-                                        this.EnableNetworking = itv.Disabled;
+                                        this.EnableNetworking = !itv.Disabled;
                                         if (EnableNetworking && itv.DefaultValue != "")
                                             Port = itv.DefaultValue;
                                         break;
@@ -335,7 +335,7 @@
                             break;
                         case "CLIENT_PORT":
                         case "SERVER_PORT":
-                            itv.Disabled = this.EnableNetworking;
+                            itv.Disabled = !this.EnableNetworking;
                             break;
                         case "CLIENT_PIPE":
                         case "CLIENT_SOCKET":

=== modified file 'WexInstaller.Core/Package.cs'
--- a/WexInstaller.Core/Package.cs	2011-04-04 18:55:13 +0000
+++ b/WexInstaller.Core/Package.cs	2011-04-06 12:58:23 +0000
@@ -380,7 +380,7 @@
         }
       }
       else
-        Logger.LogError("Invalid package. No id set.");
+        Logger.LogError(string.Format("Invalid package {0}. No id set.", FileName));
     }
 
     /// <summary>

=== modified file 'WexInstaller.Core/ProductManifest.cs'
--- a/WexInstaller.Core/ProductManifest.cs	2011-02-09 17:35:42 +0000
+++ b/WexInstaller.Core/ProductManifest.cs	2011-04-06 12:58:23 +0000
@@ -1,29 +1,29 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
+using System.Collections.Generic;
 using System.Xml.Serialization;
 using System.IO;
+using System;
 
 namespace WexInstaller.Core
 {
-    public sealed class ProductManifest
-    {
-        [XmlAttribute("version")]
-        public int Version;
-
-        [XmlAttribute("format")]
-        public int Format;
-
-        [XmlElement("UpdateVersion")]
-        public string UpdateVersion { get; set; }
-
-        [XmlElement("UpdateURL")]
-        public string UpdateUrl { get; set; }
-
-        [XmlArray()]
-        public List<ProductCatalog> ProductCatalogs;
-
-        [XmlArray]
-        public List<ProductCategory> ProductCategories;
-    }
+  public sealed class ProductManifest
+  {
+    [XmlAttribute("version")]
+    public int Version;
+
+    [XmlAttribute("format")]
+    public int Format;
+
+    [XmlElement("UpdateVersion")]
+    public string UpdateVersion { get; set; }
+
+    [XmlElement("UpdateURL")]
+    public string UpdateUrl { get; set; }
+
+    [XmlArray()]
+    public List<ProductCatalog> ProductCatalogs;
+
+    [XmlArray]
+    public List<ProductCategory> ProductCategories;
+
+  }
 }

=== modified file 'WexInstaller/Controls/WelcomeControl.Designer.cs'
--- a/WexInstaller/Controls/WelcomeControl.Designer.cs	2011-03-30 13:40:12 +0000
+++ b/WexInstaller/Controls/WelcomeControl.Designer.cs	2011-04-06 12:58:23 +0000
@@ -211,10 +211,10 @@
           this.modifyActionLink.LinkColor = System.Drawing.Color.Black;
           this.modifyActionLink.Location = new System.Drawing.Point(251, 232);
           this.modifyActionLink.Name = "modifyActionLink";
-          this.modifyActionLink.Size = new System.Drawing.Size(175, 13);
+          this.modifyActionLink.Size = new System.Drawing.Size(180, 13);
           this.modifyActionLink.TabIndex = 0;
           this.modifyActionLink.TabStop = true;
-          this.modifyActionLink.Text = "Add / Modify Product and Features";
+          this.modifyActionLink.Text = "Add / Modify Products and Features";
           this.modifyActionLink.Visible = false;
           this.modifyActionLink.VisitedLinkColor = System.Drawing.Color.Black;
           this.modifyActionLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.modifyActionLink_LinkClicked);

=== modified file 'WexInstaller/UnitTests/MultiCoreTest.cs'
--- a/WexInstaller/UnitTests/MultiCoreTest.cs	2011-02-07 21:39:59 +0000
+++ b/WexInstaller/UnitTests/MultiCoreTest.cs	2011-04-06 12:58:23 +0000
@@ -40,11 +40,11 @@
         //[SetUp]
         public void SetUp()
         {
-            // Install the Universal Installer.
+            // Install the MySQL Installer.
             uint[] returnCodes = null;
             ChainedInstaller i = new ChainedInstaller();
             PackageParameters parameters = new PackageParameters(
-                System.IO.Path.GetFullPath("..\\..\\..\\Setup_Web\\bin\\Release\\mysql-universal-installer-alpha14-web.msi"),  // The installers are only built for release builds.
+                System.IO.Path.GetFullPath("..\\..\\..\\Setup_Web\\bin\\Release\\mysql-installer-alpha14-web.msi"),  // The installers are only built for release builds.
                 InstallAction.Install);
 
             i.AddPackage(parameters);
@@ -62,7 +62,7 @@
             uint[] returnCodes = null;
             ChainedInstaller i = new ChainedInstaller();
             PackageParameters parameters = new PackageParameters(
-                System.IO.Path.GetFullPath("..\\..\\..\\Setup_Web\\bin\\Release\\mysql-universal-installer-alpha14-web.msi"),  // The installers are only built for release builds.
+                System.IO.Path.GetFullPath("..\\..\\..\\Setup_Web\\bin\\Release\\mysql-installer-alpha14-web.msi"),  // The installers are only built for release builds.
                 InstallAction.Uninstall);
 
             i.AddPackage(parameters);

=== modified file 'WiX_CustomAction/WiX_CustomAction.rc'
Binary files a/WiX_CustomAction/WiX_CustomAction.rc	2010-09-09 17:49:17 +0000 and b/WiX_CustomAction/WiX_CustomAction.rc	2011-04-06 12:58:23 +0000 differ
Attachment: [text/bzr-bundle] bzr/mike.lischke@oracle.com-20110406125823-keqkhcxogwvul8xv.bundle
Thread
bzr commit into wex-installer-1.0 branch (mike.lischke:409) Mike Lischke6 Apr