List:Commits« Previous MessageNext Message »
From:Mike Lischke Date:June 9 2011 12:46pm
Subject:bzr commit into wex-installer-1.0 branch (mike.lischke:502)
View as plain text  
#At file:///D:/Work/MySQL/installer/ based on revid:iggy@mysql.com-20110606133057-t4r7if3aw7w62p8a

  502 Mike Lischke	2011-06-09
      - Added support for commercial setups.
      - ProductManager: added support for temporary manifests (needed for commercial update check).
      - ProductManifest: cleanup that removes catalogs which do not match the current installer type (gpl vs commercial).
      - MainForm: title depends on type of application (MySQL Installer vs MySQL Installer - Commercial Edition).
      [QA] When running the installer in comemrcial mode then there must be no products listed anywhere which are not downloaded already. When doing an update check and there is an update found then the installer must be closed when pressing Next and the browser is opened with the Oracle Support site.

    added:
      WexInstaller/InstallWizard/CommercialUpdateCheck.Designer.cs
      WexInstaller/InstallWizard/CommercialUpdateCheck.cs
      WexInstaller/InstallWizard/CommercialUpdateCheck.resx
    modified:
      WexInstaller.Core/InstallerConfiguration.cs
      WexInstaller.Core/ProductManager.cs
      WexInstaller.Core/ProductManifest.cs
      WexInstaller/Controls/FeatureBox.cs
      WexInstaller/Controls/InstallWizardControl.Designer.cs
      WexInstaller/Controls/InstallWizardControl.cs
      WexInstaller/InstallWizard/DetailedUpdateCheck.cs
      WexInstaller/InstallWizard/Features.cs
      WexInstaller/InstallWizard/InstallType.cs
      WexInstaller/InstallWizard/LicenseAgreement.cs
      WexInstaller/InstallWizard/UpdateCheck.cs
      WexInstaller/MainForm.cs
      WexInstaller/Properties/Resources.Designer.cs
      WexInstaller/Properties/Resources.resx
      WexInstaller/WexCmd.cs
      WexInstaller/WexInstaller.csproj
      common/products.xml
=== modified file 'WexInstaller.Core/InstallerConfiguration.cs'
=== modified file 'WexInstaller.Core/InstallerConfiguration.cs'
--- a/WexInstaller.Core/InstallerConfiguration.cs	2011-05-17 09:27:10 +0000
+++ b/WexInstaller.Core/InstallerConfiguration.cs	2011-06-09 12:46:14 +0000
@@ -127,6 +127,12 @@
       set { instance.MaxLogCount = value; }
     }
 
+    public static bool Commercial
+    {
+      get { return instance.Commercial; }
+      set { instance.Commercial = value; }
+    }
+
     #endregion
 
     public static void Save()
@@ -212,6 +218,7 @@
     public string ProductCode { get; set; }
     public string ActiveCatalog { get; set; }
     public int MaxLogCount { get; set; }
+    public bool Commercial { get; set; }
 
     public InstallerConfigurationData()
     {
@@ -220,6 +227,7 @@
       SendSystemInfo = 1;
       MaxLogCount = 100;
       UpdateTimeoutMilliseconds = 10000;
+      Commercial = false;
     }
   }
 

=== modified file 'WexInstaller.Core/ProductManager.cs'
--- a/WexInstaller.Core/ProductManager.cs	2011-05-23 15:01:40 +0000
+++ b/WexInstaller.Core/ProductManager.cs	2011-06-09 12:46:14 +0000
@@ -87,6 +87,7 @@
         try
         {
           result = (ProductManifest)s.Deserialize(w);
+          result.Cleanup(InstallerConfiguration.Commercial);
         }
         catch (Exception e)
         {
@@ -337,7 +338,54 @@
         if (UpdateURLIndex < (InstallerConfiguration.UpdateURLs.Count - 1))
         {
           UpdateURLIndex += 1;
-          DownloadManifest();
+          DownloadManifest(false);
+        }
+        else
+        {
+          if (DownloadManifestCompleted != null)
+            DownloadManifestCompleted(sender, e);
+        }
+      }
+
+      return;
+    }
+
+    /// <summary>
+    /// A special variant for downloading the manifest. It does not overwrite the existing
+    /// manifest but only downloads it to a temporary file, objectifies it and passes that on
+    /// to the public completion event for further consumption.
+    /// </summary>
+    private static void DownloadTempManifestComplete(object sender, AsyncCompletedEventArgs e)
+    {
+      if (!e.Cancelled && e.Error == null)
+      {
+        Logger.LogInformation(String.Format("Successfully downloaded temporary product manifest from {0}.", (string)e.UserState));
+        try
+        {
+          ProductManifest tempManifest = ObjectifyManifest(InstallerConfiguration.TempManifest);
+          UpdateURLIndex = 0;
+
+          AsyncCompletedEventArgs newArgs = new AsyncCompletedEventArgs(null, false, tempManifest);
+          if (DownloadManifestCompleted != null)
+            DownloadManifestCompleted(sender, newArgs);
+        }
+        catch (Exception ex)
+        {
+          Logger.LogException(ex);
+          if (DownloadManifestCompleted != null)
+          {
+            AsyncCompletedEventArgs newArgs = new AsyncCompletedEventArgs(ex, false, null); 
+            DownloadManifestCompleted(sender, newArgs);
+          }
+        }
+      }
+      else
+      {
+        Logger.LogError(String.Format("Failed to download new product manifest from {0}.", (string)e.UserState));
+        if (UpdateURLIndex < (InstallerConfiguration.UpdateURLs.Count - 1))
+        {
+          UpdateURLIndex += 1;
+          DownloadManifest(true);
         }
         else
         {
@@ -374,7 +422,15 @@
         wc.CancelAsync();
     }
 
-    public static bool DownloadManifest()
+    /// <summary>
+    /// Starts downloading a new manifest to a temporary file and checks if this is newer than
+    /// the existing file. if "temporary" is true then this new manifest is simply returned in the
+    /// public completion handler, no further action takes place.
+    /// If "temporary" is false then the existing manifest is replaced by the temporary one (if it is
+    /// newer) and all the product info is reloaded.
+    /// </summary>
+    /// <returns>True if the download could start.</returns>
+    public static bool DownloadManifest(bool temporary)
     {
       Logger.LogTrace("ProductManager.DownloadManifest()");
 
@@ -401,7 +457,10 @@
       {
         Logger.LogInformation(String.Format("Attempting product manifest download from {0}.", updateUrl));
 
-        wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadManifestComplete);
+        if (temporary)
+          wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadTempManifestComplete);
+        else
+          wc.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadManifestComplete);
         wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(DownloadManifestProgress);
         wc.DownloadFileAsync(updateUri, InstallerConfiguration.TempManifest, updateUrl);
       }

=== modified file 'WexInstaller.Core/ProductManifest.cs'
--- a/WexInstaller.Core/ProductManifest.cs	2011-04-11 13:15:47 +0000
+++ b/WexInstaller.Core/ProductManifest.cs	2011-06-09 12:46:14 +0000
@@ -28,5 +28,12 @@
     [XmlArray]
     public List<ProductCategory> ProductCategories;
 
+    /// <summary>
+    /// Strips all entries that do not match the current release type (gpl vs commercial).
+    /// </summary>
+    public void Cleanup(bool commercial)
+    {
+      ProductCatalogs.RemoveAll(catalog => catalog.Commercial != commercial);
+    }
   }
 }

=== modified file 'WexInstaller/Controls/FeatureBox.cs'
--- a/WexInstaller/Controls/FeatureBox.cs	2011-04-26 10:06:39 +0000
+++ b/WexInstaller/Controls/FeatureBox.cs	2011-06-09 12:46:14 +0000
@@ -168,7 +168,10 @@
           bool architectureDoesNotMatter = anyArchitecture || p.Architecture == PackageArchitecture.Any;
           if (architectureDoesNotMatter || p.Architecture == packageArchitecture)
           {
-            if ((ListAllItems || p.Installed) && !products.ContainsKey(p.Name))
+            if ((ListAllItems || p.Installed) &&
+              !products.ContainsKey(p.Name) &&
+              (p.FoundLocal || !InstallerConfiguration.Commercial)
+              )
               products[p.Name] = p;
           }
         }
@@ -201,7 +204,9 @@
           foreach (ProductCatalog currentCatalog in catalogList)
             foreach (CatalogProduct cp in currentCatalog.Products)
               if (cp.ProductId.Equals(p.Name, StringComparison.InvariantCultureIgnoreCase) &&
-                !products.ContainsKey(p.Name))
+                !products.ContainsKey(p.Name) &&
+                (p.FoundLocal || !InstallerConfiguration.Commercial)
+              )
                 products[p.Name] = p;
         }
         result.AddRange(products.Values);

