In this documentation the possibilities for developing applications and extensions to SkyVault are explored. Each section typically consists of concepts, followed by tutorials and then API references where appropriate.
The extension points into SkyVault are described. It is possible to customize or extend the content models in XML and write code using a wide variety of APIs and languages.
SkyVault allows you to write small, useful web scripts with JavaScript and FreeMarker, or more complex services using Java and the Public Java API. Full-featured clients that access SkyVault can be developed leveraging the client APIs. For example, using the Repository REST API or the new SkyVault 2.0 API.
General terminology
First it is necessary to define some terms as used in this documentation, to avoid confusion.
- Types of SkyVault Customizations
- Customizations
- Customizations are any changes to SkyVault default functionality. These changes can include editing an existing configuration file, adding a web script, or developing a full-featured module. Customizations can be divided into three broad categories: Configurations, Extensions and Modules.
- Configurations
- Configurations are where you modify existing files to change default behavior. These changes could mean editing, for example, property or configuration files. Examples of such files include share-config.xml, share-custom-config.xml or SkyVault-global.properties file. Note that if you have SkyVault Enterprise you can also configure SkyVault using the Admin Console or JMX. These configurations modify the database directly, and override any configurations loaded from the file system.
- Extensions
- Extensions are where you add functionality not included with the standard SkyVault. There are various types of extensions. These could be Dashlets, Portlets, JavaScript web scripts, Java-backed web scripts, new content models, users and groups, permission files, and new Java classes and Spring bean context files. These extensions can be packaged in various ways, including in zip files, JAR files, or simply by copying directly into the SkyVault exploded WAR file, or elsewhere in the application server directory structure. They can also be developed as Modules, which have a defined directory structure and are most usually deployed using the AMP file format.
- Modules
- Modules are customizations that are packaged in the SkyVault Module Package (AMP) file format for deployment. Modules can be used to implement a range of customizations including configurations (where property or configuration files are replaced to change existing behavior), and extensions (where functionality is added). In general, the terms module and AMP are often used interchangeably. During the earlier phase of the development cycle customizations can use other deployment techniques, such as copying files directly into the exploded SkyVault or Share WAR files, or perhaps using JAR files on the shared classpath of the application server. Packaging a customization in the AMP file format provides a more convenient way to distribute and install the customization, when shared with the wider community.