Dynamic Extensions for Alfresco


About this add-on

Dynamic Extensions for Alfresco leverages OSGI to enable the rapid development of Java-based Alfresco extensions. It is intended as a replacement for the existing Alfresco Module Package (AMP) approach.

Visit github.com

Development Status:


License Type(s)


Dynamic Extensions can be hot-deployed while Alfresco is running, eliminating the need for time-consuming server restarts. This makes development and deployment much easier and quicker, while maintaining the benefits of using Java rather than the Alfresco scripting facilities, which are the more traditional means of avoiding frequent server restarts.
More about Dynamic Extensions

Dynamic Extensions uses Spring framework coupled with Gemini Blueprint (formerly: Spring Dynamic Modules) for providing OSGi support. Since Alfresco itself uses Spring as one of its core technologies, the additional learning curve compared to that for developing regular Alfresco extensions is very shallow.

Dynamic Extensions are stored as documents in the Alfresco repository and can be managed through Alfresco Share, Web Client or any of the supported file systems, such as FTP. Simply upload them to the special "Alfresco Extensions" folder in the Data Dictionary and their functionality will be made available right away.

Aside from hot deployment, Dynamic Extensions makes Alfresco extension development much simpler and more productive.

The main enhancement over developing regular Alfresco extensions is the support for JSR-250 (javax.annotation) and JSR-330 (javax.inject) annotations, which makes Spring bean configuration much less verbose. Also helpful is the support for annotation-based Web Scripts, inspired by annotation-based Spring MVC. (See the example below.)

To get extensions up and running, all you need are Java classes (with annotations) and a few lines of Spring XML configuration

Technical Details

Alfresco Product(s)
Installation Method
Extension Point(s)
Component Type(s)