=== modified file 'WexInstaller/Controls/InstallWizardControl.Designer.cs'
--- a/WexInstaller/Controls/InstallWizardControl.Designer.cs	2011-06-06 12:33:14 +0000
+++ b/WexInstaller/Controls/InstallWizardControl.Designer.cs	2011-06-09 12:46:14 +0000
@@ -28,405 +28,433 @@
         /// </summary>
         private void InitializeComponent()
         {
-          System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallWizardControl));
-          this.Back = new System.Windows.Forms.Button();
-          this.Cancel = new System.Windows.Forms.Button();
-          this.Next = new System.Windows.Forms.Button();
-          this.buttonLayoutPanel = new System.Windows.Forms.FlowLayoutPanel();
-          this.Help = new System.Windows.Forms.Button();
-          this.wizardPages = new WexInstaller.HiddenTabsControl();
-          this.licenseTab = new System.Windows.Forms.TabPage();
-          this.licensePanel = new WexInstaller.LicenseAgreement();
-          this.updateTab = new System.Windows.Forms.TabPage();
-          this.updatePanel = new WexInstaller.UpdateCheck();
-          this.detailedUpdateTab = new System.Windows.Forms.TabPage();
-          this.detailedUpdatePanel = new WexInstaller.UpgradeCheck();
-          this.typeTab = new System.Windows.Forms.TabPage();
-          this.typePanel = new WexInstaller.InstallType();
-          this.featuresTab = new System.Windows.Forms.TabPage();
-          this.featuresPanel = new WexInstaller.FeatureSelection();
-          this.requirementsTab = new System.Windows.Forms.TabPage();
-          this.checkRequirementsPanel = new WexInstaller.CheckRequirements();
-          this.installProgressTab = new System.Windows.Forms.TabPage();
-          this.installProgressPanel = new WexInstaller.InstallProgress();
-          this.allConfigTab = new System.Windows.Forms.TabPage();
-          this.allConfigPanel = new WexInstaller.AllConfigOverview();
-          this.completeTab = new System.Windows.Forms.TabPage();
-          this.completePanel = new WexInstaller.InstallationComplete();
-          this.installWizardSideBarControl1 = new WexInstaller.InstallWizardSideBarControl();
-          this.buttonLayoutPanel.SuspendLayout();
-          this.wizardPages.SuspendLayout();
-          this.licenseTab.SuspendLayout();
-          this.updateTab.SuspendLayout();
-          this.detailedUpdateTab.SuspendLayout();
-          this.typeTab.SuspendLayout();
-          this.featuresTab.SuspendLayout();
-          this.requirementsTab.SuspendLayout();
-          this.installProgressTab.SuspendLayout();
-          this.allConfigTab.SuspendLayout();
-          this.completeTab.SuspendLayout();
-          this.SuspendLayout();
-          // 
-          // Back
-          // 
-          this.Back.AccessibleDescription = "Return to previous page";
-          this.Back.AccessibleName = "Back";
-          this.Back.BackColor = System.Drawing.SystemColors.Control;
-          this.Back.Enabled = false;
-          this.Back.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.Back.ImeMode = System.Windows.Forms.ImeMode.NoControl;
-          this.Back.Location = new System.Drawing.Point(187, 3);
-          this.Back.Name = "Back";
-          this.Back.Size = new System.Drawing.Size(86, 26);
-          this.Back.TabIndex = 3;
-          this.Back.Text = global::WexInstaller.Properties.Resources.BackButtonDefaultText;
-          this.Back.UseVisualStyleBackColor = false;
-          this.Back.Click += new System.EventHandler(this.Back_Click);
-          // 
-          // Cancel
-          // 
-          this.Cancel.AccessibleDescription = "Cancel the installer";
-          this.Cancel.AccessibleName = "Cancel";
-          this.Cancel.BackColor = System.Drawing.SystemColors.Control;
-          this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
-          this.Cancel.ImeMode = System.Windows.Forms.ImeMode.NoControl;
-          this.Cancel.Location = new System.Drawing.Point(371, 3);
-          this.Cancel.Name = "Cancel";
-          this.Cancel.Size = new System.Drawing.Size(86, 26);
-          this.Cancel.TabIndex = 1;
-          this.Cancel.Text = global::WexInstaller.Properties.Resources.CancelButtonDefaultText;
-          this.Cancel.UseVisualStyleBackColor = false;
-          this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
-          // 
-          // Next
-          // 
-          this.Next.AccessibleDescription = "Advance to next page";
-          this.Next.AccessibleName = "Next";
-          this.Next.BackColor = System.Drawing.SystemColors.Control;
-          this.Next.Enabled = false;
-          this.Next.ImeMode = System.Windows.Forms.ImeMode.NoControl;
-          this.Next.Location = new System.Drawing.Point(279, 3);
-          this.Next.Name = "Next";
-          this.Next.Size = new System.Drawing.Size(86, 26);
-          this.Next.TabIndex = 0;
-          this.Next.Text = global::WexInstaller.Properties.Resources.NextButtonDefaultText;
-          this.Next.UseVisualStyleBackColor = false;
-          this.Next.Click += new System.EventHandler(this.Next_Click);
-          // 
-          // buttonLayoutPanel
-          // 
-          this.buttonLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                      | System.Windows.Forms.AnchorStyles.Left)
-                      | System.Windows.Forms.AnchorStyles.Right)));
-          this.buttonLayoutPanel.Controls.Add(this.Help);
-          this.buttonLayoutPanel.Controls.Add(this.Cancel);
-          this.buttonLayoutPanel.Controls.Add(this.Next);
-          this.buttonLayoutPanel.Controls.Add(this.Back);
-          this.buttonLayoutPanel.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
-          this.buttonLayoutPanel.Location = new System.Drawing.Point(220, 515);
-          this.buttonLayoutPanel.Name = "buttonLayoutPanel";
-          this.buttonLayoutPanel.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
-          this.buttonLayoutPanel.Size = new System.Drawing.Size(557, 37);
-          this.buttonLayoutPanel.TabIndex = 101;
-          this.buttonLayoutPanel.WrapContents = false;
-          // 
-          // Help
-          // 
-          this.Help.AccessibleDescription = "Show help";
-          this.Help.AccessibleName = "Help";
-          this.Help.BackColor = System.Drawing.SystemColors.Control;
-          this.Help.ImeMode = System.Windows.Forms.ImeMode.NoControl;
-          this.Help.Location = new System.Drawing.Point(463, 3);
-          this.Help.Name = "Help";
-          this.Help.Size = new System.Drawing.Size(86, 26);
-          this.Help.TabIndex = 2;
-          this.Help.Text = "&Help";
-          this.Help.UseVisualStyleBackColor = false;
-          this.Help.Visible = false;
-          this.Help.Click += new System.EventHandler(this.Help_Click);
-          // 
-          // wizardPages
-          // 
-          this.wizardPages.AccessibleName = "Installation Assistant";
-          this.wizardPages.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
-          this.wizardPages.Controls.Add(this.licenseTab);
-          this.wizardPages.Controls.Add(this.updateTab);
-          this.wizardPages.Controls.Add(this.detailedUpdateTab);
-          this.wizardPages.Controls.Add(this.typeTab);
-          this.wizardPages.Controls.Add(this.featuresTab);
-          this.wizardPages.Controls.Add(this.requirementsTab);
-          this.wizardPages.Controls.Add(this.installProgressTab);
-          this.wizardPages.Controls.Add(this.allConfigTab);
-          this.wizardPages.Controls.Add(this.completeTab);
-          this.wizardPages.Dock = System.Windows.Forms.DockStyle.Top;
-          this.wizardPages.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-          this.wizardPages.Location = new System.Drawing.Point(220, 0);
-          this.wizardPages.Multiline = true;
-          this.wizardPages.Name = "wizardPages";
-          this.wizardPages.SelectedIndex = 0;
-          this.wizardPages.Size = new System.Drawing.Size(564, 505);
-          this.wizardPages.TabIndex = 4;
-          this.wizardPages.TabStop = false;
-          this.wizardPages.SelectedIndexChanged += new System.EventHandler(this.wizardPages_SelectedIndexChanged);
-          this.wizardPages.Deselected += new System.Windows.Forms.TabControlEventHandler(this.wizardPages_Deselected);
-          // 
-          // licenseTab
-          // 
-          this.licenseTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
-          this.licenseTab.BackColor = System.Drawing.Color.White;
-          this.licenseTab.Controls.Add(this.licensePanel);
-          this.licenseTab.Location = new System.Drawing.Point(4, 40);
-          this.licenseTab.Name = "licenseTab";
-          this.licenseTab.Padding = new System.Windows.Forms.Padding(3);
-          this.licenseTab.Size = new System.Drawing.Size(556, 461);
-          this.licenseTab.TabIndex = 0;
-          this.licenseTab.Text = "License Information";
-          // 
-          // licensePanel
-          // 
-          this.licensePanel.AccessibleName = "License";
-          this.licensePanel.BackColor = System.Drawing.SystemColors.Window;
-          this.licensePanel.Caption = "License Agreement";
-          this.licensePanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.licensePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.licensePanel.Location = new System.Drawing.Point(3, 3);
-          this.licensePanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
-          this.licensePanel.Name = "licensePanel";
-          this.licensePanel.Size = new System.Drawing.Size(550, 455);
-          this.licensePanel.SubCaption = "To install MySQL, you must accept the Oracle Software License Terms.";
-          this.licensePanel.TabIndex = 0;
-          // 
-          // updateTab
-          // 
-          this.updateTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
-          this.updateTab.BackColor = System.Drawing.Color.White;
-          this.updateTab.Controls.Add(this.updatePanel);
-          this.updateTab.Location = new System.Drawing.Point(4, 40);
-          this.updateTab.Name = "updateTab";
-          this.updateTab.Size = new System.Drawing.Size(556, 461);
-          this.updateTab.TabIndex = 1;
-          this.updateTab.Text = "Find latest products";
-          // 
-          // updatePanel
-          // 
-          this.updatePanel.BackColor = System.Drawing.SystemColors.Window;
-          this.updatePanel.Caption = "Find latest products";
-          this.updatePanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.updatePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.updatePanel.Location = new System.Drawing.Point(0, 0);
-          this.updatePanel.Margin = new System.Windows.Forms.Padding(0);
-          this.updatePanel.Name = "updatePanel";
-          this.updatePanel.Size = new System.Drawing.Size(556, 461);
-          this.updatePanel.SubCaption = "Before the installation is performed, the Installer will check if there are newer" +
-              " versions of the products you are about to install / already installed are avail" +
-              "able.";
-          this.updatePanel.TabIndex = 10;
-          // 
-          // detailedUpdateTab
-          // 
-          this.detailedUpdateTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
-          this.detailedUpdateTab.BackColor = System.Drawing.Color.White;
-          this.detailedUpdateTab.Controls.Add(this.detailedUpdatePanel);
-          this.detailedUpdateTab.Location = new System.Drawing.Point(4, 40);
-          this.detailedUpdateTab.Name = "detailedUpdateTab";
-          this.detailedUpdateTab.Size = new System.Drawing.Size(556, 461);
-          this.detailedUpdateTab.TabIndex = 2;
-          this.detailedUpdateTab.Text = "Apply updates";
-          // 
-          // detailedUpdatePanel
-          // 
-          this.detailedUpdatePanel.BackColor = System.Drawing.SystemColors.Window;
-          this.detailedUpdatePanel.Caption = "Apply Updates";
-          this.detailedUpdatePanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.detailedUpdatePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.detailedUpdatePanel.Location = new System.Drawing.Point(0, 0);
-          this.detailedUpdatePanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
-          this.detailedUpdatePanel.Name = "detailedUpdatePanel";
-          this.detailedUpdatePanel.Size = new System.Drawing.Size(556, 461);
-          this.detailedUpdatePanel.SubCaption = "Please set the type of action text we need for  this page.";
-          this.detailedUpdatePanel.TabIndex = 0;
-          // 
-          // typeTab
-          // 
-          this.typeTab.AccessibleName = "Type tab";
-          this.typeTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
-          this.typeTab.BackColor = System.Drawing.Color.White;
-          this.typeTab.Controls.Add(this.typePanel);
-          this.typeTab.Location = new System.Drawing.Point(4, 40);
-          this.typeTab.Name = "typeTab";
-          this.typeTab.Size = new System.Drawing.Size(556, 461);
-          this.typeTab.TabIndex = 3;
-          this.typeTab.Text = "Setup Type";
-          // 
-          // typePanel
-          // 
-          this.typePanel.AccessibleName = "Setup type page";
-          this.typePanel.BackColor = System.Drawing.SystemColors.Window;
-          this.typePanel.Caption = "Choosing a Setup Type";
-          this.typePanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.typePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.typePanel.Location = new System.Drawing.Point(0, 0);
-          this.typePanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
-          this.typePanel.Name = "typePanel";
-          this.typePanel.Size = new System.Drawing.Size(556, 461);
-          this.typePanel.SubCaption = "Please select the Setup Type that suits your use case.";
-          this.typePanel.TabIndex = 3;
-          // 
-          // featuresTab
-          // 
-          this.featuresTab.BackColor = System.Drawing.Color.White;
-          this.featuresTab.Controls.Add(this.featuresPanel);
-          this.featuresTab.Location = new System.Drawing.Point(4, 40);
-          this.featuresTab.Name = "featuresTab";
-          this.featuresTab.Size = new System.Drawing.Size(556, 461);
-          this.featuresTab.TabIndex = 4;
-          this.featuresTab.Text = "Feature Selection";
-          // 
-          // featuresPanel
-          // 
-          this.featuresPanel.BackColor = System.Drawing.SystemColors.Window;
-          this.featuresPanel.Caption = "Feature Selection";
-          this.featuresPanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.featuresPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.featuresPanel.Location = new System.Drawing.Point(0, 0);
-          this.featuresPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
-          this.featuresPanel.Name = "featuresPanel";
-          this.featuresPanel.Size = new System.Drawing.Size(556, 461);
-          this.featuresPanel.SubCaption = "Please select the products and features you would like to install on this machine" +
-              ".";
-          this.featuresPanel.TabIndex = 4;
-          // 
-          // requirementsTab
-          // 
-          this.requirementsTab.BackColor = System.Drawing.Color.White;
-          this.requirementsTab.Controls.Add(this.checkRequirementsPanel);
-          this.requirementsTab.Location = new System.Drawing.Point(4, 40);
-          this.requirementsTab.Name = "requirementsTab";
-          this.requirementsTab.Size = new System.Drawing.Size(556, 461);
-          this.requirementsTab.TabIndex = 5;
-          this.requirementsTab.Text = "Check Requirements";
-          // 
-          // checkRequirementsPanel
-          // 
-          this.checkRequirementsPanel.BackColor = System.Drawing.SystemColors.Window;
-          this.checkRequirementsPanel.Caption = "Check Requirements";
-          this.checkRequirementsPanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.checkRequirementsPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.checkRequirementsPanel.Location = new System.Drawing.Point(0, 0);
-          this.checkRequirementsPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
-          this.checkRequirementsPanel.Name = "checkRequirementsPanel";
-          this.checkRequirementsPanel.Size = new System.Drawing.Size(556, 461);
-          this.checkRequirementsPanel.SubCaption = "Please set the type of action text we need for  this page.";
-          this.checkRequirementsPanel.TabIndex = 5;
-          // 
-          // installProgressTab
-          // 
-          this.installProgressTab.BackColor = System.Drawing.Color.White;
-          this.installProgressTab.Controls.Add(this.installProgressPanel);
-          this.installProgressTab.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-          this.installProgressTab.Location = new System.Drawing.Point(4, 40);
-          this.installProgressTab.Name = "installProgressTab";
-          this.installProgressTab.Size = new System.Drawing.Size(556, 461);
-          this.installProgressTab.TabIndex = 6;
-          this.installProgressTab.Text = "Installation";
-          // 
-          // installProgressPanel
-          // 
-          this.installProgressPanel.BackColor = System.Drawing.SystemColors.Window;
-          this.installProgressPanel.Caption = "Installation Progress";
-          this.installProgressPanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.installProgressPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.installProgressPanel.Location = new System.Drawing.Point(0, 0);
-          this.installProgressPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
-          this.installProgressPanel.Name = "installProgressPanel";
-          this.installProgressPanel.Size = new System.Drawing.Size(556, 461);
-          this.installProgressPanel.SubCaption = "The following products will be installed or updated.";
-          this.installProgressPanel.TabIndex = 6;
-          // 
-          // allConfigTab
-          // 
-          this.allConfigTab.BackColor = System.Drawing.Color.White;
-          this.allConfigTab.Controls.Add(this.allConfigPanel);
-          this.allConfigTab.Location = new System.Drawing.Point(4, 40);
-          this.allConfigTab.Name = "allConfigTab";
-          this.allConfigTab.Size = new System.Drawing.Size(556, 461);
-          this.allConfigTab.TabIndex = 7;
-          this.allConfigTab.Text = "Configuration";
-          this.allConfigTab.UseVisualStyleBackColor = true;
-          // 
-          // allConfigPanel
-          // 
-          this.allConfigPanel.BackColor = System.Drawing.SystemColors.Window;
-          this.allConfigPanel.Caption = "Configuration Overview";
-          this.allConfigPanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.allConfigPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.allConfigPanel.Location = new System.Drawing.Point(0, 0);
-          this.allConfigPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
-          this.allConfigPanel.Name = "allConfigPanel";
-          this.allConfigPanel.Size = new System.Drawing.Size(556, 461);
-          this.allConfigPanel.SubCaption = "The following products will now be configured.";
-          this.allConfigPanel.TabIndex = 4;
-          // 
-          // completeTab
-          // 
-          this.completeTab.BackColor = System.Drawing.Color.White;
-          this.completeTab.Controls.Add(this.completePanel);
-          this.completeTab.Location = new System.Drawing.Point(4, 40);
-          this.completeTab.Name = "completeTab";
-          this.completeTab.Size = new System.Drawing.Size(556, 461);
-          this.completeTab.TabIndex = 8;
-          this.completeTab.Text = "Complete";
-          // 
-          // completePanel
-          // 
-          this.completePanel.BackColor = System.Drawing.SystemColors.Window;
-          this.completePanel.Caption = "Installation Complete";
-          this.completePanel.Dock = System.Windows.Forms.DockStyle.Fill;
-          this.completePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.completePanel.Location = new System.Drawing.Point(0, 0);
-          this.completePanel.Name = "completePanel";
-          this.completePanel.Size = new System.Drawing.Size(556, 461);
-          this.completePanel.SubCaption = "The installation procedure has been completed.";
-          this.completePanel.TabIndex = 8;
-          // 
-          // installWizardSideBarControl1
-          // 
-          this.installWizardSideBarControl1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("installWizardSideBarControl1.BackgroundImage")));
-          this.installWizardSideBarControl1.Dock = System.Windows.Forms.DockStyle.Left;
-          this.installWizardSideBarControl1.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.installWizardSideBarControl1.HiliteBackground = global::WexInstaller.Properties.Resources.WizardSelection;
-          this.installWizardSideBarControl1.Location = new System.Drawing.Point(0, 0);
-          this.installWizardSideBarControl1.Name = "installWizardSideBarControl1";
-          this.installWizardSideBarControl1.Size = new System.Drawing.Size(220, 562);
-          this.installWizardSideBarControl1.TabIndex = 100;
-          this.installWizardSideBarControl1.TabStop = false;
-          this.installWizardSideBarControl1.TabTop = 134;
-          // 
-          // InstallWizardControl
-          // 
-          this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
-          this.BackColor = System.Drawing.Color.White;
-          this.Controls.Add(this.buttonLayoutPanel);
-          this.Controls.Add(this.wizardPages);
-          this.Controls.Add(this.installWizardSideBarControl1);
-          this.DoubleBuffered = true;
-          this.Font = new System.Drawing.Font("Tahoma", 8.25F);
-          this.Margin = new System.Windows.Forms.Padding(0);
-          this.Name = "InstallWizardControl";
-          this.Size = new System.Drawing.Size(784, 562);
-          this.Load += new System.EventHandler(this.InstallWizardControl_Load);
-          this.buttonLayoutPanel.ResumeLayout(false);
-          this.wizardPages.ResumeLayout(false);
-          this.licenseTab.ResumeLayout(false);
-          this.updateTab.ResumeLayout(false);
-          this.detailedUpdateTab.ResumeLayout(false);
-          this.typeTab.ResumeLayout(false);
-          this.featuresTab.ResumeLayout(false);
-          this.requirementsTab.ResumeLayout(false);
-          this.installProgressTab.ResumeLayout(false);
-          this.allConfigTab.ResumeLayout(false);
-          this.completeTab.ResumeLayout(false);
-          this.ResumeLayout(false);
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallWizardControl));
+      this.Back = new System.Windows.Forms.Button();
+      this.Cancel = new System.Windows.Forms.Button();
+      this.Next = new System.Windows.Forms.Button();
+      this.buttonLayoutPanel = new System.Windows.Forms.FlowLayoutPanel();
+      this.Help = new System.Windows.Forms.Button();
+      this.wizardPages = new WexInstaller.HiddenTabsControl();
+      this.licenseTab = new System.Windows.Forms.TabPage();
+      this.licensePanel = new WexInstaller.LicenseAgreement();
+      this.updateTab = new System.Windows.Forms.TabPage();
+      this.updatePanel = new WexInstaller.UpdateCheck();
+      this.detailedUpdateTab = new System.Windows.Forms.TabPage();
+      this.detailedUpdatePanel = new WexInstaller.UpgradeCheck();
+      this.typeTab = new System.Windows.Forms.TabPage();
+      this.typePanel = new WexInstaller.InstallType();
+      this.featuresTab = new System.Windows.Forms.TabPage();
+      this.featuresPanel = new WexInstaller.FeatureSelection();
+      this.requirementsTab = new System.Windows.Forms.TabPage();
+      this.checkRequirementsPanel = new WexInstaller.CheckRequirements();
+      this.installProgressTab = new System.Windows.Forms.TabPage();
+      this.installProgressPanel = new WexInstaller.InstallProgress();
+      this.allConfigTab = new System.Windows.Forms.TabPage();
+      this.allConfigPanel = new WexInstaller.AllConfigOverview();
+      this.completeTab = new System.Windows.Forms.TabPage();
+      this.completePanel = new WexInstaller.InstallationComplete();
+      this.commercialUpdateTab = new System.Windows.Forms.TabPage();
+      this.commercialUpdateCheck = new WexInstaller.CommercialUpdateCheck();
+      this.installWizardSideBarControl1 = new WexInstaller.InstallWizardSideBarControl();
+      this.buttonLayoutPanel.SuspendLayout();
+      this.wizardPages.SuspendLayout();
+      this.licenseTab.SuspendLayout();
+      this.updateTab.SuspendLayout();
+      this.detailedUpdateTab.SuspendLayout();
+      this.typeTab.SuspendLayout();
+      this.featuresTab.SuspendLayout();
+      this.requirementsTab.SuspendLayout();
+      this.installProgressTab.SuspendLayout();
+      this.allConfigTab.SuspendLayout();
+      this.completeTab.SuspendLayout();
+      this.commercialUpdateTab.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // Back
+      // 
+      this.Back.AccessibleDescription = "Return to previous page";
+      this.Back.AccessibleName = "Back";
+      this.Back.BackColor = System.Drawing.SystemColors.Control;
+      this.Back.Enabled = false;
+      this.Back.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.Back.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+      this.Back.Location = new System.Drawing.Point(187, 3);
+      this.Back.Name = "Back";
+      this.Back.Size = new System.Drawing.Size(86, 26);
+      this.Back.TabIndex = 3;
+      this.Back.Text = global::WexInstaller.Properties.Resources.BackButtonDefaultText;
+      this.Back.UseVisualStyleBackColor = false;
+      this.Back.Click += new System.EventHandler(this.Back_Click);
+      // 
+      // Cancel
+      // 
+      this.Cancel.AccessibleDescription = "Cancel the installer";
+      this.Cancel.AccessibleName = "Cancel";
+      this.Cancel.BackColor = System.Drawing.SystemColors.Control;
+      this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+      this.Cancel.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+      this.Cancel.Location = new System.Drawing.Point(371, 3);
+      this.Cancel.Name = "Cancel";
+      this.Cancel.Size = new System.Drawing.Size(86, 26);
+      this.Cancel.TabIndex = 1;
+      this.Cancel.Text = global::WexInstaller.Properties.Resources.CancelButtonDefaultText;
+      this.Cancel.UseVisualStyleBackColor = false;
+      this.Cancel.Click += new System.EventHandler(this.Cancel_Click);
+      // 
+      // Next
+      // 
+      this.Next.AccessibleDescription = "Advance to next page";
+      this.Next.AccessibleName = "Next";
+      this.Next.BackColor = System.Drawing.SystemColors.Control;
+      this.Next.Enabled = false;
+      this.Next.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+      this.Next.Location = new System.Drawing.Point(279, 3);
+      this.Next.Name = "Next";
+      this.Next.Size = new System.Drawing.Size(86, 26);
+      this.Next.TabIndex = 0;
+      this.Next.Text = global::WexInstaller.Properties.Resources.NextButtonDefaultText;
+      this.Next.UseVisualStyleBackColor = false;
+      this.Next.Click += new System.EventHandler(this.Next_Click);
+      // 
+      // buttonLayoutPanel
+      // 
+      this.buttonLayoutPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.buttonLayoutPanel.Controls.Add(this.Help);
+      this.buttonLayoutPanel.Controls.Add(this.Cancel);
+      this.buttonLayoutPanel.Controls.Add(this.Next);
+      this.buttonLayoutPanel.Controls.Add(this.Back);
+      this.buttonLayoutPanel.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
+      this.buttonLayoutPanel.Location = new System.Drawing.Point(220, 515);
+      this.buttonLayoutPanel.Name = "buttonLayoutPanel";
+      this.buttonLayoutPanel.Padding = new System.Windows.Forms.Padding(0, 0, 5, 0);
+      this.buttonLayoutPanel.Size = new System.Drawing.Size(557, 37);
+      this.buttonLayoutPanel.TabIndex = 101;
+      this.buttonLayoutPanel.WrapContents = false;
+      // 
+      // Help
+      // 
+      this.Help.AccessibleDescription = "Show help";
+      this.Help.AccessibleName = "Help";
+      this.Help.BackColor = System.Drawing.SystemColors.Control;
+      this.Help.ImeMode = System.Windows.Forms.ImeMode.NoControl;
+      this.Help.Location = new System.Drawing.Point(463, 3);
+      this.Help.Name = "Help";
+      this.Help.Size = new System.Drawing.Size(86, 26);
+      this.Help.TabIndex = 2;
+      this.Help.Text = "&Help";
+      this.Help.UseVisualStyleBackColor = false;
+      this.Help.Visible = false;
+      this.Help.Click += new System.EventHandler(this.Help_Click);
+      // 
+      // wizardPages
+      // 
+      this.wizardPages.AccessibleName = "Installation Assistant";
+      this.wizardPages.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
+      this.wizardPages.Controls.Add(this.licenseTab);
+      this.wizardPages.Controls.Add(this.updateTab);
+      this.wizardPages.Controls.Add(this.detailedUpdateTab);
+      this.wizardPages.Controls.Add(this.typeTab);
+      this.wizardPages.Controls.Add(this.featuresTab);
+      this.wizardPages.Controls.Add(this.requirementsTab);
+      this.wizardPages.Controls.Add(this.installProgressTab);
+      this.wizardPages.Controls.Add(this.allConfigTab);
+      this.wizardPages.Controls.Add(this.completeTab);
+      this.wizardPages.Controls.Add(this.commercialUpdateTab);
+      this.wizardPages.Dock = System.Windows.Forms.DockStyle.Top;
+      this.wizardPages.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.wizardPages.Location = new System.Drawing.Point(220, 0);
+      this.wizardPages.Multiline = true;
+      this.wizardPages.Name = "wizardPages";
+      this.wizardPages.SelectedIndex = 0;
+      this.wizardPages.Size = new System.Drawing.Size(564, 505);
+      this.wizardPages.TabIndex = 4;
+      this.wizardPages.TabStop = false;
+      this.wizardPages.SelectedIndexChanged += new System.EventHandler(this.wizardPages_SelectedIndexChanged);
+      this.wizardPages.Deselected += new System.Windows.Forms.TabControlEventHandler(this.wizardPages_Deselected);
+      // 
+      // licenseTab
+      // 
+      this.licenseTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
+      this.licenseTab.BackColor = System.Drawing.Color.White;
+      this.licenseTab.Controls.Add(this.licensePanel);
+      this.licenseTab.Location = new System.Drawing.Point(4, 40);
+      this.licenseTab.Name = "licenseTab";
+      this.licenseTab.Padding = new System.Windows.Forms.Padding(3);
+      this.licenseTab.Size = new System.Drawing.Size(556, 461);
+      this.licenseTab.TabIndex = 0;
+      this.licenseTab.Text = "License Information";
+      // 
+      // licensePanel
+      // 
+      this.licensePanel.AccessibleName = "License";
+      this.licensePanel.BackColor = System.Drawing.SystemColors.Window;
+      this.licensePanel.Caption = "License Agreement";
+      this.licensePanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.licensePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.licensePanel.Location = new System.Drawing.Point(3, 3);
+      this.licensePanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+      this.licensePanel.Name = "licensePanel";
+      this.licensePanel.Size = new System.Drawing.Size(550, 455);
+      this.licensePanel.SubCaption = "To install MySQL, you must accept the Oracle Software License Terms.";
+      this.licensePanel.TabIndex = 0;
+      // 
+      // updateTab
+      // 
+      this.updateTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
+      this.updateTab.BackColor = System.Drawing.Color.White;
+      this.updateTab.Controls.Add(this.updatePanel);
+      this.updateTab.Location = new System.Drawing.Point(4, 40);
+      this.updateTab.Name = "updateTab";
+      this.updateTab.Size = new System.Drawing.Size(556, 461);
+      this.updateTab.TabIndex = 1;
+      this.updateTab.Text = "Find latest products";
+      // 
+      // updatePanel
+      // 
+      this.updatePanel.BackColor = System.Drawing.SystemColors.Window;
+      this.updatePanel.Caption = "Find latest products";
+      this.updatePanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.updatePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.updatePanel.Location = new System.Drawing.Point(0, 0);
+      this.updatePanel.Margin = new System.Windows.Forms.Padding(0);
+      this.updatePanel.Name = "updatePanel";
+      this.updatePanel.Size = new System.Drawing.Size(556, 461);
+      this.updatePanel.SubCaption = "Before the installation is performed, the Installer will check if there are newer" +
+    " versions of the products you are about to install / already installed are avail" +
+    "able.";
+      this.updatePanel.TabIndex = 10;
+      // 
+      // detailedUpdateTab
+      // 
+      this.detailedUpdateTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
+      this.detailedUpdateTab.BackColor = System.Drawing.Color.White;
+      this.detailedUpdateTab.Controls.Add(this.detailedUpdatePanel);
+      this.detailedUpdateTab.Location = new System.Drawing.Point(4, 40);
+      this.detailedUpdateTab.Name = "detailedUpdateTab";
+      this.detailedUpdateTab.Size = new System.Drawing.Size(556, 461);
+      this.detailedUpdateTab.TabIndex = 2;
+      this.detailedUpdateTab.Text = "Apply updates";
+      // 
+      // detailedUpdatePanel
+      // 
+      this.detailedUpdatePanel.BackColor = System.Drawing.SystemColors.Window;
+      this.detailedUpdatePanel.Caption = "Apply Updates";
+      this.detailedUpdatePanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.detailedUpdatePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.detailedUpdatePanel.Location = new System.Drawing.Point(0, 0);
+      this.detailedUpdatePanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+      this.detailedUpdatePanel.Name = "detailedUpdatePanel";
+      this.detailedUpdatePanel.Size = new System.Drawing.Size(556, 461);
+      this.detailedUpdatePanel.SubCaption = "Please set the type of action text we need for  this page.";
+      this.detailedUpdatePanel.TabIndex = 0;
+      // 
+      // typeTab
+      // 
+      this.typeTab.AccessibleName = "Type tab";
+      this.typeTab.AccessibleRole = System.Windows.Forms.AccessibleRole.None;
+      this.typeTab.BackColor = System.Drawing.Color.White;
+      this.typeTab.Controls.Add(this.typePanel);
+      this.typeTab.Location = new System.Drawing.Point(4, 40);
+      this.typeTab.Name = "typeTab";
+      this.typeTab.Size = new System.Drawing.Size(556, 461);
+      this.typeTab.TabIndex = 3;
+      this.typeTab.Text = "Setup Type";
+      // 
+      // typePanel
+      // 
+      this.typePanel.AccessibleName = "Setup type page";
+      this.typePanel.BackColor = System.Drawing.SystemColors.Window;
+      this.typePanel.Caption = "Choosing a Setup Type";
+      this.typePanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.typePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.typePanel.Location = new System.Drawing.Point(0, 0);
+      this.typePanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+      this.typePanel.Name = "typePanel";
+      this.typePanel.Size = new System.Drawing.Size(556, 461);
+      this.typePanel.SubCaption = "Please select the Setup Type that suits your use case.";
+      this.typePanel.TabIndex = 3;
+      // 
+      // featuresTab
+      // 
+      this.featuresTab.BackColor = System.Drawing.Color.White;
+      this.featuresTab.Controls.Add(this.featuresPanel);
+      this.featuresTab.Location = new System.Drawing.Point(4, 40);
+      this.featuresTab.Name = "featuresTab";
+      this.featuresTab.Size = new System.Drawing.Size(556, 461);
+      this.featuresTab.TabIndex = 4;
+      this.featuresTab.Text = "Feature Selection";
+      // 
+      // featuresPanel
+      // 
+      this.featuresPanel.BackColor = System.Drawing.SystemColors.Window;
+      this.featuresPanel.Caption = "Feature Selection";
+      this.featuresPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.featuresPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.featuresPanel.Location = new System.Drawing.Point(0, 0);
+      this.featuresPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+      this.featuresPanel.Name = "featuresPanel";
+      this.featuresPanel.Size = new System.Drawing.Size(556, 461);
+      this.featuresPanel.SubCaption = "Please select the products and features you would like to install on this machine" +
+    ".";
+      this.featuresPanel.TabIndex = 4;
+      // 
+      // requirementsTab
+      // 
+      this.requirementsTab.BackColor = System.Drawing.Color.White;
+      this.requirementsTab.Controls.Add(this.checkRequirementsPanel);
+      this.requirementsTab.Location = new System.Drawing.Point(4, 40);
+      this.requirementsTab.Name = "requirementsTab";
+      this.requirementsTab.Size = new System.Drawing.Size(556, 461);
+      this.requirementsTab.TabIndex = 5;
+      this.requirementsTab.Text = "Check Requirements";
+      // 
+      // checkRequirementsPanel
+      // 
+      this.checkRequirementsPanel.BackColor = System.Drawing.SystemColors.Window;
+      this.checkRequirementsPanel.Caption = "Check Requirements";
+      this.checkRequirementsPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.checkRequirementsPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.checkRequirementsPanel.Location = new System.Drawing.Point(0, 0);
+      this.checkRequirementsPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+      this.checkRequirementsPanel.Name = "checkRequirementsPanel";
+      this.checkRequirementsPanel.Size = new System.Drawing.Size(556, 461);
+      this.checkRequirementsPanel.SubCaption = "Please set the type of action text we need for  this page.";
+      this.checkRequirementsPanel.TabIndex = 5;
+      // 
+      // installProgressTab
+      // 
+      this.installProgressTab.BackColor = System.Drawing.Color.White;
+      this.installProgressTab.Controls.Add(this.installProgressPanel);
+      this.installProgressTab.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.installProgressTab.Location = new System.Drawing.Point(4, 40);
+      this.installProgressTab.Name = "installProgressTab";
+      this.installProgressTab.Size = new System.Drawing.Size(556, 461);
+      this.installProgressTab.TabIndex = 6;
+      this.installProgressTab.Text = "Installation";
+      // 
+      // installProgressPanel
+      // 
+      this.installProgressPanel.BackColor = System.Drawing.SystemColors.Window;
+      this.installProgressPanel.Caption = "Installation Progress";
+      this.installProgressPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.installProgressPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.installProgressPanel.Location = new System.Drawing.Point(0, 0);
+      this.installProgressPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+      this.installProgressPanel.Name = "installProgressPanel";
+      this.installProgressPanel.Size = new System.Drawing.Size(556, 461);
+      this.installProgressPanel.SubCaption = "The following products will be installed or updated.";
+      this.installProgressPanel.TabIndex = 6;
+      // 
+      // allConfigTab
+      // 
+      this.allConfigTab.BackColor = System.Drawing.Color.White;
+      this.allConfigTab.Controls.Add(this.allConfigPanel);
+      this.allConfigTab.Location = new System.Drawing.Point(4, 40);
+      this.allConfigTab.Name = "allConfigTab";
+      this.allConfigTab.Size = new System.Drawing.Size(556, 461);
+      this.allConfigTab.TabIndex = 7;
+      this.allConfigTab.Text = "Configuration";
+      this.allConfigTab.UseVisualStyleBackColor = true;
+      // 
+      // allConfigPanel
+      // 
+      this.allConfigPanel.BackColor = System.Drawing.SystemColors.Window;
+      this.allConfigPanel.Caption = "Configuration Overview";
+      this.allConfigPanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.allConfigPanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.allConfigPanel.Location = new System.Drawing.Point(0, 0);
+      this.allConfigPanel.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
+      this.allConfigPanel.Name = "allConfigPanel";
+      this.allConfigPanel.Size = new System.Drawing.Size(556, 461);
+      this.allConfigPanel.SubCaption = "The following products will now be configured.";
+      this.allConfigPanel.TabIndex = 4;
+      // 
+      // completeTab
+      // 
+      this.completeTab.BackColor = System.Drawing.Color.White;
+      this.completeTab.Controls.Add(this.completePanel);
+      this.completeTab.Location = new System.Drawing.Point(4, 40);
+      this.completeTab.Name = "completeTab";
+      this.completeTab.Size = new System.Drawing.Size(556, 461);
+      this.completeTab.TabIndex = 8;
+      this.completeTab.Text = "Complete";
+      // 
+      // completePanel
+      // 
+      this.completePanel.BackColor = System.Drawing.SystemColors.Window;
+      this.completePanel.Caption = "Installation Complete";
+      this.completePanel.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.completePanel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.completePanel.Location = new System.Drawing.Point(0, 0);
+      this.completePanel.Name = "completePanel";
+      this.completePanel.Size = new System.Drawing.Size(556, 461);
+      this.completePanel.SubCaption = "The installation procedure has been completed.";
+      this.completePanel.TabIndex = 8;
+      // 
+      // commercialUpdateTab
+      // 
+      this.commercialUpdateTab.Controls.Add(this.commercialUpdateCheck);
+      this.commercialUpdateTab.Location = new System.Drawing.Point(4, 40);
+      this.commercialUpdateTab.Name = "commercialUpdateTab";
+      this.commercialUpdateTab.Padding = new System.Windows.Forms.Padding(3);
+      this.commercialUpdateTab.Size = new System.Drawing.Size(556, 461);
+      this.commercialUpdateTab.TabIndex = 9;
+      this.commercialUpdateTab.Text = "Check for Updates";
+      this.commercialUpdateTab.UseVisualStyleBackColor = true;
+      // 
+      // commercialUpdateCheck
+      // 
+      this.commercialUpdateCheck.BackColor = System.Drawing.SystemColors.Window;
+      this.commercialUpdateCheck.Caption = "Find latest products";
+      this.commercialUpdateCheck.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.commercialUpdateCheck.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.commercialUpdateCheck.Location = new System.Drawing.Point(3, 3);
+      this.commercialUpdateCheck.Name = "commercialUpdateCheck";
+      this.commercialUpdateCheck.Size = new System.Drawing.Size(550, 455);
+      this.commercialUpdateCheck.SubCaption = "The installer will now check for a newer version. This might take a few seconds.";
+      this.commercialUpdateCheck.TabIndex = 0;
+      // 
+      // installWizardSideBarControl1
+      // 
+      this.installWizardSideBarControl1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("installWizardSideBarControl1.BackgroundImage")));
+      this.installWizardSideBarControl1.Dock = System.Windows.Forms.DockStyle.Left;
+      this.installWizardSideBarControl1.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.installWizardSideBarControl1.HiliteBackground = global::WexInstaller.Properties.Resources.WizardSelection;
+      this.installWizardSideBarControl1.Location = new System.Drawing.Point(0, 0);
+      this.installWizardSideBarControl1.Name = "installWizardSideBarControl1";
+      this.installWizardSideBarControl1.Size = new System.Drawing.Size(220, 562);
+      this.installWizardSideBarControl1.TabIndex = 100;
+      this.installWizardSideBarControl1.TabStop = false;
+      this.installWizardSideBarControl1.TabTop = 134;
+      // 
+      // InstallWizardControl
+      // 
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+      this.BackColor = System.Drawing.Color.White;
+      this.Controls.Add(this.buttonLayoutPanel);
+      this.Controls.Add(this.wizardPages);
+      this.Controls.Add(this.installWizardSideBarControl1);
+      this.DoubleBuffered = true;
+      this.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.Margin = new System.Windows.Forms.Padding(0);
+      this.Name = "InstallWizardControl";
+      this.Size = new System.Drawing.Size(784, 562);
+      this.Load += new System.EventHandler(this.InstallWizardControl_Load);
+      this.buttonLayoutPanel.ResumeLayout(false);
+      this.wizardPages.ResumeLayout(false);
+      this.licenseTab.ResumeLayout(false);
+      this.updateTab.ResumeLayout(false);
+      this.detailedUpdateTab.ResumeLayout(false);
+      this.typeTab.ResumeLayout(false);
+      this.featuresTab.ResumeLayout(false);
+      this.requirementsTab.ResumeLayout(false);
+      this.installProgressTab.ResumeLayout(false);
+      this.allConfigTab.ResumeLayout(false);
+      this.completeTab.ResumeLayout(false);
+      this.commercialUpdateTab.ResumeLayout(false);
+      this.ResumeLayout(false);
 
         }
 
