Your SlideShare is downloading. ×
  • Like
Relaxing CNDs Hippo GetTogether
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Relaxing CNDs Hippo GetTogether


Frank van Lankvelt shows how relaxing CNDs can make development and upgrade of Hippo implementations easier.

Frank van Lankvelt shows how relaxing CNDs can make development and upgrade of Hippo implementations easier.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Relaxing CNDs Hippo GetTogether 20 aug 2010 Frank van Lankvelt •
  • 2. Who am I? Short CV: theoretical physics in Utrecht PhD in Amsterdam (anti-virus) driver developer at Sophos (Oxford) CMS frontend / plugin framework lead at Hippo
  • 3. Introduction Relaxing CNDs should make Updates and Upgrades easier. But: How relaxed are "relaxing CNDs"? Outline 1. demo 2. hippo:version tags 3. upgrade modules 4. limitations 5. outlook
  • 4. Demo
  • 5. Importing CNDs Import CNDs either Runtime: "import CND" in the web console Bootstrap: hippo:initializeitem in hippoecm-extension.xml Develop with runtime imports, update and upgrade projects using bootstrap.
  • 6. Hippo:version tags hippoecm-extension.xml, use a hippo:version property. hippoecm-extension.xml: <?xml version="1.0" encoding="UTF-8"?> <sv:node xmlns:sv="" sv:name="hippo:initialize"> <sv:property sv:name="jcr:primaryType" sv:type="Name"> <sv:value>hippo:initializefolder</sv:value> </sv:property> <sv:property sv:name="hippo:version" sv:type="String"> <sv:value>hippogogreen-v1_1</sv:value> </sv:property> ... </sv:node>
  • 7. Upgrade modules Upgrade modules are triggered using the hippo:version tags: public void register(final UpdaterContext context) { context.registerName("gogreen-update-v11"); context.registerStartTag("hippogogreen-v1_0"); context.registerEndTag("hippogogreen-v1_1"); Tags are used to identify "repository version" Clean bootstrap has same tags as upgraded repository Names are used in upgrades for ordering of module execution: context.registerAfter("upgrade-v13a"); Plugins must use these too; projects should not need to upgrade plugin configuration or content.
  • 8. Limitations & Outlook Only two operations possible within existing namespace 1. add a field to an existing type 2. add a new compound or document type Improvements: 1. integration with document type editor => on the roadmap for Hippo CMS 7.5 release 2. automate svn / repository compare and synchronization? 3. declarative upgrade modules? 4. <more ideas here>
  • 9. Questions?