Example usage for org.springframework.transaction.support TransactionSynchronizationManager getResourceMap

List of usage examples for org.springframework.transaction.support TransactionSynchronizationManager getResourceMap

Introduction

In this page you can find the example usage for org.springframework.transaction.support TransactionSynchronizationManager getResourceMap.

Prototype

public static Map<Object, Object> getResourceMap() 

Source Link

Document

Return all resources that are bound to the current thread.

Usage

From source file:com._4dconcept.springframework.data.marklogic.datasource.DatabaseConnectorJtaTransactionTest.java

@After
public void verifyTransactionSynchronizationManagerState() {
    assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
    assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
    assertNull(TransactionSynchronizationManager.getCurrentTransactionName());
    assertFalse(TransactionSynchronizationManager.isCurrentTransactionReadOnly());
    assertNull(TransactionSynchronizationManager.getCurrentTransactionIsolationLevel());
    assertFalse(TransactionSynchronizationManager.isActualTransactionActive());
}

From source file:com.wavemaker.runtime.data.spring.SpringDataServiceManager.java

@Override
public void commit() {

    if (txLogger.isInfoEnabled()) {
        txLogger.info("commit");
    }/*from  w ww  . j  a  va 2  s  .com*/

    ThreadContext.Context ctx = ThreadContext.getContext(this.metaData.getName());

    if (ctx == null) {
        if (txLogger.isWarnEnabled()) {
            txLogger.warn("ignoring commit - no tx in progress");
            if (txLogger.isDebugEnabled()) {
                logStackTrace();
            }
        }
        return;
    }

    TransactionStatus txStatus = ctx.getTransactionStatus();

    try {
        if (txStatus == null) {
            if (txLogger.isWarnEnabled()) {
                txLogger.warn("ignoring commit - no tx status");
                if (txLogger.isDebugEnabled()) {
                    logStackTrace();
                }
            }
        } else {
            this.txMgr.commit(txStatus);
        }
    } finally {
        ctx.setTransactionStatus(null);
        ThreadContext.unsetContext(this.metaData.getName());
        HashMap<String, ThreadContext.Context> contextHash = ThreadContext.getThreadLocalHash();

        if (contextHash != null && contextHash.size() > 0) {
            if (!TransactionSynchronizationManager.isSynchronizationActive()) {
                TransactionSynchronizationManager.initSynchronization();
            }
        } else {
            if (TransactionSynchronizationManager.isSynchronizationActive()) {
                TransactionSynchronizationManager.clear();
                Map map = TransactionSynchronizationManager.getResourceMap();
                for (Object entry : map.keySet()) {
                    TransactionSynchronizationManager.unbindResource(entry);
                }
            }
        }
    }
}

From source file:org.broadleafcommerce.common.cache.HydratedSetup.java

public static EntityManager retrieveBoundEntityManager() {
    Map<Object, Object> resources = TransactionSynchronizationManager.getResourceMap();
    for (Map.Entry<Object, Object> entry : resources.entrySet()) {
        if (entry.getKey() instanceof EntityManagerFactory) {
            EntityManagerFactory emf = (EntityManagerFactory) entry.getKey();
            //return the entityManager from the first found
            return ((EntityManagerHolder) entry.getValue()).getEntityManager();
        }/*from  ww w. ja  v  a 2s.  c o  m*/
    }
    throw new RuntimeException(
            "Unable to restore skus from hydrated cache. Please make sure that the OpenEntityManagerInViewFilter is configured in web.xml for the blPU persistence unit.");
}

From source file:org.broadleafcommerce.common.util.tenant.IdentityExecutionUtils.java

private static void activateSession() {
    Map<Object, Object> resourceMap = TransactionSynchronizationManager.getResourceMap();
    for (Map.Entry<Object, Object> entry : resourceMap.entrySet()) {
        if (entry.getKey() instanceof EntityManagerFactory && entry.getValue() instanceof EntityManagerHolder) {
            ((HibernateEntityManager) ((EntityManagerHolder) entry.getValue()).getEntityManager()).getSession();
        }/*from   ww  w.  j  a v  a2s .  c  o m*/
    }
}

From source file:org.broadleafcommerce.common.util.tenant.IdentityExecutionUtils.java

private static TransactionContainer establishTransaction(PlatformTransactionManager transactionManager) {
    Map<Object, Object> usedResources = new HashMap<Object, Object>();
    Map<Object, Object> resources = TransactionSynchronizationManager.getResourceMap();
    for (Map.Entry<Object, Object> entry : resources.entrySet()) {
        if ((entry.getKey() instanceof EntityManagerFactory || entry.getKey() instanceof DataSource)
                && TransactionSynchronizationManager.hasResource(entry.getKey())) {
            usedResources.put(entry.getKey(), entry.getValue());
        }//from   w w  w.j a v  a 2  s.  co m
    }
    for (Map.Entry<Object, Object> entry : usedResources.entrySet()) {
        TransactionSynchronizationManager.unbindResource(entry.getKey());
    }

    TransactionStatus status;
    try {
        status = TransactionUtils.createTransaction(TransactionDefinition.PROPAGATION_REQUIRES_NEW,
                transactionManager, false);
    } catch (RuntimeException e) {
        throw e;
    }
    return new TransactionContainer(status, usedResources);
}

From source file:org.grails.datastore.mapping.core.AbstractDatastore.java

/**
 * Static way to retrieve the session// w w  w . ja va 2 s  . c o  m
 * @param datastoreClass The type of datastore
 * @return The session instance
 * @throws ConnectionNotFoundException If no session has been created
 */
public static Session retrieveSession(Class datastoreClass) throws ConnectionNotFoundException {
    final Map<Object, Object> resourceMap = TransactionSynchronizationManager.getResourceMap();
    Session session = null;

    if (resourceMap != null && !resourceMap.isEmpty()) {
        for (Object key : resourceMap.keySet()) {
            if (datastoreClass.isInstance(key)) {
                SessionHolder sessionHolder = (SessionHolder) resourceMap.get(key);
                if (sessionHolder != null) {
                    session = sessionHolder.getSession();
                }
            }
        }
    }

    if (session == null) {
        throw new ConnectionNotFoundException(
                "No datastore session found. Call Datastore.connect(..) before calling Datastore.getCurrentSession()");
    }
    return session;
}

From source file:org.seedstack.spring.internal.SpringEntityManagerLink.java

@Override
public EntityManager get() {
    Map<String, EntityManagerFactory> mapEntityManagerFactoryByUnit = new HashMap<String, EntityManagerFactory>();
    for (Map.Entry<Object, Object> entry : TransactionSynchronizationManager.getResourceMap().entrySet()) {
        if (entry.getKey() instanceof EntityManagerFactory) {
            EntityManagerFactory emf = (EntityManagerFactory) entry.getKey();
            mapEntityManagerFactoryByUnit.put(getUnitName(emf), emf);
        }/*from w  w  w.j a v  a2s  . co m*/
    }
    return getEntityManager(mapEntityManagerFactoryByUnit);
}