@koen I've been meaning to setup a blog for years and have not gotten around to it. But would be happy to blog about it if I ever get the time. =)
@lperea Here are my configuration files: applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> | <!-- | Application context definition for PetClinic on JPA. | --> | <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" | xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" | xmlns:tx="http://www.springframework.org/schema/tx" | xmlns:ehcache="http://www.springmodules.org/schema/ehcache" | xsi:schemaLocation=" | http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd | http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd | http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd | http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd | http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd | http://www.springmodules.org/schema/ehcache http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd"> | | <!-- ========================= RESOURCE DEFINITIONS ========================= --> | | <!-- | Activates a load-time weaver for the context. Any bean within the context that | implements LoadTimeWeaverAware (such as LocalContainerEntityManagerFactoryBean) | will receive a reference to the auto-detected load-time weaver. | --> | <context:load-time-weaver aspectj-weaving="on" /> | <!-- Use this to specify exactly which load-time weaver should be used, but | it should get auto-detected. --> | <!-- <context:load-time-weaver aspectj-weaving="on" weaver-class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver" /> --> | | <!-- Configurer that replaces ${...} placeholders with values from a properties file --> | <!-- (in this case, JDBC-related settings for the dataSource definition below) --> | <context:property-placeholder location="classpath:/META-INF/lf.properties" /> | | <!-- Apply dependency injection to non-managed classes annotated with the @Configurable --> | <context:spring-configured /> | | <!-- Auto scan and load Spring components --> | <context:component-scan base-package="com.lf.service" /> | | <!-- enables interpretation of the @Required annotation to ensure that dependency injection actually occures --> | <bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/> | | <!-- enables interpretation of the @PersistenceUnit/@PersistenceContext annotations providing convenient | access to EntityManagerFactory/EntityManager --> | <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/> | | <bean id="partnerDataSource" class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> | <property name="transactionManager" ref="jotm" /> | <property name="driverName" value="${jdbc.driverClassName}"/> | <property name="url" value="${jdbc.partnerUrl}"/> | <property name="user" value="${jdbc.partnerUsername}"/> | <property name="password" value="${jdbc.partnerPassword}"/> | </bean> | | <!-- Required because the stand-alone JOTM transaction manager is not auto-detected by the | JtaTransactionManager because it requires a static accessor method. --> | <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean"> | <property name="defaultTimeout" value="100000"/> | </bean> | | <!-- Single XA data-source --> | <bean id="xaDataSource" class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown"> | <property name="transactionManager" ref="jotm" /> | <property name="driverName" value="${jdbc.driverClassName}"/> | <property name="url" value="${jdbc.url}"/> | <property name="user" value="${jdbc.username}"/> | <property name="password" value="${jdbc.password}"/> | </bean> | <!-- XA data-source pool --> | <!-- <bean id="xaDataSource" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown"> | <property name="transactionManager" ref="jotm" /> | <property name="dataSource" ref="dataSource"/> | <property name="user" value="${jdbc.username}"/> | <property name="password" value="${jdbc.password}"/> | </bean> --> | | <!-- supplying the JotmFactoryBean merely to the userTransaction property because JtaTransactionManager | auto-detects that the object returned by the JotmFactoryBean implements both the | UserTransaction and the TransactionManager interface --> | <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> | <property name="userTransaction" ref="jotm"/> | <!-- <property name="userTransactionName" value="java:comp/UserTransaction" /> --> | <property name="transactionManager" ref="jotm"/> | <property name="allowCustomIsolationLevels" value="true"/> | </bean> | | <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" | p:database="${jpa.database}" p:showSql="${jpa.showSql}" /> | | <!-- JPA EntityManagerFactory --> | <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" | p:dataSource-ref="xaDataSource" p:jpaVendorAdapter-ref="jpaVendorAdapter" p:jpaDialect-ref="jpaDialect" > | | <!-- configure Hibernate to participate in JTA transactions using the JOTM transaction manager and | specify further Hibernate specific configuration properties --> | <property name="jpaPropertyMap"> | <map> | <!-- Database Configuration --> | <entry key="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" /> | <entry key="hibernate.hbm2ddl.auto" value="${hibernate.hbm2ddl.auto}" /> | <entry key="hibernate.format_sql" value="false" /> | <entry key="hibernate.use_sql_comments" value="true" /> | <entry key="hibernate.default_batch_fetch_size" value="25" /> | <entry key="hibernate.order_updates" value="true" /> | <!-- Cache Configuration --> | <!-- <entry key="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider" /> --> | <!-- <entry key="net.sf.ehcache.configurationResourceName" value="ehcache.xml" /> --> | <entry key="hibernate.cache.use_second_level_cache" value="false" /> | <entry key="hibernate.cache.use_query_cache" value="false" /> | <!-- Transaction Management --> | <entry key="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JOTMTransactionManagerLookup" /> | <!-- <entry key="hibernate.transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory" /> --> | <entry key="hibernate.connection.autocommit" value="false" /> | <entry key="hibernate.connection.release_mode" value="auto" /> | <entry key="hibernate.transaction.auto_close_session" value="false" /> | <entry key="hibernate.transaction.flush_before_completion" value="false" /> | <entry key="hibernate.current_session_context_class" value="org.hibernate.context.JTASessionContext" /> | <!-- Hibernate Search --> | <!-- <entry key="hibernate.search.default.directory_provider" value="false" /> | <entry key="hibernate.search.default.indexBase" value="C:/Temp/hibernate_test_indexes" /> | <entry key="hibernate.search.default.batch.merge_factor" value="10" /> | <entry key="hibernate.search.default.batch.max_buffered_docs" value="10" /> | <entry key="hibernate.search.default.optimizer.operation_limit" value="500" /> | <entry key="hibernate.search.default.optimizer.transaction_limit.max" value="100" /> --> | </map> | </property> | <property name="persistenceUnitName" value="LeapforcePU" /> | <!-- Custom implementation to enrich the PersistenceUnitInfo read from the persistence.xml | JPA configuration file with the JTA datasource. specifying the JTA datasource directly in | the Spring configuration file has the advantage that we can use a direct reference to the | datasource instead of using a JNDI name as requied by the jta-data-source setting in the | persistence.xml file --> | <property name="persistenceUnitPostProcessors"> | <bean class="com.lf.service.jta.JtaPersistenceUnitPostProcessor"> | <property name="jtaDataSource" ref="xaDataSource" /> | </bean> | </property> | <property name="loadTimeWeaver"> | <bean class="org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver" /> | </property> | </bean> | | <bean id="sessionFactory" factory-bean="entityManagerFactory" factory-method="getSessionFactory"/> | | <bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" /> | | <!-- ========================= BUSINESS OBJECT DEFINITIONS ========================= --> | | <!-- | Activates various annotations to be detected in bean classes: Spring's | @Required and @Autowired, as well as JSR 250's @PostConstruct, | @PreDestroy and @Resource (if available) and JPA's @PersistenceContext | and @PersistenceUnit (if available). | --> | <context:annotation-config transaction-manager="transactionManager" /> | | <!-- | Instruct Spring to perform declarative transaction management | automatically on annotated classes. | --> | <tx:annotation-driven mode="aspectj" transaction-manager="transactionManager" /> | | <!-- | Instruct Spring to retrieve and apply @AspectJ aspects which are defined | as beans in this context (such as the CallMonitoringAspect below). | --> | <aop:aspectj-autoproxy /> | | <!-- | Post-processor to perform exception translation on @Repository classes (from native | exceptions such as JPA PersistenceExceptions to Spring's DataAccessException hierarchy). | --> | <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> | | | <!-- JBPM Spring Configuration File --> | <import resource="classpath:com/lf/jbpm/applicationContext-process.xml" /> | </beans> applicationContext-process.xml: <?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.0.xsd"> | | <bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration"> | <constructor-arg value="com/lf/jbpm/jbpm.cfg.xml" /> | </bean> | | <!-- <bean class="com.lf.jbpm.JobExecutorServlet" /> --> | | <bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" /> | <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" /> | <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" /> | <bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService" /> | <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" /> | <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" /> | <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" /> | | </beans> jbpm.cfg.xml: <?xml version="1.0" encoding="UTF-8"?> | | <jbpm-configuration> | | <import resource="jbpm.jpdl.cfg.xml" /> | <import resource="jbpm.identity.cfg.xml" /> | <!-- Uncomment this to enable job executor --> | <import resource="jbpm.jobexecutor.cfg.xml" /> | | <process-engine-context> | <repository-service /> | <repository-cache /> | <execution-service /> | <history-service /> | <management-service /> | <identity-service /> | <task-service /> | | <!-- <job-executor threads="1" idle="15000" idle-max="60000" lock-millis="3600000" /> --> | | | <!-- Here we needed to change the transaction interceptor --> | <command-service> | <retry-interceptor /> | <environment-interceptor /> | <spring-transaction-interceptor /> | </command-service> | | <!-- Added spring as read-context --> | <script-manager default-expression-language="juel" | default-script-language="juel" | read-contexts="execution, environment, process-engine, spring" | write-context=""> | <script-language name="juel" | factory="org.jbpm.pvm.internal.script.JuelScriptEngineFactory" /> | </script-manager> | | <id-generator /> | <types resource="jbpm.variable.types.xml" /> | | <address-resolver /> | | </process-engine-context> | | | <transaction-context> | <!-- Remove transaction tag to force jBPM to lookup transaction from Spring --> | <!-- <transaction type="jta" /> --> | <repository-session /> | <db-session /> | | <message-session /> | <timer-session /> | <history-session /> | <mail-session> | <mail-server> | <session-properties resource="jbpm.mail.properties" /> | </mail-server> | </mail-session> | | <!-- Need to set explicitly that we don't want jbpm to create sessions --> | <hibernate-session current="true" /> | </transaction-context> | </jbpm-configuration> Hope that helps. View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4258004#4258004 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4258004 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
