This section describes the deployment of the solution that you have developed and tested in an integration or a production environment. While this concentrates on the solution deployment onto an already installed UltraESB instance in this chapter, please refer to the Deployment Guide on how to do a production deployment of the UltraESB server.
Once the testing and iterative development of the solution is complete, most of the time that solution will be deployed into an integration server. An integration server is nearly equivalent to the production setup that the solution is planed to be launched.
Since we have done the development on the IDE itself within an UltraESB project first thing is to identify the deployable artifacts that we need to move.
First and the most relevant artifact is the deployment unit, which contains one or more configurations files including "ultra-unit.xml" and optionally third party or custom libraries and compiled classes
If you have any custom beans placed at "ultra-custom.xml", you should include that.
The root configuration file "ultra-root.xml" needs to be migrated with care
Any files like script files, Java source files
If you look at these files carefully, apart from the jar files containing any byte code (class file) sequence and third party libraries if there are any, rest of the files are all in the conf directory or a sub directory of the conf directory of the UltraESB installation directory.
The migration from the development setup to the integration or into production can be done with keeping history by using a version control system. All configuration files being XML and source files (which are text files) best option is to use SubVersion, JIT, or Mercurial repository to commit all the configuration files.
Source control based configuration management
Source (version) control systems provide many advance features to manage the configuration management of UltraESB as most of the configuration files are text files. The configuration updates and continues development using the version control system makes it a smooth process to mange multiple versions of configurations without mixing the thing in development, integration and production.
Then from the integration deployment, you just need to take a checkout of the repository, which will automatically update the relevant configuration files.
Once the integration setup is done based on a version control system, the process of updating the configurations etc.. is going to be very convenient and natural, as the development environment can use a trunk to develop and the production deployments can use a stable tag to deploy on production and managing production updates.
More information on production deployment and configuration management can be found under the Deployment Guide.