List:Commits« Previous MessageNext Message »
From:Reggie Burnett Date:January 24 2011 3:28pm
Subject:bzr commit into wex-installer-1.0 branch (reggie.burnett:258)
View as plain text  
#At file:///C:/Users/Reggie/work/wex/installer-updated/ based on revid:reggie.burnett@stripped

  258 Reggie Burnett	2011-01-24
      implement products.xml version checking

    modified:
      Setup_Net/products.xml
      WexInstaller/Core/ProductManager.cs
      WexInstaller/Core/ProductManifest.cs
      WexInstaller/InstallerConfiguration.cs
      installer-vs2010.sln
=== modified file 'Setup_Net/products.xml'
=== modified file 'Setup_Net/products.xml'
--- a/Setup_Net/products.xml	2011-01-17 17:07:20 +0000
+++ b/Setup_Net/products.xml	2011-01-24 15:28:26 +0000
@@ -1,127 +1,139 @@
 <?xml version="1.0" encoding="utf-8"?>
-
-<ProductManifest version="1.0">
+<ProductManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1" format="1">
   <ProductCatalogs>
-    
-    <ProductCatalog id="mysql-5.5-gpl" name="MySQL 5.5" description="MySQL 5.5 Community Edition" commercial="false" default="true">
-      <SetupTypes>
-        <SetupType flag="1" name="Developer Default" description="Installs all products needed for MySQL development, including"/>
-        <SetupType flag="2" name="Server only" description="Installs only the MySQL Server product. Use this type for servers that do not need developer resources"/>
-        <SetupType flag="64" name="Full" description="Installs all products from this catalog"/>
-        <SetupType flag="128" name="Custom" description="The user can select which products to install"/>
-      </SetupTypes>
-      <CatalogProducts>
-        <CatalogProduct productId="mysql-server-5.5-gpl" setupTypeFlags="3"/>
-        <CatalogProduct productId="workbench" setupTypeFlags="1"/>
-        <CatalogProduct productId="connector-odbc" setupTypeFlags="1"/>
-        <CatalogProduct productId="connector-c" setupTypeFlags="1"/>
-        <CatalogProduct productId="connector-cpp" setupTypeFlags="1"/>
-      </CatalogProducts>
-    </ProductCatalog>
-    
-    <ProductCatalog id="mysql-5.5-com" name="MySQL 5.5" description="MySQL 5.5 Commercial Edition" commercial="true" default="false">
-      <SetupTypes>
-        <SetupType name="Developer Default" description="Installs all products needed for MySQL development, including"/>
-        <SetupType name="Server only" description="Installs only the MySQL Server product. Use this type for servers that do not need developer resources"/>
-        <SetupType name="Full" description="Installs all products from this catalog"/>
-        <SetupType name="Custom" description="The user can select which products to install"/>
-      </SetupTypes>
-    </ProductCatalog>
-    <ProductCatalog id="mysql-5.1-gpl" name="MySQL 5.1" description="MySQL 5.1 Community Edition" commercial="false" default="false">
-      <SetupTypes>
-        <SetupType name="Developer Default" description="Installs all products needed for MySQL development, including"/>
-        <SetupType name="Server only" description="Installs only the MySQL Server product. Use this type for servers that do not need developer resources"/>
-        <SetupType name="Full" description="Installs all products from this catalog"/>
-        <SetupType name="Custom" description="The user can select which products to install"/>
-      </SetupTypes>
+    <ProductCatalog id="mysql-5.5-gpl" name="MySQL 5.5" description="MySQL 5.5 Community Edition" commercial="false">
+      <SetupTypes>
+        <SetupType flag="1" name="Developer Default" description="Installs all products needed for MySQL development, including" />
+        <SetupType flag="2" name="Server only" description="Installs only the MySQL Server product. Use this type for servers that do not need developer resources" />
+        <SetupType flag="64" name="Full" description="Installs all products from this catalog" />
+        <SetupType flag="128" name="Custom" description="The user can select which products to install" />
+      </SetupTypes>
+      <CatalogProducts>
+        <CatalogProduct productId="mysql-server-5.5-gpl" setupTypeFlags="3" />
+        <CatalogProduct productId="workbench" setupTypeFlags="1" />
+        <CatalogProduct productId="connector-odbc" setupTypeFlags="1" />
+        <CatalogProduct productId="connector-c" setupTypeFlags="1" />
+        <CatalogProduct productId="connector-cpp" setupTypeFlags="1" />
+      </CatalogProducts>
+    </ProductCatalog>
+    <ProductCatalog id="mysql-5.1-gpl" name="MySQL 5.1" description="MySQL 5.1 Community Edition" commercial="false">
+      <SetupTypes>
+        <SetupType flag="1" name="Developer Default" description="Installs all products needed for MySQL development, including" />
+        <SetupType flag="2" name="Server only" description="Installs only the MySQL Server product. Use this type for servers that do not need developer resources" />
+        <SetupType flag="64" name="Full" description="Installs all products from this catalog" />
+        <SetupType flag="128" name="Custom" description="The user can select which products to install" />
+      </SetupTypes>
+      <CatalogProducts>
+        <CatalogProduct productId="mysql-server-5.1-gpl" setupTypeFlags="3" />
+        <CatalogProduct productId="workbench" setupTypeFlags="1" />
+        <CatalogProduct productId="connector-odbc" setupTypeFlags="1" />
+        <CatalogProduct productId="connector-c" setupTypeFlags="1" />
+        <CatalogProduct productId="connector-cpp" setupTypeFlags="1" />
+      </CatalogProducts>
     </ProductCatalog>
   </ProductCatalogs>
