Gld Extension Development: Difference between revisions
Line 24: | Line 24: | ||
=Extension Name= | =Extension Name= | ||
The extension name, as described | The extension name, as described in the [[Gld_Concepts#Extension_Name|gld Concepts - Extension Name]] section, must be specified as the "extension.name" property in the extension project POM: | ||
<pre> | <pre> |
Revision as of 18:33, 19 January 2017
Internal
Overview
Extensions are developed independently of the core, which include API and the load driver. Once a new core version has been released, the extensions that wish to use it should update their <gld.api.version>...</gld.api.version> in the topmost POM.
To get to the work area of an extension (jboss-datagrid-7 in this case):
cdgldjdg7
cd projects/gld/extensions/<extension-name> release snapshot
The above will build the extension and install it in $RUNTIME_DIR/gld/extensions.
The location of the installation directory can be configured in <extension-name>/.nort/project.yml, as "install/installation.directory".
Extension Name
The extension name, as described in the gld Concepts - Extension Name section, must be specified as the "extension.name" property in the extension project POM:
<project ...> ... <properties> <extension.name>jboss-datagrid-7</extension.name> ... </properties> ... </project>
The POM "extension.name" property is the authoritative source of information for extension name, and it will be inferred from it everywhere extension name is necessary.
For simplicity, it is recommended that the extension top-level directory of the extension project has the same name as "extension.name".
Extension Version
Use a variant of the procedure described here Nova Ordis Utilities Version Metadata Handling, with the difference that the resource file has an extension-specific name (example: "jboss-datagrid-7-extension-version") and call VersionUtilities.getVersion(<extension-specific-resource-file-name>) instead.
The Release Process
An extension source tree is completely independent of core. The only relationship is the API version specified in the extension's POM file.
The release process should be as simple as:
release snapshot|minor|...
nort will install the extension into the local gld deployment.