Example usage for org.springframework.transaction.interceptor TransactionInterceptor TransactionInterceptor

List of usage examples for org.springframework.transaction.interceptor TransactionInterceptor TransactionInterceptor

Introduction

In this page you can find the example usage for org.springframework.transaction.interceptor TransactionInterceptor TransactionInterceptor.

Prototype

public TransactionInterceptor(PlatformTransactionManager ptm, TransactionAttributeSource tas) 

Source Link

Document

Create a new TransactionInterceptor.

Usage

From source file:corner.transaction.TransactionModule.java

/**
 * build spring transaction interceptor//from   w  w  w  .j av  a 2s .co  m
 * @param transactionManager transaction manager
 * @return transaction manager instance
 * @since 0.0.2
 */
public static TransactionInterceptor buildTransactionInterceptor(
        PlatformTransactionManager transactionManager) {
    AnnotationTransactionAttributeSource attributeSource = new AnnotationTransactionAttributeSource();
    return new TransactionInterceptor(transactionManager, attributeSource);
}

From source file:org.synyx.hades.dao.orm.TransactionalDaoProxyPostProcessor.java

/**
 * Creates a new {@link TransactionalDaoProxyPostProcessor}.
 *///from   www .  j  av a2s.  com
public TransactionalDaoProxyPostProcessor(ListableBeanFactory beanFactory, String transactionManagerName) {

    Assert.notNull(beanFactory);
    Assert.notNull(transactionManagerName);

    this.petInterceptor = new PersistenceExceptionTranslationInterceptor();
    this.petInterceptor.setBeanFactory(beanFactory);
    this.petInterceptor.afterPropertiesSet();

    this.transactionInterceptor = new TransactionInterceptor(null, new AnnotationTransactionAttributeSource());
    this.transactionInterceptor.setTransactionManagerBeanName(transactionManagerName);
    this.transactionInterceptor.setBeanFactory(beanFactory);
    this.transactionInterceptor.afterPropertiesSet();
}

From source file:org.jdal.service.PersistentServiceFactory.java

/**
 * Creates a default transactional proxy for service with default transacction attributes
 * @param <T>/*from   w ww  .  ja  v a2s .co m*/
 * @param service
 * @return a Tx Proxy for service with default tx attributes
 */
@SuppressWarnings("unchecked")
public <T> PersistentManager<T, Serializable> makeTransactionalProxy(
        PersistentManager<T, Serializable> service) {
    ProxyFactory factory = new ProxyFactory(service);
    factory.setInterfaces(new Class[] { Dao.class });
    TransactionInterceptor interceptor = new TransactionInterceptor(transactionManager,
            new MatchAlwaysTransactionAttributeSource());
    factory.addAdvice(interceptor);
    factory.setTarget(service);
    return (PersistentManager<T, Serializable>) factory.getProxy();
}

From source file:docksidestage.projectfw.db.TransactionModule.java

protected TransactionInterceptor createTransactionInterceptor(PlatformTransactionManager transactionManager,
        AnnotationTransactionAttributeSource attributeSource) {
    return new TransactionInterceptor(transactionManager, attributeSource);
}

From source file:org.domi.config.security.prepost.TransactionalRepositoryProxyPostProcessor.java

/**
 * Creates a new {@link TransactionalRepositoryProxyPostProcessor}.
 *//*  w  w  w . ja  va2s . c o m*/
public TransactionalRepositoryProxyPostProcessor(ListableBeanFactory beanFactory,
        String transactionManagerName) {

    Assert.notNull(beanFactory);
    Assert.notNull(transactionManagerName);

    this.petInterceptor = new PersistenceExceptionTranslationInterceptor();
    this.petInterceptor.setBeanFactory(beanFactory);
    this.petInterceptor.afterPropertiesSet();

    this.transactionInterceptor = new TransactionInterceptor(null,
            new CustomAnnotationTransactionAttributeSource());
    this.transactionInterceptor.setTransactionManagerBeanName(transactionManagerName);
    this.transactionInterceptor.setBeanFactory(beanFactory);
    this.transactionInterceptor.afterPropertiesSet();
}

From source file:com.sinosoft.one.data.jpa.repository.support.OneTransactionalRepositoryProxyPostProcessor.java

/**
 * Creates a new {@link OneTransactionalRepositoryProxyPostProcessor}.
 *//*from ww  w  . j  a  va2 s  . com*/
