final SessionFactory sf = (SessionFactory) sfControl.getMock();
sfControl.replay();
PlatformTransactionManager tm = new LocalTransactionManager(sf);
TransactionTemplate tt = new TransactionTemplate(tm);
assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());
tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
try {
tt.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
JcrTemplate template = new JcrTemplate(sf);
template.execute(new JcrCallback() {
public Object doInJcr(Session session) throws RepositoryException {