maven alfresco sdk @ alfresco rome meetup

19
Maven Alfresco SDK 1.0.1 Gabriele Columbro Maurizio PiIllitu

Upload: gabriele-columbro

Post on 13-May-2015

1.543 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Maven Alfresco SDK @ Alfresco Rome Meetup

Maven Alfresco SDK 1.0.1

Gabriele ColumbroMaurizio PiIllitu

Page 2: Maven Alfresco SDK @ Alfresco Rome Meetup

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

Page 3: Maven Alfresco SDK @ Alfresco Rome Meetup

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

Page 4: Maven Alfresco SDK @ Alfresco Rome Meetup

What am I talking about?

Sources & Javadocs

IDE independent

Standard lifecycle

Zero downloads

Fast Prototypi

ng

Integrated runtime

Unit & integration

testing

Page 5: Maven Alfresco SDK @ Alfresco Rome Meetup

But there’s more…

Alfresco platform selection

Solr configuration

Repository extension

AMP packaging

Share customizatio

n

AMP WARinstallation

Page 6: Maven Alfresco SDK @ Alfresco Rome Meetup

In other words…

Page 7: Maven Alfresco SDK @ Alfresco Rome Meetup

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!

Page 8: Maven Alfresco SDK @ Alfresco Rome Meetup

Archetypes

SDK POM

Plugin

<dependency>DeploymentAlfresco ArtifactsRepository

The SDK at a glance!

Page 9: Maven Alfresco SDK @ Alfresco Rome Meetup

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

Page 10: Maven Alfresco SDK @ Alfresco Rome Meetup

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!

Page 11: Maven Alfresco SDK @ Alfresco Rome Meetup

Or more complex scenarios…

Page 12: Maven Alfresco SDK @ Alfresco Rome Meetup

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

Page 13: Maven Alfresco SDK @ Alfresco Rome Meetup

Demo

• Overview of SDK functionalities– Create an All-in-One project

– Developer experience

– Unit testing

– Environment dependent properties

• A more complex example

Page 14: Maven Alfresco SDK @ Alfresco Rome Meetup

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)

Page 15: Maven Alfresco SDK @ Alfresco Rome Meetup

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

Page 17: Maven Alfresco SDK @ Alfresco Rome Meetup

So do you love it or what?

Page 18: Maven Alfresco SDK @ Alfresco Rome Meetup

Questions?

Page 19: Maven Alfresco SDK @ Alfresco Rome Meetup

Thanks!

Gabriele Columbro Principal Architect, Consulting Services

Maurizio PillituTechnical Consultant, Consulting Services