In this documentation the possibilities for developing applications and extensions to Alfresco are explored. Each section typically consists of concepts, followed by tutorials and then API references where appropriate.
The extension points into Alfresco 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.
First it is necessary to define some terms as used in this documentation, to avoid confusion.
- Types of Alfresco Customizations
- Customizations are any changes to Alfresco 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 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 alfresco-global.properties file. Note that if you have Alfresco Enterprise you can also configure Alfresco using the Admin Console or JMX. These configurations modify the database directly, and override any configurations loaded from the file system.
- Modules are customizations that are packaged in the Alfresco 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 Alfresco 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.