Introduction
The Clarive plugin system is the official way of extending the product. Every official entry point into the product should be available to plugins.
Plugin locations¶
There are 2 directories where plugins can be kept:
- under the
CLARIVE_BASE/plugins
directory, intended for user-created, installation-specific or public-available downloable plugins. - under the
CLARIVE_HOME/plugins
directory, where only product propietary plugins are kept.
Overwriting plugins¶
Public plugins can overwrite product plugins at anytime, as public plugins have precedence over product ones.
To overwrite a product plugin, just create a plugin with the same name as the private ones and overwrite them.
NOTE - overwriting product plugins may lead to unstable behaviour. In most cases, it's better to just use a different module/library name.
Plugin directory structure¶
The plugin system loads files from a predefined folder structure. The folder structure determines where and when the plugin files will be loaded, but it does not determine what the exact contents of the loaded file will have.
This is the directory structure:
plugin/modules
- modules that can be required on demand by the Clarive JS DSL with the functionrequire()
plugin/init
- code executed at startup, that can load Resource classes or register menus, actions and other structural codeplugin/forms
- Web JS forms that can be used in the interfaceplugin/rules
- Rule DSL that can used independently or as part of a program
What happened to Clarive Features?¶
Features are still there. They remain as the Clarive provided lab additions to the product.
The feature system is not intended for general availability and customization and any features added to the product are not officially supported unless previously agreed up.
The feature system is totally separate from the plugin system, with a different directory structure, hook points and language.