Mule - 创建用于流的自定义属性

时间:2015-08-14 19:55:09

标签: properties mule spring-bean

我正在尝试在我的流程中获取操作系统名称,因此我可以根据运行的操作系统调整变量 我是spring bean的新手,但到目前为止,下面将调用set函数(我在日志中看到它)但是我需要能够从我的内部访问osName。

java class:

public class CustomVariables {
    public CustomVariables(){}

    public String osName;
    public String getOsName(){ 
        System.out.println("got value: "+ osName); 
        return osName;
    }
    public void setOsName(String name){ 
        osName = System.getProperty("os.name").toLowerCase();
        System.out.println("set value: "+ osName); //this prints in console on startup
    }
}

mule.xml:

<spring:beans> 
    <spring:bean class="netstockconnector.CustomVariables"> 
        <spring:property name="osName" value="{os.name}"> </spring:property>  
    </spring:bean>  
</spring:beans>
流程中的

<logger message="${osName}" level="INFO" doc:name="Logger"></logger>

这只是打印到控制台“$ {osName}”而不是“mac os x”。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

有一个更简单的解决方案......

<logger message='#[System.getProperty("os.name")]' level="INFO" doc:name="Logger"></logger>

要触发骡子表达语言,要评估的表达式应介于#[expression to evaluate]之间。默认情况下,MEL导入一组包含java.lang.System的java类,因此直接在表达式中使用。