Maven Alfresco SDK 1.0.2 is out and ready for your enjoyment :)

Just a quick update for the Alfresco Mavenistas, as yesterday we released the Maven Alfresco SDK 1.0.2!

This is a (major) maintenance release for our preferred Alfresco SDK (see full 1.0.2 release notes), and I wanted to stress a couple of fixes who went in there which might drastically improve your development experience:

  1. As I described in my last post, if you are a Linux/Mac SDK user, then your build is probably going to speed up 5x to 10x times. This is thanks to a fix using the plexus-archiver…I look forward to hear your wows from here 🙂
  2. The latest MMT fixes are in there. This should fix any weird issues of your build in case you were overriding Alfresco resources

You can find official documentation and artifacts on the Alfresco Artifacts repository.

And BTW, I suggest you stay tuned on this channel as I have worked hard in the last months on a plan for a full Mavenization of Alfresco…and you all know what that would mean for the functionality and “coolness” of our SDK 🙂

Maven Alfresco SDK 1.0 is finally out and ready for you to enjoy!

It’s been a long journey, but we made it 😉

It started almost 5 years ago, and through the years, little by little, we made giant steps towards an open development platform.

If you have followed this blog earlier, you probably have shared some of the pain for an unnecessary difficult integration process of Alfresco artifacts, therefore today we should all re-joy as development on Alfresco got just so much better 😉

Thanks to the great work of the whole Maven Alfresco Community and the strong momentum and Support from Alfresco Engineering and Release Management, it’s with extreme pleasure and pride that I announce you that a fully fledged Maven Alfresco SDK™ 1,0 is now available for your enjoyment and to drastically improve your development productivity on Alfresco projects.

While I recommend to you have a look at the full docs and to the release notes to understand the full extent of features of this brand new piece of software, let me just give you here an overview of the  most exciting features:

  • Zero configuration approach: create an AMP or All-in-One archetype and with one command you are ready to run and customize Alfresco. In the very same place 🙂
  • Zero download approach: the SDK will take care of downloading the appropriate Alfresco artifacts from the Alfresco Artifacts Repository. Also no DB or application server is required, as the SDK will runAlfresco emdedded on Jetty + H2.
    Note:
    this configuration is not part of the supported stacks, so should be used only for development purposes
  • Zero BS development approach: with new SDK the focus is your creativity, no more boring configuration or hacks to make a particular work.  Just get the setup right with an archetype and start to kicking it on Alfresco 🙂
  • Zero defect is the main objective of the SDK: with support for AMP unit and integration testing, as well as integration with the strong enterprise development process feature of Maven (e.g. CI, release mgmt, etc.), you can get you Alfresco development to another level. This was made thanks to the availability of POM files for Alfresco Artifacts (as of Alfresco 4.2.b).

NOTE: For those of you wondering about naming and version: yes, the Maven Alfresco SDK 1.0 superseded the old version of the Maven Alfresco Archetypes / Lifecycle 3.9.1.  As of Alfresco Community 4.2.b the Maven Alresco SDK 1.o is the recommended solution.

But without further ado, I can’t wait to join the other Alfresco Rockstarts at the DevCon hackaton, I’m sure we can boost some productivity down then with this SDK. Once again, check out the project website for full docs.

I want to thank you everyone involved in making this happen (especially Mao and Samuel) as we believe it will be a major improvement for the developers, architects and administrators of Alfresco project, finally providing a solid foundation to doGreatWork() and this great product.

Enjoy and let us know your feedback!

Maven and Scalability @ DevCon

Sounds like it’s happening. More, much more that I could expect. Much better than before.

At Alfresco in fact we are finally about to close on two fundamental areas like ECM Scalability and on the availability of a fully fledged Maven based SDK.

As you might know (if you are reading this blog you probably will), these on the two areas I’ve always been passionate and involved for in the last few years. Just to let you understand how passionate (or romantic, almost Italian) about these topics, enough for you to know that:

    • I ranted about Maven for a few years now and, in this last year, I experienced a momentum never seen before both from a corporate and from a community standpoint. Literally, about to cry here 🙂
    • I worked for many years as Alfresco Partner and Solution Engineer, without having a quantitative sizing and performance reference for my implementations. In the last year I participated to the Alfresco Benchmarks project, which has shown very interesting results and improved the scalability of our system exponentially. I am so excited about these improvements, both at process and product level, that I can’t wait to share those with you 🙂

So it’s just a great pleasure and excitement for me to confirm we have a couple of so much awaited HUGE surprises on those areas 😉

But without further ado then, it’s my pride to officially announce that …


…no wait, I have a better idea.

