Matt Fulford wrote:
Is the only way to make a change to the repository CND file:
1. export data
2. clear/initialize repository
3. register modified CND
4. re-import data

Or can I update some file 'on the fly'?

See registerNodeTypes in NodeTypeManagerImpl:

 NodeTypeManagerImpl manager = (NodeTypeManagerImpl)
   session.getWorkspace().getNodeTypeManager();
 NodeType[] nodeTypes = manager.registerNodeTypes(
   in, // input stream for new CND file
   NodeTypeManagerImpl.TEXT_X_JCR_CND,
   true  // reregister existing node types
 );

<http://jackrabbit.apache.org/api/1.5/org/apache/jackrabbit/core/nodetype/NodeTypeManagerImpl.html#registerNodeTypes(java.io.InputStream,%20java.lang.String,%20boolean)>

I have found this to work even when existing nodes have types being replaced. You can write "migration" code that does the nodetype reregistration (above) and then makes the relevant changes to content. When you call save, nodes are validated against the new node types.

Later
Charlie

Reply via email to