2.4. Publishing

Registering an add-on in the centralized catalog

If you wish to share your add-on publicly, simply click here to tell eXo team about your add-on (you must sign in to access the page). The team will review it and possibly add it into our eXo centralized catalog, so that it can be accessed by any eXo instance.

Using your customized catalog

The Add-ons Manager relies on catalogs containing metadata of the add-ons. By default, a remote catalog is downloaded from http://www.exoplatform.com/addons/catalog. You can use your own catalog by adding the --catalog=$URL option (where $URL is the alternative location for the catalog) to the addon commands.

The remote catalog is cached locally and each catalog URL has a separate cache. When you create a local catalog ($PLATFORM_HOME/addons/local.json) that defines the catalog entries for your own add-ons, it will be merged with the remote catalog at runtime. If you add the --offline option when installing the add-on, only the local and cached remote catalogs (if any) are used.

Note

  • If a version of an add-on is duplicated between the remote and local catalogs, the remote one is used.

  • If there are some duplicated versions in the same catalog, the first one is used.

To write your own (local or remote) catalog, you can learn the default catalog (linked above) that is a JSON file.

Each catalog entry is a version of an add-on. Here is an entry sample:


{
   "id": "exo-weemo",
   "version": "1.0.x-SNAPSHOT",
   "unstable": true,
   "name": "Video Calls Add-on",
   "description": "Add Video Call to eXo Platform *** A Weemo key is required - Contact eXo to get yours ***",
   "sourceUrl": "https://github.com/exo-addons/weemo-extension",
   "downloadUrl": "https://repository.exoplatform.org/service/local/artifact/maven/redirect?r=exo-addons-snapshots&g=org.exoplatform.addons.weemo&a=weemo-extension-pkg&v=1.0.x-SNAPSHOT&e=zip",
   "vendor": "eXo",
   "license": "LGPLv3",
   "licenseUrl": "https://www.gnu.org/licenses/lgpl-3.0.txt",
   "mustAcceptLicense": true,
   "supportedDistributions": "enterprise,community",
   "supportedApplicationServers": "tomcat,jboss",
   "compatibility": "[4.1-M2,)"
},

The following table explains the json keys (* means mandatory):

id (*) Id and version is used to identify an add-on (use id:version pattern in commands). Duplicated entries are treated as said above.
version (*) Version string of the add-on.
name (*) The display name of the add-on.
supportedDistributions (*) The eXo Platform distributions that support the add-on (for example, Community, Enterprise - should be lowercase, comma-separated).
supportedApplicationServers (*) The application servers that support the add-on (for example, Tomcat, JBoss - should be lowercase, comma-separated).
vendor (*) The vendor name of the add-on (for example, eXo Platform).
license (*) The license of the add-on (for example, LGPLv3).
downloadUrl (*) Where to download the package. Use http:// for a remote add-on or file:// for a local add-on.
compatibility The version range (in Maven version range format) that the add-on is compatible. No compatibility check is performed if this is absent.
unstable This is "false" by default. Set it to "true" to warn of an unstable version (unstable versions are not listed unless --unstable is used).
licenseUrl The URL containing an ASCII version of the license to be displayed by the CLI.
mustAcceptLicense "True" means it requires the user to explicitly accept the license terms before installation. This is set to "false" by default.
description The brief description of the add-on.
release The release date of the add-on (Date format: YYYY-MM-DD).
sourceUrl The URL where to find the source of the add-on.
screenshotUrl The HTTP URL pointing to a screenshot of the add-on.
thumbnailUrl The HTTP URL pointing to a thumbnail of the add-on.
documentationUrl The HTTP URL pointing to a documentation of the add-on.
author The author of the add-on.
authorEmail The email address of the author.
Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus