Maven Alfresco SDK @ Alfresco Rome Meetup


Published on

Published in: Technology

Maven Alfresco SDK @ Alfresco Rome Meetup

  1. 1. Maven Alfresco SDK 1.0.1Gabriele Columbro Maurizio PiIllitu
  2. 2. What is the Maven Alfresco SDK?• A set of tools and samples to manage the full lifecycle of Alfresco based project – Build and packaging – Unit Testing and Debugging – Release and distribution – Any other Maven feature (e.g. artifacts signing, documentation)• What does it entail? – A parent POM you can use in your project to enable SDK features – Project Samples & Prototyping via archetypes (AMP & All- in-One)
  3. 3. Why another SDK?• To enable the next quality level on Alfresco customizations!• For the Enterprise Network – Maven is standard de facto for our key customers – Enable development of quality extensions (unit testing support) – Enable IDE-independent processes (e.g. CI)• For the Community network – Maven is widely used and standard – Clearly identifiable / searchable artifacts in the Artifacts Repository• For the Integration Engineering team – Standardized on Maven for integrations – Maven naturally allows fine grained dependency on Alfresco specific versions / editions• Trust us, we feel the pain 
  4. 4. What am I talking about?
  5. 5. But there’s more…
  6. 6. In other words…
  7. 7. A bit of (a success) history…• 2009: Maven Alfresco Archetypes started – A (quite messy) set of field Maven best practices – Remember an earlier brownbag?• 2009: Maven Alfresco Lifecycle (up to 3.9.1) – Consolidation of archetypes and plugins• June 2012: Alfresco Artifacts Repository! – Alfresco Enterprise artifacts available!• Nov 2012: Maven Alfresco SDK 1.0 out!
  8. 8. The SDK at a glance! Archetypes SDK POM Plugin Alfresco Deployment Artifacts <dependency> Repository
  9. 9. Maven Alfresco SDK components• Alfresco Maven Plugin – Embeds Alfresco MMT• Alfresco SDK Parent POM – SDK single point of entrance• Alfresco Platform Distribution POM – Community / Enterprise• Alfresco Maven archetypes – AMP & All-in-One
  10. 10. Maven Alfresco SDK use cases• AMP archetype – Create an Alfresco module from scratch – Create a Share customization from scratch• All-in-One archetype – Manage a full blown (foundation) Alfresco project – Build and distribute WARs (potentially depending on AMPs) – Evaluate Alfresco with one command – Demo Alfresco or reproduce an issue in minutes• SDK Parent POM – Enable your existing Maven project to use SDK features – You are Maven guru and know much better than using archetypes!
  11. 11. Or more complex scenarios…
  12. 12. Compatibility notes• Prerequisites: – Apache Maven 3.0.4 – There are no more pre-requisites • Compatibility notes: – Compatible with Alfresco Community 4.2+ & Alfresco Enterprise 4.1.2+ – For embedded running we leverage Jetty and H2 embedded • Only for development purposes! • H2 uses Postgres compatibility/emulation mode • Deployment to other appservers comes for free with Maven
  13. 13. Demo• Overview of SDK functionalities – Create an All-in-One project – Developer experience – Unit testing – Environment dependent properties• A more complex example
  14. 14. Some numbers• Great (and measurable) impact in our Network!• Maven Alfresco Google Group – About 130 subscribers – Daily activity• Google Code Project – 4 active committers (Gab, Mao, Samuel, Ray) – About 20 contributors• Alfresco Artifacts Repository – More than 100 customers subscribed in 6 months  – BETA: Downloads tracked in Google Analytics (see BDE- 123)
  15. 15. Roadmap• Maven Alfresco SDK 1.0.1 – Released a month ago!  – Adds support for Alfresco Enterprise• Maven Alfresco SDK 1.1 – RAD and Hot code deployment (Jrebel or mvn jetty:run) – Integration test support • Potentially using WebDrone and benchmark server• Other high impact activities: – Alfresco Community on Maven Central for easy access to all the J2EE developers community (5 XML lines away) – More and Enterprise only archetypes • One command cluster local setup archetypes
  16. 16. Get involved!• Documentation – Maven generated Documentation Site – DevCon presentations – Google group archive• Community – Join the Maven Alfresco Google group – Contribute in the Google Code project• Resources – SDK on Alfresco artifacts – Bamboo build
  17. 17. So do you love it or what?
  18. 18. Questions?
  19. 19. Thanks! Gabriele Columbro Maurizio Pillitu Principal Technical Consultant, Architect, Consulting Consulting Services Services