What is Apache Maven? Is the standard de facto in open source Java based application lifecycle management Allows to use standard commands to manage all software lifecycle phases from creation to release Support project inter-dependencies (and dependency on the officially released Alfresco) and project binary repository Maven AMP Plugin Packages AMPs Allows an Extension WAR to depend on AMP (alternative to the MMT, done at build time) Real enabler for the growingly complex NXP architecture
Straighten your processes first NXP Goals: Get to the ultimate single sourcing enterprise content repository Have multiple customizations being automatically packaged, tested, released and deployed to application servers Manage a reproducible build aware of multiple environments (build and runtime configurations) Dependency management versioning and centralized repository Early phases (2007) Multiple parties developing in isolation Content silo high risk Growing complexity (so TCO) of Alfresco production environment (multiple Alfresco WARs) NO design and processes in place for ECM and Application Lifecycle Management (Application Lifecycle Īlfresco SDK Enterprise limitations Project approach: Define ECM processes (ECM Foundation) Define ALM processes (Application Lifecycle Document) Use enabling ALM technologies to support ECM complex architectural integration challenges Alfresco SDK Limitations: The Alfresco SDK + MMT approach would have required a large amount of scripting and manual configuration No explicit support to scale up and cope with enterprise complexity Apache Maven was chosen as reference technology for coping with complexity of modern ECM architectures NXP C3 Architecture Alfresco as Basic Content Services (Versioning, Editing) Alfresco as Advanced Content Management
NXP Case study 40k employees global semiconductors enterprise disentangling from Philips Alfresco as key building block of C3, enterprise content repository for the new redesigned architecture Content and code reuse main driver of the C3 Several parties involved in the huge migration and (up to) 800 customization projects
Why Alfresco? Scales to Enterprise Wide Repository Benchmarks up to 100 million objects Multi-tenancy and REST front-ends Reduces vendor lock-in Best of breed open source components Integrate in rather than impose your stack Grows outstandingly in feature and support First CIFS Java implementation Sharepoint protocol support Social collaboration platform Biggest Open Source ECM player 70,000 Community members 30,000+ Active installations 75 countries, 20 languages It’s open source… we can customize it!Īlfresco customizations Custom Modelling Custom content model Custom space taxonomy Custom User capabilities Custom UI configurations Custom workflows New feature development Custom webscripts Custom JSF components Custom SURF components (as of 3.x) Integration with 3 rd party products LDAP/CAS Liferay Ĭustomization packaging 2 approaches with different purposes: Alfresco extension (WAR): environment dependent builds with core configurations ( classpath:alfresco/extension/* ) Alfresco Module Package (AMP) AMPs should be (almost 100%) : mutually non intrusive (software module) relocable reusable with repository version limitations self-contained in ( classpath:alfresco/module/*/** )
Enterprise Development with Alfresco and Maven Prepared by Hilversum, 21 st April 2009Ī bit of introduction Gabriele Columbro ECM Architect on Alfresco for 2+ years with Sourcesense IT&NL 2 nd day in Alfresco as EMEA Field Consultant for Professional Services Focus ECM enterprise integration Application Development best practices with Apache Maven Clients NXP, GovUnited, Banca Popolare di Milano