@Override protected final void configure() { configurePersistence(); requireBinding(PersistService.class); requireBinding(UnitOfWork.class); /*if[AOP]*/ // wrapping in an if[AOP] just to allow this to compile in NO_AOP -- it won't be used // class-level @Transacational bindInterceptor(annotatedWith(Transactional.class), new TransactionalClassMethodMatcher(), getTransactionInterceptor()); // method-level @Transacational bindInterceptor(any(), new TransactionalMethodMatcher(), getTransactionInterceptor()); /*end[AOP]*/ }
protected void configurePersistence() { bind(String[].class).annotatedWith(Neo4j.class).toInstance(packages); if (null != properties) { bind(Properties.class).annotatedWith(Neo4j.class).toInstance(properties); } else { bind(Properties.class).annotatedWith(Neo4j.class).toProvider(Providers.of(null)); } bind(Neo4jPersistService.class).in(Singleton.class); bind(PersistService.class).to(Neo4jPersistService.class); bind(UnitOfWork.class).to(Neo4jPersistService.class); bind(Session.class).toProvider(Neo4jPersistService.class); transactionInterceptor = new Neo4jLocalTxnInterceptor(); requestInjection(transactionInterceptor); }
public void testCall() throws Exception { final String message = "TestMessage"; final CallableInUnitOfWork<String> unitOfWork = new CallableInUnitOfWork<>( () -> new UnitOfWork() { @Override public void begin() { } @Override public void end() { } }, () -> message); assertEquals(message, unitOfWork.call()); }
@Override protected void configurePersistence() { bindConstant().annotatedWith(Jpa.class).to(jpaUnit); bind(JpaPersistService.class).in(Singleton.class); bind(PersistService.class).to(JpaPersistService.class); bind(UnitOfWork.class).to(JpaPersistService.class); bind(EntityManager.class).toProvider(JpaPersistService.class); bind(EntityManagerFactory.class) .toProvider(JpaPersistService.EntityManagerFactoryProvider.class); transactionInterceptor = new JpaLocalTxnInterceptor(); requestInjection(transactionInterceptor); // Bind dynamic finders. for (Class<?> finder : dynamicFinders) { bindFinder(finder); } }
public void testSimpleTransaction() { injector .getInstance(JoiningLocalTransactionsTest.TransactionalObject.class) .runOperationInTxn(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT) .getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue("odd result returned fatal", result instanceof JpaTestEntity); assertEquals( "queried entity did not match--did automatic txn fail?", UNIQUE_TEXT, ((JpaTestEntity) result).getText()); }
public void testSimpleTransactionRollbackOnUnchecked() { try { injector .getInstance(JoiningLocalTransactionsTest.TransactionalObject.class) .runOperationInTxnThrowingUnchecked(); } catch (RuntimeException re) { //ignore injector.getInstance(UnitOfWork.class).end(); } EntityManager em = injector.getInstance(EntityManager.class); assertFalse( "Session was not closed by transactional service (rollback didnt happen?)", em.getTransaction().isActive()); try { Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", TRANSIENT_UNIQUE_TEXT) .getSingleResult(); injector.getInstance(UnitOfWork.class).end(); fail("a result was returned! rollback sure didnt happen!!!"); } catch (NoResultException e) { } }
public void testSimpleTransaction() { injector.getInstance(TransactionalObject.class).runOperationInTxn(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT) .getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue("odd result returned fatal", result instanceof JpaTestEntity); assertEquals( "queried entity did not match--did automatic txn fail?", UNIQUE_TEXT, ((JpaTestEntity) result).getText()); }
public void testSimpleTransactionWithMerge() { JpaTestEntity entity = injector.getInstance(TransactionalObject.class).runOperationInTxnWithMerge(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored assertTrue("Em was closed after txn!", em.isOpen()); Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT_MERGE) .getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue(result instanceof JpaTestEntity); assertEquals( "queried entity did not match--did automatic txn fail?", UNIQUE_TEXT_MERGE, ((JpaTestEntity) result).getText()); }
public void testSimpleTransactionRollbackOnUnchecked() { try { injector.getInstance(TransactionalObject.class).runOperationInTxnThrowingUnchecked(); } catch (RuntimeException re) { //ignore injector.getInstance(UnitOfWork.class).end(); } EntityManager em = injector.getInstance(EntityManager.class); assertFalse( "Session was not closed by transactional service (rollback didnt happen?)", em.getTransaction().isActive()); try { Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", TRANSIENT_UNIQUE_TEXT) .getSingleResult(); injector.getInstance(UnitOfWork.class).end(); fail("a result was returned! rollback sure didnt happen!!!"); } catch (NoResultException e) { } }
public void testSimpleTransaction() { injector.getInstance(TransactionalObject.class).runOperationInTxn(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse(em.getTransaction().isActive()); //test that the data has been stored Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT) .getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue("odd result returned fatal", result instanceof JpaTestEntity); assertEquals( "queried entity did not match--did automatic txn fail?", UNIQUE_TEXT, ((JpaTestEntity) result).getText()); injector.getInstance(UnitOfWork.class).end(); }
public void disabled_testSimpleTransactionWithMergeAndDF() { EntityManager emOrig = injector.getInstance(EntityManager.class); JpaTestEntity entity = injector.getInstance(TransactionalObject.class).runOperationInTxnWithMergeForDf(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored assertTrue("Em was closed after txn!", em.isOpen()); assertEquals("Em was not kept open across txns", emOrig, em); assertTrue("Merge did not store state or did not return persistent copy", em.contains(entity)); Object result = injector.getInstance(TransactionalObject.class).find(UNIQUE_TEXT_MERGE_FORDF); injector.getInstance(UnitOfWork.class).end(); assertNotNull(result); assertTrue(result instanceof JpaTestEntity); assertEquals( "queried entity did not match--did automatic txn fail?", UNIQUE_TEXT_MERGE_FORDF, ((JpaTestEntity) result).getText()); injector.getInstance(UnitOfWork.class).end(); }
public void testSimpleTransactionRollbackOnUnchecked() { try { injector.getInstance(TransactionalObject.class).runOperationInTxnThrowingUnchecked(); } catch (RuntimeException re) { //ignore injector.getInstance(UnitOfWork.class).end(); } EntityManager em = injector.getInstance(EntityManager.class); assertFalse( "Session was not closed by transactional service (rollback didnt happen?)", em.getTransaction().isActive()); try { Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", TRANSIENT_UNIQUE_TEXT) .getSingleResult(); injector.getInstance(UnitOfWork.class).end(); fail(); } catch (NoResultException e) { } injector.getInstance(UnitOfWork.class).end(); }
@Override protected void configurePersistence() { bindConstant().annotatedWith(Jpa.class).to(jpaUnit); if (null != properties) { bind(Properties.class).annotatedWith(Jpa.class).toInstance(properties); } else { bind(Properties.class).annotatedWith(Jpa.class) .toProvider(Providers.<Properties>of(null)); } bind(JpaPersistService.class).in(Singleton.class); bind(PersistService.class).to(JpaPersistService.class); bind(UnitOfWork.class).to(JpaPersistService.class); bind(EntityManager.class).toProvider(JpaPersistService.class); bind(EntityManagerFactory.class) .toProvider(JpaPersistService.EntityManagerFactoryProvider.class); transactionInterceptor = new JpaLocalTxnInterceptor(); requestInjection(transactionInterceptor); // Bind dynamic finders. for (Class<?> finder : dynamicFinders) { bindFinder(finder); } }
public void testSimpleCrossTxnWork() { //pretend that the request was started here EntityManager em = injector.getInstance(EntityManager.class); JpaTestEntity entity = injector .getInstance(ManualLocalTransactionsWithCustomMatcherTest.TransactionalObject.class) .runOperationInTxn(); injector.getInstance(ManualLocalTransactionsWithCustomMatcherTest.TransactionalObject.class) .runOperationInTxn2(); //persisted entity should remain in the same em (which should still be open) assertTrue("EntityManager appears to have been closed across txns!", injector.getInstance(EntityManager.class).contains(entity)); assertTrue("EntityManager appears to have been closed across txns!", em.contains(entity)); assertTrue("EntityManager appears to have been closed across txns!", em.isOpen()); injector.getInstance(UnitOfWork.class).end(); //try to query them back out em = injector.getInstance(EntityManager.class); assertNotNull(em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT).getSingleResult()); assertNotNull(em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT_2).getSingleResult()); em.close(); }
public void testSimpleTransaction() { injector.getInstance(JoiningLocalTransactionsTest.TransactionalObject.class) .runOperationInTxn(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue("odd result returned fatal", result instanceof JpaTestEntity); assertEquals("queried entity did not match--did automatic txn fail?", UNIQUE_TEXT, ((JpaTestEntity) result).getText()); }
public void testSimpleTransactionRollbackOnUnchecked() { try { injector.getInstance(JoiningLocalTransactionsTest.TransactionalObject.class) .runOperationInTxnThrowingUnchecked(); } catch (RuntimeException re) { //ignore injector.getInstance(UnitOfWork.class).end(); } EntityManager em = injector.getInstance(EntityManager.class); assertFalse("Session was not closed by transactional service (rollback didnt happen?)", em.getTransaction().isActive()); try { Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", TRANSIENT_UNIQUE_TEXT).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); fail("a result was returned! rollback sure didnt happen!!!"); } catch (NoResultException e) {} }
public void testSimpleTransaction() { injector.getInstance(TransactionalObject.class).runOperationInTxn(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue("odd result returned fatal", result instanceof JpaTestEntity); assertEquals("queried entity did not match--did automatic txn fail?", UNIQUE_TEXT, ((JpaTestEntity) result).getText()); }
public void testSimpleTransactionWithMerge() { JpaTestEntity entity = injector.getInstance(TransactionalObject.class) .runOperationInTxnWithMerge(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored assertTrue("Em was closed after txn!", em.isOpen()); Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT_MERGE).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue(result instanceof JpaTestEntity); assertEquals("queried entity did not match--did automatic txn fail?", UNIQUE_TEXT_MERGE, ((JpaTestEntity) result).getText()); }
public void testSimpleTransactionRollbackOnUnchecked() { try { injector.getInstance(TransactionalObject.class).runOperationInTxnThrowingUnchecked(); } catch (RuntimeException re) { //ignore injector.getInstance(UnitOfWork.class).end(); } EntityManager em = injector.getInstance(EntityManager.class); assertFalse("Session was not closed by transactional service (rollback didnt happen?)", em.getTransaction().isActive()); try { Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", TRANSIENT_UNIQUE_TEXT).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); fail("a result was returned! rollback sure didnt happen!!!"); } catch (NoResultException e) {} }
public void testSimpleTransaction() { injector.getInstance(TransactionalObject.class).runOperationInTxn(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse(em.getTransaction().isActive()); //test that the data has been stored Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue("odd result returned fatal", result instanceof JpaTestEntity); assertEquals("queried entity did not match--did automatic txn fail?", UNIQUE_TEXT, ((JpaTestEntity) result).getText()); injector.getInstance(UnitOfWork.class).end(); }
public void testSimpleTransactionWithMerge() { EntityManager emOrig = injector.getInstance(EntityManager.class); JpaTestEntity entity = injector.getInstance(TransactionalObject.class) .runOperationInTxnWithMerge(); assertNotNull("Entity was not given an id (was not persisted correctly?)", entity.getId()); EntityManager em = injector.getInstance(EntityManager.class); assertFalse(em.getTransaction().isActive()); //test that the data has been stored assertTrue("Em was closed after txn!", em.isOpen()); assertEquals("Em was not kept open across txns", emOrig, em); assertTrue("Merge did not store state or did not return persistent copy", em.contains(entity)); Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", UNIQUE_TEXT_MERGE).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); assertTrue(result instanceof JpaTestEntity); assertEquals("queried entity did not match--did automatic txn fail?", UNIQUE_TEXT_MERGE, ((JpaTestEntity) result).getText()); injector.getInstance(UnitOfWork.class).end(); }
public void disabled_testSimpleTransactionWithMergeAndDF() { EntityManager emOrig = injector.getInstance(EntityManager.class); JpaTestEntity entity = injector.getInstance(TransactionalObject.class) .runOperationInTxnWithMergeForDf(); EntityManager em = injector.getInstance(EntityManager.class); assertFalse("txn was not closed by transactional service", em.getTransaction().isActive()); //test that the data has been stored assertTrue("Em was closed after txn!", em.isOpen()); assertEquals("Em was not kept open across txns", emOrig, em); assertTrue("Merge did not store state or did not return persistent copy", em.contains(entity)); Object result = injector.getInstance(TransactionalObject.class).find(UNIQUE_TEXT_MERGE_FORDF); injector.getInstance(UnitOfWork.class).end(); assertNotNull(result); assertTrue(result instanceof JpaTestEntity); assertEquals("queried entity did not match--did automatic txn fail?", UNIQUE_TEXT_MERGE_FORDF, ((JpaTestEntity) result).getText()); injector.getInstance(UnitOfWork.class).end(); }
public void testSimpleTransactionRollbackOnUnchecked() { try { injector.getInstance(TransactionalObject.class).runOperationInTxnThrowingUnchecked(); } catch (RuntimeException re) { //ignore injector.getInstance(UnitOfWork.class).end(); } EntityManager em = injector.getInstance(EntityManager.class); assertFalse("Session was not closed by transactional service (rollback didnt happen?)", em.getTransaction().isActive()); try { Object result = em.createQuery("from JpaTestEntity where text = :text") .setParameter("text", TRANSIENT_UNIQUE_TEXT).getSingleResult(); injector.getInstance(UnitOfWork.class).end(); fail(); } catch (NoResultException e) {} injector.getInstance(UnitOfWork.class).end(); }
@Override public V call() throws Exception { final UnitOfWork work = workProvider.get(); try { work.begin(); return callable.call(); } catch (final Throwable t) { log.error(t.getMessage(), t); throw t; } finally { work.end(); } }
@Test public void testCreate() throws Exception { CallableInUnitOfWork.CallableInUnitOfWorkFactory factory = new CallableInUnitOfWork.CallableInUnitOfWorkFactory( new Provider<UnitOfWork>() { @Override public UnitOfWork get() { return new UnitOfWork() { @Override public void begin() { } @Override public void end() { } }; } }); final String message = "Message"; Callable<String> callable = factory.create(new Callable<String>() { @Override public String call() throws Exception { return message; } }); assertEquals(message, callable.call()); }
@Override protected void configurePersistence() { bind(JooqPersistService.class).in(Singleton.class); bind(PersistService.class).to(JooqPersistService.class); bind(UnitOfWork.class).to(JooqPersistService.class); bind(DSLContext.class).toProvider(JooqPersistService.class); transactionInterceptor = new JdbcLocalTxnInterceptor(getProvider(JooqPersistService.class), getProvider(UnitOfWork.class)); requestInjection(transactionInterceptor); }
@Override protected void configure() { bind(PersistService.class).to(JpaPersistService.class); bind(UnitOfWork.class).to(JpaPersistService.class); bind(EntityManager.class).toProvider(JpaPersistService.class); bind(CroquetPersistService.class).to(JpaPersistService.class); bind(EntityManagerFactory.class).toProvider(CroquetPersistService.EntityManagerFactoryProvider.class); }
@Override protected void configure() { // bind the ConnectionProvider bind(ConnectionProvider.class).to(TomcatJDBCConnectionProvider.class); bind(PersistService.class).to(CroquetPersistService.class); bind(UnitOfWork.class).to(CroquetPersistService.class); bind(EntityManager.class).toProvider(CroquetPersistService.class); bind(EntityManagerFactory.class).toProvider(CroquetPersistService.EntityManagerFactoryProvider.class); }
@Override protected void configurePersistence() { poolsMultibinder = Multibinder.newSetBinder(binder(), PoolManager.class); bindConstant().annotatedWith(Names.named("orient.uri")).to(uri); bindConstant().annotatedWith(Names.named("orient.user")).to(user); bindConstant().annotatedWith(Names.named("orient.password")).to(password); bindConstant().annotatedWith(Names.named("orient.db.autocreate")).to(autoCreateDb); bind(TxConfig.class).annotatedWith(Names.named("orient.txconfig")) .toInstance(txConfig == null ? new TxConfig() : txConfig); configureCustomTypes(); bind(CustomTypesInstaller.class); // extension points bind(TransactionManager.class); // SchemeInitializer.class // DataInitializer.class bind(PersistService.class).to(DatabaseManager.class); bind(UnitOfWork.class).to(TransactionManager.class); configurePools(); configureInterceptor(); bindRetryInterceptor(); }