Example usage for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRED

List of usage examples for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRED

Introduction

In this page you can find the example usage for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRED.

Prototype

int PROPAGATION_REQUIRED

To view the source code for org.springframework.transaction TransactionDefinition PROPAGATION_REQUIRED.

Click Source Link

Document

Support a current transaction; create a new one if none exists.

Usage

From source file:org.opennms.ng.dao.support.UpsertTemplate.java

/**
 * After creating the UpsertTemplate call this method to attempt the upsert.
 *//* www  .ja  v  a  2  s . co  m*/
public T execute() {
    TransactionTemplate template = new TransactionTemplate(m_transactionManager);
    template.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    return template.execute(new TransactionCallback<T>() {

        @Override
        public T doInTransaction(TransactionStatus status) {
            return doUpsert();
        }
    });

}

From source file:ru.apertum.qsystem.server.model.calendar.CalendarTableModel.java

/**
 *  .//from  w w w.j  ava2s .  c  o m
 */
public void save() {
    QLog.l().logger().info("?  ID = " + calcId);

    final DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("SomeTxName");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    TransactionStatus status = Spring.getInstance().getTxManager().getTransaction(def);
    try {
        final LinkedList<FreeDay> dels = new LinkedList<>();
        for (FreeDay bad : days_del) {
            boolean f = true;
            for (FreeDay good : days) {
                if (good.equals(bad)) {
                    f = false;
                }
            }
            if (f) {
                dels.add(bad);
            }
        }
        Spring.getInstance().getHt().deleteAll(dels);
        Spring.getInstance().getHt().saveOrUpdateAll(days);
    } catch (Exception ex) {
        Spring.getInstance().getTxManager().rollback(status);
        throw new ClientException(
                " ?  ?   (JDBC).\n    ,  , ? ? ? ?,     ?.\n ? (Ctrl + S)    ? ? ? ?.\n\n["
                        + ex.getLocalizedMessage() + "]\n(" + ex.toString() + ")");
    }
    Spring.getInstance().getTxManager().commit(status);
    QLog.l().logger().debug("  ");
    //     
    days_del = new ArrayList<>(days);
}

From source file:org.fcrepo.camel.FcrepoTransactionManagerTest.java

@Test
public void testTransactionRollback() throws FcrepoOperationFailedException {
    final String baseUrl = "http://localhost:8080/rest";
    final String tx = "tx:1234567890";
    final URI commitUri = URI.create(baseUrl + "/" + tx + FcrepoConstants.COMMIT);
    final URI beginUri = URI.create(baseUrl + FcrepoConstants.TRANSACTION);
    final FcrepoTransactionManager txMgr = new FcrepoTransactionManager();
    txMgr.setBaseUrl(baseUrl);//from  w w w  .j av a 2  s  .  c om
    TestUtils.setField(txMgr, "fcrepoClient", mockClient);

    final TransactionTemplate transactionTemplate = new TransactionTemplate(txMgr);
    final DefaultTransactionDefinition txDef = new DefaultTransactionDefinition(
            TransactionDefinition.PROPAGATION_REQUIRED);

    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    transactionTemplate.afterPropertiesSet();

    when(mockClient.post(eq(beginUri))).thenReturn(mockPostBuilder);
    when(mockClient.post(eq(commitUri))).thenReturn(mockPostBuilder2);
    when(mockPostBuilder.perform()).thenReturn(new FcrepoResponse(beginUri, 201,
            singletonMap("Location", singletonList(baseUrl + "/" + tx)), null));
    when(mockPostBuilder2.perform()).thenReturn(new FcrepoResponse(commitUri, 201, emptyMap(), null));

    DefaultTransactionStatus status = (DefaultTransactionStatus) txMgr.getTransaction(txDef);
    FcrepoTransactionObject txObj = (FcrepoTransactionObject) status.getTransaction();

    assertEquals(tx, txObj.getSessionId());
    assertFalse(status.isCompleted());

    status = (DefaultTransactionStatus) txMgr.getTransaction(txDef);

    txMgr.rollback(status);

    txObj = (FcrepoTransactionObject) status.getTransaction();

    assertNull(txObj.getSessionId());
    assertTrue(status.isCompleted());
}

From source file:org.alfresco.util.transaction.SpringAwareUserTransactionTest.java

private UserTransaction getFailingTxn() {
    return new SpringAwareUserTransaction(failingTransactionManager, false,
            TransactionDefinition.ISOLATION_DEFAULT, TransactionDefinition.PROPAGATION_REQUIRED,
            TransactionDefinition.TIMEOUT_DEFAULT);
}

From source file:org.bitsofinfo.util.address.usps.ais.store.jpa.JPAStore.java

private Copyright processCopyright(Copyright copyright) throws StoreException {
    Copyright c = this.entityMgr.find(Copyright.class, copyright.getIdentifier());

    if (c == null) {
        DefaultTransactionDefinition td = new DefaultTransactionDefinition();
        td.setName("Process copyright");
        td.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

        TransactionStatus txs = this.transactionManager.getTransaction(td);

        try {//www.  ja  v  a 2 s  .  c  o  m
            this.saveRecord(copyright);
            this.transactionManager.commit(txs);

        } catch (DataIntegrityViolationException e) {
            if (!txs.isCompleted()) {
                this.transactionManager.rollback(txs);
            }

            // ignore this, it is fine, some other load beat us to it
            c = this.entityMgr.find(Copyright.class, copyright.getIdentifier());
        }

        c = copyright;
    }

    return c;
}

