maven alfresco sdk @ alfresco rome meetup
TRANSCRIPT
Maven Alfresco SDK 1.0.1
Gabriele ColumbroMaurizio PiIllitu
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)
– Plugin embedding Alfresco MMT for AMP packaging / installation
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
What am I talking about?
Sources & Javadocs
IDE independent
Standard lifecycle
Zero downloads
Fast Prototypi
ng
Integrated runtime
Unit & integration
testing
But there’s more…
Alfresco platform selection
Solr configuration
Repository extension
AMP packaging
Share customizatio
n
AMP WARinstallation
In other words…
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!
Archetypes
SDK POM
Plugin
<dependency>DeploymentAlfresco ArtifactsRepository
The SDK at a glance!
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
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!
Or more complex scenarios…
Compatibility notes
• Prerequisites:– Apache Maven 3.0.4
http://maven.apache.org/download.cgi
– 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
Demo
• Overview of SDK functionalities– Create an All-in-One project
– Developer experience
– Unit testing
– Environment dependent properties
• A more complex example
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)
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
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
So do you love it or what?
Questions?
Thanks!
Gabriele Columbro Principal Architect, Consulting Services
Maurizio PillituTechnical Consultant, Consulting Services