MidPoint Customization With Maven Overlay Project
Overlay project feature
This page describes configuration of Overlay project midPoint feature.
Please see the feature page for more details.
|
Introduction
There are many ways how to customize midPoint behavior. MidPoint is designed with practicality in mind and therefore the most frequent customizations can be done by configuration. But it is not possible to make everything configurable. Some customizations require extension or even modification of midPoint code.
This page describes how to set up and maintain an overlay project that contains midPoint customizations.
How Overlay Works?
MidPoint packaging was migrated from WAR to JAR in 4.6. Previously it was based on Maven WAR Overlay
mechanism combined with Spring Boot repackaging.
Overlay project took the With JAR packaging, only the Spring Boot repackaging is used. The following text only covers the JAR overlay mechanism now. |
Overlay projects creates a new midPoint binary distribution (midpoint.jar
) with your customizations added to it.
The customizations may be configuration files, web resources (HTML, CSS, images) and even Java code.
The overlay can also override stock midPoint files and classes and replace them with custom versions.
The overlay project contains only the customized files. There is no need to copy stock midPoint sources and even binaries. The Maven will download everything that it needs directly from Evolveum repositories. As the overlay project only contains customizations it can easily be maintained in a version control system.
The overlay project effectively does the same stuff the internal midpoint-jar module does.
It takes admin-gui
and all the other midpoint modules and packages them as Spring Boot JAR.
The new JAR "overlay" contains only your stuff directly in the JAR (inside its BOOT-INF/classes
directory).
Everything else is under WEB-INF/lib
only as JAR dependencies.
There is one thing you have to take care of that the There you go, banner resurrected! |
Example Overlay Projects
Following overlay examples are maintained by midPoint team for demonstration and documentation purposes:
-
Basic Evolveum/midpoint-overlay-example - this one serves two purposes:
-
It provides simple GUI customization example, see README for its description.
-
It documents midPoint overlay development in general, including points like schema extension and custom initial objects.
-
-
Evolveum/midpoint-custom-soap-service-wsdl with CXF-based SOAP web-service. This demonstrates overlay as a part of Maven multi-module project. README provides quick hints about using CXF for SOAP web-services on topics like WSDL vs code-first, WS-Security and how to use midPoint authorizations.
-
Evolveum/midpoint-custom-soap-service is simplified SOAP web-service using code-first approach using basic authentication from midPoint.
-
Finally, there is Evolveum/midpoint-custom-rest-service showing REST service also implemented with CXF, but from version 4.2 also experimental (but much simpler) Spring MVC endpoint.
Overlay development
Development document is now part of the basic overlay example - see midPoint overlay development. It describes how to build and run the project (including IDE), how to develop against fresh snapshots, how the MidPoint Home Directory customizations and initial-objects customizations work.
The document also includes overlay upgrade notes (starting with upgrade to midPoint 4.1).