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.
License Type(s)
Alfresco Version(s)
Description
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.
Productivity
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
The link to google code gives a 404 error. This is a shame because this looks like a promising extension
I updated the link to the proper pages (now on github)