@@ -457,5 +485,7 @@
         private AllConfigOverview allConfigPanel;
         private System.Windows.Forms.FlowLayoutPanel buttonLayoutPanel;
         private System.Windows.Forms.Button Help;
+        private System.Windows.Forms.TabPage commercialUpdateTab;
+        private CommercialUpdateCheck commercialUpdateCheck;
     }
 }

=== modified file 'WexInstaller/Controls/InstallWizardControl.cs'
--- a/WexInstaller/Controls/InstallWizardControl.cs	2011-05-31 13:10:52 +0000
+++ b/WexInstaller/Controls/InstallWizardControl.cs	2011-06-09 12:46:14 +0000
@@ -34,8 +34,16 @@
 
     private void AdjustTabs()
     {
-      // By default, don't display apply updates.
+      // Ensure the tabcontrol's handle is created. Otherwise it will ignore certain
+      // changes (selected index, insert page).
+      IntPtr h = wizardPages.Handle;
+
+      // Avoid page activations while we are preparing the startup.
+      wizardPages.SelectedIndex = -1;
+
+      // By default, don't display extended update pages.
       ShowTab(detailedUpdateTab, false, 3);
+      ShowTab(commercialUpdateTab, false, 8);
 
       // disable setup type tab if we are updating instead of installing
       if (!ProductManager.IsNewSetup)
@@ -51,10 +59,10 @@
 
       // Skip License agreement if it was shown and agreed on already.
       if (!InstallerConfiguration.DisplayLicenseAgreement)
-      {
         ShowTab(licenseTab, false, 0);
-        wizardPages.SelectedIndex = 0;
-      }
+
+      if (InstallerConfiguration.Commercial)
+        ShowTab(updateTab, false, 1);
     }
 
     public void AddConfigPages(Product p)
