<?xml version="1.0" encoding="UTF-8"?>
<mule
xmlns="http://www.mulesource.org/schema/mule/core/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tcp="http://www.mulesource.org/schema/mule/tcp/2.0"
xmlns:spring="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.mulesource.org/schema/mule/core/2.0
http://www.mulesource.org/schema/mule/core/2.0/mule.xsd
http://www.mulesource.org/schema/mule/tcp/2.0
http://www.mulesource.org/schema/mule/tcp/2.0/mule-tcp.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
">
<spring:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<spring:property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<spring:property name="locations">
<spring:list>
<spring:value>classpath:config/securysatfleet/gateway/transport/transport.properties</spring:value>
</spring:list>
</spring:property>
</spring:bean>
<custom-transformer
name="byteArrayToAbstractFleetMessageTransformer"
class="be.bfe.securysatfleet.gateway.service.dispatcher.transformer.ByteArrayToAbstractFleetMessageMuleTransformer"
returnClass="be.bfe.securysatfleet.domain.data.AbstractFleetMessage">
<spring:property name="transformers">
<spring:map>
<spring:entry key="65" value-ref="byteArrayToPeriodicTrackTransformer"/>
</spring:map>
</spring:property>
</custom-transformer>
<custom-transformer name="abstractFleetMessageToF7MessageTransformer" class="be.bfe.securysatfleet.gateway.service.dispatcher.transformer.PolymorphicTransformer">
<spring:property name="transformers">
<spring:map key-type="java.lang.Class">
<spring:entry key="be.bfe.securysatfleet.domain.data.PeriodicTrack" value-ref="periodicTrackToF7PeriodicTrackTransformer"/>
</spring:map>
</spring:property>
</custom-transformer>
<custom-transformer name="abstractF7MessageToByteArrayTransformer" class="be.bfe.securysatfleet.gateway.service.dispatcher.transformer.PolymorphicTransformer">
<spring:property name="transformers">
<spring:map key-type="java.lang.Class">
<spring:entry key="be.bfe.securysatfleet.gateway.domain.dispatcher.F7PeriodicTrack" value-ref="f7PeriodicTrackToByteArrayTransformer"/>
<spring:entry key="be.bfe.securysatfleet.gateway.domain.dispatcher.F7Alarm" value-ref="f7AlarmToByteArrayTransformer"/>
</spring:map>
</spring:property>
</custom-transformer>
<custom-filter name="dispatchingFilter" class="be.bfe.securysatfleet.gateway.service.dispatcher.filter.DispatchingFilter">
<spring:property name="dispatchingDao" ref="dispatchingDao"/>
</custom-filter>
<tcp:connector name="fleetConnector">
<tcp:custom-protocol class="be.bfe.securysatfleet.transport.FleetSegmentProtocol"/>
</tcp:connector>
<tcp:connector name="carTrakConnector">
<tcp:direct-protocol payloadOnly="true"/>
</tcp:connector>
<tcp:endpoint name="fleetEndpoint" host="localhost" port="${fleetPort}" connector-ref="fleetConnector"/>
<tcp:endpoint name="carTrakEndpoint" host="localhost" port="${carTrakPort}" connector-ref="carTrakConnector"/>
<model name="fleetModel">
<service name="carTrakListener">
<inbound>
<inbound-endpoint ref="carTrakEndpoint"/>
</inbound>
</service>
<service name="fleetMessageDispatcher">
<inbound>
<inbound-endpoint ref="fleetEndpoint" connector-ref="fleetConnector">
<transformer ref="byteArrayToAbstractFleetMessageTransformer"/>
</inbound-endpoint>
</inbound>
<bridge-component/>
<outbound>
<custom-outbound-router class="be.bfe.securysatfleet.gateway.service.dispatcher.router.DispatchingRouter">
<outbound-endpoint ref="carTrakEndpoint" connector-ref="carTrakConnector">
<transformers>
<transformer ref="abstractFleetMessageToF7MessageTransformer"/>
<transformer ref="abstractF7MessageToByteArrayTransformer"/>
</transformers>
</outbound-endpoint>
<filter ref="dispatchingFilter"/>
<spring:property name="dispatchingDao" ref="dispatchingDao"/>
</custom-outbound-router>
</outbound>
</service>
</model>
</mule>