From source file:org.fcrepo.camel.FcrepoTransactionManagerTest.java

@Test(expected = CannotCreateTransactionException.class)
public void testTransactionBeginError() throws FcrepoOperationFailedException {
    final String baseUrl = "http://localhost:8080/rest";
    final String tx = "tx:1234567890";
    final URI beginUri = URI.create(baseUrl + FcrepoConstants.TRANSACTION);
    final FcrepoTransactionManager txMgr = new FcrepoTransactionManager();
    txMgr.setBaseUrl(baseUrl);/*from   ww w  . j av  a2s  . c o  m*/
    TestUtils.setField(txMgr, "fcrepoClient", mockClient);

    final TransactionTemplate transactionTemplate = new TransactionTemplate(txMgr);
    final DefaultTransactionDefinition txDef = new DefaultTransactionDefinition(
            TransactionDefinition.PROPAGATION_REQUIRED);

    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    transactionTemplate.afterPropertiesSet();

    when(mockPostBuilder.perform()).thenThrow(new FcrepoOperationFailedException(beginUri, 400, "Bad Request"));

    txMgr.getTransaction(txDef);
}

From source file:org.businessmanager.dao.GenericDaoImpl.java

@Override
public TransactionStatus getTransaction() {
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("CustomTransaction");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

    return txManager.getTransaction(def);
}

From source file:org.bitsofinfo.util.address.usps.ais.store.jpa.JPAStore.java

private void processNonCopyrightRecords(List<USPSRecord> records, Copyright copyright) throws StoreException {

    DefaultTransactionDefinition td = new DefaultTransactionDefinition();
    td.setName("Process copyright");
    td.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);

    TransactionStatus txs = this.transactionManager.getTransaction(td);
    try {// ww w  .  ja  v a 2s.com

        //copyright = this.entityMgr.merge(copyright);

        for (USPSRecord r : records) {

            // skip copyrights if it is the same one passed in above
            if (r instanceof Copyright) {
                if (r.getIdentifier().equals(copyright.getIdentifier())) {
                    // chuck it as it has already been processed
                    continue;
                }
            }

            // ensure the copyright is linked
            r.setCopyright(copyright);

            // if we use the action code, use that to
            // determine to save or delete.
            if (r.getActionCode() == ActionCode.D) {
                this.deleteRecord(r);
            } else {
                this.saveRecord(r);
            }
        }

        this.transactionManager.commit(txs);

    } catch (Exception e) {
        this.transactionManager.rollback(txs);
    }

}

From source file:org.fcrepo.camel.FcrepoTransactionManagerTest.java

@Test(expected = CannotCreateTransactionException.class)
public void testTransactionBeginNoLocationError() throws FcrepoOperationFailedException {
    final String baseUrl = "http://localhost:8080/rest";
    final String tx = "tx:1234567890";
    final URI beginUri = URI.create(baseUrl + FcrepoConstants.TRANSACTION);
    final FcrepoTransactionManager txMgr = new FcrepoTransactionManager();
    txMgr.setBaseUrl(baseUrl);//from  w  ww .j  a  v a 2 s  .  co m
    TestUtils.setField(txMgr, "fcrepoClient", mockClient);

    final TransactionTemplate transactionTemplate = new TransactionTemplate(txMgr);
    final DefaultTransactionDefinition txDef = new DefaultTransactionDefinition(
            TransactionDefinition.PROPAGATION_REQUIRED);

    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    transactionTemplate.afterPropertiesSet();

    when(mockPostBuilder.perform()).thenReturn(new FcrepoResponse(beginUri, 201, emptyMap(), null));

    txMgr.getTransaction(txDef);
}

From source file:org.fcrepo.camel.FcrepoTransactionManagerTest.java

@Test(expected = CannotCreateTransactionException.class)
public void testTransactionNullResponseError() throws FcrepoOperationFailedException {
    final String baseUrl = "http://localhost:8080/rest";
    final String tx = "tx:1234567890";
    final URI beginUri = URI.create(baseUrl + FcrepoConstants.TRANSACTION);
    final FcrepoTransactionManager txMgr = new FcrepoTransactionManager();
    txMgr.setBaseUrl(baseUrl);/*from   w  w  w  .j  av  a2  s .  c om*/
    TestUtils.setField(txMgr, "fcrepoClient", mockClient);

    final TransactionTemplate transactionTemplate = new TransactionTemplate(txMgr);
    final DefaultTransactionDefinition txDef = new DefaultTransactionDefinition(
            TransactionDefinition.PROPAGATION_REQUIRED);

    transactionTemplate.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    transactionTemplate.afterPropertiesSet();

    when(mockPostBuilder.perform()).thenReturn(null);

    txMgr.getTransaction(txDef);
}