incubator-graffito-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christophe Lombart" <christophe.lomb...@gmail.com>
Subject Re: [Fwd: Re: creating custom node types inheriting from nt:folder using jcr mapping]
Date Thu, 08 Feb 2007 22:08:04 GMT
Hi Ruchi,

I just commited a new unit test. it contains a mapping for nt:folder & nt:file.
This is the first draft :-) . I'm going to work on it. I will add more
unit tests.
See the mapping file : jcrmapping-jcrnodetypes.xml
See the unit test : PersistenceManagerJcrNodeTypeTest

The current ocm implementation forces to use an extra class for the
jcr:resource.
This should be nice to map directly into the file class attributes.

Let me know if you need more help

br,
Christophe

On 2/8/07, ruchi goel <Ruchi.Goel@sun.com> wrote:
>
>
>
> ---------- Forwarded message ----------
> From: ruchi goel <Ruchi.Goel@Sun.COM>
> To: christophe.lombart@gmail.com
> Date: Thu, 08 Feb 2007 14:38:50 +0530
> Subject: Re: creating custom node types inheriting from nt:folder using jcr mapping
> Thanks. 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@sun.com> 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);
>     }
>
> }
>
>

Mime
View raw message