|
SpringConfigXml
This is an example of how to wire Broadway components using the Spring framework. This file shows couple of observed resources, a monitor and an Action component wired to create a file synchronizer. The Spring Timer section can be replace with your own Timer task if you don't want to have the Spring dependency at all. <?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:lang="http://www.springframework.org/schema/lang" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd"> <!-- ====================== Observed Resources ======================= --> <bean id="firstDir" class="org.broadway.demo.spring.ObservedDirectory"> <property name="directoryName" value="./dir1" /> </bean> <bean id="secondDir" class="org.broadway.demo.spring.ObservedDirectory"> <property name="directoryName" value="./dir2" /> </bean> <!-- ======================= Monitor Setup ========================== --> <bean id="monitor" class="org.broadway.monitor.BeanMonitor"> <property name="monitorExpression"> <value><![CDATA[context.resources.firstDir.directorySize != context.resources.secondDir.directorySize]]></value> </property> <property name="action" ref="groovyAction"/> <property name="resourceCollector"> <bean class="org.broadway.monitor.MappedResourceCollector"> <property name="resources"> <map> <entry key="firstDir" value-ref="firstDir" /> <entry key="secondDir" value-ref="secondDir" /> </map> </property> </bean> </property> </bean> <!-- ======================= Monitor Action ========================== --> <bean id="scriptedAction" class="org.broadway.monitor.ScriptedAction"> <property name="scriptFileLocation" value="scripts/synchronizeDir.groovy" /> </bean> <lang:groovy id="groovyAction" script-source="classpath:scripts/SyncAction.groovy"/> <!-- ===================== Spring Timer Boilerplate Stuff ==================== --> <bean id="timerFactory" class="org.springframework.scheduling.timer.TimerFactoryBean"> <property name="scheduledTimerTasks"> <list> <ref bean="scheduledTimerTask" /> </list> </property> </bean> <bean id="scheduledTimerTask" class="org.springframework.scheduling.timer.ScheduledTimerTask"> <property name="period" value="2000" /> <property name="timerTask" ref="timer" /> </bean> <bean id="timer" class="org.springframework.scheduling.timer.MethodInvokingTimerTaskFactoryBean"> <property name="targetObject" ref="monitor" /> <property name="targetMethod" value="scan" /> </bean> </beans> |
Sign in to add a comment