This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
My company is writing a Java Web application and we're looking for an installer.
Today, all is done "by hand".
We need to :
- Install the JRE if not present - Install an application server (Tomcat) if not present - Connect to a DB Server (must be present) and create a DB - Configure the application (db connection, log files,...) and deploy it.
In the future, we'll need to be able to deploy the application on multiple application servers (Websphere, JBoss, ...)
Does somebody know a product that can do all this work ?
At first I though you were talking about installing on a CLIENT machine. But you're looking to automate provisioning a server.
This sort of work is quite OS-dependent. On a Red Hat machine, you can install the JDK from an RPM. On other Linux machines, you can "wget" and explode the tarball. On Solaris, it comes as part of the Sun package set. For Windows, you take what you can get. Microsoft isn't especially interested in making it easy.
Tomcat installation is easier. You can explode the ZIP file or use an install package, though the Solaris 10 package is hideously obsolete.
Database installation is in some ways the most challenging of all, since you may not want to install a database client program such as SQL*Plus on a production webserver box. In a lot of shops, this task is handed off to a DBA.
App deployment is where things get easier. There are a number of ways to deploy apps to Tomcat, spanning the gamut from jamming in a WAR file to TOMCAT_HOME/webapps and taking defaults to remote deploying via a JSR88 client with a WAR + deployment descriptor. You can also upload and deploy WARs in Tomcat via the Tomcat management webapp (exception: Tomcat 5.0.30, which has a broken management app).
I've done all of these in a multitude of ways, but each shop has its own quirks, so which specific technique I'd use depends more on what the business is interested in than on the One True Way.
An IDE is no substitute for an Intelligent Developer.