Description
Now that JDK8 supports auto-update of 64-bit JRE's, the 64-bit JRE wrappers must bundle up the 32-bit au.msi/cab product. The auto-update product is currently 32-bit only, so it is built only as part of the windows-i586 build. Because of the other combos that exist in the install build, the 32-bit build already has to wait for the 64-bit build to finish before finishing itself (it bundles up a 32-bit msi and 64-bit msi as part of a combo wrapper). So we can't just have the 64-bit build wait for the au elements of the 32-bit build. You'd have a deadlock of builds waiting for each other when combos are turned on.
The solution our team came up with is to have the 32-bit wait for more elements from the 64-bit build. We created new64 wrappers which would wait for the 64-bit wrappers to finish, and then bundle up that and AU. This approach is problematic in a few ways:
-it leads to confusion with internal-only 64-bit exe's
-it doesn't build the real world 64-bit wrappers unless combos are turned on
-it makes the builds take way longer when combos are turned on
-it is a ton of work to maintain the additional 2 wrapper codebases
The better solution is much simpler. Just build the 32-bit AU product as part of the 64-bit build. You can build a 32-bit subproject like AU during a 64-bit build. By doing this, the au product built during 64-bit builds should be identical to the au product built with the 32-bit build. We no longer need special new64* wrappers
The solution our team came up with is to have the 32-bit wait for more elements from the 64-bit build. We created new64 wrappers which would wait for the 64-bit wrappers to finish, and then bundle up that and AU. This approach is problematic in a few ways:
-it leads to confusion with internal-only 64-bit exe's
-it doesn't build the real world 64-bit wrappers unless combos are turned on
-it makes the builds take way longer when combos are turned on
-it is a ton of work to maintain the additional 2 wrapper codebases
The better solution is much simpler. Just build the 32-bit AU product as part of the 64-bit build. You can build a 32-bit subproject like AU during a 64-bit build. By doing this, the au product built during 64-bit builds should be identical to the au product built with the 32-bit build. We no longer need special new64* wrappers