10

At the company I work, we have a product that for all intents and purposes could be called consultingware. It's a platform for EDI with quite a few moving parts. The back-end is an ESB written in Java SE, the front-end is a Java EE application running on GlassFish, the database is typically on an MSSQL server and RabbitMQ is used as queueing middleware. It's domain-agnostic in the sense that different message models and mappings can be deployed. Setting up a new environment tends to take quite a while, but a lot of it are mundane tasks that could easily be automated by filling in the right parameters and running scripts. T-SQL for the database, asadmin scripts on GlassFish, and the ESB configs are XML, so an XSLT transformation on a template would do the job.

This is never going to become a simple installation, but having an "installer" that does most of the work for you, lists prerequisite steps, presents the user with a convenient way of supplying necessary parameters, generating some scripts and putting things in place would be nice; even if only the devs ever use it, it would make life easier. Although the software is technically platform-independent, it tends to be run on Windows Server.

Just making a Java application that does the above wouldn't be very difficult, but rather than reinvent the wheel (and make a probably very ugly GUI) I'd like to see if any existing solutions fit the bill. InstallShield and Inno Setup look promising. So the question is, which existing tool could provide the following, or alternatively, is making something from scratch worth it?

  • Call other executables or installers (for GlassFish, for example).
  • Run shell scripts (for the asadmin setup).
  • Connect to a (MSSQL) database and run scripts.
  • Perform XSLT transformations (could be via a Java method call/jar execution).
  • Set up services.
  • Maybe have some way of checking if prerequisites are fullfilled (check if GlassFish is installed, RabbitMQ, DB is accessible...)
G_H
  • 11,739
  • 3
  • 38
  • 82
  • The [help/on-topic] clearly says *Questions asking us to recommend or find a book, tool, software library, tutorial or other off-site resource are off-topic for Stack Overflow.* What part of that is difficult to understand, so we can try to make it more clear to others in the future? – Ken White Sep 10 '16 at 01:13
  • @KenWhite Perhaps I'm misinterpreting you, but that seems a slightly rude and condescending way of telling someone that. Or do you actually wanna know how to spotlight the help topics better? Can I rephrase this question as "should I stick with tools or roll my own" and remain on-topic? – G_H Sep 11 '16 at 13:48

1 Answers1

3

FWIW, you can do all of those things from an MSI. There are a number of tools out there that make the process easier. I use a free one called MAKEMSI that is excellent: http://dennisbareis.com/makemsi.htm

Daniel Wisehart
  • 1,489
  • 12
  • 31