Embedded Java Configuration can be Difficult
Embedded java configuration files can present some problems when you begin your journey into Continuous deployment. Keeping track and knowing whats in them is just the beginning of the confusion. Continuous deployment requires that you hammer out all of the low level, gritty details of your deployment process, including the management of your embedded java configuration files. This means you will be faced with the challenge of managing changes in your configuration files as they move across the pipeline. Things like loglevels, connection pools, xml-files and .properties, need different versions depending on the state of your continuous delivery pipeline.
Eventually, everyone figures out a way to deal with these embedded java configuration updates but none are elegant. Some teams offload as much of the embedded java configurations as possible to the application server, but then you must deal with server configuration settings outside your deployment process. Another approach is to replace the settings files programmatically before deploying. Some solutions even store multiple configuration files in the war for each state. As I indicated, none are elegant or automated solutions. Doing this relies on some really smart developers to keep it in order.
The good news, if you are using DeployHub, either the Open Source or Pro, you can build the management of your embedded java configuration files into your deployment logic. Check out this demo on how to address the problem of managing embedded java configurations across the continuous delivery pipeline, updated by continuous deployment.
Software deployments into mixed environments are complex. Correct component versions must be bundled into an application package version. The application version must be safely delivered onto all endpoints, whether cloud, container, virtual or physical. Multiple applications from different teams, database updates, IT infrastructure, and endpoint configurations must be carefully choreographed.
This requires an agile release process that is self-service, repeatable, and transparent, integrated into the continuous delivery pipeline, and allows each team to fully control their environments. DeployHub simply delivers a better way of doing release automation without the hype, and it is both open source and agentless.