Hi, Thank you very much Brian and Jukka for the comments. This is the code I used earlier (without error handling),
Workspace workSpace = session.getWorkspace(); String CNDFile = "…"; FileReader fileReader = *new* FileReader(cndFileName); CompactNodeTypeDefReader cndReader = *new*CompactNodeTypeDefReader(fileReader, cndFileName); List ntdList = cndReader.getNodeTypeDefs(); NodeTypeManagerImpl ntmgr = (NodeTypeManagerImpl)ws.getNodeTypeManager() NodeTypeRegistry ntreg = ntmgr.getNodeTypeRegistry(); NodeTypeDef ntd = (NodeTypeDef)ntdList.next() ntreg.registerNodeType(ntd); But now I'm using Jackrabbit 1.2.3 , with JSR - 349, I can simply use file = *new* File("CNDFile"); FileInputStream inputStream = *new* FileInputStream(file); Workspace workSpace = session.getWorkspace(); NodeTypeManagerImpl ntTypeMgr = (NodeTypeManagerImpl) workSpace .getNodeTypeManager(); ntTypeMgr.registerNodeTypes(inputStream,JackrabbitNodeTypeManager.* TEXT_X_JCR_CND*,*false*); But when I tried to use it with the registerExisting flag true, it gave me an exception at line, *return* (NodeType[]) nodeTypes.toArray(*new* NodeTypeDef[nodeTypes.size ()]); Exception in thread "main" *java.lang.ArrayStoreException* at java.lang.System.arraycopy(*Native Method*) at java.util.ArrayList.toArray(*ArrayList.java:304*) at org.apache.jackrabbit.core.nodetype.NodeTypeManagerImpl.registerNodeTypes(* NodeTypeManagerImpl.java:295*) at nandana.jackrabbit.example1.NodeStructuteNew.main(* NodeStructuteNew.java:34*) I was able to fix type conflict by changing that line to *return* (NodeType[]) nodeTypes.toArray(*new* NodeType[nodeTypes.size()]) I will go through content structure again and do the modifications. Thanks. BR, Nandana