When you start your application, you need the following code to initialize correctly the Persistence Manager.
import javax.jcr.Session; import javax.jcr.Repository; import org.apache.portals.graffito.jcr.mapper.Mapper; import org.apache.portals.graffito.jcr.mapper.impl.DigesterMapperImpl; import org.apache.portals.graffito.jcr.persistence.atomictypeconverter.AtomicTypeConverterProvider; import org.apache.portals.graffito.jcr.persistence.atomictypeconverter.impl.DefaultAtomicTypeConverterProvider; import org.apache.portals.graffito.jcr.persistence.objectconverter.ObjectConverter; import org.apache.portals.graffito.jcr.persistence.objectconverter.impl.ObjectConverterImpl; import org.apache.portals.graffito.jcr.query.QueryManager; import org.apache.portals.graffito.jcr.query.impl.QueryManagerImpl; import org.apache.portals.graffito.jcr.repository.RepositoryUtil; // 1. Instantiate a JCR session Repository repository = RepositoryUtil.getRepository("repositoryTest"); Session session = RepositoryUtil.login(repository, "superuser", "superuser"); // 2. Specify the different mapping files String[] files = { "./src/test-config/jcrmapping.xml", "./src/test-config/jcrmapping-atomic.xml", "./src/test-config/jcrmapping-beandescriptor.xml"}; // 3. Initialise the PersistenceManager dependencies Mapper mapper = new DigesterMapperImpl(files).buildMapper(); AtomicTypeConverterProvider converterProvider = new DefaultAtomicTypeConverterProvider(); Map atomicTypeConverters = converterProvider.getAtomicTypeConverters(); QueryManager queryManager = new QueryManagerImpl(mapper, atomicTypeConverters); ObjectConverter objectConverter = new ObjectConverterImpl(mapper, converterProvider); // 4. Intantiate the PersistenceManager PersistenceManager persistenceManager = new PersistenceManagerImpl(mapper, objectConverter, queryManager, session);
See the page here to get a complete overview on the Persistence Manager API.
You can also get more information on the Spring support here.
Of course, support for other containers are welcome.