-
   <ProductCategories>
     <ProductCategory name="Server" title="MySql Servers" description="MySQL Database Servers">
       <Product name="mysql-server-5.5-gpl" title="MySQL Server" description="The core MySQL database server" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.5">
         <Packages>
-          <Package id="{A89C6DB0-E5BE-44A0-99DA-72918C1CCFDE}" type="MSI" arch="X86" filename="mysql-5.5.8-win32.msi" thisVersion="5.5.8">
-            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server." size="0" default="true" display="true" hasComponents="true">
-              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="true" display="true" hasComponents="true"/>
-              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="true" display="true" hasComponents="true" />
-            </Feature>
-            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="true" display="true" hasComponents="true">
-              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="true" display="true" hasComponents="true" />
-              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" display="true" hasComponents="true" />
-            </Feature>
-            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="true" display="true" hasComponents="true" />
-            <Feature name="MISC" title="MISC" description="MISC" default="true" display="0" hasComponents="0">
-              <Feature name="IniFiles" title="" description="" default="true" display="0" hasComponents="true" />
-              <Feature name="Server_Scripts" title="" description="" default="true" display="0" hasComponents="true" />
-            </Feature>
-            <Feature name="InstanceConfig" title="" description="" default="true" display="0" hasComponents="true" />
-            <Feature name="ProgramMenu" title="" description="" default="true" display="0" hasComponents="true" />
-            <Feature name="UserEditableDatafiles" title="" description="" default="true" display="0" hasComponents="true" />
-            <Feature name="RegKeys" title="" description="" default="true" display="0" hasComponents="true" />
+          <Package type="MSI" arch="X86" filename="mysql-5.5.8-win32.msi" id="{A89C6DB0-E5BE-44A0-99DA-72918C1CCFDE}" thisVersion="5.5.8">
+            <Feature name="MYSQLSERVER" title="MySQL Server" description="Install MySQL Server." default="true" size="0" display="true" hasComponents="true">
+              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="true" size="0" display="true" hasComponents="true" />
+              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="true" size="0" display="true" hasComponents="true" />
+            </Feature>
+            <Feature name="DEVEL" title="Development Components" description="Installs C/C++ header files and libraries" default="true" size="0" display="true" hasComponents="true">
+              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="true" size="0" display="true" hasComponents="true" />
+              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="true" hasComponents="true" />
+            </Feature>
+            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="MISC" title="MISC" description="MISC" default="true" size="0" display="0" hasComponents="0">
+              <Feature name="IniFiles" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+              <Feature name="Server_Scripts" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            </Feature>
+            <Feature name="InstanceConfig" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            <Feature name="ProgramMenu" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            <Feature name="UserEditableDatafiles" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            <Feature name="RegKeys" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+          </Package>
+        </Packages>
+      </Product>
+      <Product name="mysql-server-5.1-gpl" title="MySQL Server" description="The core MySQL database server" upgradeId="{49EB7A6A-1CEF-4A1E-9E89-B9A4993963E3}" urlBaseDir="mysql-5.1">
+        <Packages>
+          <Package type="MSI" arch="X86" filename="mysql-5.1.54-win32.msi" id="{2430887C-B8A8-49D8-9185-9F451185AF7B}" thisVersion="5.1.54">
+            <Feature name="SERVER" title="MySQL Server" description="Install MySQL Server." default="true" size="0" display="true" hasComponents="true">
+              <Feature name="DebugBinaries" title="Debug binaries" description="Debug/trace versions of executables and libraries" default="true" size="0" display="true" hasComponents="true" />
+              <Feature name="Client" title="Client Programs" description="Various helpful (commandline) tools including the mysql command line client" default="true" size="0" display="true" hasComponents="true" />
+            </Feature>
+            <Feature name="ClientPrograms" title="Client Programs" description="Various helpful (commandline) tools including the mysql-command-line-shell" default="true" size="0" display="true" hasComponents="true">
+              <Feature name="SharedLibraries" title="Client C API library (shared)" description="Installs shared client library" default="true" size="0" display="true" hasComponents="true" />
+              <Feature name="Embedded" title="Embedded server library" description="Installs embedded server library" default="false" size="0" display="true" hasComponents="true" />
+            </Feature>
+            <Feature name="DEBUGSYMBOLS" title="Debug Symbols" description="Installs Debug Symbols" default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="MISC" title="MISC" description="MISC" default="true" size="0" display="0" hasComponents="0">
+              <Feature name="IniFiles" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+              <Feature name="Server_Scripts" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            </Feature>
+            <Feature name="InstanceConfig" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            <Feature name="ProgramMenu" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            <Feature name="UserEditableDatafiles" title="" description="" default="true" size="0" display="0" hasComponents="true" />
+            <Feature name="RegKeys" title="" description="" default="true" size="0" display="0" hasComponents="true" />
           </Package>
         </Packages>
       </Product>
     </ProductCategory>