@@ -142,7 +150,7 @@
 
     public void ShowFeatureSelection(bool really)
     {
-        ShowTab(featuresTab, really, (wizardPages.SelectedIndex + 1));
+        ShowTab(featuresTab, really, wizardPages.SelectedIndex + 1);
     }
 
     public void ShowUpdateCheck(bool really)
@@ -150,11 +158,17 @@
       ShowTab(updateTab, really, 0);
     }
 
+    public void ShowRequirements(bool really)
+    {
+      ShowTab(requirementsTab, really, wizardPages.SelectedIndex + 1);
+    }
+
     public void ShowDetailedUpdate(bool really)
     {
-      ShowTab(detailedUpdateTab, really, 0);
-      wizardPages.SelectedIndex = 0;
-      UpdateWizardPage(0);
+      if (InstallerConfiguration.Commercial)
+        ShowTab(commercialUpdateTab, really, 0);
+      else
+        ShowTab(detailedUpdateTab, really, 0);
     }
 
     public void ShowType(bool really)
@@ -162,10 +176,28 @@
       ShowTab(typeTab, really, 2);
     }
 
+    /// <summary>
+    /// For the commercial update check we only need one page (the udpate page itself).
+    /// Hence remove any other.
+    /// </summary>
+    public void HideInstallationPages()
+    {
+      wizardPages.SelectedIndex = -1;
+      ShowTab(installProgressTab, false, 0);
+      ShowTab(allConfigTab, false, 0);
+      ShowTab(completeTab, false, 0);
+    }
+
     public void ShowWizard()
     {
-      wizardPages_SelectedIndexChanged(this, null);
-      this.BringToFront();
+      WorkDone = false;
+      if (wizardPages.SelectedIndex == 0)
+        wizardPages_SelectedIndexChanged(this, null);
+      else
+        wizardPages.SelectedIndex = 0;
+      BringToFront();
+
+      UpdateWizardPage(0);
     }
 
     /// <summary>
