Your SlideShare is downloading. ×
0
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Maven Application Lifecycle Management for Alfresco
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Maven Application Lifecycle Management for Alfresco

5,445

Published on

Presentation about the Maven way to manage Alfresco customizations, using the Maven Alfresco Archetypes (http://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven) by Gabriele Columbro …

Presentation about the Maven way to manage Alfresco customizations, using the Maven Alfresco Archetypes (http://wiki.alfresco.com/wiki/Managing_Alfresco_Lifecyle_with_Maven) by Gabriele Columbro (http://mindthegab.com/).

Published in: Technology, Education
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,445
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
340
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Get your Enterprise Open Source ready Application Lifecycle Management best practices and success stories from the ECM world Monday, April 6, 2009
  • 2. A bit of us ๏ Eng. Gabriele Columbro - ECM Product Strategy Engineer for Sourcesense (http://www.sourcesense.com) ๏ Open source integration and large content centric applications ๏ ICTU, NXP, GovUnited, Ministry of Finance Monday, April 6, 2009
  • 3. A bit of summary 1. Who needs ALM after all? 2. ECM: or A fool with a tool is still a fool 3. The Long Way to get open source under control 4. NXP demo 5. Calm Framework and Q/A Monday, April 6, 2009
  • 4. Before we start... ๏ What’s Application Lifecycle Management? ๏ Wikipedia says: “Application lifecycle management (ALM) is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management” ๏ But the focus should be on processes rather than technologies Monday, April 6, 2009
  • 5. Before we start... ๏ What’s Enterprise Content Management? ๏ Wikipedia says: “Enterprise content management (ECM) is the strategies, methods and tools used to capture, manage, store, preserve, and deliver content and documents related to organizational processes. ECM tools and strategies allow the management of an organization's unstructured information, wherever that information exists” ๏ Open Source technologies are growing fast in the J2EE world as opposed to proprietary solutions Monday, April 6, 2009
  • 6. ReALM of discussion Qualiy Testing Assurance Automation Fast Prototyping Release management Application Lifecycle Reduced Time Management Flattening the To Market learning curve Get 3rd Standard parties transition to Flattening under operations the learning control curve Monday, April 6, 2009
  • 7. Who wants ALM after all? Monday, April 6, 2009
  • 8. Enterprises need maturity ๏ Business requirements have to cope with applications and architectures modernization ๏ Large process immaturity facing complex architectures and requirements changes ๏ Symptoms: slow deployments to operations, manual intervention on servers, project failures, no or manual testing Monday, April 6, 2009
  • 9. Enterprise application lifecycle Monday, April 6, 2009
  • 10. Enterprise IT myths ๏ Open Source is BAAAAD! (a bit retro’ nowadays) ๏ Almost everything can be solved with that new technology ๏ We must definitely get on board another consultant of that specific open source product! ๏ INSTEAD: A proper process definition (requirements and IT processes) over open source is the real enabler Monday, April 6, 2009
  • 11. Open source and communities ๏ Open source is not just a matter of code ๏ Adopting the Bazaar model is not an easy job for monolithic enterprises ๏ By overlooking inbound open source software flows we enable outbound contributions ๏ Fully mastering open source dynamics enable enterprises to reduce TCO and raise ROI for their contributions/investments Monday, April 6, 2009
  • 12. The system integrators’ quest ๏ Main objective: “Produce arbitrarily complex integration solutions to produce added value for the final customer” ๏ Business perspective: Lower TTM (Time to Market) for integration solutions to be operational ๏ Repetitive activities: tech-specific POCs, hype Open Source integrations, inter customers copy-paste reuse Monday, April 6, 2009
  • 13. Common objectives ๏ A reproducible and scalable way to manage application build, test, release, maintenance and integration policies ๏ Prototyping of projects to fasten TTM by easy learning curve ๏ Maximize controlled reuse of your code assets ๏ Make tough things simple! Monday, April 6, 2009
  • 14. ECM or “a fool with a tool is still a fool” Monday, April 6, 2009
  • 15. ECM is a tough world ๏ “46% of large organizations report have more than 25 separate information repositories” “AIIM – ECM Implementation Trends” ๏ Majority of ECM implementations fails due to poor processes and decision making ๏ If ECM is your focus, content centric processes must be reviewed first, IT architecture and development processes can follow ๏ ALM and ECM maturity levels are bound to each other when creating a common Enterprise content repository Monday, April 6, 2009
  • 16. A (not always) simple recipe to approach ECM 1. Identify your content centric processes 2. Identify main business drivers to ECM application and customization 3. Define your enterprise content model with a meet in the middle approach 4. Support growing information consolidation and delivery architectures with strong decision making 5. Cope with complexity (requirements, people, technology) with Application Lifecycle Management Monday, April 6, 2009
  • 17. ALM and ECM tight coupling Monday, April 6, 2009
  • 18. But what target technologies are we talking about? Monday, April 6, 2009
  • 19. But what target technologies are we talking about? Target technologies Monday, April 6, 2009
  • 20. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” Target technologies Monday, April 6, 2009
  • 21. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” Target technologies Monday, April 6, 2009
  • 22. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” Target technologies Monday, April 6, 2009
  • 23. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” Target technologies Monday, April 6, 2009
  • 24. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” ๏ Mysql 4 as the “DBMS” Target technologies Monday, April 6, 2009
  • 25. But what target technologies are we talking about? ๏ Alfresco 3.0 EE as “the ECM Framework” ๏ Jboss AS 4.2.0 EE starring “the AppServer” ๏ Mysql 4 as the “DBMS” Target technologies Monday, April 6, 2009
  • 26. Managing Alfresco applications ๏ Alfresco is a fairly complex J2EE application (~70Mb) and multiple WARs ๏ Our daily job is configure, customize and integrate it with additional functionalities and J2EE artifacts ๏ It’s distributed as a WAR and it’s build with Ant, but the open source provided SDK is not really enabling ๏ It’s modules (plug-ins) are called AMPs (Alfresco Module Packages) which get overlaid on the WAR ๏ Early 2007: first Maven based build for Alfresco extensions for Banca Popolare di Milano ๏ Alfresco community artifacts hosted by Sourcesense Maven2 private repository Monday, April 6, 2009
  • 27. The long way to mature ALM Monday, April 6, 2009
  • 28. NXP Case Study ๏ 40k employees global semiconductors enterprise ๏ Alfresco ECM chosen as replacement for Lotus Notes as ECM building block in a fully new open source architecture ๏ Several parties involved in the huge migration and (up to) 800 customization projects ๏ Content and code reuse as main rationale but no standard design and processes for ECM and ALM Monday, April 6, 2009
  • 29. Some field examples ๏ No Software Configuration Management in place and manual changes in production environments ๏ Manual error prone testing procedures and stressful UAT phases ๏ No way to integrate multiple applications and content silo effect high risk ๏ Multiple development standards and unmanaged versioning policies Monday, April 6, 2009
  • 30. A fun place to work ;) Monday, April 6, 2009
  • 31. Maturity step 1: A bottom up approach ๏ First Alfresco application built with Maven on SVN in early 2008, featuring: ๏ Embedded run in Jetty (maven-jetty-plugin) ๏ Documentation website (maven-site-plugin) and manuals (doxia-maven-plugin) ๏ Clear versioning and dependency management (easy upgrade of Alfresco version) ๏ Local deploy to Jboss/remote to deploy to Tomcat ๏ To be able to reuse this achievement we exploited the power of Maven Archetypes Monday, April 6, 2009
  • 32. Maven Alfresco Archetypes http://repository.sourcesense.com/maven2-sites/maven-alfresco-archetypes ๏ Public Release 1.0.0: June 2008 ๏ Maven Alfresco Extension Archetype: Support for Alfresco WAR custom build with platform specific profiles ๏ Maven Alfresco Amp Archetype: Definition of a custom Maven packaging type to manage Alfresco modules ๏ Main features: ๏ Reproducible environment aware build ๏ Documentation and release support ๏ Support for WAR depending on AMPs ๏ Restore/LDAP integration/Run embedded in Jetty Monday, April 6, 2009
  • 33. Archetypes benefits ๏ Defining a pattern-ish vocabulary to refer to application prototypes assumes an architectural value ๏ Enables complex inter-dependency networks (WARs can depend on AMPs) ๏ They can be improved and updated centrally with changing needs from the enterprise ๏ Enable the system integrator to produce a working demo solution in a matter of minutes Monday, April 6, 2009
  • 34. Demo ๏ Maven Alfresco Extension Archetype ๏ Maven Alfresco AMP archetype ๏ Site generation ๏ Q/A Monday, April 6, 2009
  • 35. Limitations of 1.0.0 version ๏ Verbose POMs ๏ No support for centralized dependency management and application lifecycle management ๏ No focus on integration testing (very difficult with Alfresco) and continuous integration ๏ Covering only the development part of the application lifecycle ๏ E.g not yet mature for a complex organization and high target as NXP Monday, April 6, 2009
  • 36. Maturity step 2: Design and implement your ALM framework ๏ Objectives: 1. Maximize reuse of code and content 2. Support multiple business processes in the same target application (Alfresco) 3. Enable clear communication of IT and business ๏ Strategy: 1. Share ALM values and outline processes 2. Set up a reference application development platform 3. Model your archetypes to match the target architecture 4. Exploit a controlled lifecycle management as enabler Monday, April 6, 2009
  • 37. ALM Core Values ๏ Application Lifecycle should be reproducible and environment independent ๏ Identify and respect your release ๏ If it’s not tested (automatically) then it’s not working ๏ It it’s not documented then it doesn’t exist ๏ Controlled integration is possible and should not limit business improvement ๏ Centralize common configuration while leave projects enough flexibility for special cases Monday, April 6, 2009
  • 38. Support processes outline Project initiation Project development Project release Monday, April 6, 2009
  • 39. But what support technologies are we talking about? Target technologies Monday, April 6, 2009
  • 40. But what support technologies are we talking about? Target technologies Support technologies Monday, April 6, 2009
  • 41. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” Target technologies Support technologies Monday, April 6, 2009
  • 42. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” Target technologies Support technologies Monday, April 6, 2009
  • 43. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” Target technologies Support technologies Monday, April 6, 2009
  • 44. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” Target technologies Support technologies Monday, April 6, 2009
  • 45. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies Support technologies Monday, April 6, 2009
  • 46. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies Support technologies Monday, April 6, 2009
  • 47. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” Support technologies Monday, April 6, 2009
  • 48. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” Support technologies Monday, April 6, 2009
  • 49. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” Support technologies Monday, April 6, 2009
  • 50. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” Support technologies Monday, April 6, 2009
  • 51. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” ๏ Special guest, ThoughtWorks Selenium as the “functional testing framework” Support technologies Monday, April 6, 2009
  • 52. But what support technologies are we talking about? ๏ Apache Maven starring “the Application Lifecycle glue” ๏ Subversion playing the “Software Configuration Management” ๏ Atlassian Jira as the “Issue tracker and planning tool” Target technologies ๏ Sonatype Nexus starring “the Enterprise Repository” ๏ Hudson in the role of “the Continuous Integration server” ๏ Special guest, ThoughtWorks Selenium as the “functional testing framework” Support technologies Monday, April 6, 2009
  • 53. Apache Maven as glue for enterprise open source http://maven.apache.org/ ๏ Designed for scalability, reduces TTM on both simple POCs and complex architectures ๏ It allows extending the notion of application lifecycle to maintenance and back ๏ Despite not perfect, is the standard de facto in Open Source J2EE projects and has a strong community ๏ Integrates with almost any IDE now ๏ Because we can contribute and improve it ! Monday, April 6, 2009
  • 54. Apache Maven as glue for enterprise open source http://maven.apache.org/ ๏ Designed for scalability, reduces TTM on both simple POCs and complex architectures ๏ It allows extending the notion of application lifecycle to maintenance and back ๏ Despite not perfect, is the standard de facto in Open Source J2EE projects and has a strong community ๏ Integrates with almost any IDE now ๏ Because we can contribute and improve it ! Monday, April 6, 2009
  • 55. Software configuration management http://subversion.tigris.org/ ๏ Best practices: 1. Standard trunk/branches/tags per project structure 2. Maintenance branches 3. Tagging per release 4. Build number based on SVN revision ๏ Target: allow separate business projects (parties) to run independently on separate SVN roots, whilst allowing the final binary product to be integrated in the main Enterprise Alfresco instance Monday, April 6, 2009
  • 56. Target Alfresco Architecture Monday, April 6, 2009
  • 57. Task and requirements management ๏ Multiple projects often lose track of relation between requirements and tasks ๏ Jira as a planning tool (or the importance of “Fix Version”) ๏ Maven integration with maven-changes-plugin allows automation of release notes ๏ Remote API allow growing integration degrees ๏ Tip: Map 1-1 your development projects to Jira projects Monday, April 6, 2009
  • 58. Enterprise Repository Manager http://nexus.sonatype.org/ ๏ Nexus enforces (together with Maven) the notion of Artifact as uniquely identifiable product of a specific development process (GAV search) ๏ Unique mirror/proxy for all produced enterprise artifacts and single point of contact with external world ๏ Boosts reuse as generates visibility on project artifacts ๏ Can scale to the enterprise with Professional Edition features (LDAP integration, Procurement, Enterprise class documentation) ๏ Separate repositories for enterprise Releases and Snapshots to ensure additional stability Monday, April 6, 2009
  • 59. Continuous Integration Server https://hudson.dev.java.net/ ๏ Advanced Build server tightly integrated with Maven ๏ Fine tune your build schedule ๏ Periodically on early development stages ๏ On commit close to release and in operations ๏ Build server deploys remotely to Test Jboss and run remote Selenium integration tests, whose reports are published on the site ๏ Alternatively, simple modules are tested directly in Jetty embedded in Hudson Maven build ๏ Tip: Define a CI specific profile in your maven build (-Pci) to override ports/locations and avoid clashes Monday, April 6, 2009
  • 60. The hot issue with testing Alfresco http://seleniumhq.org/ ๏ Alfresco does not provide a POM. So no transitive dependencies, no easy test classpath ๏ You don’t want to test Alfresco, only your custom modules ๏ Such a complex architecture needs a bullet proof testing harness to survive ๏ Iterative solution: 1. Provide functional test first: Selenium bridges the gap with end users, empowered to produce automated UAT tests 2. Enable unit/integration testing: Contributed improvement to surefire (http://jira.codehaus.org/browse/SUREFIRE-545) 3. Run both in CI: Remote deployment on Jboss as enabler (http:// jira.codehaus.org/browse/CARGO-416) and Xvfb Monday, April 6, 2009
  • 61. The hot issue with testing Alfresco http://seleniumhq.org/ ๏ Alfresco does not provide a POM. So no transitive dependencies, no easy test classpath ๏ You don’t want to test Alfresco, only your custom modules ๏ Such a complex architecture needs a bullet proof testing harness to survive ๏ Iterative solution: 1. Provide functional test first: Selenium bridges the gap with end users, empowered to produce automated UAT tests 2. Enable unit/integration testing: Contributed improvement to surefire (http://jira.codehaus.org/browse/SUREFIRE-545) 3. Run both in CI: Remote deployment on Jboss as enabler (http:// jira.codehaus.org/browse/CARGO-416) and Xvfb Monday, April 6, 2009
  • 62. Project development lifecycle Monday, April 6, 2009
  • 63. Top Ten ALM implementation best practices 1. Define an Enterprise SuperPOM to centralize dependencies and environments 2. Introduce the Role of the Librarian 3. Version your Maven projects accordingly to your Jira project versions, using snapshots and release candidates 4. Your tests should be self contained and runnable in CI and the must produce intelligible reports 5. Define your Enterprise Repository as single source of truth for QA and Prod installations 6. Document your project inline and use the Jira/Changes Report to automate release notes 7. maven-release-plugin is as cool as complex so handle it with care. Once that it works though, it way better than any manual release process 8. Use Selenium recorder to have your end users record UAT sessions and use the test to ensure no regressions on new releases 9. When dealing with open source software, prefer contribution over complaint 10. Create a maintenance branch at every major/minor release Monday, April 6, 2009
  • 64. ALM in Action Monday, April 6, 2009
  • 65. Too much talking... ๏ Let’s see it action! ๏ Maven Eclipse Integration (Dependency Graph) ๏ Maven site (changes:jira-report and surefire-report:report-only) ๏ Technology specific and environmental profiles, typical cmd line: mvn iQ/nstall -Pcas,ldap,test1 ๏ Selenium Local and CI ๏ Q/A Monday, April 6, 2009
  • 66. In the pipeline ๏ ALM in place in 2009Q1 and since then already a fully fledged Alfresco release with 3 integrated business applications (and growing) ๏ High degrees of integration: ๏ SVN/JIRA integration/enforcement ๏ Development workflows and push notifications ๏ Nexus professional and procurement ๏ Separation of concerns and abstraction of best practices in a ALM-only superPOM Monday, April 6, 2009
  • 67. Calm Application Lifecycle Management Monday, April 6, 2009
  • 68. How can you abstract best practices? ๏ Maven archetypes and inheritance are powerful to delegate responsibility-specific POMs ๏ Still POMs are verbose and error prone, we want to expose as less as possible to junior developers ๏ Best practices are not technology specific and can be reused independently ๏ ALM is about processes, we need to aggregate Maven plugin configurations in more structured flows Monday, April 6, 2009
  • 69. Maturity step 3: CALM ๏ The idea: “Create an abstraction layer to provide standard flows and reduce configuration needed per project” ๏ The objective: Reach a complete lifecycle abstraction which is ๏ Cross-customer ๏ Cross-technology ๏ Extensible and flexible ๏ The solution: A technology independent superPOM gathering all common plugin configurations in use-case oriented Maven profiles Monday, April 6, 2009
  • 70. CALM - State of the Art ๏ My first project with a recursive acronym! Yeah! ๏ References: ๏ Source Code/ Community: http://code.google.com/p/maven-calm ๏ First commit: December 2007, 2 active committers, growing in interest ๏ `Base for the Maven Alfresco Archetypes 3.0 release ๏ Still under heavy work in progress but getting there ;) Monday, April 6, 2009
  • 71. How to use it ๏ CALM should be the SuperPOM of your enterprise POM or of your single project POM ๏ Create your enterprise POM and inherit all standard best practices from CALM superPOM ๏ Your project would be invoked always with a standard command line: Text mvn -Pflow1[,flow2...flowN [,feature1...featureN] [env=local] Monday, April 6, 2009
  • 72. CALM Profiles decomposition ๏ Environmental profiles ๏ Build time properties from POM and profiles.xml ๏ Runtime properties by setting the -Denv variable ๏ Flow/UseCase profiles ๏ Actually instruct maven on which plugins and sequence of them should be executed and which is the default phase ๏ Currently supported: integration-test, selenium-test, deploy, run ๏ Feature profiles ๏ Add features to the application under packaging, technology specific or general purpose ๏ Currently supported for Alfresco: cas, ldap, liferay, mysql Monday, April 6, 2009
  • 73. CALM - Perspectives ๏ CALM Target audience: 1. Medium/Large Enterprise targeting to standardize IT processes and procedure, independently from the landscape of technologies in use 2. (Open Source) System Integrator which, cross-customer and cross-technology, aims to provide a standard service in terms of quality of deliverables, reducing TTM and TCO 3. Community enthusiast willing to start off an open source project but is scared by Maven learning curve WE MAKE IT EASY FOR YOU! Monday, April 6, 2009
  • 74. Wrap it all up ๏ Enterprise business has to fight to start embracing the bazaar model to cope with IT modernizations ๏ Give priority to processes rather than technologies... ๏ ...but don’t underestimate how automation can improve your release schedule and your business agility ๏ You don’t need hype extremely expensive software or consultants to manage your IT assets, it’s a matter of values! ๏ Maven is tough but you can work it to make it simple for the vast majority of users (80% - 20% rules) Monday, April 6, 2009
  • 75. Thank you! Monday, April 6, 2009

×