-
     <ProductCategory name="Application" title="Applications" description="Applications that work with MySQL">
       <Product name="workbench" title="MySQL Workbench" description="The MySQL GUI Developer tool" upgradeId="{84C668F4-A0C9-4585-A463-AADE0EFC9391}" urlBaseDir="MySQLGUITools">
         <Packages>
-          <Package id="{38766225-85FA-469B-A373-82BF1923A7E4}" type="MSI" arch="X86" filename="mysql-workbench-gpl-5.2.31a-win32.msi" thisVersion="5.2.31">
-            <Feature name="MysqlWorkbenchCore" title="MySQL Workbench Core" description="Core components needed to run MySQL Workbench" size="0" default="true" display="true" hasComponents="true"/>
-            <Feature name="UpdateWizard" title="Update Feature" description="Built in update feature that connects to MySQL.com" size="0" default="true" display="true" hasComponents="true"/>
+          <Package type="MSI" arch="X86" filename="mysql-workbench-gpl-5.2.31a-win32.msi" id="{38766225-85FA-469B-A373-82BF1923A7E4}" thisVersion="5.2.31">
+            <Feature name="MysqlWorkbenchCore" title="MySQL Workbench Core" description="Core components needed to run MySQL Workbench" default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="UpdateWizard" title="Update Feature" description="Built in update feature that connects to MySQL.com" default="true" size="0" display="true" hasComponents="true" />
           </Package>
         </Packages>
       </Product>
     </ProductCategory>
-
     <ProductCategory name="Connector" title="MySQL Connectors" description="Database drivers for programming languages">
       <Product name="connector-odbc" title="Connector/ODBC" description="MySQL Connector for ODBC" upgradeId="{FF073FBB-32E2-4052-B6B2-830C5ED4A809}" urlBaseDir="mysql-connector-odbc-5.1">
         <Packages>