@@ -210,6 +242,9 @@
     {
       get
       {
+        if (wizardPages.SelectedTab == null)
+          return null;
+
         return wizardPages.SelectedTab.Controls[0] as InstallerPanel;
       }
     }
@@ -243,7 +278,8 @@
 
     private void wizardPages_Deselected(object sender, TabControlEventArgs e)
     {
-      (e.TabPage.Controls[0] as InstallerPanel).Deactivate();
+      if (e.TabPage != null)
+        (e.TabPage.Controls[0] as InstallerPanel).Deactivate();
     }
 
     private void wizardPages_SelectedIndexChanged(object sender, EventArgs e)

=== added file 'WexInstaller/InstallWizard/CommercialUpdateCheck.Designer.cs'
--- a/WexInstaller/InstallWizard/CommercialUpdateCheck.Designer.cs	1970-01-01 00:00:00 +0000
+++ b/WexInstaller/InstallWizard/CommercialUpdateCheck.Designer.cs	2011-06-09 12:46:14 +0000
@@ -0,0 +1,187 @@
+using WexInstaller.Properties;
+namespace WexInstaller
+{
+  partial class CommercialUpdateCheck
+    {
+        /// <summary> 
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary> 
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Component Designer generated code
+
+        /// <summary> 
+        /// Required method for Designer support - do not modify 
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+      this.fetchLabel = new System.Windows.Forms.Label();
+      this.connectionLabel = new System.Windows.Forms.Label();
+      this.connectionIcon = new System.Windows.Forms.PictureBox();
+      this.fetchIcon = new System.Windows.Forms.PictureBox();
+      this.checkIcon = new System.Windows.Forms.PictureBox();
+      this.resultLabel = new System.Windows.Forms.Label();
+      this.label1 = new System.Windows.Forms.Label();
+      this.resultIcon = new System.Windows.Forms.PictureBox();
+      ((System.ComponentModel.ISupportInitialize)(this.connectionIcon)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.fetchIcon)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.checkIcon)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.resultIcon)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // subCaptionLabel
+      // 
+      this.subCaptionLabel.Size = new System.Drawing.Size(522, 35);
+      this.subCaptionLabel.Text = "The installer will now check for a newer version. This might take a few seconds.";
+      // 
+      // captionLabel
+      // 
+      this.captionLabel.Size = new System.Drawing.Size(157, 21);
+      this.captionLabel.TabIndex = 1;
+      this.captionLabel.Text = "Find latest products";
+      // 
+      // fetchLabel
+      // 
+      this.fetchLabel.AutoSize = true;
+      this.fetchLabel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.fetchLabel.Location = new System.Drawing.Point(109, 223);
+      this.fetchLabel.Name = "fetchLabel";
+      this.fetchLabel.Size = new System.Drawing.Size(168, 13);
+      this.fetchLabel.TabIndex = 4;
+      this.fetchLabel.Text = "Fetch product update information";
+      // 
+      // connectionLabel
+      // 
+      this.connectionLabel.AutoSize = true;
+      this.connectionLabel.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.connectionLabel.Location = new System.Drawing.Point(109, 191);
+      this.connectionLabel.Name = "connectionLabel";
+      this.connectionLabel.Size = new System.Drawing.Size(122, 13);
+      this.connectionLabel.TabIndex = 3;
+      this.connectionLabel.Text = "Connect to the Internet";
+      // 
+      // connectionIcon
+      // 
+      this.connectionIcon.Image = global::WexInstaller.Properties.Resources.ActionOpen;
+      this.connectionIcon.Location = new System.Drawing.Point(90, 190);
+      this.connectionIcon.Name = "connectionIcon";
+      this.connectionIcon.Size = new System.Drawing.Size(16, 16);
+      this.connectionIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
+      this.connectionIcon.TabIndex = 12;
+      this.connectionIcon.TabStop = false;
+      // 
+      // fetchIcon
+      // 
+      this.fetchIcon.Image = global::WexInstaller.Properties.Resources.ActionOpen;
+      this.fetchIcon.Location = new System.Drawing.Point(90, 222);
+      this.fetchIcon.Name = "fetchIcon";
+      this.fetchIcon.Size = new System.Drawing.Size(16, 16);
+      this.fetchIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
+      this.fetchIcon.TabIndex = 14;
+      this.fetchIcon.TabStop = false;
+      // 
+      // checkIcon
+      // 
+      this.checkIcon.Image = global::WexInstaller.Properties.Resources.ActionOpen;
+      this.checkIcon.Location = new System.Drawing.Point(90, 254);
+      this.checkIcon.Name = "checkIcon";
+      this.checkIcon.Size = new System.Drawing.Size(16, 16);
+      this.checkIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
+      this.checkIcon.TabIndex = 15;
+      this.checkIcon.TabStop = false;
+      // 
+      // resultLabel
+      // 
+      this.resultLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.resultLabel.Font = new System.Drawing.Font("Tahoma", 9F);
+      this.resultLabel.ForeColor = System.Drawing.Color.Green;
+      this.resultLabel.Location = new System.Drawing.Point(109, 287);
+      this.resultLabel.Name = "resultLabel";
+      this.resultLabel.Size = new System.Drawing.Size(437, 204);
+      this.resultLabel.TabIndex = 5;
+      this.resultLabel.Text = "The operation is complete.  Please click \'Next >\' to continue.";
+      this.resultLabel.Visible = false;
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Font = new System.Drawing.Font("Tahoma", 8.25F);
+      this.label1.Location = new System.Drawing.Point(109, 255);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(95, 13);
+      this.label1.TabIndex = 16;
+      this.label1.Text = "Check for updates";
+      // 
+      // resultIcon
+      // 
+      this.resultIcon.Image = global::WexInstaller.Properties.Resources.ActionWarning;
+      this.resultIcon.Location = new System.Drawing.Point(90, 286);
+      this.resultIcon.Name = "resultIcon";
+      this.resultIcon.Size = new System.Drawing.Size(16, 16);
+      this.resultIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
+      this.resultIcon.TabIndex = 17;
+      this.resultIcon.TabStop = false;
+      this.resultIcon.Visible = false;
+      // 
+      // CommercialUpdateCheck
+      // 
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+      this.Caption = "Find latest products";
+      this.Controls.Add(this.resultIcon);
+      this.Controls.Add(this.label1);
+      this.Controls.Add(this.resultLabel);
+      this.Controls.Add(this.connectionLabel);
+      this.Controls.Add(this.fetchLabel);
+      this.Controls.Add(this.fetchIcon);
+      this.Controls.Add(this.connectionIcon);
+      this.Controls.Add(this.checkIcon);
+      this.DoubleBuffered = true;
+      this.Name = "CommercialUpdateCheck";
+      this.SubCaption = "The installer will now check for a newer version. This might take a few seconds.";
+      this.Controls.SetChildIndex(this.subCaptionLabel, 0);
+      this.Controls.SetChildIndex(this.checkIcon, 0);
+      this.Controls.SetChildIndex(this.connectionIcon, 0);
+      this.Controls.SetChildIndex(this.fetchIcon, 0);
+      this.Controls.SetChildIndex(this.captionLabel, 0);
+      this.Controls.SetChildIndex(this.fetchLabel, 0);
+      this.Controls.SetChildIndex(this.connectionLabel, 0);
+      this.Controls.SetChildIndex(this.resultLabel, 0);
+      this.Controls.SetChildIndex(this.label1, 0);
+      this.Controls.SetChildIndex(this.resultIcon, 0);
+      ((System.ComponentModel.ISupportInitialize)(this.connectionIcon)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.fetchIcon)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.checkIcon)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.resultIcon)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label fetchLabel;
+        private System.Windows.Forms.Label connectionLabel;
+        private System.Windows.Forms.PictureBox connectionIcon;
+        private System.Windows.Forms.PictureBox fetchIcon;
+        private System.Windows.Forms.PictureBox checkIcon;
+        private System.Windows.Forms.Label resultLabel;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.PictureBox resultIcon;
+    }
+}

=== added file 'WexInstaller/InstallWizard/CommercialUpdateCheck.cs'
--- a/WexInstaller/InstallWizard/CommercialUpdateCheck.cs	1970-01-01 00:00:00 +0000
+++ b/WexInstaller/InstallWizard/CommercialUpdateCheck.cs	2011-06-09 12:46:14 +0000
@@ -0,0 +1,168 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Text;
+using System.Windows.Forms;
+using WexInstaller.Properties;
+using WexInstaller.Core;
+using System.Net;
+
+namespace WexInstaller
+{
+  public partial class CommercialUpdateCheck : InstallerPanel
+  {
+    private bool executed;
+
+    public CommercialUpdateCheck()
+    {
+      InitializeComponent();
+      Caption = "Find latest products";
+      nextOk = true;
+      backOk = true;
+      executed = false;
+    }
+
+    public override bool Next()
+    {
+      if (executed)
+        Utilities.OpenBrowser("http://support.oracle.com");
+      return base.Next();
+    }
+
+    public override bool Back()
+    {
+      if (!executed)
+        ProductManager.CancelDownload();
+
+      return base.Back();
+    }
+
+    public override bool Cancel()
+    {
+      Logger.LogInformation("Product Manifest Update Canceled.");
+
+      ProductManager.CancelDownload();
+      nextOk = false;
+      SignalChange();
+
+      return base.Cancel();
+    }
+
+    public override void Activate()
+    {
+      base.Activate();
+
+      ProductManager.DownloadManifestCompleted += new DownloadManifestCompleteHandler(ProductManager_DownloadManifestCompleted);
+      BeginInvoke((Core.Action)(() => StartUpdateCheck()));
+      Update();
+    }
+
+    public override void Deactivate()
+    {
+      base.Deactivate();
+      ProductManager.DownloadManifestCompleted -= ProductManager_DownloadManifestCompleted;
+    }
+
+    private void StartUpdateCheck()
+    {
+      NextButton.Text = Properties.Resources.NextButtonDefaultText;
+      connectionIcon.Image = Resources.ActionCurrent;
+      fetchIcon.Image = Resources.ActionOpen;
+      checkIcon.Image = Resources.ActionOpen;
+
+      nextOk = false;
+      SignalChange();
+
+      resultIcon.Visible = false;
+      resultLabel.Visible = false;
+
+      Update();
+
+      if (!ProductManager.DownloadManifest(true))
+        ShowResult(true, true, Resources.CommercialUpdateCheckConnectionFailedText);
+      else
+      {
+        connectionIcon.Image = Resources.ActionDone;
+        fetchIcon.Image = Resources.ActionCurrent;
+      }
+    }
+
+    private void ProductManager_DownloadManifestCompleted(object sender, AsyncCompletedEventArgs e)
+    {
+      executed = true;
+
+      if (!e.Cancelled && e.Error == null && (e.UserState is ProductManifest))
+      {
+        fetchIcon.Image = Resources.ActionDone;
+        checkIcon.Image = Resources.ActionCurrent;
+
+        CheckForUpdates(e.UserState as ProductManifest);
+      }
+      else
+      {
+        fetchIcon.Image = Resources.ActionError;
+        if (e.Error == null)
+          ShowResult(true, true, Resources.CommercialUpdateCheckFetchFailedText);
+        else
+          ShowResult(true, true, string.Format(Resources.CommercialUpdateCheckFetchFailedWithErrorText, e.Error));
+      }
+    }
+    
+    /// <summary>
+    /// Initializes all products in the (temporary) manifest and checks their update status. If
+    /// only one product has an update we send the user to the MOS web page.
+    /// </summary>
+    private void CheckForUpdates(ProductManifest manifest)
+    {
+      foreach (ProductCategory pc in manifest.ProductCategories)
+      {
+        pc.Type = (ProductCategoryType)Enum.Parse(typeof(ProductCategoryType), pc.Name);
+        foreach (Product p in pc.Products)
+        {
+          p.PostInitialize(true);
+          p.SetParent(pc);
+          foreach (ProductFeature feature in p.GetProductFeatures())
+            feature.SetParent(p);
+        }
+      }
+
+      // Run through all categories and determine if *any* products are have upgrades.
+      bool hasUpgrade = false;
+      foreach (ProductCategory category in manifest.ProductCategories)
+        foreach (Product product in category.Products)
+          hasUpgrade |= product.IsUpgrade;
+
+      if (hasUpgrade)
+      {
+        ShowResult(false, true, Resources.CommercialUpdateCheckNewUpdatesAvailableText);
+        nextOk = true;
+        SignalChange();
+      }
+      else
+        ShowResult(false, false, Resources.CommercialUpdateCheckNoUpdatesAvailableText);
+
+      checkIcon.Image = Resources.ActionDone;
+    }
+
+    private void ShowResult(bool error, bool showIcon, string text)
+    {
+      if (error)
+      {
+        resultIcon.Image = Resources.ActionError;
+        resultLabel.ForeColor = Color.Red;
+        Logger.LogError("Commercial update error: " + text);
+      }
+      else
+      {
+        resultIcon.Image = Resources.ActionWarning; // Meant as hint.
+        resultLabel.ForeColor = Color.Green;
+        Logger.LogInformation("Commercial update: " + text);
+      }
+      resultLabel.Text = text;
+      resultIcon.Visible = showIcon;
+      resultLabel.Visible = true;
+    }
+
+  }
+}

=== added file 'WexInstaller/InstallWizard/CommercialUpdateCheck.resx'
--- a/WexInstaller/InstallWizard/CommercialUpdateCheck.resx	1970-01-01 00:00:00 +0000
+++ b/WexInstaller/InstallWizard/CommercialUpdateCheck.resx	2011-06-09 12:46:14 +0000
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file

