@Override
protected PersistenceSession createPersistenceSession(final PersistenceSessionFactory persistenceSessionFactory,
final AdapterManagerExtended adapterManager, final ObjectAdapterFactory adapterFactory,
final ObjectFactory objectFactory, final OidGenerator oidGenerator, final ServicesInjector servicesInjector) {
final PersistenceSessionProxy persistenceSession =
new PersistenceSessionProxy(persistenceSessionFactory, adapterFactory, objectFactory, servicesInjector,
oidGenerator, adapterManager, getServerFacade(), getEncoderDecoder());
final IsisTransactionManager transactionManager =
createTransactionManager(getConfiguration(), persistenceSession.getAdapterManager(), persistenceSession);
ensureThatArg(persistenceSession, is(not(nullValue())));
ensureThatArg(transactionManager, is(not(nullValue())));
transactionManager.injectInto(persistenceSession);