Relaxing CNDs Hippo GetTogether

551 views
456 views

Published on

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

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

  • Be the first to like this

No Downloads
Views
Total views
551
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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?

×