-          <Package id="{29042B1C-0713-4575-B7CA-5C8E7B0899D4}" type="MSI" arch="X86" filename="mysql-connector-odbc-5.1.6-win32.msi" thisVersion="5.1.6">
-            <Feature name="ODBC_32" title="MySQL Connector/ODBC driver"  default="true" description="Installs the MySQL ODBC 5.1.6 32-bit driver." display="true" hasComponents="true"/>
-            <Feature name="Help" title="MySQL Connector/ODBC 5.1.6 Documentation" default="true" description="Installs the MySQL ODBC driver help." display="true" hasComponents="true"/>
+          <Package type="MSI" arch="X86" filename="mysql-connector-odbc-5.1.6-win32.msi" id="{29042B1C-0713-4575-B7CA-5C8E7B0899D4}" thisVersion="5.1.6">
+            <Feature name="ODBC_32" title="MySQL Connector/ODBC driver" description="Installs the MySQL ODBC 5.1.6 32-bit driver." default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="Help" title="MySQL Connector/ODBC 5.1.6 Documentation" description="Installs the MySQL ODBC driver help." default="true" size="0" display="true" hasComponents="true" />
           </Package>
         </Packages>
       </Product>
-
       <Product name="connector-cpp" title="Connector/C++" description="MySQL Connector for C++" upgradeId="{FE990D78-8BB1-4880-930A-0430E707F3CA}" urlBaseDir="">
         <Packages>
-          <Package id="{C13C9E31-F8D7-464D-A246-5A42AC0AB93E}" type="MSI" arch="X86" filename="mysql-connector-c++-1.0.5-win32.msi" thisVersion="1.0.5">
-            <Feature name="ConnectorCPP" title="MySQL Connector C++" default="true" description="The MySQL Connector C++ client library." display="true" hasComponents="true"/>
-            <Feature name="DebugLibraries" title="Debug Libary" default="false" description="Debug library and symbols." display="true" hasComponents="true"/>
+          <Package type="MSI" arch="X86" filename="mysql-connector-c++-1.0.5-win32.msi" id="{C13C9E31-F8D7-464D-A246-5A42AC0AB93E}" thisVersion="1.0.5">
+            <Feature name="ConnectorCPP" title="MySQL Connector C++" description="The MySQL Connector C++ client library." default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="DebugLibraries" title="Debug Libary" description="Debug library and symbols." default="false" size="0" display="true" hasComponents="true" />
           </Package>
         </Packages>
       </Product>
-
       <Product name="connector-C" title="Connector/C" description="MySQL Connector for C" upgradeId="" urlBaseDir="">
         <Packages>
-          <Package id="{66F9302D-E145-4375-8C84-54DA2339C483}" type="MSI" arch="X86" filename="mysql-connector-c-6.0.2-win32.msi" thisVersion="6.0.2">
-            <Feature name="ConnectorC" title="MySQL Connector C" default="true" description="The MySQL Connector C client library." display="true" hasComponents="true"/>
-            <Feature name="DebugLibraries" title="Debug Libary" default="false" description="Debug library and symbols." display="true" hasComponents="true"/>
+          <Package type="MSI" arch="X86" filename="mysql-connector-c-6.0.2-win32.msi" id="{66F9302D-E145-4375-8C84-54DA2339C483}" thisVersion="6.0.2">
+            <Feature name="ConnectorC" title="MySQL Connector C" description="The MySQL Connector C client library." default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="DebugLibraries" title="Debug Libary" description="Debug library and symbols." default="false" size="0" display="true" hasComponents="true" />
           </Package>
         </Packages>
       </Product>
     </ProductCategory>
-
     <ProductCategory name="Documentation" title="Documentation" description="">
-      <Product name="Universal-Docs" title="MySQL Documentation" description="A collection of popular MySQL Documents" default="false" upgradeId="{D884632C-A8F2-46E6-9944-F784F5C6A10A}" urlBaseDir="http://wb.mysql.com/installer">
+      <Product name="Universal-Docs" title="MySQL Documentation" description="A collection of popular MySQL Documents" upgradeId="{D884632C-A8F2-46E6-9944-F784F5C6A10A}" urlBaseDir="http://wb.mysql.com/installer">
         <Packages>
