Archive for November, 2008

Call for Submissions / Feedback on Alfresco SDK

Saturday, November 22nd, 2008

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!

Dynamic Models in 3.0

Tuesday, November 18th, 2008

One of the features in 3.0 that I am particular excited about is Dynamic Models (though they actually have been around since 2.9).  It allows changing the content model without having to restart the server.   While implemented to provide Multi-Tenancy capabilities, I am excited about it because it gets us much closer to having ability to have users create content models through UI.  In addition to dynamic modeling capability, you can now make some UI customizations, upload resource bundles, and add workflows, all without having to restart the server.  This is not only a great feature, but will save developers a lot of time.

To learn more about Dynamic Models, check out the wiki page, and for a quick overview – see this great Screencast that J.M. Pascal created showing the Dynamic Models functionality.  Check it out, as well as his blog in general – he has a bunch of fun presentation about some other Alfresco concepts as well!

NY RoadShow

Tuesday, November 18th, 2008

NY Roadshow was last Friday in New York City. It was a morning event, from nine till noon. It was packed house, with about 40 attendees.

Some of the notable things from the event, (apart from my riveting demonstration of Alfresco Share of course), were the case studies:

    Harvard Business Publishing talked about their use of Alfresco. Of particular interest was the fact that they are using Alfresco as an integrated content management application, both the Document Management as well as Web Content Management. It sounds like they also integrated Alfresco with some interesting technologies, such as Synaptica for Taxonomy and Oracle ERP Suite. They built up a custom interface with JBoss SEAM. Their Web Content Management involves three web properties, and numerous micro-sites. Other interesting integrations on the project were Endeca for Search, MarcLogic for XML storage, integration with Ad networks. Because the presentation was more business focused, I’d like to learn more about some of the internals of these integrations.
    Partner Red Hat (JBoss) spoke about how Open Source delivers true value to the consumers, and how portals help deliver that value.
    Our partner RivetLogic spoke about another interesting case studyConnectedWeddings.com.  ConnectedWeddings received a grant from FaceBook fund to build their application on top of a true enterprise platform. They chose Alfresco, and now they using Alfresco in conjunction with JBoss to power their Facebook application. They can author content in Alfresco WCM and publish it to a delivery environment that surfaces content to Facebook, a website, and iPhone client.

I enjoyed the event, especially since it kept at a brisk pace with a lot of content to cover. I did get a sense that more of a deep dive into some of the 3.0 technologies might have been nice though.

One nice thing that came out of it is that I reconnected with my old college suitemate, who came to the event.


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

© 2012 Alfresco Software, Inc. All Rights Reserved.