Skip to content

Evolveum/midpoint-overlay-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

midPoint Overlay Example

MidPoint overlays allow to heavily customize midPoint without the need to modify midPoint source code. This example serves two purposes:

  • to showcase simple GUI customization with a couple of new forms;

  • to be the canonical example for overlays, documenting the changes between versions, etc.

This example is described in this README below.

Following generic overlay points are documented in separate documents in this project:

Other overlay examples managed by Evolveum:

  • Custom SOAP service with contract-first (WSDL) approach and WS-Security authentication (based on CXF).

  • Custom SOAP service with code-first approach only using midPoint built-in basic authentication (based on CXF).

  • Custom REST service with CXF-based REST and (since 4.2) experimentally also simplified Spring MVC based REST endpoint.

Additional information about midPoint customizations with overlays are also available at this documentation page.

Recent overlay changes

Changes for midPoint 4.8:

  • Adding selfProfilePage to admin gui configuration of 900-role-superoperator.xml.

Changes for midPoint 4.7:

  • None.

Changes for midPoint 4.6:

  • Spring Boot version 2.7.3 is used.

  • Overlay was overhauled to support JAR packaging instead of WAR packaging, that is not available anymore.

  • See also Release notes for midPoint 4.6.

Changes for midPoint 4.5:

  • Scanning for GUI components is now more focused and overlays using custom GUI components (like those annotated @PanelType in this project) need to tell midPoint what other packages to scan. See Customizing classpath scanning in Admin GUI Configuration guide for more information.

  • For other changes see Release notes for midPoint 4.5.

Changes for midPoint 4.4.2:

  • More focused GUI component scanning was introduced in 4.4.2 as well, see the note in 4.5. This change was incorporated into support-4.4 branch of this overlay example.

Changes for midPoint 4.4:

  • Spring Boot version 2.5.2 is used.

  • Both Java 11 and 17 can be used for building and running midPoint and midPoint overlays.

  • Admin GUI configuration was changed significantly.

  • Spring Boot repackage now again uses custom layoutFactory based on midpoint-boot-layout (see the POM file). This encapsulates implementation details around setting the midpoint.home and loading custom libraries from ${midpoint.home}/lib.

  • See also Release notes for midPoint 4.4.

Since 4.6, JDK 17 is now used for overlays just as recommended for midPoint.

This overlay example

Building and running

To build this example use JDK 11 and run (in the root of the repository):

mvn clean package
java -jar target/midpoint.jar

Wait until the midPoint starts - you can check the progress in another terminal with:

tail -f ~/midpoint/log/midpoint.log

To run in an IDE choose com.evolveum.midpoint.web.boot.MidPointSpringApplication as the main class. Be sure to add "provided" scope to the classpath in the run configuration.

Customized GUI forms

To see the customized forms:

You will see the completely customized form (implemented in ExtendedFormFocusTabPanel):

custom form user

There is also the custom form for editing an organization (class ConfigurationTableTabPanel):

custom form org

Read Admin GUI Configuration guide for more information about GUI customization. Notice also src/main/resources/application-default.yml file that configures additional packages for GUI component scanning which is necessary since versions 4.5 (and 4.4.2 for LTS version). See Customizing classpath scanning in Admin GUI Configuration guide for more information.

Schema extension and initial objects

This overlay demonstrates usage of both custom schema extension and custom initial objects.

For details see the respective sections in Overlay development.

About

Example of a custom midPoint project using maven war overlay

Resources

License

Stars

Watchers

Forks

Packages

No packages published