Mule ESB Quartz配置应用

功能:下载文件过滤保存。注意原带的FTP Connector不能传递多个文件,要定制FTP transport.
<?xml version="1.0" encoding="UTF-8"?>
<custom-connector name="icbcFtpConnector" class="com.youisoft.gateway.common.ftp.GWFtpConnector">
</custom-connector>

<file:connector name="fileConnector">
<file:expression-filename-parser/>
</file:connector>

<quartz:connector name="quartzConnector">
</quartz:connector>


<beans:bean name="accountFilter" class="com.youisoft.gateway.filter.IcbcAccountFileFilter"></beans:bean>

<!-- endpoint,Uncomment area of below in producion enviroment -->
<quartz:endpoint name="icbcSaveIn" jobName="icbcSaveJob" cronExpression="0 30 20 * * ? *" connector-ref="quartzConnector">
</quartz:endpoint>

<ftp:endpoint name="icbcFtpIn" binary="false" passive="true" host="10.0.26.33" port="21" path="/home/janly/ftp" user="janly" password="123456" connector-ref="icbcFtpConnector">
<filter ref="accountFilter" />
</ftp:endpoint>

<file:endpoint name="icbcFileWrite" path="/opt/icbc" outputPattern="#[header:originalFilename]" connector-ref="fileConnector">
</file:endpoint>

<custom-transformer name="accountTransformer" class="com.youisoft.gateway.transformer.AccountTransformer">
</custom-transformer>

<model>
<service name="icbcSaveService">
<inbound>
<quartz:inbound-endpoint ref="icbcSaveIn" synchronous="true">
<quartz:endpoint-polling-job>
<quartz:job-endpoint ref="icbcFtpIn" timeout="30000"/>
</quartz:endpoint-polling-job>
</quartz:inbound-endpoint>
</inbound>
<script:component>
<script:script engine="groovy">
def clsr={
        message.setStringProperty("PACKET.BODY.CHECKENTERPCODE","ICBC");
        message.setStringProperty("PACKET.BODY.CHECKFILEFLAG","3");
        def cal=java.util.Calendar.getInstance();       
    def sdf=new java.text.SimpleDateFormat("yyyy-MM-dd");
        message.setStringProperty("PACKET.BODY.CHECKFILEDATE",sdf.format(cal.getTime()));
}
    clsr.call();
    return message;
</script:script>
</script:component>
<outbound matchAll="true">
<list-message-splitter-router>
<file:outbound-endpoint ref="icbcFileWrite" synchronous="true">
</file:outbound-endpoint>
</list-message-splitter-router>
<pass-through-router>
<vm:outbound-endpoint ref="extAccountSave" transformer-refs="accountTransformer" synchronous="false" />
</pass-through-router>

</outbound>
</service>
</model>
</mule>

你可能感兴趣的:(java,xml,quartz)