-          <Package id="{C2AF9668-BC9E-412F-B766-D8238A8517B0}" type="MSI" arch="X86" filename="mysql-universal-installer-document-bundle-1.0.0.0.msi" thisVersion="1.0.0">
-            <Feature name="ConnCPPA4" title="MySQL Connector C++ User Guide A4" default="false" description="The MySQL Connector C++ User Guide in A4 format." display="true" hasComponents="true"/>
-            <Feature name="ConnCPP" title="MySQL Connector C++ User Guide" default="true" description="The MySQL Connector C++ User Guide." display="true" hasComponents="true"/>
-            <Feature name="ConnNETA4" title="MySQL Connector .NET User Guide A4" default="false" description="The MySQL Connector .NET User Guide in A4 fomat" display="true" hasComponents="true"/>
-            <Feature name="ConnNET" title="MySQL Connector .NET User Guide" default="true" description="The MySQL Connector .NET User Guide." display="true" hasComponents="true"/>
-            <Feature name="ConnODBCA4" title="MySQL Connector ODBC User Guide A4" default="false" description="The MySQL Connector ODBC User Guide in A4 format." display="true" hasComponents="true"/>
-            <Feature name="ConnODBC" title="MySQL Connector ODBC User Guide" default="true" description="The MySQL Connector ODBC User Guide." display="true" hasComponents="true"/>
-            <Feature name="ServerA4Feature" title="MySQL Server User Guide A4" default="false" description="The MySQL Server User Guide in A4 format." display="true" hasComponents="true"/>
-            <Feature name="ServerFeature" title="MySQL Server User Guide" default="true" description="The MySQL Server User Guide." display="true" hasComponents="true"/>
-            <Feature name="WBA4Feature" title="MySQL Workbench User Guide A4" default="false" description="MySQL Workbench User Guide in A4 format." display="true" hasComponents="true"/>
-            <Feature name="WBFeature" title="MySQL Workbench User Guide" default="true" description="The MySQL Workbench User Guide." display="true" hasComponents="true"/>
+          <Package type="MSI" arch="X86" filename="mysql-universal-installer-document-bundle-1.0.0.0.msi" id="{C2AF9668-BC9E-412F-B766-D8238A8517B0}" thisVersion="1.0.0">
+            <Feature name="ConnCPPA4" title="MySQL Connector C++ User Guide A4" description="The MySQL Connector C++ User Guide in A4 format." default="false" size="0" display="true" hasComponents="true" />
+            <Feature name="ConnCPP" title="MySQL Connector C++ User Guide" description="The MySQL Connector C++ User Guide." default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="ConnNETA4" title="MySQL Connector .NET User Guide A4" description="The MySQL Connector .NET User Guide in A4 fomat" default="false" size="0" display="true" hasComponents="true" />
+            <Feature name="ConnNET" title="MySQL Connector .NET User Guide" description="The MySQL Connector .NET User Guide." default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="ConnODBCA4" title="MySQL Connector ODBC User Guide A4" description="The MySQL Connector ODBC User Guide in A4 format." default="false" size="0" display="true" hasComponents="true" />
+            <Feature name="ConnODBC" title="MySQL Connector ODBC User Guide" description="The MySQL Connector ODBC User Guide." default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="ServerA4Feature" title="MySQL Server User Guide A4" description="The MySQL Server User Guide in A4 format." default="false" size="0" display="true" hasComponents="true" />
+            <Feature name="ServerFeature" title="MySQL Server User Guide" description="The MySQL Server User Guide." default="true" size="0" display="true" hasComponents="true" />
+            <Feature name="WBA4Feature" title="MySQL Workbench User Guide A4" description="MySQL Workbench User Guide in A4 format." default="false" size="0" display="true" hasComponents="true" />
+            <Feature name="WBFeature" title="MySQL Workbench User Guide" description="The MySQL Workbench User Guide." default="true" size="0" display="true" hasComponents="true" />
           </Package>
         </Packages>
       </Product>
     </ProductCategory>
-
   </ProductCategories>
-</ProductManifest>
+</ProductManifest>
\ No newline at end of file

=== modified file 'WexInstaller/Core/ProductManager.cs'
--- a/WexInstaller/Core/ProductManager.cs	2011-01-17 17:05:19 +0000
+++ b/WexInstaller/Core/ProductManager.cs	2011-01-24 15:28:26 +0000
@@ -34,20 +34,28 @@
         public static bool ProductsUpgrade { get; private set; }
         public static ProductCatalog ActiveCatalog { get; set; }
 