public OneTransactionalRepositoryProxyPostProcessor(ListableBeanFactory beanFactory,
        String transactionManagerName, SqlQueries sqlQueries) {

    Assert.notNull(beanFactory);
    Assert.notNull(transactionManagerName);

    this.petInterceptor = new PersistenceExceptionTranslationInterceptor();
    this.petInterceptor.setBeanFactory(beanFactory);
    this.petInterceptor.afterPropertiesSet();

    this.transactionInterceptor = new TransactionInterceptor(null,
            new OneCustomAnnotationTransactionAttributeSource(sqlQueries));
    this.transactionInterceptor.setTransactionManagerBeanName(transactionManagerName);
    this.transactionInterceptor.setBeanFactory(beanFactory);
    this.transactionInterceptor.afterPropertiesSet();
}

From source file:com.google.code.guice.repository.configuration.JpaRepositoryModule.java

/**
 * Creates Spring application context based on found persistence units. Context will be initialized with multiple
 * persistence units support./*from  ww  w  . jav  a  2s .  c o  m*/
 *
 * @param configurationManager configuration manager with persistence units configurations.
 *
 * @return initialized Spring context
 *
 * @see <a href="https://github.com/SpringSource/spring-data-jpa/blob/master/src/test/resources/multiple-entity-manager-integration-context.xml"/>
 */
protected ApplicationContext createApplicationContext(
        PersistenceUnitsConfigurationManager configurationManager) {
    GenericApplicationContext context = new GenericApplicationContext();

    String abstractEMFBeanName = "abstractEntityManagerFactory";
    context.registerBeanDefinition(abstractEMFBeanName,
            BeanDefinitionBuilder.genericBeanDefinition(LocalContainerEntityManagerFactoryBean.class)
                    .setAbstract(true).getBeanDefinition());

    Iterable<PersistenceUnitConfiguration> configurations = configurationManager.getConfigurations();
    for (PersistenceUnitConfiguration configuration : configurations) {
        String persistenceUnitName = configuration.getPersistenceUnitName();
        logger.info(String.format("Processing persistence unit: [%s]", persistenceUnitName));
        Map props = configuration.getProperties();

        String entityManagerFactoryName = "entityManagerFactory#" + persistenceUnitName;

        BeanDefinitionBuilder emfFactoryDefinitionBuilder = BeanDefinitionBuilder.genericBeanDefinition()
                .setParentName(abstractEMFBeanName).addPropertyValue("persistenceUnitName", persistenceUnitName)
                .addPropertyValue("jpaProperties", props);

        // Additional EntityManagerFactory properties for Spring EMFBean initialization - s.a. jpaDialect, jpaVendorAdapter
        Map<String, Object> properties = getAdditionalEMFProperties(persistenceUnitName);
        if (properties != null) {
            for (String propertyName : properties.keySet()) {
                Object value = properties.get(propertyName);
                if (value != null) {
                    logger.info(
                            String.format("Found additional EMF property: [%s] -> [%s]", propertyName, value));
                    emfFactoryDefinitionBuilder.addPropertyValue(propertyName, value);
                }
            }
        }

        context.registerBeanDefinition(entityManagerFactoryName,
                emfFactoryDefinitionBuilder.getBeanDefinition());

        // Naming is important - it's needed for later TransactionManager resolution based on @Transactional value with persistenceUnitName
        context.registerBeanDefinition(persistenceUnitName,
                BeanDefinitionBuilder.genericBeanDefinition(JpaTransactionManager.class)
                        .addPropertyReference("entityManagerFactory", entityManagerFactoryName)
                        .getBeanDefinition());

        PlatformTransactionManager transactionManager = context.getBean(persistenceUnitName,
                PlatformTransactionManager.class);
        TransactionInterceptor transactionInterceptor = new TransactionInterceptor(transactionManager,
                createTransactionAttributeSource());
        transactionInterceptor.setBeanFactory(context);

        // Wiring components
        EntityManagerFactory emf = context.getBean(entityManagerFactoryName, EntityManagerFactory.class);
        EntityManager entityManager = SharedEntityManagerCreator.createSharedEntityManager(emf, props);
        configuration.setEntityManager(entityManager);
        configuration.setEntityManagerFactory(emf);
        configuration.setTransactionManager(transactionManager);
        configuration.setTransactionManagerName(persistenceUnitName);
        configuration.setTransactionInterceptor(transactionInterceptor);

        // Default bindings for EMF & Transaction Manager - they needed for repositories with @Transactional without value
        if (configuration.isDefault()) {
            context.registerAlias(entityManagerFactoryName, "entityManagerFactory");
            context.registerAlias(persistenceUnitName, "transactionManager");
        }
    }

    return context;
}