Written by Richard Esplin
This is the first in a series of articles highlighting add-ons in the Alfresco add-ons directory. To start the series, I want to provide an overview of the largest umbrella project of add-ons for Alfresco Share: Will Abson's Share Extras project.
Will Abson (@wabson) was one of the earliest employees to join the team at Alfresco in 2005. While working as a pre-sales engineer, Will started a collection of customizations to the (at the time) new Afresco Share user interface. Share was not yet complete enough to serve as a replacement for the original Explorer interface; it was targeted at the specific use case of collaboration. Will recognized that no one outside of the engineering team had spent significant time customizing Share, and he wanted to test the limits of what was possible. As his regular responsibilities permitted, he added to his collection of Share enhancements as more extension points were added to Share by Alfresco's UI Team. This library of Share enhancements gained a following both in Alfresco and in the larger community through Will's regular blog posts. Eventually he collected them all at Google Code, labeled the collection Share Extras, and started accepting contributions from other interested community members. Currently Will manages the project with the help of Florian Maul (@fmaul) who works for FME, a certified Alfresco Partner, and Peter LÃ¶fgren (@loftux), an active and influential community member. There are seven committers on the project.
Share Extras has produced a number of influential projects. Peter and Will have collaborated on the Media Viewers project which is highly rated on the add-ons site because the functionality it provides is widely requested. It allows media to be displayed flash-free in the browser. For many MIME types it takes advantage of PDF.js to allow features like syntax highlighting. Will presented on this project at DevCon 2012. Share Extras also includes a lot of dashlets to meet various needs. The Node Browser is an administrative project that started in Share Extras and was added to Alfresco 4. Other important administrative projects are Create Bulk Users, for importing users into Alfresco, and Execute Script Action, for running scripts against content in the document library.
Development Tools and Examples
Share Extras is under active development. Now that Will is part of the engineering team, he can take advantage of the IDays program where engineers get about 10% of their time to work on their own projects. He summarized for me the three main initiatives he is currently undertaking.
Alfresco Engineering has significantly improved the process around Share customization in recent releases. This has triggered significant work to update older add-ons to take advantage of the better extension points. All of the add-ons at Google Code are labeled according to whether they will work on Afresco 3.x or 4.x, and the updated add-ons have two current versions available for download: a version for 0.x for installation into Alfresco 3.x and a version 2.x for installation into Alfresco 4.x. Most of the add-ons in Share Extras are packaged as JAR files. This is a common form of packaging extensions for Alfresco, but the official recommendation is to use AMP files so that you can take advantage of work currently being done to enhance the module management process. As Alfresco's module management tools improve, Will plans to wrap the JAR files inside AMP files to take advantage of those tools while still keeping the add-ons as strict packages that do not pollute the destination WARs.
Migrating to GitHub
The ability to fork code and create pull requests has drawn Will from Google Code to GitHub. But it will take a long time to migrate the project to the new hosting provider. Will's plan is to start new projects on GitHub and move old projects as part of major updates. For the foreseeable future, Share Extras projects might be at either locations, and some projects will have a version at both.
Separating Development Examples
The last major reorganization of the project is to make a clear distinction between add-ons that are ready to be used, and add-ons that exist solely as tools to learn how to customize Alfresco Share. Will wants each add-on in Share Extras to be useful in its own right, and so he is planning on migrating the pedagogic pieces to a new home as he updates them. The only one he has moved so far is the example dashlet that he updated for his DevCon presentation and it is currently living in his personal GitHub repo.
Besides following the contributions to the actual project at Google Code and GitHub, the best way to keep up to date is to read Will's blog. There are two recorded presentations given by Will that provide an overview of the project:
- a DevCon 2012 presentation on Developing Great Dashlets
- A discussion about the project as part of Tech Talk Live Episode 47
Each entry on this site for an add-on that is part of the Share Extras project should have the "Share-Extras" tag.
Will asked me to emphasize that he is excited to receive feedback on the project. After you download and try an add-on, you should rate it in the directory so that others know whether you liked it. Will monitors the comments on this site as best he can, but the surest way to get someone to look at an issue is to report it in the add-on's issue tracker at either Google Code or GitHub. Contributing a useful patch would make Will very happy.
Share Extras is an important contribution to the Alfesco Ecosystem. If you want to find mature add-ons, or want to learn how to build your own extensions to Alfresco Share, then you should spend some time exploring that project.