-        public static void Load()
+        private static ProductManifest ObjectifyManifest(string fileName)
         {
-            Logger.LogTrace("ProductManager.Load()");
+            ProductManifest thisManifest = null;
 
-            manifest = null;
-            if (File.Exists(InstallerConfiguration.ProductsManifest))
+            if (File.Exists(fileName))
             {
                 XmlRootAttribute productCategories = new XmlRootAttribute("ProductManifest");
                 XmlSerializer s = new XmlSerializer(typeof(ProductManifest));
-                TextReader w = new StreamReader(InstallerConfiguration.ProductsManifest);
-                manifest = (ProductManifest)s.Deserialize(w);
+                TextReader w = new StreamReader(fileName);
+                thisManifest = (ProductManifest)s.Deserialize(w);
                 w.Close();
             }
 
+            return thisManifest;
+        }
+
+        public static void Load()
+        {
+            Logger.LogTrace("ProductManager.Load()");
+
+            LoadManifestWithCheckForTemp();
+
             //TODO: fix this to handle it better
             if (manifest == null || manifest.ProductCategories == null || manifest.ProductCatalogs == null)
                 throw new InvalidOperationException("Manifest failed to load properly");
@@ -77,6 +85,31 @@
             ActiveCatalog = manifest.ProductCatalogs[0];
         }
 
+        private static void LoadManifestWithCheckForTemp()
+        {
+            // first we need to see if there is any temp manifest file to check
+            ProductManifest tempManifest = ObjectifyManifest(InstallerConfiguration.TempProductsManifest);
+            ProductManifest currentManifest = ObjectifyManifest(InstallerConfiguration.ProductsManifest);
+
+            if (tempManifest == null)
+                manifest = currentManifest;
+            else
+            {
+                if (currentManifest == null || tempManifest.Version > currentManifest.Version)
+                {
+                    manifest = tempManifest;
+                    currentManifest = null;
+                    File.Copy(InstallerConfiguration.TempProductsManifest, InstallerConfiguration.ProductsManifest, true);
+                }
+                else
+                {
+                    manifest = currentManifest;
+                    tempManifest = null;
+                }
+                File.Delete(InstallerConfiguration.TempProductsManifest);
+            }
+        }
+
         public static event DownloadManifestProgressHandler DownloadManifestProgressChanged;
 
         public static event DownloadManifestCompleteHandler DownloadManifestCompleted;

=== modified file 'WexInstaller/Core/ProductManifest.cs'
--- a/WexInstaller/Core/ProductManifest.cs	2011-01-17 17:05:19 +0000
+++ b/WexInstaller/Core/ProductManifest.cs	2011-01-24 15:28:26 +0000
@@ -9,9 +9,16 @@
 {
     public sealed class ProductManifest
     {
+        [XmlAttribute("version")]
+        public int Version;
+
+        [XmlAttribute("format")]
+        public int Format;
+
         [XmlArray()]
-        public List<ProductCatalog> ProductCatalogs { get; set; }
+        public List<ProductCatalog> ProductCatalogs;
+
         [XmlArray]
-        public List<ProductCategory> ProductCategories { get; set; }
+        public List<ProductCategory> ProductCategories;
     }
 }

=== modified file 'WexInstaller/InstallerConfiguration.cs'
--- a/WexInstaller/InstallerConfiguration.cs	2010-11-18 18:39:59 +0000
+++ b/WexInstaller/InstallerConfiguration.cs	2011-01-24 15:28:26 +0000
@@ -85,6 +85,11 @@
             get { return String.Format("{0}\\products.xml", HomeDir); }
         }
 
