Alexandru Popescu wrote:


Dan can you show us your code pls? It would be much easier to
understand the issue.

TIA,

./alex

Alex:

I believe that my code is irrelevant to this bug, but correct me if I am wrong.

My TestBeanConverterImp source is attached. Only the insert method is being used for this test.

The significant metadata is here:

   <class-descriptor
       className="org.eclipse.example.library.impl.BookImpl"
           extend="org.eclipse.emf.ecore.EObject"
       jcrNodeType="graffito:eobject">
<implement-descriptor interfaceName="org.eclipse.example.library.Book"/> <field-descriptor fieldName="title" jcrName="title" path="true" id="true" />
       <field-descriptor fieldName="pages"  jcrName="pages" />
       <bean-descriptor fieldName="author" jcrName="author" proxy="true"
converter="org.eclipse.emf.teneo.graffito.emf.TestBeanConverterImpl" /> <bean-descriptor fieldName="category" jcrName="category" inline="true"
       />
   </class-descriptor>

 <nodeType name="graffito:eobject" isMixin="false">
   <supertypes>
     <supertype>mix:referenceable</supertype>
     <supertype>nt:unstructured</supertype>
   </supertypes>
</nodeType>

A fragment of the console output is as follows:

Object Class = org.eclipse.example.library.impl.BookImpl object = [EMAIL PROTECTED] (title: The Hobbit, pages: 305, category: ScienceFiction)
Parent Node name = author
Parent Node path = /Library1/Books/The Hobbit/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author/author
Interface name: org.eclipse.example.library.Book

      -- Dan
package org.eclipse.emf.teneo.graffito.emf;

import javax.jcr.Node;
import javax.jcr.Session;
import javax.jcr.UnsupportedRepositoryOperationException;

import org.apache.portals.graffito.jcr.exception.JcrMappingException;
import org.apache.portals.graffito.jcr.exception.PersistenceException;
import org.apache.portals.graffito.jcr.exception.RepositoryException;
import org.apache.portals.graffito.jcr.mapper.model.BeanDescriptor;
import 
org.apache.portals.graffito.jcr.persistence.objectconverter.BeanConverter;
import 
org.apache.portals.graffito.jcr.persistence.objectconverter.ObjectConverter;
import 
org.apache.portals.graffito.jcr.persistence.objectconverter.impl.AbstractBeanConverterImpl;
import 
org.apache.portals.graffito.jcr.persistence.objectconverter.impl.ParentBeanConverterImpl;
import 
org.apache.portals.graffito.jcr.persistence.objectconverter.impl.Reference;
import org.eclipse.emf.ecore.EObject;

public class TestBeanConverterImpl extends AbstractBeanConverterImpl implements 
BeanConverter {

        private ObjectConverter objectConverter;
        
        public TestBeanConverterImpl(ObjectConverter objectConverter) 
        {
                super(objectConverter);
                this.objectConverter = objectConverter;
        }

        @Override
        public Object getObject(Session session, Node parentNode,
                        BeanDescriptor descriptor, Class beanClass)
                        throws PersistenceException, RepositoryException,
                        JcrMappingException {
                // TODO Auto-generated method stub
                return null;
        }

        @Override
        public void insert(Session session, Node parentNode,
                        BeanDescriptor descriptor, Object object)
                        throws PersistenceException, RepositoryException,
                        JcrMappingException {
                
                Class objectClass = object.getClass();
                System.out.println("Object Class = "+objectClass.getName() +" 
object = "+object.toString());
                try {
                        System.out.println("Parent Node name = 
"+parentNode.getName());
                        System.out.println("Parent Node path = 
"+parentNode.getPath());
                } catch (javax.jcr.RepositoryException e2) {
                        // TODO Auto-generated catch block
                        e2.printStackTrace();
                }
                objectConverter.insert(session, parentNode, 
descriptor.getJcrName(), object);
                
        }

        @Override
        public void remove(Session session, Node parentNode,
                        BeanDescriptor descriptor) throws PersistenceException,
                        RepositoryException, JcrMappingException {
                // TODO Auto-generated method stub

        }

        @Override
        public void update(Session session, Node parentNode,
                        BeanDescriptor descriptor, Object object)
                        throws PersistenceException, RepositoryException,
                        JcrMappingException {
                // TODO Auto-generated method stub
                objectConverter.update(session, parentNode, 
descriptor.getJcrName(), object);
        }

}

Reply via email to