2

我们目前组织了我们的 mule 项目,其中我们的 mule 流在几个流文件中。我们发现这有助于我们重用流程。但是,它有一个额外的副作用。通过在其他流文件之间建立依赖关系,我们发现我们的 munit 测试现在必须加载大量的流文件,这会减慢我们的 munit 测试,因为我们必须加载更多的文件。我们也不想将我们的流程粘在一个巨大的文件中。

我们想知道是否有一个快乐的媒介或策略,我们应该如何拆分我们的流文件,以便在测试和应用程序加载时将性能影响降至最低?

谢谢,

胡安

4

2 回答 2

1

我会为项目中的每个任务定义 default mule-config.xml,以及connector配置和流文件。并不一定意味着每个流文件将包含单个流,而是与同一任务相关的流sub-flowsprivate flows根据需要。但是,可重复使用的流功能(如 alert emailsdatabase operations)将其放在单独的commons-config.xml流文件中。

对于unit-testing,我会在下面创建另一个mule-test-config.xmlsrc/test/resources包含mock connectors类似database或任何其他内容。要按原样使用的连接器http或其他连接器,将它们按原样复制到mule-test-config.

现在要测试特定的流程,您需要flow file + mule-test-config + commons-config (if any shared flow)

于 2016-04-21T14:17:59.823 回答
1

我建议您使用通用的全局配置 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>

希望这可以帮助。

于 2016-04-21T05:34:43.857 回答