|
View:
New views
3 Messages
—
Rating Filter:
Alert me
|
|
|
creating custom node types inheriting from nt:folder using jcr mappingHi,
I want to use jcr mapping layer for creating custom node type "folder" which should inherit from "nt:folder" I have following custom_nodetype.xml <nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:rep="internal" xmlns:mix="http://www.jcp.org/jcr/mix/1.0"> <nodeType name="folder" isMixin="false" hasOrderableChildNodes="false" primaryItemName=""> <supertypes> <supertype>nt:folder</supertype> </supertypes> </nodeType> </nodeTypes> I have following jcrmapping descriptor <class-descriptor className="com.sun.portal.cms.model.HeirarchyContent" jcrNodeType="nt:hierarchyNode" discriminator="false" > <!-- Field-descriptor is used to map simple attributes to jcr property --> <field-descriptor fieldName="path" path="true" /> <field-descriptor fieldName="creationDate" jcrName="jcr:created" /> /> </class-descriptor> <class-descriptor className="com.sun.portal.cms.model.Folder" jcrNodeType="folder" extend="com.sun.portal.cms.model.HeirarchyContent" discriminator="false" > <!-- Field-descriptor is used to map simple attributes to jcr property --> <field-descriptor fieldName="path" path="true" /> /> <collection-descriptor fieldName="children" proxy="false" jcrNodeType="nt:hierarchyNode" elementClassName="com.sun.portal.cms.model.HeirarchyContent" collectionConverter="org.apache.portals.graffito.jcr.persistence.collectionconverter.impl.NTCollectionConverterImpl" /> </class-descriptor> The problem is I am able to retrieve the items which are properties but I do not see any child node definitions in folder. Ideally since folder is inheriting from nt:folder , it should get a childnode definition of type nt:heirrarchynodeType Is there anything I am missing ? Checked out PersistenceAutoTest.java but it uses all custom nodetypes which are inherited from nt:base and so , it has childnodedefintions in custom node type definition. Help appreciated. Thanks, Ruchi |
|
|
Re: creating custom node types inheriting from nt:folder using jcr mappingHi Ruchi,
It seems to be ok. Send me your unit tests and you model classes. It is a good exemple to add and I will have time to help you this afternoon. br, Christophe On 2/8/07, ruchi goel <Ruchi.Goel@...> wrote: > > Hi, > I want to use jcr mapping layer for creating custom node type "folder" > which should inherit from "nt:folder" > > I have following custom_nodetype.xml > <nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" > xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:rep="internal" > xmlns:mix="http://www.jcp.org/jcr/mix/1.0"> > <nodeType name="folder" isMixin="false" > hasOrderableChildNodes="false" primaryItemName=""> > <supertypes> > <supertype>nt:folder</supertype> > </supertypes> </nodeType> > > </nodeTypes> > > > I have following jcrmapping descriptor > > <class-descriptor className="com.sun.portal.cms.model.HeirarchyContent" > jcrNodeType="nt:hierarchyNode" discriminator="false" > > <!-- Field-descriptor is used to map simple attributes to jcr property --> > <field-descriptor fieldName="path" path="true" /> > <field-descriptor fieldName="creationDate" jcrName="jcr:created" /> > /> > </class-descriptor> > > <class-descriptor className="com.sun.portal.cms.model.Folder" > jcrNodeType="folder" > extend="com.sun.portal.cms.model.HeirarchyContent" discriminator="false" > > > <!-- Field-descriptor is used to map simple attributes to jcr property --> > <field-descriptor fieldName="path" path="true" /> > /> > <collection-descriptor fieldName="children" proxy="false" > jcrNodeType="nt:hierarchyNode" > > elementClassName="com.sun.portal.cms.model.HeirarchyContent" > > collectionConverter=" > org.apache.portals.graffito.jcr.persistence.collectionconverter.impl.NTCollectionConverterImpl > " > /> > </class-descriptor> > > > > The problem is I am able to retrieve the items which are properties but > I do not see any child node definitions in folder. Ideally since folder > is inheriting from nt:folder , it should get a childnode definition of > type nt:heirrarchynodeType > > Is there anything I am missing ? > Checked out PersistenceAutoTest.java but it uses all custom nodetypes > which are inherited from nt:base and so , it has childnodedefintions in > custom node type definition. > > Help appreciated. > Thanks, > Ruchi > |
|
|
Re: creating custom node types inheriting from nt:folder using jcr mappingThanks. Please find attached model classes . I do not have a clearly
isolated unit test case, since I have created a netbeans project where I am using this. But these are the two functionalities I am trying to achieve : public void testSaveFolder(FolderModelService folderService){ //Test Save //insert an Ad in repository Folder folder = new Folder(); folder.setPath("/cms/folder2"); Collection content = new ArrayList(); content.add(new Folder("subfolder2")); folder.setChildren(content); folderService.saveFolder(folder); } public void testReadFolder(FolderModelService folderService){ Folder folder = (Folder)folderService.getFolder("/cms/folder2"); System.out.print("folder Info : " + folder.getCreationDate()); } Thanks, Ruchi Christophe Lombart wrote: > Hi Ruchi, > e > It seems to be ok. Send me your unit tests and you model classes. > It is a good exemple to add and I will have time to help you this > afternoon. > > > br, > Christophe > > > > > On 2/8/07, ruchi goel <Ruchi.Goel@...> wrote: >> >> Hi, >> I want to use jcr mapping layer for creating custom node type "folder" >> which should inherit from "nt:folder" >> >> I have following custom_nodetype.xml >> <nodeTypes xmlns:nt="http://www.jcp.org/jcr/nt/1.0" >> xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:rep="internal" >> xmlns:mix="http://www.jcp.org/jcr/mix/1.0"> >> <nodeType name="folder" isMixin="false" >> hasOrderableChildNodes="false" primaryItemName=""> >> <supertypes> >> <supertype>nt:folder</supertype> >> </supertypes> </nodeType> >> >> </nodeTypes> >> >> >> I have following jcrmapping descriptor >> >> <class-descriptor className="com.sun.portal.cms.model.HeirarchyContent" >> jcrNodeType="nt:hierarchyNode" discriminator="false" > >> <!-- Field-descriptor is used to map simple attributes to jcr >> property --> >> <field-descriptor fieldName="path" path="true" /> >> <field-descriptor fieldName="creationDate" jcrName="jcr:created" /> >> /> >> </class-descriptor> >> >> <class-descriptor className="com.sun.portal.cms.model.Folder" >> jcrNodeType="folder" >> extend="com.sun.portal.cms.model.HeirarchyContent" >> discriminator="false" >> > >> <!-- Field-descriptor is used to map simple attributes to jcr >> property --> >> <field-descriptor fieldName="path" path="true" /> >> /> >> <collection-descriptor fieldName="children" proxy="false" >> jcrNodeType="nt:hierarchyNode" >> >> elementClassName="com.sun.portal.cms.model.HeirarchyContent" >> >> collectionConverter=" >> org.apache.portals.graffito.jcr.persistence.collectionconverter.impl.NTCollectionConverterImpl >> >> " >> /> >> </class-descriptor> >> >> >> >> The problem is I am able to retrieve the items which are properties but >> I do not see any child node definitions in folder. Ideally since folder >> is inheriting from nt:folder , it should get a childnode definition of >> type nt:heirrarchynodeType >> >> Is there anything I am missing ? >> Checked out PersistenceAutoTest.java but it uses all custom nodetypes >> which are inherited from nt:base and so , it has childnodedefintions in >> custom node type definition. >> >> Help appreciated. >> Thanks, >> Ruchi >> > /* * HeirarchyContent.java * * Created on February 7, 2007, 2:10 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package com.sun.portal.cms.model; import java.util.Date; /** * * @author ruchi goel */ public class HeirarchyContent { String path; Date creationDate; /** Creates a new instance of HeirarchyContent */ public HeirarchyContent() { } public Date getCreationDate(){ return creationDate; } public void setPath(String path){ this.path = path; } public void setCreationDate(Date creationDate){ this.creationDate = creationDate; } public String getPath(){ return path; } } /* * Folder.java * * Created on February 7, 2007, 10:45 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package com.sun.portal.cms.model; import java.util.Collection; import java.util.ArrayList; /** * * @author ruchi goel */ public class Folder extends HeirarchyContent { Collection children; /** Creates a new instance of Folder */ public Folder() { } ; public Folder(String path) { this.path = path; } public void setChildren(Collection children){ this.children = children; } public Collection getChildren(){ return children; } public void addChild(HeirarchyContent child) { if (children == null) { children = new ArrayList(); } children.add(child); } } |
| Free embeddable forum powered by Nabble | Forum Help |