Call for Submissions / Feedback on Alfresco SDK

As somebody who spends a lot of time doing work for Alfresco customers, I use the Alfresco SDK all the time. It’s a great resource, though I felt that it can use a bit of loving to improve it and make it more user-friendly and useful. After having some discussions with engineering, I started work on this area, first focused on bringing it up to date. Additionally, we have a number of great additional samples, many posted on the Developer Toolbox , and the other goal of the effort is to incorporate those samples as more official ones as part of the SDK.

In this post, I’ll talk about what I’ve been working on, ask for feedback, and also ask for contributions in improving the SDK. I’ve been working in a separate branch, so the changes are not available yet publically if you try to look for them.

Phase I as outlined below is what I already completed. Next is Phase II, which mostly involves integrating some existing samples. I also outline some other samples I feel will be useful to have, and ask for ideas on other samples to add things that might be useful. The goal is to have a number of samples that are representative of development tasks that you need to perform when working on customer projects.

Most of all, I ask for your feedback, and for any samples you may have that you think will be useful. I know they are out there. We are looking especially for samples that represent common development tasks. Please contact me at jbarmash at alfresco dot com if you have something to contribute.

I recently found a great service for gathering feedback, please add further suggestions there and vote for various improvement proposals.

http://alfresco.uservoice.com/pages/sdk_improvement

Phase I - Already Completed:

Bring SDK Up To Date

  • Added source code for packages introduces in 3.0
  • Added a few missing jars that were preventing running some samples in Eclipse

Improve Eclipse Experience

  • Renamed Sample Projects to organize them better
  • Reordered SDK Embedded jars to be more alphabetical
  • Added project for source files – importing projects into Eclipse will now have source code automatically attached. Before this, every time I’d download a new SDK and import it into Eclipse, I would have to manually attach the corresponding source files to the SDK (i.e. alfresco-repository.jar and alfresco-repository-src.zip). The goal is to make this step automatic.
  • Added a project for shared properties for Java Embedded Projects – can now set just one property file that will affect multiple projects.

Improve SDK Build Infrastructure

  • Integrated identical Build file for all projects
  • Automatically create AMP files based on directory structure convention. Can easily re-point the location of the SDK, to retarget against other SDKs. Creating AMP files is viewed as being hard, but it’s really not the build file I introduced will automatically create it for you as long as you follow a few conventions. I hope to go through it in a separate post, but here is a link to the project so you can start using it right now.
  • Created master build file that allows to build all the SDK projects, including integrate a set of them into alfresco.war for easier testing. This one will not only be helpful for developers, but, once integrated into the alfresco build file, will allow us to identify any future regressions of SDK samples not building.

Improving Existing Samples

  • Reorganized projects to create AMP Files. This one is a big one in my mind – AMP is the standard extension mechanism that we encourage customers to use. Now everybody will have good samples on how they are supposed to be laid out.

Phase II – Adding Existing Samples

This is my next step – re-testing and adding samples we already have. Here they are, along with priorities:

  • MUST - Exposing new Custom root object to FreeMarker
  • Test it for working with both Alfresco repo and Surf / Share.
  • MUST - Exposing new Custom root object to JavaScript
  • Test it for working with both Alfresco repo and Surf / Share.
  • MUST - Standalone Custom Content Model Project, with validation check
  • MUST – WCM SampleFileSystemDeployment
  • MUST - WCM Metadata Extraction Sample from XML
  • MUST - Surf / Share Dashlet Samples
  • SHOULD - JSF Dialog backed by a Web Script
  • SHOULD Custom Condition backed by a JavaScript (with UI).  Possibly simplify first.
  • COULD - Cascading Component Generator & Lucene-backed Drop Down Component Generator (described here: - http://blogs.alfresco.com/wp/jbarmash/2008/08/18/implementing-cascading-dropdowns-for-editing-properties/ ). There are some dependencies in the product for this that makes this a bit harder than a simple extension.

Phase III – Create New Samples

These we don’t have developed yet, and thus view them as secondary, though some of these are very important. Here I am looking for more feedback, as well as prioritization on what to do when we have time. You will notice that these are more repository-focused at this point – Surf / Share-oriented SDK samples is something we will revisit as well, but after this initial project.

  • SHOULD - WCM - XForm Samples (move them from extras directory)
  • SHOULD - WCM - Custom Widget for XForms (supposedly we have something on this)
  • SHOULD - More standalone Web Script examples, including java-backed web scripts. There are many of these in existence, just need to find something representative.
  • SHOULD - Repository - Custom Transformer Sample
  • SHOULD - Repository - Custom Metadata Extraction Sample
  • COULD - Repository - Custom Authentication Component
  • COULD - Custom Behavior for Content Model
  • COULD - Custom Scheduled Job
  • COULD - AMP That Bootstraps some Data into the repository
  • COULD - Dynamic Content Models and AMP that automatically loads them

Call for Contributions

This is where you can help. Any sample on the Phase III list, or whatever other samples you may already have, would be appreciated. Please contact me and tell me what you have that might be able to include (jbarmash at alfresco dot com). Normal code contributions will be followed, and we are happy to give you the credit you deserve of course. Improving the SDK and having a good set of samples to point customers to is something that should benefit the whole community, and let potential new developers to get up to speed more quickly.

And once again, if you have anything you’d like to contribute that may not be good as a sample, you can do that as well – email me or our community manager Nancy Garrity and we’ll post it up to the Developer Toolbox. You never know, she may even give you a t-shirt or a chumby.

Let’s use this link for ongoing discussion and prioritization of effort.

http://alfresco.uservoice.com/pages/sdk_improvement

Thanks!

Tags:

One Response to “Call for Submissions / Feedback on Alfresco SDK”

  1. Help clean up the Alfresco SDK distribution | ecmarchitect.com Says:

    [...] Barmash has started giving the Alfresco SDK distribution some attention. If you’ve worked with it lately you know it is a worthwhile cause. He’s looking for [...]

Leave a Reply


Alfresco Home | Legal | Privacy | Accessibility | Site Map | RSS  RSS

© 2009 Alfresco Software, Ltd, All Rights Reserved