WildFly module identifiers: slots and conventions

Note that the Hibernate ORM modules coming with WildFly will remain untouched: you can switch between the original version and the new version from the ZIP file as needed as a matter of configuration. Different applications can use different versions.

The application server identifies modules using a name and a slot. By default, the module org.hibernate:main will be used to provide JPA support for given deployments: main is the default slot and represents the copy of Hibernate ORM coming with WildFly itself.

By convention all modules included with WildFly use the “main” slot, while the modules released by the Hibernate project will use a slot name which matches the version, and also provide an alias to match its “major.minor” version.

Our suggestion is to depend on the module using the “major.minor” representation, as this simplifies rolling out bugfix releases (micro version updates) of Hibernate ORM without changing application configuration (micro versions are always expected to be backward compatible and released as bugfix only).

For example, if your application wants to use the latest version of Hibernate ORM version 5.4.x it should declare to use the module org.hibernate:5.4. You can of course decide to use the full version instead for more precise control, in case an application requires a very specific version.