<?xml version="1.0" encoding="UTF-8"?>
<context:annotation-config />
<!-- ================================================================= -->
<!-- Declarative Transaction Management -->
<!-- ================================================================= -->
<tx:annotation-driven transaction-manager="hibernateTransactionManager"/>
<!-- ================================================================== -->
<!-- Flow Manager -->
<!-- ================================================================== -->
<bean id="flowManager"
class="org.openehealth.ipf.platform.camel.flow.PlatformFlowManager">
</bean>
<!-- ================================================================== -->
<!-- Flow Processors (bean definition optional since IPF 1.6.0) -->
<!-- ================================================================== -->
<bean scope="prototype" class="org.openehealth.ipf.platform.camel.flow.process.FlowBeginProcessor">
<property name="messageRenderer" ref="messageRenderer" />
</bean>
<bean scope="prototype" class="org.openehealth.ipf.platform.camel.flow.process.FlowEndProcessor">
<property name="messageRenderer" ref="messageRenderer" />
</bean>
<bean scope="prototype" class="org.openehealth.ipf.platform.camel.flow.process.FlowErrorProcessor">
<property name="messageRenderer" ref="messageRenderer" />
</bean>
<!-- ================================================================== -->
<!-- Dedupe (bean definition optional since IPF 1.6.0) -->
<!-- ================================================================== -->
<bean scope="prototype" class="org.openehealth.ipf.platform.camel.flow.dedupe.Dedupe" />
<!-- ================================================================= -->
<!-- Repositories -->
<!-- ================================================================= -->
<bean id="sequenceRepository"
class="org.openehealth.ipf.commons.flow.repository.SequenceRepositoryImpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="flowRepository"
class="org.openehealth.ipf.commons.flow.repository.FlowRepositoryImpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<bean id="configRepository"
class="org.openehealth.ipf.commons.flow.repository.ConfigRepositoryImpl">
<property name="hibernateTemplate" ref="hibernateTemplate" />
</bean>
<!-- ================================================================= -->
<!-- Hibernate Setup -->
<!-- ================================================================= -->
<bean id="hibernateSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="flowDataSource"/>
<property name="configLocation" value="classpath:hibernate-flow.xml"/>
<property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>
<property name="hibernateProperties">
<props>
<!-- For Hibernate version < 3.5.x use org.openehealth.ipf.commons.flow.derby.DerbyDialect -->
<prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">false</prop>
<prop key="hibernate.search.autoregister_listeners">false</prop>
<prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>
<prop key="hibernate.search.default.indexBase">./lucene</prop>
</props>
</property>
<!--
Enables rendered message encryption and full text indexing:
* To use rendering without both encryption and full text indexing,
delete the 'eventListeners' property.
* To use rendering with encryption only, delete the
post-insert, post-update and post-delete entries.
* To use rendering with full text indexing only, delete the bean
references to textDecryptorEventListener in the post-insert and
post-update event listeners. Delete the pre-update, pre-insert
and post-load entries as well.
-->
<property name="eventListeners">
<map>
<entry key="pre-update" value-ref="textEncryptorEventListener"/>
<entry key="post-update">
<list>
<ref bean="textDecryptorEventListener"/>
<ref bean="textIndexEventListener"/>
</list>
</entry>
<entry key="pre-insert" value-ref="textEncryptorEventListener"/>
<entry key="post-insert">
<list>
<ref bean="textDecryptorEventListener"/>
<ref bean="textIndexEventListener"/>
</list>
</entry>
<entry key="post-delete" value-ref="textIndexEventListener"/>
<entry key="post-load" value-ref="textDecryptorEventListener"/>
</map>
</property>
</bean>
<bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="hibernateSessionFactory" />
</bean>
<bean id="hibernateTransactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="hibernateSessionFactory"/>
</bean>
<!-- ================================================================= -->
<!-- Datasource Setup -->
<!-- ================================================================= -->
<bean id="flowDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver" />
<property name="url" value="jdbc:derby://localhost:1527/flowmgr;create=true" />
<property name="defaultAutoCommit" value="false" />
<property name="initialSize" value="10" />
<property name="maxActive" value="50" />
</bean>
<!-- ================================================================== -->
<!-- JMX Setup -->
<!-- ================================================================== -->
<bean class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
<!-- <property name="autodetect" value="false"/> -->
<property name="assembler" ref="assembler"/>
<property name="namingStrategy" ref="namingStrategy"/>
<property name="beans">
<map>
<entry
key="org.openehealth.ipf.platform:type=service,name=FlowManager"
value-ref="flowManagerMBean" />
</map>
</property>
</bean>
<bean id="flowManagerMBean" class="org.openehealth.ipf.commons.flow.jmx.FlowManagerMBean">
<property name="application" value="registry"/>
</bean>
<!-- ================================================================= -->
<!-- JMX Annotation Support -->
<!-- ================================================================= -->
<bean id="jmxAttributeSource"
class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource"/>
<bean id="assembler"
class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
<property name="attributeSource" ref="jmxAttributeSource"/>
</bean>
<bean id="namingStrategy"
class="org.springframework.jmx.export.naming.MetadataNamingStrategy">
<property name="attributeSource" ref="jmxAttributeSource"/>
</bean>
<!-- ================================================================= -->
<!-- Encryption setup -->
<!-- ================================================================= -->
<bean id="stringEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
<property name="password">
<value>test_password</value>
</property>
</bean>
<bean id="textEncryptorEventListener"
class="org.openehealth.ipf.commons.flow.hibernate.RenderedMessageEncryptEventListener">
<property name="stringEncryptor" ref="stringEncryptor" />
</bean>
<bean id="textDecryptorEventListener"
class="org.openehealth.ipf.commons.flow.hibernate.RenderedMessageDecryptEventListener">
<property name="stringEncryptor" ref="stringEncryptor"/>
</bean>
<!-- ================================================================= -->
<!-- Fulltext indexing/search setup -->
<!-- ================================================================= -->
<bean id="textIndexEventListener" class="org.hibernate.search.event.FullTextIndexEventListener"/>
<bean id="flowSearchCallback" class="org.openehealth.ipf.commons.flow.repository.search.DefaultSearchCallback" />
<!-- ================================================================== -->
<!-- Message renderer -->
<!-- ================================================================== -->
<bean id="messageRenderer"
class="org.openehealth.ipf.platform.camel.flow.render.SimpleMessageRenderer">
</bean>
</beans>