midPoint Deployments Using Overlays

Published on: May 2, 2019
Misagh Moayyed, Senior Software Developer

midPoint logoThere are multiple strategies to build, customize and deploy Evolveum's midPoint. The midPoint GUI web application can be downloaded independently and put inside a servlet container such as Apache Tomcat. In newer versions of midPoint, you can also simply run the web application using an embedded Apache Tomcat servlet container, customized and managed by the underlying Spring Boot framework.

Of course, deployment scenarios and use cases are not always so simple.  You might need customizations that require you to develop extensions or modifications of some core midPoint component. In these situations, using an overlay project offers the most advantages. Overlays are a strategy to combat repetitive code and/or resources. Rather than downloading the entire codebase and building from source, overlays allow you to download a pre-built vanilla midPoint web application provided by the project itself and override/insert specific behavior into it.  The customizations may be configuration files, web resources (HTML, CSS, images) and even Java code. As such, the overlay contains only the customized files and those that are unique to your deployment and can be easily tracked and maintained in a version control system. The download, build, and repackaging strategies of customized artifacts is often controlled by a build tool such as Apache Maven where the process is facilitated through automation as much as possible.

The midPoint project itself presents an overlay project built using Apache Maven, with specific branches dedicated to midPoint versions. Unicon has also developed a similar project using the Gradle build tool to take advantage of advanced build features such as dependency management, incremental compilation, better build performance and caching, and more. The build is able to understand Maven repositories that host midPoint binary artifacts and also is able to repackage the application so that it can be executed in a standalone fashion via the embedded Apache Tomcat container and the likes of "java jar midPoint.war".

If you would like to learn more about this project and the feasibility of adopting it for your midPoint deployment, please reach out and contact Unicon for more information.

Misagh Moayyed photo

Misagh Moayyed

Senior Software Developer

Misagh Moayyed is a former senior software engineer at Unicon Inc., focusing on  Identity and Access Management solutions. After graduating with a degree in Applied Computer Science and German Linguistics from Arizona State University, Misagh moved to Sweden to continue with his Master's degree in Software Engineering at Blekinge Institute of Technology. He completed his degree in 2012, publishing a thesis on experimental evaluation of test driven development. Projects in which Misagh has been involved include the Central Authentication Service (CAS) and uPortal.