=== modified file 'WexInstaller/InstallWizard/DetailedUpdateCheck.cs'
--- a/WexInstaller/InstallWizard/DetailedUpdateCheck.cs	2011-05-20 17:44:12 +0000
+++ b/WexInstaller/InstallWizard/DetailedUpdateCheck.cs	2011-06-09 12:46:14 +0000
@@ -41,7 +41,7 @@
         connectionEmptyIcon.Visible = false;
 
         ProductManager.DownloadManifestCompleted += new DownloadManifestCompleteHandler(ProductManager_DownloadManifestCompleted);
-        if (!ProductManager.DownloadManifest())
+        if (!ProductManager.DownloadManifest(false))
         {
           Logger.LogError("Unable to begin download.");
 
@@ -101,6 +101,7 @@
 
     public override void Activate()
     {
+      backOk = true;
       nextOk = true;
       if (skipUpdates.Checked)
       {
@@ -112,7 +113,7 @@
         executed = false;
         NextButton.Text = Properties.Resources.NextButtonExecuteText;
       }
-      NextButton.Refresh();
+      SignalChange();
 
       //Re-set the icon locations. 
       Point p = connectionEmptyIcon.Location;

=== modified file 'WexInstaller/InstallWizard/Features.cs'
--- a/WexInstaller/InstallWizard/Features.cs	2011-05-02 09:39:50 +0000
+++ b/WexInstaller/InstallWizard/Features.cs	2011-06-09 12:46:14 +0000
@@ -155,6 +155,10 @@
       catalogList.Focus();
 
       NextButton.Text = Properties.Resources.NextButtonDefaultText;
+      backOk = true;
+      nextOk = true;
+      SignalChange();
+
       base.Activate();
     }
 
@@ -368,10 +372,14 @@
 
       bool isSelected = (e.State & DrawItemState.Selected) != 0;
       e.Graphics.DrawString(state.Text, e.Font, isSelected ? Brushes.White : Brushes.Black, r, format);
-      SizeF textSize = e.Graphics.MeasureString(state.Text, e.Font);
-      r.X += textSize.ToSize().Width + 5;
-      Brush textBrush = isSelected ? Brushes.White : (state.NeedsDownload ? Brushes.MediumSeaGreen : Brushes.LightGray);
-      e.Graphics.DrawString(state.SubText, e.Font, textBrush, r, format);
+
+      if (!InstallerConfiguration.Commercial)
+      {
+        SizeF textSize = e.Graphics.MeasureString(state.Text, e.Font);
+        r.X += textSize.ToSize().Width + 5;
+        Brush textBrush = isSelected ? Brushes.White : (state.NeedsDownload ? Brushes.MediumSeaGreen : Brushes.LightGray);
+        e.Graphics.DrawString(state.SubText, e.Font, textBrush, r, format);
+      }
     }
 
     private void catalogList_SelectedIndexChanged(object sender, EventArgs e)

=== modified file 'WexInstaller/InstallWizard/InstallType.cs'
--- a/WexInstaller/InstallWizard/InstallType.cs	2011-06-06 12:33:14 +0000
+++ b/WexInstaller/InstallWizard/InstallType.cs	2011-06-09 12:46:14 +0000
@@ -163,10 +163,13 @@
 
         foreach (CatalogProduct product in ProductManager.ActiveCatalog.Products)
         {
-          product.ReferencedProduct.ProposedInstalled = currentType.Includes(product);
-          List<ProductFeature> productFeatures = product.ReferencedProduct.GetProductFeatures();
+          Product referencedProduct = product.ReferencedProduct;
+          referencedProduct.ProposedInstalled = currentType.Includes(product) &&
+            (referencedProduct.FoundLocal || !InstallerConfiguration.Commercial)
+          ;
+          List<ProductFeature> productFeatures = referencedProduct.GetProductFeatures();
           foreach (ProductFeature pf in productFeatures)
-            pf.ProposedInstalled = product.ReferencedProduct.ProposedInstalled;
+            pf.ProposedInstalled = referencedProduct.ProposedInstalled;
         }
       }
 

