awips2/edexOsgi/com.raytheon.uf.edex.plugin.madis.registry/res/spring/madis-ogc-registry.xml
Richard Peter 5350b3eac8 Issue #2726: Edex graceful shutdown.
Refactored to use inheritance and separate logic where possible.
             Addressed comments.

Change-Id: I9e62414cd83121575bdf99a3b47466a7585bedb6

Former-commit-id: 909571ebca [formerly e4be1f24e7] [formerly dbba727f3d] [formerly 909571ebca [formerly e4be1f24e7] [formerly dbba727f3d] [formerly 17196b5dcd [formerly dbba727f3d [formerly 6e015b3f61c20635077d6e8271e9b763e5a32fe1]]]]
Former-commit-id: 17196b5dcd
Former-commit-id: b5fa843960 [formerly ff87317bd4] [formerly f202d7fc11f48792bac7d10cbb20d9ba9077aa8f [formerly 8b279966d1]]
Former-commit-id: b1349363c5b25965107de3827211c7bcc6b9e98b [formerly b3fd8e5480]
Former-commit-id: de624d87d3
2014-04-14 13:10:11 -05:00

137 lines
No EOL
5.1 KiB
XML

<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-3.1.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
<bean id="madisDecoder" class="com.raytheon.uf.edex.plugin.madis.MadisDecoder">
<constructor-arg ref="madisPluginName" />
</bean>
<bean id="madisPointData"
class="com.raytheon.uf.edex.plugin.madis.MadisPointDataTransform"
depends-on="registerMadisPlugin" />
<bean id="madisDistRegistry" factory-bean="distributionSrv"
factory-method="register">
<constructor-arg value="madis" />
<constructor-arg value="jms-durable:queue:Ingest.madis" />
</bean>
<bean id="madisSeparator" class="com.raytheon.uf.edex.plugin.madis.MadisSeparator">
<constructor-arg
value="jms-durable:queue:Ingest.madisSeparator" />
<!-- time in hours for orphan purging -->
<constructor-arg value="1" />
</bean>
<bean id="madisRegistryAddon"
class="com.raytheon.uf.edex.plugin.madis.registry.MadisRegistryCollectorAddon"
depends-on="registerDataDeliveryHandlers, registerRequestRegistryRouter, registerMadisPlugin">
</bean>
<bean id="madisRegistryAddonProvider"
class="com.raytheon.uf.edex.ogc.registry.RegistryCollectorAddonProvider"
depends-on="madisRegistryAddon">
<constructor-arg ref="madisRegistryAddon" />
</bean>
<bean id="madisWfsTypeModifier"
class="com.raytheon.uf.edex.ogc.registry.RegistryFeatureTypeModifier" />
<bean class="com.raytheon.uf.edex.ogc.common.util.AddonPropsPostProcessor" depends-on="madisRegistryAddonProvider, madisRegistryAddon">
<constructor-arg>
<map>
<entry key="madisIngestFilter">
<map>
<entry key="filter" value-ref="madisRegistryAddon" />
</map>
</entry>
<entry key="madisLayerCollector">
<map>
<entry key="addonFactory" value-ref="madisRegistryAddonProvider" />
</map>
</entry>
<entry key="madisWfsSource">
<map>
<entry key="typeModifier" value-ref="madisWfsTypeModifier" />
</map>
</entry>
</map>
</constructor-arg>
</bean>
<camelContext id="madis-camel"
xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="errorHandler">
<!-- This first file drop route is used mainly for testing -->
<endpoint id="madisFileEndpoint"
uri="file:${edex.home}/data/sbn/madis?noop=true&amp;idempotent=false" />
<route id="madisFileConsumerRoute">
<from ref="madisFileEndpoint" />
<bean ref="fileToString" />
<setHeader headerName="pluginName">
<constant>madis</constant>
</setHeader>
<to uri="jms-durable:queue:Ingest.madis" />
</route>
<!-- Separates MADIS files into manageable chunks -->
<route id="madisSeperatorRoute">
<from uri="jms-durable:queue:Ingest.madis" />
<setHeader headerName="pluginName">
<constant>madis</constant>
</setHeader>
<doTry>
<pipeline>
<bean ref="stringToFile" />
<bean ref="dataUnzipper" method="gunzip"/>
<bean ref="madisSeparator" method="separate" />
</pipeline>
<doCatch>
<exception>java.lang.Throwable</exception>
<to
uri="log:madis" />
</doCatch>
</doTry>
</route>
<!-- Begin MADIS production route -->
<route id="madisIngestRoute">
<from
uri="jms-durable:queue:Ingest.madisSeparator" />
<setHeader headerName="pluginName">
<constant>madis</constant>
</setHeader>
<doTry>
<pipeline>
<bean ref="madisDecoder" method="decode" />
<bean ref="madisRegistryAddon" method="filter" />
<bean ref="madisPointData" method="toPointData" />
<bean ref="persist" method="persist"/>
<bean ref="index" method="index"/>
<bean ref="madisLayerCollector" method="add" />
<bean ref="processUtil" method="log"/>
</pipeline>
<doCatch>
<exception>java.lang.Throwable</exception>
<to
uri="log:madis" />
</doCatch>
</doTry>
</route>
<route id="madisOrphanPurgeRoute">
<!-- purge madis orphan files based on hour in separator constructor
arg -->
<from uri="quartz://madis/orphan?cron=0+0+*+*+*+?" />
<bean ref="madisSeparator" method="fileCleaner" />
</route>
<route id="madisRegistryRoute">
<!-- send metadata to registry every minute -->
<from uri="quartz://madis/layers?cron=0+*+*+*+*+?" />
<bean ref="madisRegistryAddon" method="buildLayerUpdate" />
</route>
</camelContext>
</beans>