Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Relaxing CNDs Hippo GetTogether

671 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Relaxing CNDs Hippo GetTogether

  1. 1. Relaxing CNDs Hippo GetTogether 20 aug 2010 Frank van Lankvelt • f.vanlankvelt@onehippo.com
  2. 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. 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. 4. Demo
  5. 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. 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="http://www.jcp.org/jcr/sv/1.0" 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. 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. 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. 9. Questions?

×