Maven Alfresco SDK @ Alfresco Rome Meetup

Post on 13-May-2015

1,535 views 5 download

Tags:

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

So do you love it or what?

Questions?

Thanks!

Gabriele Columbro Principal Architect, Consulting Services

Maurizio PillituTechnical Consultant, Consulting Services