If you are really interested and you want to know what’s going on around Performance and SDK, it’s quite simple: you should just come by for one of the two great DevCons (Berlin and San Jose) that are approaching in November 🙂

I will give two speeches at both EMEA and Americas DevCon, surprisingly enough about:

And if you are not convinced, hear is a little teaser 😉

Maven Alfresco Lifecycle 3.9.1 Released

Hey guys,

I’m proud to announce that thanks to a vigorous Community help (special mentions and kudos to Mao and Stijnr for the great help in the last period), we have been able to pull out the 3.9.1 release of the Maven Alfresco LIfecycle.

Multiple bug-fixes, a zero defect targeted release and a couple of juicy new features like:

make of this one probably the most stable and tested release of the Maven Alfresco Lifecycle. The release is tested against Alfresco 4.0b Community, and it’s the perfect foundation to the great work we are going to do in the next weeks to clean it up completely and support Alfresco Enterprise.

The releases is available in the Maven Alfresco Repository (in case you are wondering, I still need to update the archetype-catalog.xml, but that will happen just after Easter, as I have no permissions right now 🙁 ). Full release notes are also published on the Google Code project and per component documentation is available in the brand new published Maven Site (using the HUGELY COOL Maven Fluido Skin).

Feedback is always welcome in the Maven Alfresco List and we also have a Skype chat so feel free to contact me on Skype if you want to contribute / participate in any way 🙂

Have fun and let us know what you think!

[HOWTO] Build your JAR Alfresco Share Dashlet with Maven in 3 minutes

Two months without a post, and I come back again with Maven and Alfresco? Well, no news as the Maven Alfresco Community keeps growing..

So following the exciting news on Spring Surf and Share announced by Kev on trunk, for which since Alfresco 3.3 (now in trunk) we can now build Alfresco Share Extensions as plain old JARs, I decided to complete the Maven Alfresco Lifecycle with another archetype, providing a simple way and sample code allowing to build Maven2 Alfresco Share Extensions in minutes.

I’m sure this is going to interest the Alfresco community, same as it’s Ant counterpart build script which Will’s recently produced to accomplish the same task. The more, the merrier isn’t it? The big difference between that approach and the one we’re presenting is only that Maven enforce a standard project layout so it was fairly easy to put stuff to be packaged in the proper place.

This also comes as a very natural complement to the Maven Alfresco Share Extension Archetype (managing WAR customized builds for Share) for now it’s possible to build a Share WAR and have it depend on Share JAR modules. Great kudos go to colleague and mate Will Abson and Alfresco Engineers for having produced and nurtured the Site Tags Dashlet which is included in this archetype and that you can install following the next steps in a couple of minutes.

Couple of pre-requisites for running this:

  • Alfresco Repository WAR 3.3 (TRUNK) already running on Tomcat. You can build this from trunk and run it in your tomcat instance, or find it deployed in the Maven Alfresco Community Repository
  • Tomcat Manager already installed and using credentials “admin” with no password (config in conf/tomcat-users.xml)
  •  (optionally) m2Eclipse eclipse plugin to import Maven project (not needed but cool 🙂 )

Ready, set, go: Read more [HOWTO] Build your JAR Alfresco Share Dashlet with Maven in 3 minutes

An archetype for Alfresco Share in the new Maven Alfresco Lifecycle release

As promised, just a brief heads up on the quite few changes ongoing in the Maven Alfresco Lifecycle project which is now supported by the Alfresco Community Maven repository.  Also I managed to pull out a new version of the Cmis Maven toolkit against the new repository.

Proceeding with order, first of all, I released today a new version (1.1.0) of the maven-alfresco-lifecycle package with the main interesting news (full changes report):

The long Maven Alfresco marathon was then completed by the release of version 1.0-beta-2 of the CMIS 1.0cd04 Maven Toolkit, pointing to the new Maven repository. No actual functionality was modified and it keeps on working happily (by default against http://cmis.alfresco.com) using the latest snapshots from the Chemistry AtomPub TCK trunk. I updated the documentation on the Alfresco wiki as well.

I hope this really helps as it’s just *not that* funny to go over those growing many documentation files to change repos again, so any edit or error you guys can spot in the docs === a beer on me when you seem me 🙂

Though I first have to apologize to the end users of this build, promising this is the last time this project moves hosting.
Now everything is consolidated, content as artifacts, as in the pure ECM spirit. And with a promising Share archetype to work and customize it productively.

Eager to hear your feedback (curious about the Share archetype), and especially at my Tech Talk on Maven and Alfresco

…don’t be shy 🙂

Dreams come true … launching the Alfresco Community Maven Repository :)

Busy days busy days, busy but definitely happy days 😉

after working a lot on the CMIS 1.0 Webinar (recording out soon) and having made my first official commit for Apache, I saw an unexpected but never so welcome outstanding speedup of one of the processes that I’ve been pushing in the Alfresco Community for about 3 years now.

I’m proudly announcing the institution of an Alfresco hosted Maven Repository, capable of consolidating and bring the Maven Alfresco Community to the next level. Hosting a repository (for Community artifacts only for now) means a great step towards a even more mature open source community which works against high standards of quality and automation.

I’ll be discussing and demoing this and other Maven Alfresco related topics in next Friday’s Alfresco Tech Talk Live. You’ll find more info on the Alfresco wiki.

For now, here’s a screenshot of our new shiny Sonatype Nexus 1.4.0 instance, which will allow a proper consolidation still scale-out for our community by the means of repositories proxying and Alfresco Community artifacts hosting. Kudos to everyone that made this happen 🙂

Alfresco Maven Repository

This is is a big step for the community which is growing around projects like the Maven Alfresco Lifecycle  and the small CMIS 1.0 Maven toolkit which I built for my recent training engagements.

In addition to that,  the mighty great news about the Alfresco SURF and Alfresco Webscripts project now being contributed to the Spring Framework under the newly born Spring Surf Extension (follow our work here), all of which is powered by Maven gives even a more central role to this technology in the company I work for.  Great job guys and thanks for giving me the opportunity to participate in this!

This is such a nice moment for me which I pushed for this since a long time, when I was still working for Sourcesense. And a special thanks must go to them for having first allowed me to work on a Maven Alfresco suite in the past and for having supported it with their Nexus instance, until we introduced an Alfresco Maven repo. Most content is now migrated so you can safely use the new repo in your POMs.

I’m still in the process of migrating (tomorrow should be done) all the apps to the new repo, so expect changes in the docs. I’ll keep you posted with the coming changes and news.

Also, please provide your feedback on this event so we can offer the best service around this important open source Application Lifecycle Management technology.

Maven Alfresco Lifecycle to gather all Maven Alfresco components

Few Build Successful’s were more satifsactory then the one which you can see in the window below 😉

Maven Alfresco Lifecycle build successful

Finally all the modules that I’ve been working together with the community, including AMP & Alfresco Extension Maven archetypes and the AMP plugin, under one single build, control and with a proper release process, called (almost obviously) Maven Alfresco Lifecycle featuring:

It was time to wrap up all this work (merging m2Alfresco, maven4Alfresco and other Maven Alfresco related activities) in a more usable and sustainable platform for growing it.

As usual, many thanks go to Mao that provided 1st class infrastructure support (and much more 🙂 on the new Nexus Sourcesense repository.

And this being a double advantage, not only for the community but for the growing number of enterprise customers interested in working with Maven on Alfresco.
I would like now to grow it with features already present in some development branches and exciting new improvements like:

  • Alfresco Share archetype support (already in 3.x branches)
  • SURF / Spring tool suite integration (as Uzi shown us so to be so cool with the new spring-surf)
  • Update and improve the quality of the sample contexts to match the latest and greatest capabilities

As said, I see the interest of the community at large around the project is growing so in case you’re interested I suggest you to participate by joining the lists or opening issues.

So just give it a try…it’s two Maven commands away 😉

Would love to hear your thoughts on how to improve the platform and grow it to the next (enterprise) level. Don’t forget to check out the 3.1.0-stripped branch, where a Maven Calm based version is hosted and there’s already a working Alfresco Share sample project.

Have fun!

Launching Calm – an opensource answer to Application Lifecycle Management

 It’s still at its early stages but it’s definitely collecting already lots of interest and potential use cases.

Maven Calm is an Apache Maven based attempt to provide a simple and collaborative implementation to the problems of ALM (Application Lifecycle Management), which is based on a simple rationale developed in 3+ years of complex architectures development on Maven:

“All best practices can be externalized, in a cross technology and cross organization fashion, using Maven project inheritance capabilities”

As Mau explains in his wonderful Maven Calm tutorial, simply by the means of using Calm as parent POM and setting some properties, you have access to a number of pre-configured behaviors of your build, neatly bound to lifecycle phases.

Hopefully this list is meant to grow pretty soon, but at the moment Maven Calm support ALM processes like:

  • Application Packaging and Deployment
  • Release, distribution and change management
  • User and developer documentation site publishing
  • Continuous Unit, integration and regression testing
  • Add your own best practice and avoid re-writing it per project/company!

Calm is open source and hosted on Google Code, so if you want to know more you can find all the info by joining our Google Group 😉