Текущая ситуация:
Мул версии 3.5.0
У меня есть FTP-сервер, к которому я могу подключиться с помощью ftp:inbound-endpoint, используя определенный путь. По этому конкретному пути помещается множество файлов (некоторые для нас, некоторые для других), поэтому я использую фильтр имени файла с подстановочными знаками для фильтрации по определенным шаблонам имен файлов:
<flow name="flowA">
<ftp:inbound-endpoint host="${ftp.host}" port="${ftp.port}" user="${ftp.username}" password="${ftp.password}" path="${ftp.root.in}">
<file:filename-wildcard-filter pattern="${environment}*TYPE_A*.xml.gz" caseSensitive="false"/>
<gzip-uncompress-transformer/>
</ftp:inbound-endpoint>
<file:outbound-endpoint path="${home.dir}/typeA/in" responseTimeout="10000" outputPattern="#[message.inboundProperties.originalFilename]"/>
</flow>
Это прекрасно работает, но теперь я также хочу создать еще один поток, который ищет по тому же пути FTP файлы с другим именем:
<flow name="flowB">
<ftp:inbound-endpoint host="${ftp.host}" port="${ftp.port}" user="${ftp.username}" password="${ftp.password}" path="${ftp.root.in}">
<file:filename-wildcard-filter pattern="${environment}*TYPE_B*.xml.gz" caseSensitive="false"/>
<gzip-uncompress-transformer/>
</ftp:inbound-endpoint>
<file:outbound-endpoint path="${home.dir}/typeB/in" responseTimeout="10000" outputPattern="#[message.inboundProperties.originalFilename]"/>
</flow>
Это дает мне следующее исключение:
Caused by: org.mule.api.transport.ConnectorException: There is already a listener registered on this connector on endpointUri: XXX
Это означает, что невозможно иметь две конечные точки ftp:inbound-points, прослушивающие один и тот же хост, но с разными фильтрами подстановочных имен файлов...
Как я могу это решить? Указать ли один поток с одной ftp:inbound-endpoint и разделить входящие файлы на основе имени файла, или есть возможность включить прослушивание разных ftp:inbound-endpoint на одном и том же хосте?