我们目前组织了我们的 mule 项目,其中我们的 mule 流在几个流文件中。我们发现这有助于我们重用流程。但是,它有一个额外的副作用。通过在其他流文件之间建立依赖关系,我们发现我们的 munit 测试现在必须加载大量的流文件,这会减慢我们的 munit 测试,因为我们必须加载更多的文件。我们也不想将我们的流程粘在一个巨大的文件中。
我们想知道是否有一个快乐的媒介或策略,我们应该如何拆分我们的流文件,以便在测试和应用程序加载时将性能影响降至最低?
谢谢,
胡安
我们目前组织了我们的 mule 项目,其中我们的 mule 流在几个流文件中。我们发现这有助于我们重用流程。但是,它有一个额外的副作用。通过在其他流文件之间建立依赖关系,我们发现我们的 munit 测试现在必须加载大量的流文件,这会减慢我们的 munit 测试,因为我们必须加载更多的文件。我们也不想将我们的流程粘在一个巨大的文件中。
我们想知道是否有一个快乐的媒介或策略,我们应该如何拆分我们的流文件,以便在测试和应用程序加载时将性能影响降至最低?
谢谢,
胡安
我会为项目中的每个任务定义 default mule-config.xml
,以及connector
配置和流文件。并不一定意味着每个流文件将包含单个流,而是与同一任务相关的流sub-flows
或private flows
根据需要。但是,可重复使用的流功能(如 alert emails
、database operations
)将其放在单独的commons-config.xml
流文件中。
对于unit-testing
,我会在下面创建另一个mule-test-config.xml
以src/test/resources
包含mock connectors
类似database
或任何其他内容。要按原样使用的连接器http
或其他连接器,将它们按原样复制到mule-test-config
.
现在要测试特定的流程,您需要flow file + mule-test-config + commons-config (if any shared flow)
我建议您使用通用的全局配置 xml,在其中放置所有配置和端点连接器。这样,您将只加载 global.xml 而不是您引用的所有其他流。
Global.xml 包含:
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/>
<http:request-config name="REST_Request_Configuration" host="localhost" port="80" basePath="example" doc:name="HTTP Request Configuration"/>
<http:request-config name="REST_Request_Configuration2" host="google.com" port="80" doc:name="HTTP Request Configuration" basePath="/translate/v2">
在您的测试套件上,您只需要加载一个类路径/xml:
<spring:beans>
<spring:import resource="classpath:global.xml"/>
<spring:import resource="classpath:workflow_you_are_testing.xml"/>
</spring:beans>
希望这可以帮助。