+        public static string TempProductsManifest
+        {
+            get { return String.Format("{0}\\products.xml.temp", HomeDir); }
+        }
+
         public static string TemplateName
         {
             get { return String.Format("{0}\\my-template.ini", HomeDir); }

=== modified file 'installer-vs2010.sln'
--- a/installer-vs2010.sln	2010-08-25 15:38:11 +0000
+++ b/installer-vs2010.sln	2011-01-24 15:28:26 +0000
@@ -6,22 +6,9 @@
 		{27F00801-BEAE-417F-9CF5-5686923F7538} = {27F00801-BEAE-417F-9CF5-5686923F7538}
 	EndProjectSection
 EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup_Net", "Setup_Net\Setup_Net.wixproj", "{FBC6C598-EC89-49E6-8FE4-4140141761CC}"
-	ProjectSection(ProjectDependencies) = postProject
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71} = {8B795758-E384-40C7-9BAA-12E70FFB5C71}
-		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414} = {07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF} = {101DB4CD-090C-44CE-9D19-C6EA941D2DCF}
-	EndProjectSection
-EndProject
-Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup_Web", "Setup_Web\Setup_Web.wixproj", "{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}"
-	ProjectSection(ProjectDependencies) = postProject
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71} = {8B795758-E384-40C7-9BAA-12E70FFB5C71}
-		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414} = {07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}
-	EndProjectSection
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTestService", "UnitTestService\UnitTestService.csproj", "{27F00801-BEAE-417F-9CF5-5686923F7538}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WiX_CustomAction", "WiX_CustomAction\WiX_CustomAction.vcxproj", "{8B795758-E384-40C7-9BAA-12E70FFB5C71}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ManifestManager", "ManifestManager\ManifestManager.csproj", "{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -34,56 +21,36 @@
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Debug|x86.ActiveCfg = Debug|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Debug|x86.Build.0 = Debug|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Release|Any CPU.Build.0 = Release|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Release|Mixed Platforms.Build.0 = Release|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Release|x86.ActiveCfg = Release|Any CPU
 		{07B31F5A-9F17-4ACF-B3B6-2AF9000B1414}.Release|x86.Build.0 = Release|Any CPU
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Debug|Any CPU.ActiveCfg = Debug|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Debug|x86.ActiveCfg = Debug|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Release|Any CPU.ActiveCfg = Release|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Release|Any CPU.Build.0 = Release|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Release|Mixed Platforms.Build.0 = Release|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Release|x86.ActiveCfg = Release|x86
-		{FBC6C598-EC89-49E6-8FE4-4140141761CC}.Release|x86.Build.0 = Release|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Debug|Any CPU.ActiveCfg = Debug|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Debug|x86.ActiveCfg = Debug|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Release|Any CPU.ActiveCfg = Release|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Release|Any CPU.Build.0 = Release|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Release|Mixed Platforms.ActiveCfg = Release|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Release|Mixed Platforms.Build.0 = Release|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Release|x86.ActiveCfg = Release|x86
-		{101DB4CD-090C-44CE-9D19-C6EA941D2DCF}.Release|x86.Build.0 = Release|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Debug|Any CPU.ActiveCfg = Debug|x86
-		{27F00801-BEAE-417F-9CF5-5686923F7538}.Debug|Any CPU.Build.0 = Debug|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Debug|x86.ActiveCfg = Debug|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Debug|x86.Build.0 = Debug|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Release|Any CPU.ActiveCfg = Release|x86
-		{27F00801-BEAE-417F-9CF5-5686923F7538}.Release|Any CPU.Build.0 = Release|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Release|Mixed Platforms.ActiveCfg = Release|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Release|Mixed Platforms.Build.0 = Release|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Release|x86.ActiveCfg = Release|x86
 		{27F00801-BEAE-417F-9CF5-5686923F7538}.Release|x86.Build.0 = Release|x86
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Debug|Any CPU.ActiveCfg = Debug|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Debug|x86.ActiveCfg = Debug|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Release|Any CPU.ActiveCfg = Release|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Release|Any CPU.Build.0 = Release|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Release|Mixed Platforms.ActiveCfg = Release|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Release|Mixed Platforms.Build.0 = Release|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Release|x86.ActiveCfg = Release|Win32
-		{8B795758-E384-40C7-9BAA-12E70FFB5C71}.Release|x86.Build.0 = Release|Win32
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Debug|Any CPU.Build.0 = Debug|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Debug|x86.ActiveCfg = Debug|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Debug|x86.Build.0 = Debug|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Release|Any CPU.ActiveCfg = Release|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Release|Mixed Platforms.Build.0 = Release|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Release|x86.ActiveCfg = Release|x86
+		{6BFB8E06-5036-4FC5-B189-14D7DBC4404F}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE


Attachment: [text/bzr-bundle] bzr/reggie.burnett@oracle.com-20110124152826-1xrgeprrxg7ww41t.bundle
Thread
bzr commit into wex-installer-1.0 branch (reggie.burnett:258) Reggie Burnett24 Jan