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 <[EMAIL PROTECTED]> 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);
    }
       
}

Reply via email to