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.