![Page 1: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/1.jpg)
Apache Maven as a Community & Enterprise
enablerGabriele Columbro
Principal Architect, Alfresco Software
![Page 2: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/2.jpg)
Few items we’ll talk about…
Developer ergonomics & the ideal world Apache Chemistry OpenCMIS Alfresco Community & Enterprise Maven Alfresco SDK Summary & Q/A
![Page 3: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/3.jpg)
Who's this guy? Gabriele Columbro
Principal Architect, Alfresco Software Release Mgr, Apache Chemistry OpenCMIS Maven enthusiast & fundamentalist :)
Alfresco Software Open Source ECM Community vs. Enterprise Java Based, Integrates Apache * and more
![Page 4: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/4.jpg)
Why do we love #asf development? As a developer
Self-documenting You are never alone! Open Source ↔ Standard
As a release manager Lean release process Automation Standardization Legal coverage
![Page 5: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/5.jpg)
In substance...freedom!Integrating components
Running on your laptop!
No lock-ins
Learn by example
Fix it yourself
Focusing of “creativity” Standard development / release process No infrastructure gotchas Jump start, low RTFM
![Page 6: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/6.jpg)
Developer ergonomics
How simple is to build and run your software?
How easy is testing it?
Framework based development Clean / clear release cycle Dependency Management Core build vs. integration facilities Extension points
Key element to a successful / viral ecosystem!
![Page 7: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/7.jpg)
Community vs. Ecosystem
Community
End users
Buzz and trends
Initial driver
Ecosystem, the next level for a framework
Active lively development community
Contributions
Proactive Partners / Customers
![Page 8: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/8.jpg)
Apache Chemistry OpenCMIS
![Page 9: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/9.jpg)
Project history CMIS standard implementation Project started in 2009 ASF contribution in late 2009 / early 2010 First incubator release in early 2010 Graduation in 2011 8 releases in less than 2 years Maven Release management might have
been quite tedious! But...
![Page 10: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/10.jpg)
Maven + ASF. The dynamic duo
![Page 11: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/11.jpg)
Maven + ASF: releases like a charm!
![Page 12: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/12.jpg)
Basically…paradise!
![Page 13: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/13.jpg)
Who benefits from that? Me, me, me! Community
Well-know contracts and interfaces No brainer evaluation
Did I mention ME? Enterprise Ecosystem
Standard integration lifecycle Thorough legal / licensing enforcement Control over inbound software
![Page 14: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/14.jpg)
The Maven + Alfresco story
![Page 15: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/15.jpg)
Once upon a time… (2007)
Boss: “You gotta learn Alfresco, quick!”
Gab: “Mhmhmh…ok ”
We all ♥ frameworksModern and coolOpen Source and Easy to use
And Alfresco is all of that but…
![Page 16: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/16.jpg)
So what was this Alfresco thing?
Very, very nice platform, but not so easy to
![Page 17: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/17.jpg)
It’s a bit like…
![Page 18: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/18.jpg)
A typical complex ECM project
![Page 19: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/19.jpg)
And the solution would be?
![Page 20: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/20.jpg)
The real solution was … going rogue!
Confession• I have never used the “old” Alfresco SDK!
(ehm…)• I need more productivity and standards!
Why not?
•Alfresco is just a webapp (WAR)
•AMPs are no more than ZIPs managed by Alfresco Module Management tool
Why can’t I use my favorite tool of choice?
![Page 21: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/21.jpg)
But a fool with a tool is still a fool…
![Page 22: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/22.jpg)
1. Open the Alfresco box
Alfresco Artifacts taxonomy
Artifacts Repository
2. Put more stuff in that box
Project archetypes
Frequently used samples
3. Make people open the present
Delivery to the Community
Alfresco Enterprise compatible
Evil plan needed!
![Page 23: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/23.jpg)
• 2008: Maven Alfresco Archetypes founded
• A (quite messy) set of field Maven best practices
• 2009: Maven Alfresco Lifecycle (up to 3.9.1)
• Consolidation of archetypes and plugins• More than 100 people on the public list • June 2012: Alfresco Artifacts Repository!• More than 100 Enterprise customers subscribed!• Nov 2012: Maven Alfresco SDK™ released!• Backed by Alfresco Artifacts and POMs!
A Community success story
![Page 24: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/24.jpg)
Just two days ago…
![Page 25: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/25.jpg)
The Maven Alfresco SDK
![Page 26: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/26.jpg)
Maven Alfresco SDK components
• Alfresco Maven PluginEmbeds Alfresco MMT
• Alfresco SDK Parent POMSDK single point of entrance
• Alfresco Platform Distribution POMCommunity / Enterprise
• Alfresco Maven archetypes
AMP & All-in-One
![Page 27: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/27.jpg)
Archetypes
SDK POM
Plugin
Alfresco Artifacts <dependency>Deployment
Maven Alfresco SDK™ architecture
![Page 28: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/28.jpg)
Because development should be fun…
![Page 29: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/29.jpg)
And Alfresco development can be!
![Page 30: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/30.jpg)
SDK entry points
• AMP archetype• Development of features on Repo / Share as AMPs
• Local testing of developed features
• All-in-one archetype• Full blown demo or Enterprise quick start project
• Contains AMP, Repo, Share, Solr, Web Quick Start
• Your custom projectUsing SDK Parent or Alfresco Maven Plugin
![Page 31: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/31.jpg)
Documentation websitehttps://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-lifecycle-aggregator/latest/index.html
BTW, The sexy Fluido skin ROCKS! Kudos!
![Page 32: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/32.jpg)
Quick Demo
All-in-One multi-module packaging & embedded run
https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs/alfresco-lifecycle-aggregator/latest/archetypes/alfresco-allinone-archetype/index.html
0 manual downloads, 2 commands and you’re up and running!
MAVEN_OPTS="-Xms256m -Xmx1G -XX:PermSize=300m"
![Page 33: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/33.jpg)
Enthusiastic feedback!
![Page 34: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/34.jpg)
A needed clarification…
• I did my homeworks• Ant Just can’t scale and provide simple
support for “framework integration”• Gradle Nice and lean but
• Less mature and complete than Maven• Less expertise around• Perfect for experienced developers, less for noobs
• Maven and the 80% - 20% rule• Nobody is perfect
• Standard de facto
• Provides compatibility for other build tools
![Page 35: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/35.jpg)
Conclusions and Q/A
![Page 36: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/36.jpg)
Community != Marketing
• Community is our best asset• Cannot be “controlled”• Cannot be “convinced”• Cannot be easily fooled
• Ecosystem needs to be “seeded”• Turn your community into a lively ecosystem
making it “easy for them”• Mainstream and Viral effect!
• A standard process is critical for its sustainability!
![Page 37: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/37.jpg)
SDK as ecosystem enabler• What’s possible now
• 2 commands, no downloads up’n’running• Easy extension testing Quality & easier support• Framework Integration Process reuse via archetypes
• Community ecosystem enablement• Quick evaluation and contribution
• Zero-BS approach with archetypes (nobody likes RTFM)
• Enterprise ecosystem enablement• OEM and embedding of Alfresco (fine grained)
• Drop all their custom Maven repositories!
• Easy Community Enterprise switch
![Page 38: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/38.jpg)
A very promising start…
![Page 39: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/39.jpg)
Maven provides a platform to build a sustainable and lively ecosystem!
![Page 40: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/40.jpg)
Conclusion
• Community and Enterprise network require an enabling technology to build a lively framework ecosystem
• Maven is a perfect enabler for• Simple, minimal RTFM, product evaluation
• Scaling from individual to enterprise processes seamlessly
• Opening up a black box in a controlled way!
• Enabling integration process reuse (via archetypes)
![Page 41: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/41.jpg)
Hopefully one step closer!
![Page 42: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/42.jpg)
On a a more serious note…
![Page 43: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/43.jpg)
So happy Mavember everyone!
![Page 44: ApacheCon EU 2012 - Columbro - Apache Maven Application Lifecycle Management as standard Community and Enterprise ecosystem enabler](https://reader035.vdocuments.site/reader035/viewer/2022081519/5552f6c5b4c90587048b4e66/html5/thumbnails/44.jpg)
References
Alfresco Software
Maven Alfresco SDK
Alfresco SDK Parent POM
Alfresco 4.2.b Platform Distribution POM
Alfresco Artifacts Repository
Join the community•Alfresco Software
•Maven Alfresco Community
•Maven Alfresco on GoogleCode
•Twitter• @mindthegabz