Issue 1:
Jan Goyvaerts opened SPR-9087 and commented

I have a classic JPA configuration in which I'm using Hibernate. I'd like to switch to Infinispan for 2nd level- and query caching. Mainly because this cache takes the transaction into account. This is for a standalone deployment on Tomcat.

However, there is no way yet to integrate the Spring transaction manager for Infinispan. (At least, I didn't found a way.)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">

<!-- Scan our code for Spring annotations @Component, @Repository and @Service annotated classes are added -->
<!-- to the Spring configuration as if they're declared in this file. -->
<context:component-scan base-package="com.foo" scoped-proxy="targetClass"/>

<!-- configuration transactions are done with @Transactional -->
<tx:annotation-driven transaction-manager="transactionManager"/>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<bean id="jpaTemplate" class="org.springframework.orm.jpa.JpaTemplate">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<!-- Describes how to connect to the database -->
<!-- Describes to reuse database connections as making them is expensive -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="user" value="${database.user.name}"/>
<property name="password" value="${database.user.password}"/>
<property name="driverClass" value="${database.driver}"/>
<property name="jdbcUrl" value="${database.url}"/>
<property name="initialPoolSize" value="1"/>
<property name="maxPoolSize" value="4"/>
<property name="minPoolSize" value="1"/>
<property name="acquireIncrement" value="1"/>
<property name="acquireRetryAttempts" value="0"/>
</bean>

<!-- Describes how to create hibernate sessions -->
<!-- "persistenceUnitName" points to META-INF/persistence.xml -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceProviderClass" value="org.hibernate.ejb.HibernatePersistence"/>
<property name="persistenceUnitName" value="foo"/>
<property name="dataSource" ref="dataSource"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.infinispan.InfinispanRegionFactory</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.infinispan.statistics">true</prop>
<prop key="hibernate.transaction.manager_lookup_class">... something of Spring should be here ... </prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.jdbc.batch_size">1000</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.dialect">${database.hibernate.dialect}</prop>
</props>
</property>
</bean>
</beans>

Issue Links:

#15217 Add Infinispan Cache Implementation ("duplicates")

1 votes, 4 watchers

Issue 2:
Philippe Marschall opened SPR-10588 and commented

There currently is an Ehcache implementation of the cache abstraction. It would be interesting for us to have an Infinispan implementation. This would allow us to use ConcurrentMapCache for tests and the built-in JBoss AS 7 cache in production.

Issue Links:

#13725 Provide transactional support for Infinispan 2nd level cache ("is duplicated by")

1 votes, 7 watchers