MidPoint 1.9 "Cronus"

Last modified 07 Dec 2022 14:12 +01:00

Release 1.9 is a third midPoint release code-named Cronus.

Release date25 October 2011
Release type Production release


midPoint 1.9 provides following features:

  • Basic provisioning (create, read, update, delete)

    • Support for expressions to determine account attributes

  • Integration of Identity Connector Framework (ICF)

    • Unified Connector Framework (UCF) layer to allow more provisioning frameworks in the future

    • Automatic generation and caching of resource schema from the connector

    • Local connector discovery

    • Support for connector hosts and remote connectors

  • Identity repository based on BaseX XML database

  • Live synchronization functionality

  • Support for XPath version 2 expressions

  • Enhanced logging and error reporting

  • Basic task manager component

  • Basic RBAC and assignments (beta quality)

  • Lightweight structure

  • Support for Apache Tomcat web container

  • Import from file and resource

    • Object schema validation during import (can be switched off)

    • Smart references between objects based on search filters


When compared to the previous version, Cronus is introducing following changes:

  • Automatic generation and caching of resource schema from the connector

  • Support for ICF connector pooling and operation timeout settings

  • Connector objects are stored in the repository

  • Local connectors are automatically discovered during system start

  • Support for connector hosts and remote connectors

  • Enhanced file import with smart reference resolution (using a search filter) and schema validation

  • Connector configuration schema is automatically generated from the connector

  • Improved repository, provisioning and model Java interfaces that are very close to final version

  • Clean up of XSD schemas as they are being stabilized.

  • Logging switched to logback which provides numerous advanced features.

  • Unit test implementation switched to TestNG and considerable number of new tests were added.

  • Performance optimizations


Release 1.9 (Cronus) is intended for pre-production use. Most of the features are stabilized, well tested and can be deployed in production use. However some of the features are only in beta state and more testing is needed to stabilize the system. Generally, this version should not be used in production except for a very simple cases. Please consult with the development team to learn the details. The next release (2.0) is aiming at a production quality system.


midPoint is roughly based on OpenIDM version 1. When compared to OpenIDM v1, midPoint code was made significantly "lighter", removing some of the "dead meat" that accumulated over the year of hectic OpenIDM development. The code was also stabilized, the tests were fixed and the complete development process was brought back to a reasonable shape. The most significant changes are with regard to OpenIDM trunk in early 2010:

  • Removed OpenESB: OpenESB is a dead project and the hope of reviving it is very low. OpenESB was slowing down OpenIDM development from the very beginning. This does not mean that midPoint cannot be used in "ESB" environment. Just the approach was changed to decouple these technologies. midPoint is provided in a for of simple Java web application (WAR) based on Spring.

  • Removed Glassfish dependency: midPoint is no longer dependent on a specific application server. The primary development and testing platform is now Apache Tomcat.

  • Simplified build: The build system was completely revamped. The new build system is much simpler and based on a "pure" maven without any hacks.

  • Fixed unit tests: The unit tests were reviewed, deprecated unit tests were removed and the tests that are still needed were fixed. The tests would deserve better cleanup, but they are all passing now. And that’s how it shall remain from this point on.

  • Architecture update: New wiki was created with an up-to-date information on current midPoint implementation and also the design. The UML models were updated as well, removing unnecessary components exactly as it happened in the code.

  • Refactoring of vital components: IDM Model, provisioning and repository were significantly refactored for a better code structure and improved readability.

  • Improved GUI: The GUI has been improved for usability.

  • Error reporting: Errors are displayed more sophisticated composite result GUI.

  • Logging: Logging subsystem was switched to logback, has support for MDC-based subsystem marking, the log messages were cleaned up.

  • Resource Schema: Resource schema is automatically generated.

  • Connector and Connector Host: Connectors are described by repository objects, including generated connector schema. Connector hosts are supported.

For the full project background see the midPoint History page.

Known Issues

  1. The RBAC and assignment implementation is in beta quality. Basic things are in place, but the implementation should not be used in production yet. The purpose of the implementation is to validate design concepts of RBAC and see its usability.

    • The RBAC can only assign accounts. It cannot enforce account attributes and it does not delete the accounts when unassigned.

    • The RBAC GUI is limited to assign roles to users and other roles. The "create role" or any other functions do not work. Please create and edit the XML role objects directly in the repository using the "Configuration" pages for now.

  2. When application server is restarted during session, some tabs stop working until logout/login MID-384

  3. Values that are generated using outbound expressions are not marked in the GUI MID-479

  4. There is a JAXB issue that is causing problems if a content of an QName is not well qualified, e.g. if it does not have a proper namespace prefix. The sympotoms are that midPoint seems to think that a part of an object is not there although it is there. E.g. the problem may appear as following log message:
    Account construction in user template (OID:c0c010c0-d34d-b33f-f00d-777111111111) must have resource or resourceRef defined.

The solution is to double-check that all QNames are valid. In this case the problem was caused by this:
<i:resourceRef oid="c0c010c0-d34d-b33f-f00d-333111111112" type="ResourceType"/>

which should correctly be defined with an "i" prefix as:
<i:resourceRef oid="c0c010c0-d34d-b33f-f00d-333111111112" type="i:ResourceType"/>

The problem was reported to the JAXB team (JAXB-833) but it was not yet resolved.

  1. Password policy is not implemented. The password policy that was supposed to be part of OpenIDM version 1.9 is NOT fully supported in midPoint. The password management functionality is partially implemented, but not finished and not tested well enough for the release. It was moved out to a next release.

  2. Password reset is not implemented

  3. Resources wizard in GUI is just scratch and not working now

  4. Roles screen in GUI is just scratch and not working now

  5. Objects edit through Debug pages is buggy. We recommend to edit objects by re-importing them. One of the problems is described in MID-437. The functionality will be fixed in later release, when we implement new diff algorithm (MID-399).

  6. One of the original goals of this release was "production-quality" system. However, this goal seems not to be reasonably possible to meet due to change of priorities during iterations and other reasons. We have chosen to prefer moving the production-quality target to the next release (2.0) instead of postponing the release any further. We have chosen to release the product in the current state as the quality is acceptable for some uses of the system and vast majority of the release goals were met.