mule2.2.x架构(六)示例学习scripting

mule2.2.x架构(六)示例学习scripting

所有的示例文档
http://www.mulesoft.org/display/MULE2INTRO/Examples

本示例参考地址
http://www.mulesoft.org/display/MULE2INTRO/Scripting+Example

6.1 标准输入调用script处理业务打印到标准输出
主要配置文件change-machine.xml。。。。为啥叫这个名字呐。
<description>
JSR-223 script as the service component.
</description>
<context:property-placeholder location="scripting/default-config.properties"/>
<configuration defaultSynchronousEndpoints="true"/>

<stdio:connector name="SystemStreamConnector"
promptMessage="How much more change do you need? (enter an amount such as 2.37)"
messageDelayTime="1000"/>

<custom-transformer name="StringToNumber" class="com.sillycat.easymule.scripting.transformer.StringToNumber"/>
<custom-transformer name="DollarsToCents" class="com.sillycat.easymule.scripting.transformer.SimpleMathTransformer">
<spring:property name="operation" value="multiply"/>
<spring:property name="factor" value="100"/>
</custom-transformer>

<model name="main">
<service name="Accumulator">
<inbound>
<!-- 标准输入 -->
<stdio:inbound-endpoint system="IN"
transformer-refs="StringToNumber DollarsToCents"/>
<!-- 队列输入 -->
<vm:inbound-endpoint path="input" transformer-refs="DollarsToCents"/>
</inbound>
<component>
<!-- 计算处理 -->
<singleton-object class="com.sillycat.easymule.scripting.service.AccumulatorComponent"/>
</component>
<outbound>
<chaining-router>
<!-- 队列输出到queen -->
<vm:outbound-endpoint path="script"/>
<!-- 标准输出 -->
<stdio:outbound-endpoint system="OUT"/>
</chaining-router>
</outbound>
</service>
<service name="ScriptService">
<inbound>
<!-- 队列输入到queen -->
<vm:inbound-endpoint path="script"/>
</inbound>
<script:component>
<script:script file="${scriptfile}">
<property key="currency" value="${currency}"/>
</script:script>
</script:component>
</service>
</model>
其实properties中两种配置都应该可以的,python和groovy的脚本都支持的
#These properties can be passed in via the command line i.e. -Dcurrency=GBP
#scriptfile=scripting/greedy.groovy
#currency=USD
scriptfile=scripting/greedy.py
currency=GBP
当然pom.xml上要将null/lib/user/里面的jar都加上。

另外应当注意这个
<chaining-router>
<!-- 队列输出到queen -->
<vm:outbound-endpoint path="script"/>
<!-- 标准输出 -->
<stdio:outbound-endpoint system="OUT"/>
</chaining-router>
我是这样理解的,chaining-router的时候,是先执行了script,然后脚本返回后,才执行的stdio,输出到了控制台。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值