Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8221333

Replace Inno Setup with custom MSI wrapper for .exe bundler

    Details

    • Subcomponent:
    • CPU:
      generic
    • OS:
      windows

      Description

      jpackage supports two types of installers for Windows platform: .msi and .exe.
      jpackage uses WiX to produce .msi installers and Inno Setup to produce .exe installers.
      Support for two different tools producing installers for one platform (Windows) doesn't look like an optimized approach.

      The suggestion is to get rid of Inno Setup.

      Primary reason to prefer WiX over Inno Setup is that Inno Setup doesn't produce Windows Installer compatible installation packages while WiX does. See http://www.jrsoftware.org/isfaq.php#msi.

      Considerations to have only one 3rd party tool to build installers:
       - Simplify creation of custom actions in installers.
       - Simplify implementation.
       - Reduce dependencies on 3rd party tools.

      However with Innor Setup removed exe installers will still be supported.
      Suggested solution is to wrap msi installer created with WiX into an exe file.
      A template exe file with a placeholder for msi file in its resources will be compiled and embedded in jpackage at JDK build.
      At run-time, when jpackage is requested to produce exe installer, it will produce msi installer and insert it at msi placeholder of the template exe.
      Functionality of template exe will be to extract msi file from resources into a temporary directory and run msiexec on it.
      Template exe should pass all command line arguments to msiexec as if msiexec is launched directly.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                asemenyuk Alexey Semenyuk
                Reporter:
                asemenyuk Alexey Semenyuk
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported: