Feb 23

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: Continue reading »

Dec 04

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 :)

Dec 02

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.

Nov 07

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!

Jun 30

Just a fast heads up, I posted a nice wrap-up and introduction for Maven Calm on The Server Side!

Comment and community contributions are more than welcome!

See you soon in the Calm-o-sphere ;)

Jun 26

 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 ;)