=== modified file 'WexInstaller/InstallWizard/LicenseAgreement.cs'
--- a/WexInstaller/InstallWizard/LicenseAgreement.cs	2011-04-18 08:06:38 +0000
+++ b/WexInstaller/InstallWizard/LicenseAgreement.cs	2011-06-09 12:46:14 +0000
@@ -11,11 +11,11 @@
     {
       InitializeComponent();
       Caption = "License Agreement";
-#if COMMERCIAL
-      licenseText.Text = Resources.Commercial_License;
-#else
-      licenseText.Text = Resources.GPL_License;
-#endif
+
+      if (InstallerConfiguration.Commercial)
+        licenseText.Text = Resources.Commercial_License;
+      else
+        licenseText.Text = Resources.GPL_License;
 
       backOk = true;
       nextOk = false;

=== modified file 'WexInstaller/InstallWizard/UpdateCheck.cs'
--- a/WexInstaller/InstallWizard/UpdateCheck.cs	2011-06-06 12:33:14 +0000
+++ b/WexInstaller/InstallWizard/UpdateCheck.cs	2011-06-09 12:46:14 +0000
@@ -40,7 +40,7 @@
         connectionEmptyIcon.Visible = false;
 
         ProductManager.DownloadManifestCompleted += new DownloadManifestCompleteHandler(ProductManager_DownloadManifestCompleted);
-        if (!ProductManager.DownloadManifest())
+        if (!ProductManager.DownloadManifest(false))
         {
           Logger.LogError("Unable to begin download.");
 

=== modified file 'WexInstaller/MainForm.cs'
--- a/WexInstaller/MainForm.cs	2011-05-23 15:01:40 +0000
+++ b/WexInstaller/MainForm.cs	2011-06-09 12:46:14 +0000
@@ -31,6 +31,11 @@
     {
       InitializeComponent();
 
+      if (InstallerConfiguration.Commercial)
+        Text = Resources.AppNameCommercial;
+      else
+        Text = Resources.AppName;
+
       Current = welcomeControl;
       if (InstallerConfiguration.IsDefault)
       {
@@ -90,9 +95,15 @@
       }
 
       installWizardControl.ShowDetailedUpdate(true);
+
       installWizardControl.ShowFeatureSelection(false);
       installWizardControl.ShowType(false);
       installWizardControl.ShowUpdateCheck(false);
+      installWizardControl.ShowRequirements(false);
+
+      if (InstallerConfiguration.Commercial)
+        installWizardControl.HideInstallationPages();
+
       DoInstall();
     }
 

=== modified file 'WexInstaller/Properties/Resources.Designer.cs'
--- a/WexInstaller/Properties/Resources.Designer.cs	2011-05-31 13:10:52 +0000
+++ b/WexInstaller/Properties/Resources.Designer.cs	2011-06-09 12:46:14 +0000
@@ -195,6 +195,15 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to MySQL Installer - Commercial Edition.
+        /// </summary>
+        public static string AppNameCommercial {
+            get {
+                return ResourceManager.GetString("AppNameCommercial", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to &lt; &amp;Back.
         /// </summary>
         public static string BackButtonDefaultText {
@@ -251,6 +260,55 @@
         }
         
         /// <summary>
+        ///   Looks up a localized string similar to Could not connect to the update server..
+        /// </summary>
+        public static string CommercialUpdateCheckConnectionFailedText {
+            get {
+                return ResourceManager.GetString("CommercialUpdateCheckConnectionFailedText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Could not download product update information..
+        /// </summary>
+        public static string CommercialUpdateCheckFetchFailedText {
+            get {
+                return ResourceManager.GetString("CommercialUpdateCheckFetchFailedText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Could not check for product update information. Got the following error details:
+        ///
+        ///{0}.
+        /// </summary>
+        public static string CommercialUpdateCheckFetchFailedWithErrorText {
+            get {
+                return ResourceManager.GetString("CommercialUpdateCheckFetchFailedWithErrorText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to New updates are available. Click the Next button to browse to Oracle Support where you can download the latest package. Use the Advanced Search function to find the MySQLInstaller package.
+        ///
+        ///The MySQL Installer will be closed. Please execute the downloaded package to update your system..
+        /// </summary>
+        public static string CommercialUpdateCheckNewUpdatesAvailableText {
+            get {
+                return ResourceManager.GetString("CommercialUpdateCheckNewUpdatesAvailableText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to There are currently no updates for any of your installed MySQLproducts available..
+        /// </summary>
+        public static string CommercialUpdateCheckNoUpdatesAvailableText {
+            get {
+                return ResourceManager.GetString("CommercialUpdateCheckNoUpdatesAvailableText", resourceCulture);
+            }
+        }
+        
+        /// <summary>
         ///   Looks up a localized string similar to Are you sure you wish to cancel and quit the installer?.
         /// </summary>
         public static string ConfirmCancelAndQuit {

=== modified file 'WexInstaller/Properties/Resources.resx'
--- a/WexInstaller/Properties/Resources.resx	2011-05-31 13:10:52 +0000
+++ b/WexInstaller/Properties/Resources.resx	2011-06-09 12:46:14 +0000
@@ -524,4 +524,26 @@
 
 If you are asked to restart your computer then decline and finish the main installation first. Restart your computer after this is done.</value>
   </data>
+  <data name="AppNameCommercial" xml:space="preserve">
+    <value>MySQL Installer - Commercial Edition</value>
+  </data>
+  <data name="CommercialUpdateCheckConnectionFailedText" xml:space="preserve">
+    <value>Could not connect to the update server.</value>
+  </data>
+  <data name="CommercialUpdateCheckFetchFailedText" xml:space="preserve">
+    <value>Could not download product update information.</value>
+  </data>
+  <data name="CommercialUpdateCheckFetchFailedWithErrorText" xml:space="preserve">
+    <value>Could not check for product update information. Got the following error details:
+
+{0}</value>
+  </data>
+  <data name="CommercialUpdateCheckNewUpdatesAvailableText" xml:space="preserve">
+    <value>New updates are available. Click the Next button to browse to Oracle Support where you can download the latest package. Use the Advanced Search function to find the MySQLInstaller package.
+
+The MySQL Installer will be closed. Please execute the downloaded package to update your system.</value>
+  </data>
+  <data name="CommercialUpdateCheckNoUpdatesAvailableText" xml:space="preserve">
+    <value>There are currently no updates for any of your installed MySQLproducts available.</value>
+  </data>
 </root>
\ No newline at end of file

=== modified file 'WexInstaller/WexCmd.cs'
--- a/WexInstaller/WexCmd.cs	2011-05-18 18:39:31 +0000
+++ b/WexInstaller/WexCmd.cs	2011-06-09 12:46:14 +0000
@@ -70,7 +70,7 @@
       msiDBLock.Reset();
 
       ProductManager.DownloadManifestCompleted += new DownloadManifestCompleteHandler(ManifestUpdateCompleted);
-      ProductManager.DownloadManifest();
+      ProductManager.DownloadManifest(false);
 
       // Wait for download to complete
       msiDBLock.WaitOne();

=== modified file 'WexInstaller/WexInstaller.csproj'
--- a/WexInstaller/WexInstaller.csproj	2011-05-31 13:10:52 +0000
+++ b/WexInstaller/WexInstaller.csproj	2011-06-09 12:46:14 +0000
@@ -139,6 +139,12 @@
     <Compile Include="InstallWizard\CheckRequirements.Designer.cs">
       <DependentUpon>CheckRequirements.cs</DependentUpon>
     </Compile>
+    <Compile Include="InstallWizard\CommercialUpdateCheck.cs">
+      <SubType>UserControl</SubType>
+    </Compile>
+    <Compile Include="InstallWizard\CommercialUpdateCheck.Designer.cs">
+      <DependentUpon>CommercialUpdateCheck.cs</DependentUpon>
+    </Compile>
     <Compile Include="InstallWizard\DetailedUpdateCheck.cs">
       <SubType>UserControl</SubType>
     </Compile>
@@ -267,6 +273,10 @@
       <DependentUpon>CheckRequirements.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="InstallWizard\CommercialUpdateCheck.resx">
+      <DependentUpon>CommercialUpdateCheck.cs</DependentUpon>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
     <EmbeddedResource Include="InstallWizard\DetailedUpdateCheck.resx">
       <DependentUpon>DetailedUpdateCheck.cs</DependentUpon>
       <SubType>Designer</SubType>

=== modified file 'common/products.xml'
--- a/common/products.xml	2011-06-06 13:29:16 +0000
+++ b/common/products.xml	2011-06-09 12:46:14 +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="10" format="1">
+<ProductManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="11" format="1">
   <ProductCatalogs>
     <ProductCatalog id="mysql-5.5-win32-gpl" name="MySQL 5.5" description="MySQL 5.5 Community Edition" commercial="false">
       <SetupTypes>
@@ -11,7 +11,7 @@
       </SetupTypes>
       <CatalogProducts>
         <CatalogProduct productId="mysql-server-5.5-win32-gpl" setupTypeFlags="3" />
-        <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="workbench-win32-ce" setupTypeFlags="5" />
         <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
         <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
         <CatalogProduct productId="connector-cpp-win32" setupTypeFlags="5" />
@@ -30,7 +30,7 @@
       </SetupTypes>
       <CatalogProducts>
         <CatalogProduct productId="mysql-server-5.5-winx64-gpl" setupTypeFlags="3" />
-        <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="workbench-win32-ce" setupTypeFlags="5" />
         <CatalogProduct productId="connector-odbc-winx64" setupTypeFlags="5" />
         <CatalogProduct productId="connector-c-winx64" setupTypeFlags="5" />
         <CatalogProduct productId="connector-cpp-winx64" setupTypeFlags="5" />
@@ -49,7 +49,7 @@
       </SetupTypes>
       <CatalogProducts>
         <CatalogProduct productId="mysql-server-5.1-win32-gpl" setupTypeFlags="3" />
-        <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="workbench-win32-ce" setupTypeFlags="5" />
         <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
         <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
         <CatalogProduct productId="connector-cpp-win32" setupTypeFlags="5" />
@@ -68,7 +68,83 @@
       </SetupTypes>
       <CatalogProducts>
         <CatalogProduct productId="mysql-server-5.1-winx64-gpl" setupTypeFlags="3" />
-        <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="workbench-win32-ce" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-odbc-winx64" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-c-winx64" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-cpp-winx64" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-j-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="examples-5.1" setupTypeFlags="5" />
+        <CatalogProduct productId="documents-5.1" setupTypeFlags="5" />
+      </CatalogProducts>
+    </ProductCatalog>
+    <ProductCatalog id="mysql-5.5-win32-advanced" name="MySQL 5.5" description="MySQL 5.5 Advanced Edition" commercial="true">
+      <SetupTypes>
+        <SetupType 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.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Server&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="1" name="Developer Default" />
+        <SetupType 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." flag="2" name="Server only" />
+        <SetupType short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="4" name="Client only" />
+        <SetupType short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more." flag="64" name="Full" />
+        <SetupType 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)." flag="128" name="Custom" />
+      </SetupTypes>
+      <CatalogProducts>
+        <CatalogProduct productId="mysql-server-5.5-win32-advanced" setupTypeFlags="3" />
+        <CatalogProduct productId="workbench-win32-se" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-cpp-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-j-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="examples-5.5" setupTypeFlags="5" />
+        <CatalogProduct productId="documents-5.5" setupTypeFlags="5" />
+      </CatalogProducts>
+    </ProductCatalog>
+    <ProductCatalog id="mysql-5.5-winx64-advanced" name="MySQL 5.5" description="MySQL 5.5 Advanced Edition" commercial="true">
+      <SetupTypes>
+        <SetupType 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.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Server&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="1" name="Developer Default" />
+        <SetupType 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." flag="2" name="Server only" />
+        <SetupType short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="4" name="Client only" />
+        <SetupType short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more." flag="64" name="Full" />
+        <SetupType 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)." flag="128" name="Custom" />
+      </SetupTypes>
+      <CatalogProducts>
+        <CatalogProduct productId="mysql-server-5.5-winx64-advanced" setupTypeFlags="3" />
+        <CatalogProduct productId="workbench-win32-se" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-odbc-winx64" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-c-winx64" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-cpp-winx64" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-j-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="examples-5.5" setupTypeFlags="5" />
+        <CatalogProduct productId="documents-5.5" setupTypeFlags="5" />
+      </CatalogProducts>
+    </ProductCatalog>
+    <ProductCatalog id="mysql-5.1-win32-advanced" name="MySQL 5.1" description="MySQL 5.1 Advanced Edition" commercial="true">
+      <SetupTypes>
+        <SetupType 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.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Server&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="1" name="Developer Default" />
+        <SetupType 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." flag="2" name="Server only" />
+        <SetupType short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="4" name="Client only" />
+        <SetupType short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more." flag="64" name="Full" />
+        <SetupType 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)." flag="128" name="Custom" />
+      </SetupTypes>
+      <CatalogProducts>
+        <CatalogProduct productId="mysql-server-5.1-win32-advanced" setupTypeFlags="3" />
+        <CatalogProduct productId="workbench-win32-se" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-cpp-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="connector-j-win32" setupTypeFlags="5" />
+        <CatalogProduct productId="examples-5.1" setupTypeFlags="5" />
+        <CatalogProduct productId="documents-5.1" setupTypeFlags="5" />
+      </CatalogProducts>
+    </ProductCatalog>
+    <ProductCatalog id="mysql-5.1-winx64-advanced" name="MySQL 5.1" description="MySQL 5.1 Advanced Edition" commercial="true">
+      <SetupTypes>
+        <SetupType 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.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Server&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="1" name="Developer Default" />
+        <SetupType 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." flag="2" name="Server only" />
+        <SetupType short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server.&#xD;&#xA;&#xD;&#xA;This Setup Type includes:&#xD;&#xA;&#xD;&#xA;* MySQL Workbench&#xD;&#xA;The GUI application to develop for and manage the server.&#xD;&#xA;&#xD;&#xA;* MySQL Visual Studio Plugin&#xD;&#xA;To work with the MySQL Server from VS.&#xD;&#xA;&#xD;&#xA;* MySQL Connectors&#xD;&#xA;Connector/Net, Java, C/C++, OBDC and others.&#xD;&#xA;&#xD;&#xA;* Examples and tutorials&#xD;&#xA;To help you get started with your development.&#xD;&#xA;&#xD;&#xA;* Documentation&#xD;&#xA;Allows you to read the documentation offline." flag="4" name="Client only" />
+        <SetupType short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more." flag="64" name="Full" />
+        <SetupType 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)." flag="128" name="Custom" />
+      </SetupTypes>
+      <CatalogProducts>
+        <CatalogProduct productId="mysql-server-5.1-winx64-advanced" setupTypeFlags="3" />
+        <CatalogProduct productId="workbench-win32-se" setupTypeFlags="5" />
         <CatalogProduct productId="connector-odbc-winx64" setupTypeFlags="5" />
         <CatalogProduct productId="connector-c-winx64" setupTypeFlags="5" />
         <CatalogProduct productId="connector-cpp-winx64" setupTypeFlags="5" />
@@ -78,70 +154,147 @@
       </CatalogProducts>
     </ProductCatalog>
   </ProductCatalogs>
+
   <ProductCategories>

     <ProductCategory name="Server" title="MySql Servers" description="MySQL Database Servers">
       <Product name="mysql-server-5.5-win32-gpl" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.5-winx64-gpl" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.5">
         <Packages>
-          <Package type="MSI" arch="X86" filename="mysql-5.5.12-win32.msi" id="{4106D232-7B04-4431-9E0B-79B83AFDD25E}" thisVersion="5.5.12">
-            <Feature name="RegKeys" default="false" size="0" display="0" hasComponents="true" />
-            <Feature name="MISC" title="MISC" description="MISC" default="false" size="0" display="0" hasComponents="false">
-              <Feature name="IniFiles" title="CPACK_COMPONENT_INIFILES_DISPLAY_NAME" description="CPACK_COMPONENT_INIFILES_DESCRIPTION" default="false" size="37603" display="2" hasComponents="true" />
-              <Feature name="Server_Scripts" title="CPACK_COMPONENT_SERVER_SCRIPTS_DISPLAY_NAME" description="CPACK_COMPONENT_SERVER_SCRIPTS_DESCRIPTION" default="false" size="79730" display="4" hasComponents="true" />
-            </Feature>
-            <Feature name="ProgramMenu" default="false" size="0" display="0" hasComponents="true" />
-            <Feature name="InstanceConfig" default="false" size="2986728" display="0" hasComponents="true" />
-            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server" default="false" size="23310217" display="1" hasComponents="true">
-              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="false" size="54441472" display="2" hasComponents="true" />
-              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="false" size="10391660" display="4" hasComponents="true" />
-            </Feature>
-            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="false" size="10499999" display="2" hasComponents="true">
-              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="false" size="4013512" display="2" hasComponents="true" />
-              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="4" hasComponents="false" />
-            </Feature>
-            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="false" size="0" display="4" hasComponents="false" />
-            <Feature name="UserEditableDataFiles" title="Server data files" description="Server data files" default="false" size="1006669" display="6" hasComponents="true" />
+          <Package type="MSI" arch="X86" filename="mysql-5.5.13-win32.msi" id="{A1A64967-AEA8-4792-8461-A28473356E6C}" thisVersion="5.5.13">
+            <Feature name="RegKeys" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="MISC" title="MISC" description="MISC" default="false" size="0" display="0" hasComponents="false">
+              <Feature name="IniFiles" title="CPACK_COMPONENT_INIFILES_DISPLAY_NAME" description="CPACK_COMPONENT_INIFILES_DESCRIPTION" default="false" size="37603" display="2" hasComponents="true" />
+              <Feature name="Server_Scripts" title="CPACK_COMPONENT_SERVER_SCRIPTS_DISPLAY_NAME" description="CPACK_COMPONENT_SERVER_SCRIPTS_DESCRIPTION" default="false" size="79730" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="ProgramMenu" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="InstanceConfig" default="false" size="2986728" display="0" hasComponents="true" />
+            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server" default="false" size="23320889" display="1" hasComponents="true">
+              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="false" size="54567424" display="2" hasComponents="true" />
+              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="false" size="10539972" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="false" size="10636049" display="2" hasComponents="true">
+              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="false" size="4027848" display="2" hasComponents="true" />
+              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="4" hasComponents="false" />
+            </Feature>
+            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="false" size="0" display="4" hasComponents="false" />
+            <Feature name="UserEditableDataFiles" title="Server data files" description="Server data files" default="false" size="1006629" display="6" hasComponents="true" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="mysql-server-5.5-win32-advanced" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.5-winx64-advanced" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="">
+        <Packages>
+          <Package type="MSI" arch="X86" filename="mysql-5.5.13-win32.msi" id="{A1A64967-AEA8-4792-8461-A28473356E6C}" thisVersion="5.5.13">
+            <Feature name="RegKeys" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="MISC" title="MISC" description="MISC" default="false" size="0" display="0" hasComponents="false">
+              <Feature name="IniFiles" title="CPACK_COMPONENT_INIFILES_DISPLAY_NAME" description="CPACK_COMPONENT_INIFILES_DESCRIPTION" default="false" size="37603" display="2" hasComponents="true" />
+              <Feature name="Server_Scripts" title="CPACK_COMPONENT_SERVER_SCRIPTS_DISPLAY_NAME" description="CPACK_COMPONENT_SERVER_SCRIPTS_DESCRIPTION" default="false" size="79730" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="ProgramMenu" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="InstanceConfig" default="false" size="2986728" display="0" hasComponents="true" />
+            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server" default="false" size="23320889" display="1" hasComponents="true">
+              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="false" size="54567424" display="2" hasComponents="true" />
+              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="false" size="10539972" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="false" size="10636049" display="2" hasComponents="true">
+              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="false" size="4027848" display="2" hasComponents="true" />
+              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="4" hasComponents="false" />
+            </Feature>
+            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="false" size="0" display="4" hasComponents="false" />
+            <Feature name="UserEditableDataFiles" title="Server data files" description="Server data files" default="false" size="1006629" display="6" hasComponents="true" />
           </Package>
         </Packages>
       </Product>
       <Product name="mysql-server-5.5-winx64-gpl" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.5-win32-gpl" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.5">
         <Packages>
-          <Package type="MSI" arch="X64" filename="mysql-5.5.12-winx64.msi" id="{B5A55A7F-73D6-4D36-85F8-9850635D6895}" thisVersion="5.5.12">
-            <Feature name="RegKeys" default="false" size="0" display="0" hasComponents="true" />
-            <Feature name="MISC" title="MISC" description="MISC" default="false" size="0" display="0" hasComponents="false">
-              <Feature name="IniFiles" title="CPACK_COMPONENT_INIFILES_DISPLAY_NAME" description="CPACK_COMPONENT_INIFILES_DESCRIPTION" default="false" size="37603" display="2" hasComponents="true" />
-              <Feature name="Server_Scripts" title="CPACK_COMPONENT_SERVER_SCRIPTS_DISPLAY_NAME" description="CPACK_COMPONENT_SERVER_SCRIPTS_DESCRIPTION" default="false" size="79730" display="4" hasComponents="true" />
-            </Feature>
-            <Feature name="ProgramMenu" default="false" size="0" display="0" hasComponents="true" />
-            <Feature name="InstanceConfig" default="false" size="2986728" display="0" hasComponents="true" />
-            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server" default="false" size="25315209" display="1" hasComponents="true">
-              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="false" size="57053184" display="2" hasComponents="true" />
-              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="false" size="11620614" display="4" hasComponents="true" />
-            </Feature>
-            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="false" size="11188817" display="2" hasComponents="true">
-              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="false" size="4201328" display="2" hasComponents="true" />
-              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="4" hasComponents="false" />
-            </Feature>
-            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="false" size="0" display="4" hasComponents="false" />
-            <Feature name="UserEditableDataFiles" title="Server data files" description="Server data files" default="false" size="1006669" display="6" hasComponents="true" />
-          </Package>
-        </Packages>
-      </Product>
-      <Product name="mysql-server-5.1-win32-gpl" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.1-winx64-gpl" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.1">
-        <Packages>
-          <Package type="MSI" arch="X86" filename="mysql-essential-5.1.57-win32.msi" id="{90BE3E28-62C6-4AD3-85C7-76605E54A9C2}" thisVersion="5.1.57">
-            <Feature name="Server" title="MySQL Server" description="Installs the MySQL-server executables." default="false" size="47538990" display="1" hasComponents="true">
-              <Feature name="DataFiles" title="MySQL Server Datafiles" description="The MySQL Server's datafiles" default="false" size="855027" display="2" hasComponents="true" />
-            </Feature>
-            <Feature name="ClientPrograms" title="Client Programs" description="Various helpful (commandline) tools including the mysql-command-line-shell" default="false" size="20539" display="2" hasComponents="true">
-              <Feature name="MySQLCommandLineShell" title="MySQL Command Line Shell" description="The MySQL Command Line Shell" default="false" size="2347008" display="2" hasComponents="true" />
-              <Feature name="MysqlCommandLineUtilsFeature" title="MySQL Command Line Utilities" description="The utilities include tools to startup and shutdown the server, check MyISAM tables, dump a database and many more." default="false" size="64753664" display="4" hasComponents="true" />
-              <Feature name="ServerInstanceConfig" title="MySQL Server Instance Config" description="Installs the MySQL Server Instance Config Wizard. This Wizard can be used to configure the MySQL server." default="false" size="2973600" display="6" hasComponents="true" />
-            </Feature>
-            <Feature name="DevelopmentFiles" title="C Include Files / Lib Files" description="Installs the C-Header files and necessary lib-files for developing C/C++ applications that communicate with a mysql-server." default="false" size="21581850" display="4" hasComponents="true" />
-          </Package>
-        </Packages>
-      </Product>
-      <Product name="mysql-server-5.1-winx64-gpl" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.1-win32-gpl" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.1">
+          <Package type="MSI" arch="X64" filename="mysql-5.5.13-winx64.msi" id="{3872972E-5BF1-4E9F-9D93-CB58A365AB9D}" thisVersion="5.5.13">
+            <Feature name="RegKeys" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="MISC" title="MISC" description="MISC" default="false" size="0" display="0" hasComponents="false">
+              <Feature name="IniFiles" title="CPACK_COMPONENT_INIFILES_DISPLAY_NAME" description="CPACK_COMPONENT_INIFILES_DESCRIPTION" default="false" size="37603" display="2" hasComponents="true" />
+              <Feature name="Server_Scripts" title="CPACK_COMPONENT_SERVER_SCRIPTS_DISPLAY_NAME" description="CPACK_COMPONENT_SERVER_SCRIPTS_DESCRIPTION" default="false" size="79730" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="ProgramMenu" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="InstanceConfig" default="false" size="2986728" display="0" hasComponents="true" />
+            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server" default="false" size="25322297" display="1" hasComponents="true">
+              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="false" size="57185792" display="2" hasComponents="true" />
+              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="false" size="11788834" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="false" size="11335301" display="2" hasComponents="true">
+              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="false" size="4219760" display="2" hasComponents="true" />
+              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="4" hasComponents="false" />
+            </Feature>
+            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="false" size="0" display="4" hasComponents="false" />
+            <Feature name="UserEditableDataFiles" title="Server data files" description="Server data files" default="false" size="1006629" display="6" hasComponents="true" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="mysql-server-5.5-winx64-advanced" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.5-win32-advanced" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.5">
+        <Packages>
+          <Package type="MSI" arch="X64" filename="mysql-5.5.13-winx64.msi" id="{3872972E-5BF1-4E9F-9D93-CB58A365AB9D}" thisVersion="5.5.13">
+            <Feature name="RegKeys" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="MISC" title="MISC" description="MISC" default="false" size="0" display="0" hasComponents="false">
+              <Feature name="IniFiles" title="CPACK_COMPONENT_INIFILES_DISPLAY_NAME" description="CPACK_COMPONENT_INIFILES_DESCRIPTION" default="false" size="37603" display="2" hasComponents="true" />
+              <Feature name="Server_Scripts" title="CPACK_COMPONENT_SERVER_SCRIPTS_DISPLAY_NAME" description="CPACK_COMPONENT_SERVER_SCRIPTS_DESCRIPTION" default="false" size="79730" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="ProgramMenu" default="false" size="0" display="0" hasComponents="true" />
+            <Feature name="InstanceConfig" default="false" size="2986728" display="0" hasComponents="true" />
+            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server" default="false" size="25322297" display="1" hasComponents="true">
+              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="false" size="57185792" display="2" hasComponents="true" />
+              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="false" size="11788834" display="4" hasComponents="true" />
+            </Feature>
+            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="false" size="11335301" display="2" hasComponents="true">
+              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="false" size="4219760" display="2" hasComponents="true" />
+              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="4" hasComponents="false" />
+            </Feature>
+            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="false" size="0" display="4" hasComponents="false" />
+            <Feature name="UserEditableDataFiles" title="Server data files" description="Server data files" default="false" size="1006629" display="6" hasComponents="true" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="mysql-server-5.1-win32-gpl" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.1-winx64-gpl" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="">
+        <Packages>
+          <Package type="MSI" arch="X86" filename="mysql-essential-5.1.57-win32.msi" id="{90BE3E28-62C6-4AD3-85C7-76605E54A9C2}" thisVersion="5.1.57">
+            <Feature name="Server" title="MySQL Server" description="Installs the MySQL-server executables." default="false" size="47538990" display="1" hasComponents="true">
+              <Feature name="DataFiles" title="MySQL Server Datafiles" description="The MySQL Server's datafiles" default="false" size="855027" display="2" hasComponents="true" />
+            </Feature>
+            <Feature name="ClientPrograms" title="Client Programs" description="Various helpful (commandline) tools including the mysql-command-line-shell" default="false" size="20539" display="2" hasComponents="true">
+              <Feature name="MySQLCommandLineShell" title="MySQL Command Line Shell" description="The MySQL Command Line Shell" default="false" size="2347008" display="2" hasComponents="true" />
+              <Feature name="MysqlCommandLineUtilsFeature" title="MySQL Command Line Utilities" description="The utilities include tools to startup and shutdown the server, check MyISAM tables, dump a database and many more." default="false" size="64753664" display="4" hasComponents="true" />
+              <Feature name="ServerInstanceConfig" title="MySQL Server Instance Config" description="Installs the MySQL Server Instance Config Wizard. This Wizard can be used to configure the MySQL server." default="false" size="2973600" display="6" hasComponents="true" />
+            </Feature>
+            <Feature name="DevelopmentFiles" title="C Include Files / Lib Files" description="Installs the C-Header files and necessary lib-files for developing C/C++ applications that communicate with a mysql-server." default="false" size="21581850" display="4" hasComponents="true" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="mysql-server-5.1-win32-advanced" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.1-winx64-advanced" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="">
+        <Packages>
+          <Package type="MSI" arch="X86" filename="mysql-essential-5.1.57-win32.msi" id="{90BE3E28-62C6-4AD3-85C7-76605E54A9C2}" thisVersion="5.1.57">
+            <Feature name="Server" title="MySQL Server" description="Installs the MySQL-server executables." default="false" size="47538990" display="1" hasComponents="true">
+              <Feature name="DataFiles" title="MySQL Server Datafiles" description="The MySQL Server's datafiles" default="false" size="855027" display="2" hasComponents="true" />
+            </Feature>
+            <Feature name="ClientPrograms" title="Client Programs" description="Various helpful (commandline) tools including the mysql-command-line-shell" default="false" size="20539" display="2" hasComponents="true">
+              <Feature name="MySQLCommandLineShell" title="MySQL Command Line Shell" description="The MySQL Command Line Shell" default="false" size="2347008" display="2" hasComponents="true" />
+              <Feature name="MysqlCommandLineUtilsFeature" title="MySQL Command Line Utilities" description="The utilities include tools to startup and shutdown the server, check MyISAM tables, dump a database and many more." default="false" size="64753664" display="4" hasComponents="true" />
+              <Feature name="ServerInstanceConfig" title="MySQL Server Instance Config" description="Installs the MySQL Server Instance Config Wizard. This Wizard can be used to configure the MySQL server." default="false" size="2973600" display="6" hasComponents="true" />
+            </Feature>
+            <Feature name="DevelopmentFiles" title="C Include Files / Lib Files" description="Installs the C-Header files and necessary lib-files for developing C/C++ applications that communicate with a mysql-server." default="false" size="21581850" display="4" hasComponents="true" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="mysql-server-5.1-winx64-gpl" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.1-win32-gpl" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="">
+        <Packages>
+          <Package type="MSI" arch="X64" filename="mysql-essential-5.1.57-winx64.msi" id="{0297B4FB-E9E7-4A2E-88B3-AF3F3BD69F55}" thisVersion="5.1.57">
+            <Feature name="Server" title="MySQL Server" description="Installs the MySQL-server executables." default="false" size="47343985" display="1" hasComponents="true">
+              <Feature name="DataFiles" title="MySQL Server Datafiles" description="The MySQL Server's datafiles" default="false" size="855027" display="2" hasComponents="true" />
+            </Feature>
+            <Feature name="ClientPrograms" title="Client Programs" description="Various helpful (commandline) tools including the mysql-command-line-shell" default="false" size="20539" display="2" hasComponents="true">
+              <Feature name="MySQLCommandLineShell" title="MySQL Command Line Shell" description="The MySQL Command Line Shell" default="false" size="2722816" display="2" hasComponents="true" />
+              <Feature name="MysqlCommandLineUtilsFeature" title="MySQL Command Line Utilities" description="The utilities include tools to startup and shutdown the server, check MyISAM tables, dump a database and many more." default="false" size="33090048" display="4" hasComponents="true" />
+              <Feature name="ServerInstanceConfig" title="MySQL Server Instance Config" description="Installs the MySQL Server Instance Config Wizard. This Wizard can be used to configure the MySQL server." default="false" size="2973600" display="6" hasComponents="true" />
+            </Feature>
+            <Feature name="DevelopmentFiles" title="C Include Files / Lib Files" description="Installs the C-Header files and necessary lib-files for developing C/C++ applications that communicate with a mysql-server." default="false" size="14367008" display="4" hasComponents="true" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="mysql-server-5.1-winx64-advanced" title="MySQL Server" description="The core MySQL database server" mutual-exclusive="mysql-server-5.1-win32-advanced" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="">
         <Packages>
           <Package type="MSI" arch="X64" filename="mysql-essential-5.1.57-winx64.msi" id="{0297B4FB-E9E7-4A2E-88B3-AF3F3BD69F55}" thisVersion="5.1.57">
             <Feature name="Server" title="MySQL Server" description="Installs the MySQL-server executables." default="false" size="47343985" display="1" hasComponents="true">
@@ -158,9 +311,18 @@
       </Product>
     </ProductCategory>
     <ProductCategory name="Application" title="Applications" description="Applications that work with MySQL">
-      <Product name="workbench-win32" title="MySQL Workbench" description="The MySQL GUI Developer tool" upgradeId="{84C668F4-A0C9-4585-A463-AADE0EFC9391}" urlBaseDir="MySQLGUITools">
-        <Packages>
-          <Package type="MSI" arch="X86" filename="mysql-workbench-gpl-5.2.34-win32.msi" id="{3B9A2AC6-4FF5-4FE6-AF30-042BF9A4F5E6}" thisVersion="5.2.34">
+      <Product name="workbench-win32-ce" title="MySQL Workbench Community Edition" description="The MySQL GUI Developer tool" upgradeId="{84C668F4-A0C9-4585-A463-AADE0EFC9391}" urlBaseDir="MySQLGUITools">
+        <Packages>
+          <Package type="MSI" arch="X86" filename="mysql-workbench-gpl-5.2.34.1-win32.msi" id="{3B9A2AC6-4FF5-4FE6-AF30-042BF9A4F5E6}" thisVersion="5.2.34.1">
+            <Feature name="MysqlWorkbenchCore" title="MySQL Workbench Core" description="Core components needed to run MySQL Workbench" default="false" size="68378811" display="2" hasComponents="true" />
+            <Feature name="WorkbenchProgramShortcut" title="Program Shortcut" description="Place a Shortcut to MySQL Workbench in your Startmenus MySQL Folder" default="false" size="0" display="4" hasComponents="true" />
+            <Requirement type="DotNetFramework40Client" description="Microsoft .NET Framework 4 Client Profile" location="http://download.microsoft.com/download/5/6/2/562A10F9-C9F4-4313-A044-9C94E0A8FAC8/dotNetFx40_Client_x86_x64.exe" officialLink="http://go.microsoft.com/fwlink/?LinkId=181012" size="43000680" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="workbench-win32-se" title="MySQL Workbench Standard Edition" description="The MySQL GUI Developer tool" upgradeId="{84C668F4-A0C9-4585-A463-AADE0EFC9391}" urlBaseDir="MySQLGUITools">
+        <Packages>
+          <Package type="MSI" arch="X86" filename="mysql-workbench-gpl-5.2.34.1-win32.msi" id="{3B9A2AC6-4FF5-4FE6-AF30-042BF9A4F5E6}" thisVersion="5.2.34.1">
             <Feature name="MysqlWorkbenchCore" title="MySQL Workbench Core" description="Core components needed to run MySQL Workbench" default="false" size="68378811" display="2" hasComponents="true" />
             <Feature name="WorkbenchProgramShortcut" title="Program Shortcut" description="Place a Shortcut to MySQL Workbench in your Startmenus MySQL Folder" default="false" size="0" display="4" hasComponents="true" />
             <Requirement type="DotNetFramework40Client" description="Microsoft .NET Framework 4 Client Profile" location="http://download.microsoft.com/download/5/6/2/562A10F9-C9F4-4313-A044-9C94E0A8FAC8/dotNetFx40_Client_x86_x64.exe" officialLink="http://go.microsoft.com/fwlink/?LinkId=181012" size="43000680" />
@@ -293,8 +455,8 @@
       </Product>
     </ProductCategory>
   </ProductCategories>
-  <UpdateVersion>1.0.13.0</UpdateVersion>
-  <UpdateURL>http://localhost/mysql-installer-update-1.0.13.0.msi</UpdateURL>
-  <UpdateHash></UpdateHash>
+  <UpdateVersion>1.0.12.0</UpdateVersion>
+  <UpdateURL>mysql-installer-update-1.0.12.0.msi</UpdateURL>
+  <UpdateHash>B00B33C66E3711346AA6406D721AE549C7A84490</UpdateHash>
   <CollectorURL>http://wb.mysql.com/installer/result.php</CollectorURL>
 </ProductManifest>
\ No newline at end of file

Attachment: [text/bzr-bundle] bzr/mike.lischke@oracle.com-20110609124614-et8jqgvgwaigbplk.bundle
Thread
bzr commit into wex-installer-1.0 branch (mike.lischke:502) Mike Lischke9 Jun