Gld Concepts
Internal
Load Driver Instance
A load driver instance runs inside a Java virtual machine executing a control loop on the main thread.
Error Handling
The main LoadDriver loop is not supposed to throw any exception, all exception will be handled internally, and they will be logged at stderr or sent to the log file, depending on how the load driver logging is configured.
Store
The store is the ... used to save the key generated during a load run, so they can be accessed later. Most commonly, it is implemented as local file storage.
Store types: in-memory, hierarchical, etc. A fully qualified class name can also be specified - the corresponding key store will be instantiated if the implementation is found on the class path. Also see store configuration.
Extension
An extension contains a specific Service implementation that delegates to actual service libraries. The Service implementation and associated classes contain implementation-specific details essential to connect to, and interact with the target service.
Extension Name
The extension name, which is configured as "service.implementation.name" in the gld configuration file, should be as close as possible to the original product nomenclature. For example, the extension providing a Service implementation for JBoss DataGrid is named "jboss-datagrid" (this is how JBoss DataGrid distributions are named)
It is possible to have several extensions for the same product, if the product introduces incompatible API changes between (usually) major versions. This is the case for JBoss DataGrid, so there is a jboss-datagrid-6 and a jboss-datagrid-7 extension. The corresponding extension JARs are jboss-datagrid-6-<extension-version>.jar and jboss-datagrid-7-<extension-version>.jar.
In the rare cases where minor upgrades introduce incompatible API changes that renders a specific extension inoperable with that product version, a new extension can be released, and the name of the extension includes the name of the minor release of the product that introduced the incompatible API change. Hypothetical example: jboss-datagrid-7.5-<extension-version>.jar.
For details on how to configure an extension, see the service implementation configuration section. For details on how to implement a new extension, see the gld Extension Development article.
Target Service Client Libraries
The GLD extension JAR does never embed product client libraries. gld can be configured to use the client libraries available in the operational environment (see "Configuring Client Libraries Available in the Operational Environment )" or those shipped with the gld distribution, as separate JARs, the way they were released by the vendor (see "Specifying Client Libraries Shipped with the gld Distribution").
Client Libraries Shipped with the gld Distribution
TODO: replace with real examples, when ready.
$GLD_HOME | +--- extensions | +-- jboss-datagrid-7 | +-- jboss-datagrid-7-1.0.0.jar | +-- 7.0.0 | +-- ... vendor-jar-1.jar +-- ... vendor-jar-2.jar
Extension Classpath
All extensions and client libraries shipped with a gld installation are added to the extension class path, which is built dynamically by recursively looking up JARs available under the $GLD_HOME/extensions directory.