By bytor on May 14, 2007
A while back our team began to re-architect a somewhat painful part of the experience of Java Enterprise System: the integrated installer. The problems that Sun and our customers faced were becoming more and more apparent and costly. We are not finished yet, but a big piece of the solution has become reality: the openInstaller. This open-sourced project has recently been released under the GlassFish banner as a solution to the problem of integrating a large set of disparate products together into a unified install and ongoing software management experience. We have started the openInstaller community, and (as with most open source projects) hope to build it with members who can contribute to the project and make it even better (and fix its problems, of course).
Many of its features are obvious for software installers, but there are a number of innovative approaches that separate us from the crowd:
- Fully declarative engine
- Expressive and consistent configuration syntax
- Interfacing with product configurators
- GUI/CUI parity, for free
- Multi-install aware
- Simple, yet very powerful and intuitive dependency model
- Excellent data/logic separation
- Default "best effort" behavior
- Completely modular, easily debugged in the field
There are many other features that are sort of "must-haves" (e.g. JDK detection, progress reporting, upgrade/uninstall, logging) which other team members are writing about. There is also tooling on top of this framework which makes the creation and maintenance of integrated installers a pleasure. See the tooling demo and download it and try it yourself! I'll try and expand upon some of the more interesting features in future writings.