Alfresco Developer Series
About the Alfresco Developer Series
The “Alfresco Developer” series of articles is aimed at developers new to Alfresco who need an overview of the main customization points. The series uses a single business case as an example that covers many different technical aspects of Alfresco. Each article takes you through hands-on customizations, step-by-step, and includes ready-to-build source code so you can follow along using your own local installation.
Much of the information can be found on Alfresco’s wiki, in the forums, in Jira, and, of course, in the source–my goal was to pull it together into a cohesive, step-by-step story.
The progression of topics from content model to actions and behaviors to web scripts and workflow is the same general curriculum we use internally at Optaros to ramp up our consultants on Alfresco.
New articles may be added to the series over time. The articles currently in the series are shown below in a rough recommended order of progression:
“Working with Custom Content Types”, June, 2007.
This article shows how to extend Alfresco with your own content model and how to work with content that leverages that model via the Web Services API. Most of the examples are written in Java but a PHP example is shown for comparison.
This article introduces the fictitious “SomeCo” company that is planning on using Alfresco for both document management and web content management. SomeCo is going to use Alfresco to manage the authoring process around whitepapers which are subsequently published to their web site. The goal is for the remaining articles in the series to build on the SomeCo example.
“Developing custom actions”, January, 2007.
This article has not yet been updated to integrate with the SomeCo example. It shows how to write your own UI actions that include JSP handlers used to set parameters for the action.
“Implementing custom behaviors”, September, 2007.
This article builds on the custom content types article by adding support to the content model for user-contributed ratings of whitepapers. The custom behavior is used to calculate the average rating for each piece of rated content. The rateable aspect and associated behavior will be leveraged by web scripts called when users on the SomeCo web site click a ratings widget.
“Intro to the Web Script Framework”, October, 2007.
The intent of the article is to walk through some hands-on examples using Alfresco’s Web Script Framework which became available in the 2.1 release of the product. The article shows how to use Web Scripts to create a REST API for creating user-contributed ratings. The SomeCo web site can then wire an AJAX ratings widget to the REST API to allow SomeCo web site visitors to rate whitepapers published on the site.
“Advanced Workflows”, November, 2007.
The article starts by describing jBPM concepts and the high-level steps for implementing advanced workflows in Alfresco and then dives into the details by walking you through an example.
The example extends the “SomeCo Whitepapers” story from earlier articles in the Alfresco Developer series by implementing a business process to enable SomeCo’s engineering team, marketing team, and third-party partners to review whitepapers before being published to the SomeCo web site.
The integration of third-party partners is handled through email–recipients simply click a link to approve or reject the workflow task. The link invokes web scripts to signal the workflow to take the appropriate path in the process.
About the sample code
With the exception of the Custom Actions article, all source code is cumulative. In other words, the custom code accompanying the Advanced Workflow article includes the source code from all previous articles. Links to the source code and directions for building and deploying the source code are included in each article.
License
All of the articles in the series are licensed under the Creative Common Attribution-Share Alike 2.5 License.
Feedback
Many of you have provided feedback on specific articles or the series as a whole via comments on this blog, in person, or via email. Regardless of the method, feedback is welcome and encouraged.