The meta information used to create an extension is stored in an XML-based format. Within this file, the information required to run the extension is listed.
The extension.xml file, found in the directory of the extension, contains basic and vital information about the extension itself. This information is stored in tag elements and is used to create the ExtensionInfo object.
A lot of the basic data is created automatically when creating the extension through Dev Studio.
The tag elements included in extension.xml are:
Tag | Description |
<main> |
Main package where extension.cm is located. |
<name> |
Official name of the extension. This name is displayed under extension details. |
<type> | Deprecated. Defaults to extensionType.catalog. |
<version> |
Current version number. Consists of 4 parts: Major.Minor.Revision.Build. When CET checks for updates for an extension, the current version number (build excluded) is compared with the version on MyConfigura. A higher version number available on MyConfigura will trigger an update. Minor and revision are limited to [0, 255]. |
<parent> |
Used when creating sub extensions to define the tree structure in extension details. Omitting this tag will place the extension on the top level. Enabling a parent extension will enable all sub extensions as well. |
<cvm-version> |
Current compiler version. Only used in extension.xml<runtime> to verify that core is running a compatible compiler version. |
<packages> |
List packages within this directory that make up this extension and should be included in builds. Packages containing things such as test code can be omitted here. |
<extension-dependencies> |
Extensions outside the current extension directory that will be enabled when this extension starts. (has version policy checks, makes dependencies unsnoozable) |
<embedded-catalogs> |
Listed catalogs (db3 files) will start to download when the extension is enabled.
|
<embedded-catalog-settings> |
Only used in develop mode.
|
<security-delegates> |
Extension to delegate permissions from. Omitting this tag will default to cet.designer. In the example of Fika, custom.fika.office has custom.fika listed as security delegate meaning a license to custom.fika is required to enable the sub extension custom.fika.office. |
<security-requirements> |
Other permissions that are needed to enable this extension. Example: if custom.dataCatalog is listed as a security requirement, this extension will only be enabled if the user has an active license for custom.dataCatalog. |
<category> |
Deprecated. |
<group> |
Name of the group to list the extension under when creating a build. Omitting this tag will add this extension to a group named after the parent's package. If no parent is defined, a group will be added named after the main package. |
<bundle-install> |
Same as <extension-dependencies> but without version policy checks, and dependencies are still snoozable. |
<bundle-uninstall> |
Listed extensions will be uninstalled when this extension is installed. Only works when the extension is downloaded and installed from MyConfigura, not for drag and drop installation. |
<unsupported-platforms> |
Extension will not be installed for listed platforms (e.g. win32). |
Example
<?xml version="1.0" encoding="iso-8859-1"?> <extension-info> <main>custom.fika.office</main> <name>Fika: Office</name> <group>[fika]</group> <version>11.0.18.0</version> <parent>custom.fika</parent> <packages> <package id="custom.fika.office" /> <package id="custom.fika.office.reports" /> </packages> <extension-dependencies> <dependency id="cet.designer" /> <dependency id="cm.core" /> <dependency id="cm.core3D" /> <dependency id="cm.abstract" /> <dependency id="cm.abstract.tools.digitalSwatch" /> <dependency id="cm.abstract.tools.apply" /> <dependency id="cm.abstract.office" /> <dependency id="cm.abstract.surface" /> <dependency id="cm.abstract.tools.apply" /> <dependency id="cm.abstract.tools.queryDialog" /> <dependency id="cm.abstract.tools.digitalSwatch" /> <dependency id="custom.fika" /> <dependency id="cm.abstract.dataSymInterface" /> <dependency id="cm.abstract.dataSymbol" /> </extension-dependencies> <security-delegates> <delegate id="custom.fika" /> </security-delegates> <embedded-catalogs> <catalog cid="643" db-file="configuraFIKA" specific-product-catalogs="FIKA" ignore="yes" /> <catalog cid="1531" db-file="configuraFIKA" specific-product-catalogs="FIKA" wait-for-all-files="yes" /> </embedded-catalogs>
<embedded-catalog-settings> devmode-no-notify devmode-no-reg-from-xml </embedded-catalog-settings> </extension-info>
Comments
0 comments
Please sign in to leave a comment.