For licensing reasons this particular application cannot be deployed into our cloud environment - so I've been evaluating what options are open from various perspectives.
- Operating System
 - Fixed to the same as other services running from the same machine.
 - Language level
 - Possibly tied to the same as existing applications - unless we can tweak chef provisioning to support multiple versions (maybe simple?).
 - Application server
 - Hopefully completely flexible, which should allow us to use the embedded approach.
 - Dependency injection framework
 - Hopefully completely flexible, although the main library dependencies are very Spring oriented.
 - Slight preference for UtterlyIdle as that matches the other components.
 - UPDATE: Due to the tight coupling of a third party library, a selection of Spring framework dependencies are bundled in the application and will be required at runtime.
 - Build system
 - Relatively flexible, but easiest with something that plays nicely with dependency management - leaning towards Gradle rather than Maven.
 - Continuous Integration and deployment
 - Need to decide between Go and Jenkins.
 - Likely to involve scp and shell scripts.
 - Monitoring and logging
 - Although this environment will have easier file system access than our cloud setup we should log to the logging service.
 - We could expose JMX profiling for monitoring of memory usage etc. on our internal monitoring infrastructure.