An adapter’s manifest file identifies an adapter within the EdgeCore framework. It also specifies some dependency information to help prevent loading of an adapter that is incompatible with the EdgeCore installation to which it is being deployed. An example manifest:
{ "doClass": "ModuleManifestDO", "version": "2.0.0", "name": "testwebdata", "vendor": "edge", "vendorDescription": "Edge Technologies", "description": "An adapter for testing web data related functionality", "creator": "Peter Rabbit", "creationDate": "2016-11-21 08:00:00", "dependencies": [ { "doClass": "ModuleVersionDO", "name": "edgeData", "version": "2.0.0" }, { "doClass": "ModuleVersionDO", "name": "edgeWeb", "version": "2.0.0" } ] }
All fields are required, the details of which are listed in the table below.
Field | Description |
doClass |
Must have the value ‘ModuleManifestDO’ |
version |
Version of the module. This should follow the semantic versioning specification, as per http://semver.org/. This can include a pre-release version. This allows edgeCore to compare the versions of adapters, and prevent older versions from being installed on top of newer ones. |
name |
The unqualified name of the module. This is an identifier, and should normally be a relatively short, lowercase name that can be recognized. |
vendor |
An identifier for the vendor – normally just a lowercase version of the vendor’s name. Within edgeSuite, the adapter is normally referred to by its qualified name, which is formed by concatenating vendor and name with a ‘.’ character separator. In the example above, this would be edge.testwebdata. |
vendorDescription |
Normally just the full vendor name. This ends up being listed in the table of adapters in the EdgeCore administration interface. |
description |
A concise description of the adapter. Edge adapters by convention are described as ‘Support for versions a.b, c.d, e.f of <Application Name>’ |
creator |
Author of the adapter – informational. |
creationDate |
Date and time the adapter was created – informational. |
dependencies |
A list of the modules and their versions that this adapter version depends on. |
Dependencies
The module manifest contains a list of modules – mostly adapters – that this adapter depends on. If an adapter depends on files or types provided by another adapter, then it must be listed in the dependencies list in the manifest file. Any adapter listed must be installed, and of at least the version specified, as a precondition to installing the adapter – this is enforced by the EdgeCore server when the administrator attempts to load the adapter.
You will have noticed in the example above that two modules are listed that are not adapters – these are two internal modules that represent the core components edgeData and edgeWeb. The versions of these modules mirror the edgeSuite product version. At a minimum, web adapters will normally depend on edgeWeb, and probably the version of the product they were built against. If you want your adapter to be compatible with an earlier version, it is normally recommended that you develop the module against that version instead. Data adapters will depend on edgeData. The example above is for an adapter that implements web data connections, so it depends on both edgeData and edgeWeb – not strictly necessary, but makes things clearer.
Worth mentioning is that the versions in the dependencies list are compared without considering the pre-release tag so that adapters can be developed against a series of pre-release builds without having to constantly update the dependencies.