`

mule配置文件元素

    博客分类:
  • SOA
 
阅读更多

<spring:beans>创建spring bean与mule创建的对象一起放在mule的注册信息里。

<spring:beans>
<spring:bean name="globalCache" class="com.mycompany.utils.LRUCache" >
<spring:property name="maxItems" value="200"/>
</spring:bean>
</spring:beans>

<spring:property>mule创建的对象可以spring的属性对象

<custom-processor class="com.mycompany.utils.CustomerClassChecker">
<spring:property name="highPriorities">
<spring:list>
<spring:value>Gold</spring:value>
<spring:value>Platinum</spring:value>
<spring:value>Executive</spring:value>
</spring:list>
</spring:property>
</custom-processor>

mule可以使用spring属性

<spring:beans>
<context:property-placeholder
location="classpath:my-mule-app.properties,
classpath:my-mule-app-override.properties" />
</spring:beans>


<http:endpoint name="ProtectedWebResource"
user="${web.rsc.user}"
password="${web.rsc.password}"
host="${web.rsc.host}"
port="80"
path="path/to/resource" />

Properties file:


web.rsc.user=alice
web.rsc.password=s3cr3t
web.rsc.host=www.acme.com

 

Connectors

mule具体的传输对象

 

mule endpoint可以指定connectors这样endpoint与connector分离非常灵活

endpoint只能有一个connector

如果endpoint没指定connector mule将会为其创建connector

<vm:connector name="persistentConnector">
<vm:queueProfile persistent="true" />
</vm:connector>


<file:connector name="fileConnector"
pollingFrequency="1000" moveToDirectory="/tmp/test-data/out" />

 

Endpoints

mule的一个对象可以读取信息或写入信息,其中的属性定义怎样处理消息

 

<vm:endpoint name="in" address="vm://in" connector-ref="persistentConnector" />
<http:endpoint name="in" host="localhost" port="8080" path = "services/orders" />
<endpoint name="inFiles" address="file://c:/Orders" />

 

Transformers

转换当前mule信息

 

<json:json-to-object-transformer
name="jsonToFruitCollection" returnClass="org.mule.module.json.transformers.FruitCollection">
<json:deserialization-mixin
mixinClass="org.mule.module.json.transformers.OrangeMixin" targetClass="org.mule.tck.testmodels.fruit.Orange"/>
</json:json-to-object-transformer>


<message-properties-transformer name="SetInvocationProperty" scope="invocation">
<add-message-property key="processed" value="yes" />
</message-properties-transformer>

 

Filters

过滤信息是否被处理

 

<wildcard-filter pattern="* header received"/>
只有匹配指定的pattern的信息才被处理
<mxml:is-xml-filter/>

只处理xml

<message-filter onUnaccepted="deadLetterQueue"> ❶
<wildcard-filter pattern="* header received"/>
</message-filter>


<message-filter throwOnUnaccepted="true"> ❷
<mxml:is-xml-filter/>
</message-filter>

可以嵌套

<or-filter>
<wildcard-filter pattern="*priority:1*"/>
<and-filter>
<not-filter>
<wildcard-filter pattern="*region:Canada*"/>
</not-filter>
<wildcard-filter pattern="*priority:2*"/>
</and-filter>
</or-filter>

嵌套加入条件

 

Expressions

mule表达式,可以用来判断或影响mule的行为

 

<expression-filter evaluator="header" expression="my-header!=null"/>

在值中利用表达式的值#[evaluator:expression]

<message-properties-transformer>
<add-message-property name="GUID" value="#[string:#[xpath:/msg/header/ID]-#[xpath:/msg/body/@ref]]"/>
</message-properties-transformer>

Names and References

用于指定全局对象并且复用

vm:endpoint name="in" address="vm://in" connector-ref="persistentConnector" />
<expression-filter name=checkMyHeader" evaluator="header" expression="my-header!
<message-properties-transformer name="SetInvocationProperty" scope="invocation">
<add-message-property key="processed" value="yes" />
</message-properties-transformer>


<flow name="useReferences">
<vm:inbound-endpoint ref="in"/>
<filter ref="checkSetInvocationPropertyMyHeader"/>
<transformer ref=""/>
</flow>

 

Flows

最基本的mule处理单元,开始于一个inbound endpoint接着是一系列的处理与可选择的outbound endpoint

 

<flow name="acceptAndProcessOrder">
<http:inbound-endpoint ref="in"/> ❶
<byte-array-to-string-transformer/> ❷
<jdbc:outbound-endpoint ref="getOrdersById" exchange-pattern="request-response"/> ❸
<mxml:object-to-xml-transformer/> ❹
<expression-filter evaluator="xpath" expression="/status = 'ready'/>❺
<logger level="DEBUG" message="fetched orders: #[payload]"/> ❻
<splitter evaluator="xpath" expression="/order"/> ➐


<enricher> ❽
<authorize:authorization-and-capture amount="#[xpath:/amount]" ❾
cardNumber="#[xpath:/card/number]"
expDate="#[xpath:/card/expire]" />
<enrich target="#[variable:PaymentSuccess]" source="#[bean:responseCode]"/>
</enricher>
<message-properties-transformer scope=:invocation"> ❶❶
<add-message-property key"user-email-address" value="[xpath:/user/email]"/>
</message-properties-transformer>
<component class="org.mycompany.OrderPreProcessor"/> ❶❷
<flow-ref name="processOrder"/> ❶❸
<smtp:outbound-endpoint subject="Your order has been processed" to="#[header:INVOCATION:user-email-address]/> ❶❹


<default-exception-strategy> ❶❺
<processor-chain> ❶❻
<object-to-string-transformer/> ❶➐
<jms:outbound-endpoint ref="order-processing-errors"/> ❶❽
</processor-chain/>
</default-exception-strategy>
</flow>

 

 

Routers

消息路由

Components

mule信息处理者,默认是java实现,可以为其他语言
<component class="org.mycompany.OrderPreProcessor"> ❶
<entry-point-resolver-set>
<method-entry-point-resolver>
<include-entry-point method="preProcessXMLOrder" />
<include-entry-point method="preProcessTextOorder" />
</method-entry-point-resolver>
<reflection-entry-point-resolver/>
</entry-point-resolver-set>
</component>


<component class="org.mycompany.OrderPreProcessor"> ❷
<property-entry-point-resolver property="methodToCall"/>
</component>


<component class="org.mycompany.generateDefaultOrder"> ❸
<no-arguments-entry-point-resolver>
<include-entry-point method="generate"/>
</no-arguments-entry-point-resolver>
</component>

Cloud Connectors

调用云服务

Processor Chain

信息处理链

Sub-flow

调用其他flow的flow

Bridge

连接inbound endpoint与outbound endpoint
<pattern:bridge name="queue-to-topic" ❶
transacted="true"
inboundAddress="jms://myQueue"
outboundAddress="jms://topic:myTopic" />


<pattern:bridge name="transforming-bridge" ❷
inboundAddress="vm://transforming-bridge.in"
transformer-refs="byte-array-to-string"
responseTransformer-refs="string-to-byte-array"
outboundAddress="vm://echo-service.in" />

Simple Service

引用其他component提供服务
<pattern:simple-service name="echo-service" ❶
endpoint-ref="echo-service-channel"
component-class="com.mycompany.EchoComponent" />




<pattern:simple-service name="weather-forecaster-ws" ❷
address="http://localhost:6099/weather-forecast"
component-class="com.myompany.WeatherForecaster"
type="jax-ws" />

Web service proxy


创建一个web service 代理
<pattern:web-service-proxy name="weather-forecast-ws-proxy"
inboundAddress="http://localhost:8090/weather-forecast"
outboundAddress="http://server1:6090/weather-forecast"
wsdlLocation="http://server1:6090/weather-forecast?wsdl" />

 

分享到:
评论

相关推荐

    mule配置常用节点解释

    #### 一、Mule配置文件结构概述 Mule ESB是一种集成平台,用于构建连接不同系统和服务的应用程序。Mule的配置文件采用XML格式,组织成一棵XML元素树,其中包含了对服务、路由、转换器等关键组件的定义。 #### 二、...

    mule -esb 源码

    `mule-spring-configuration.dtd`和`mule-configuration.dtd`是Mule ESB的XML配置文件的DTD(文档类型定义),它们规定了XML配置文件的结构和元素。Spring是Mule ESB的核心组件之一,负责管理对象的生命周期和依赖...

    mule学习笔记(初学者)

    配置文件中的关键元素包括连接器配置(如SystemStreamConnector),属性设置(如命名和类型),以及服务定义。配置文件还包含了描述和版本信息,这对于理解和维护配置至关重要。 通过以上步骤,初学者可以了解Mule...

    mule esb 3 tutorial.pdf

    3. **创建配置文件**:配置文件是 Mule 应用的核心组成部分,它定义了应用的结构、路由逻辑以及其他配置细节。使用 Mule IDE 可以方便地创建和编辑配置文件。 4. **使用 Eclipse 工具添加元素**:Mule IDE 集成了 ...

    mule_examples.rar_mule_mule 开发_mule-2.2.1-src

    通过这些实例,我们可以学习如何定义Mule flows,理解Mule配置文件(通常为.mule或.xml文件)的结构,以及如何处理不同类型的连接器和组件。 在"www.pudn.com.txt"文件中,可能包含了一些额外的资料或者说明,例如...

    mule学习文档

    1. **关于 XML 配置文件**:这一章节重点讲述了 Mule 的 XML 配置文件的基本结构和语法。通过这个部分的学习,开发者能够掌握如何在 XML 文件中定义不同的组件和服务。 - **XML 文件结构**:介绍 XML 文件的基本...

    Mule ESB手册-中文版

    全局配置部分讲解了如何创建和管理全局元素,以及如何配置云连接器。 12. 导入和导出项目 介绍了如何将现有项目导入到Mule Studio,以及如何将Mule项目导出到MuleiON云平台或导出为发布文件。 13. Mule Studio ...

    mule 具体例子(代码)

    每个示例通常包含一个或多个Mule应用配置文件(`.mule`或`.xml`),这些文件定义了端点、数据流和其他组件。 通过分析和运行这些示例,你可以深入理解Mule的工作方式,掌握如何创建和部署自己的Mule应用。记住,...

    mule2的源代码包

    7. `configuration-builders.properties`:这是Mule2的配置构建器属性文件,定义了如何处理和解析配置文件的规则,可能包括自定义的配置元素或解析策略。 8. `openejb.properties`:OpenEJB的额外配置,可能包含了...

    mule入门文档

    - 学习 Mule 的配置文件语法,理解不同元素的作用。 - 探索 Mule 提供的各种连接器和适配器。 - 实践更多复杂的集成场景,如数据库集成、Web 服务调用等。 - 加入 Mule 社区,参与讨论,分享经验。 通过以上的介绍...

    Mule 2 A Developer's Guide

    这一部分提供了一个实际的 Mule 配置文件示例,展示了如何组合上述所有元素来构建一个完整的 Mule 应用程序。 #### 第二章:路由器及其路由模式 **路由模式 (Routing Patterns)** 路由模式是设计集成解决方案时...

    Mule In Action

    - **Schema位置**:Mule ESB使用XSD schema来验证配置文件的有效性,确保配置文件符合规范。 #### 配置的模块化 Mule ESB支持配置的模块化,使得大型项目的配置更加灵活和可维护: - **独立配置**:每个Mule应用...

    Mule ESB 3 User Guide

    用户指南的入门部分将介绍Mule配置的基础知识,包括XML配置文件的结构和关键元素,这为后续的深入学习打下基础。 2. **流程、模式与服务的选择**: 在Mule中,可以使用flows、patterns和服务来组织和执行业务逻辑...

    Mule in Action

    Mule 支持将配置文件分割成多个独立的部分,并且可以通过继承和导入机制来组合它们。 - **2.3.1 独立配置**:独立配置文件包含特定的服务或功能。 - **2.3.2 继承配置**:允许子配置文件继承父配置文件中的设置。 -...

    Mule ESB开发工具以及相匹配的英文手册和中文手册(翻译狗充值翻译)

    3. **Mule 应用程序结构**:讲解了Mule应用的基本元素,如Flow、Sub-flow、Connector、Transformer等,以及它们在处理数据流中的作用。 4. **Mule 连接器和数据转换**:详述了Mule提供的各种连接器,如HTTP、JDBC、...

    mule 3.2 节点详解

    - **mule-config.xml**:这是必需的配置文件,定义了 Mule 应用的服务编排逻辑。如果有多个编排 XML 文件,则需要创建 `mule-deploy.properties` 文件来指定编排文件名称。 #### Mule ESB 编排原则 Mule ESB 的...

    MuleStudio 开发手册

    全局配置部分讲述了如何在MuleStudio中创建和配置全局元素,这对于需要在多个项目或流程中使用相同配置的情况非常有用。 此外,手册还介绍了如何将现有的项目导入到MuleStudio,以及如何从MuleStudio中导出项目。这...

    mule in action

    配置文件通常包含对连接器、处理器、路由规则等元素的定义。此外,Mule 还支持使用 Java 配置,这为开发者提供了更大的灵活性和控制力。 **3. 通过 Mule 发送与接收数据** Mule 支持多种方式发送和接收数据,如 ...

Global site tag (gtag.js) - Google Analytics