Skip to main content
Version: Release Next

Plugin Classloader

Digital.ai Release runs on the Java Virtual Machine (JVM) and has two classloaders: one for the server itself, and one for the plugins and extensions. A plugin can have a .jar extension. The JAR format is a ZIP archive that bundles a plugin with all of its dependencies.

To install or remove a plugin, you must stop the Digital.ai Release server. Plugins that are installed or removed while the server is running will not take effect until it is restarted.

Server classloader

The Digital.ai Release server classpath contains resources, configuration files, and libraries that the server needs to work. The default Digital.ai Release server classloader will use the following classpath:

DirectoryDescription
XL_RELEASE_SERVER_HOME/confFor configuration files.
XL_RELEASE_SERVER_HOME/hotfix/lib/*For server hotfix JARs.
XL_RELEASE_SERVER_HOME/lib/*For server library JARs.

You can configure these directories in XL_RELEASE_SERVER_HOME/conf/xlr-wrapper-linux.conf or XL_RELEASE_SERVER_HOME/conf/xlr-wrapper-windows.conf.

Plugin classloader

In addition to the Digital.ai Release server classloader, there is a plugin classloader. The plugin includes the classpath of the server classloader. It also includes:

DirectoryDescription
extDirectly added to the classpath and can contain classes and resources that are not in a JAR file.

The plugin classloader also scans the following directories and adds all *.jar files to the classpath:

DirectoryDescription
XL_RELEASE_SERVER_HOME/hotfix/plugins/*Can contain hotfix JARs for plugins.
XL_RELEASE_SERVER_HOME/plugins/*Contains installed plugins.

These paths are not configurable. The directories are loaded in the order that they are listed. This order is important: hotfixes must be loaded before the code so that they can override the server behavior.

caution

From Digital.ai Release version 10.2.0 and later, the plugin classpath is managed internally by the Plugin Manager. Do not add plugin-related directories such as hotfix/plugins, plugins/__local__, or plugins/xlr-official to the xlr-wrapper-linux.conf or xlr-wrapper-windows.conf files. If these entries are present, the server logs an error at startup and may not start correctly.

For more information, see Plugin Manager.