【发布时间】:2015-11-25 02:09:36
【问题描述】:
我有一个通过正则表达式过滤 SFTP 文件的流程。我使用属性文件来利用 SFTP 连接器的许多设置。我无法做到这一点的一个设置是 file:filename-regex-filter 元素内的正则表达式模式属性。
这是我的 SFTP 连接器。
<!-- Get the HiTrack files via SFTP -->
<sftp:inbound-endpoint name="HiTrackInboundSFTPEndpoint"
doc:name="Get SFTP"
user="${sftp.origin.user}"
password="${sftp.origin.password}"
port="${sftp.origin.port}"
path="${sftp.origin.path}"
host="${sftp.origin.host}"
pollingFrequency="${sftp.origin.pollingFrequency}"
fileAge="${sftp.origin.fileAge}"
responseTimeout="${sftp.origin.responseTimeout}"
tempDir="${sftp.origin.tempDir}"
archiveDir="${local.archive.directory}"
archiveTempReceivingDir="${local.archive.receiveDir}"
archiveTempSendingDir="${local.archive.sendingDir}"
useTempFileTimestampSuffix="true">
<!-- Use RegEx filter to filter only HiTrack files with within the proper date format YYYYMMdd
Range of dates are from 19000101 to 20991231 -->
<file:filename-regex-filter
pattern="hitrack_(19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])_(.*).xml"
caseSensitive="false" />
</sftp:inbound-endpoint>
我已经尝试了以下两种模式属性都没有成功。
pattern="#[${regex.filter}]"
和
pattern="${regex.filter}"
我的属性文件包含所有列出的值,并且除了正则表达式过滤器模式外,效果很好。
regex.filter的属性文件如下:
regex.filter=hitrack_(19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])_(.*).xml
我没有收到任何错误;它只是在使用属性表达式时不传递任何有效文件。它仅在显式使用正则表达式时才有效。
对此问题的任何建议或更好的解决方案,我将不胜感激。
【问题讨论】:
标签: regex file properties mule sftp