]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.server/src/main/resources/org/argeo/slc/server/spring/servletContext.xml
Improve transaction management
[gpl/argeo-slc.git] / org.argeo.slc.server / src / main / resources / org / argeo / slc / server / spring / servletContext.xml
index c2428e2c2c15bfb5d4fd62dd4f753b8a577cfb5c..651ddb2d843e7164f9677ce2ba03281e4292a6ab 100644 (file)
@@ -1,11 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"
+       xmlns:aop="http://www.springframework.org/schema/aop"
+       xmlns:tx="http://www.springframework.org/schema/tx"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"
        default-lazy-init="true">
 
        <import
                resource="classpath:/org/argeo/slc/hibernate/spring/applicationContext.xml" />
+       <import resource="transaction.xml" />
 
        <!--  Default data source -->
        <bean
@@ -18,8 +24,8 @@
                </property>
                <property name="properties">
                        <props>
-                               <prop key="${sessionFactoryParentBean}">
-                                       slcDefault.sessionFactory.hibernateTestHSQL
+                               <prop key="sessionFactoryParentBean">
+                                       slcServerDefault.sessionFactory.hibernateTestHSQL
                                </prop>
                        </props>
                </property>
 
        <bean id="sessionFactory" parent="${sessionFactoryParentBean}" />
 
+       <bean id="slcServerDefault.sessionFactory.hibernateTestHSQL"
+               parent="slcTemplates.sessionFactory.hibernateBasic">
+               <property name="dataSource"
+                       ref="slcServerDefault.dataSource.inMemoryTestHSQL" />
+               <property name="hibernateProperties">
+                       <value><![CDATA[
+                               hibernate.dialect=org.hibernate.dialect.HSQLDialect
+                               hibernate.hbm2ddl.auto=create
+                               hibernate.generate_statistics=true
+                               hibernate.connection.autocommit=false
+                       ]]></value>
+               </property>
+       </bean>
+
+       <bean id="slcServerDefault.dataSource.inMemoryTestHSQL"
+               parent="slcDefault.dataSource.inMemoryTestHSQL"
+               destroy-method="destroy">
+               <property name="autoCommit" value="false" />
+       </bean>
+
        <bean id="slcServerDefault.sessionFactory.persistentHSQL"
                parent="slcTemplates.sessionFactory.hibernateBasic">
                <property name="dataSource"
        </bean>
 
        <!-- DAOs -->
-       <bean id="testResultDao" parent="slcTemplates.dao.testResultDao">
+       <bean id="hibernateTemplate"
+               class="org.springframework.orm.hibernate3.HibernateTemplate">
                <property name="sessionFactory" ref="sessionFactory" />
+               <property name="allowCreate" value="false" />
+       </bean>
+
+       <bean id="testResultDao" parent="slcTemplates.dao.testResultDao">
+               <property name="hibernateTemplate" ref="hibernateTemplate" />
        </bean>
 
        <bean id="testResultCollectionDao"
                parent="slcTemplates.dao.testResultCollectionDao">
-               <property name="sessionFactory" ref="sessionFactory" />
+               <property name="hibernateTemplate" ref="hibernateTemplate" />
        </bean>
 
        <bean id="testRunDescriptorDao"
                parent="slcTemplates.dao.testRunDescriptorDao">
-               <property name="sessionFactory" ref="sessionFactory" />
+               <property name="hibernateTemplate" ref="hibernateTemplate" />
        </bean>
 
        <bean id="slcExecutionDao"
                parent="slcTemplates.dao.slcExecutionDao">
+               <property name="hibernateTemplate" ref="hibernateTemplate" />
+       </bean>
+
+       <!-- Hibernate instrumentation -->
+       <bean id="osivInterceptor"
+               class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor">
+               <property name="sessionFactory" ref="sessionFactory" />
+       </bean>
+
+       <!-- Transaction -->
+       <bean id="transactionManager"
+               class="org.springframework.orm.hibernate3.HibernateTransactionManager"
+               lazy-init="false">
                <property name="sessionFactory" ref="sessionFactory" />
        </bean>
+
 </beans>
\ No newline at end of file