You are on page 1of 7

This DZone Refcard is brought to you by...

Mule 3: Simplifying SOA By John D’Emic • Connector definitions.mulesoft.mulesoft. • Global configuration elements like endpoints. It is lightweight and can run standalone or embedded directly in your application.mulesoft. followed by a sequence of message processors.xsd http://www. If you are an existing user. This Refcard covers the use of Mule” xmlns:jms=”http://www.mulesoft. ABOUT MULE Mule is the world’s most widely used open-source integration platform and Enterprise Services Bus (ESB). DZone.mulesoft/org/schema/mule/jms” xmlns:file=” CONTENTS INCLUDE: n n brought to you by. Inc.xsd” xmlns:xsi=”http://www. The programming model for Mule is XML using namespaces that provide a DSL authoring environment to orchestrate your integration applications. RandomNumberResource” type=”jax-rs”/> </mule> Mule XML consists of the following: • An opening mule element containing the namespaces used in the configuration.1/mule-jms.mulesoft.mulesoft.mulesoft. transformers and notification listeners. MULE XML Flows Flows. typically an inbound-endpoint.mulesoft.0” encoding=”UTF-8”?> <mule xmlns=” http://www.. provide a free-form method of orchestrating message processing in Mule. multi-protocol transactions between heterogeneous systems and services. <?xml version=”1.#140 Get More Refcardz! Visit refcardz. patterns and .org/schema/mule/file http://www. It provides the basis for service-oriented architecture. it will help ease your transition into using Mule 3. • A description of the purpose of the configuration. If you are a new” xmlns:vm=”http://www.1/mule.1/ http://www.mulesoft. A flow consists of a message source.refcard. Mule is designed to support high-performance. it will serve as a handy reference when building your integration flows in Mule. especially of Mule http://www. new to Mule” xsi:schemaLocation=” http://www.xsd http://www.w3. • Flows.mulesoft. The diagram below demonstrates the structure of a typical Mule configuration.xsd “> <description>Demonstrate Mule Configuration Elements</description> <jms:connector name=”jmsConnector” connectionFactory-ref=”connectionFactory” username=”guest” password=”guest”/> Mule 3: Simplifying SOA <file:connector name=”fileConnector” streaming=”true”/> <flow name=”Route messages dynamically using a message property”> <vm:inbound-endpoint path=”input”/> <vm:outbound-endpoint path=”#[header:INBOUND:destination-queue]”/> </flow> <simple-service name=”random-number-service” address=”http://localhost:8080/rest” component-class=”com. n n n n About Mule Mule XML Messages Connectivity Modules Hot Tips and more. | www.

<simple-service name=”random-number-service” address=”http://localhost:8080/rest” componentclass=”org. Description A GUID assigned to the message. the various transports and you the developer can add properties to a message. Mule endpoints enable connectivity to protocols such as JMS. The amount of messages expected in the correlation group. Inc. are metadata associated with a message. documents and images with the message. <smtp:connector name=”smtpConnector” fromAddress=”user@foo. The order of a correlation group. Examples of message properties are JMS message headers. transforming their contents into Strings. The following table contains the available scopes. MESSAGES Configuring an SMTP connector The following example illustrates how an SMTP connector is configured.RandomNumberResource” type=”jax-rs”/> CONNECTIVITY In this case. encapsulate common integration paradigms in a compact configuration format. Inbound and outbound endpoints are configured using the XML namespace prefix of the transport. Cloud Connectors enable connectivity to applications and social media like SalesForce and Twitter. transform. HTTP and JDBC. Scope inbound outbound Description Set by message sources. Endpoints Messages can be received with an inbound endpoint and sent with an outbound endpoint. extending the Enterprise Integration Patterns. Mule. Using Patterns Mule Configuration Patterns. The content of a message is called its payload. The content is then passed as JMS TextMessages to the “output” queue. The following table contains examples of message properties set by Mule. Attachments A message can have zero or more mime attachments in addition to the payload. Properties set by the messageproperties-transformer default to the outbound scope. Properties Properties. Mule connects to over 100 applications.dzone. MessageProcessor is a single method interface implemented by almost everything in a Flow. Most endpoints don’t require a connector. The file:inbound-endpoint will read files from the given path. as we’ll see below. Sending a JMS Message with a Flow Sending a JMS message is easy with a flow. A property that holds encoded session data. However. an InputStream or an array of bytes. A GUID assigned to a group of messages. Hot Tip Flows and patterns now supersede services. These can be used to associate files. Used internally by Mule and lasts only for an invocation of a flow or service. While services will always be” subject=”A Message from Mule” /> Messages encapsulate data entering and leaving Mule. Properties in the session scope are available between flows and services without explicit propagation. typically an inbound-endpoint. you should favor flows and patterns for new applications. The payload is typically a Serializable Java class.2 Mule 3: Simplifying SOA Message Processor Message Processors are used in flows to route. protocols and APIs. Property MULE_MESSAGE_ID MULE_CORRELATION_ID MULE_CORRELATION_ GROUP_SIZE MULE_CORRELATION_ SEQUENCE MULE_SESSION Exception Strategy An exception strategy can be added to the end of the flow to route errors that occur during the flow’s . DZone. also called headers. | www. some (like JDBC or JMS) do require connector configuration. Here’s how you can use a flow to read files from a directory and send their payload to a JMS queue. Connectors A connector is used to configure connection properties for an endpoint. session invocation Creating a RESTful Web Service A RESTful web service can be quickly created using the simpleservice pattern. HTTP response headers or Mule-specific headers like” bccAddresses=”admins@foo. Any properties in this scope will get attached to an outbound or response message.refcard. which were the predominant integration paradigm in Mule 2. Hot Tip Optionally end a flow with an outbound router or endpoint to send to another flow or external service. filter and perform business logic on messages. we are using the simple-service pattern to expose a JAX-RS resource that returns a random number from an HTTP GET request. <flow name=”File to JMS Message”> <file:inbound-endpoint path=”data/files”> <byte-array-to-string-transformer/> </file:inbound-endpoint> <jms:outbound-endpoint queue=”output”/> </flow> Scopes Properties are scoped differently depending on when they’re set or accessed during message processing.

social media and infrastructure services such as Amazon WS and Facebook.dzone.key}” consumerSecret=”${twitter. Uses memory-based queues to send between services and flows. <flow name=”HTTP to SOAP Bridge”> <http:inbound-endpoint host=”localhost” port=”8080” path=”service”/> <cxf:jaxws-client clientClass=”com. Inc. | www. the connector sets the “from” and “bcc” addresses as well as the subject of the messages. Additional modules are available on MuleForge.3 Mule 3: Simplifying SOA The SMTP connector allows you to specify properties that will be shared across SMTP endpoints. Sends the message to the first endpoint that doesn’t throw an exception or evaluates the failureExpression to true. including marshalling. To get updates from a Twitter timeline: <flow name=”getStatusFlow”> <poll> <twitter:public-timeline /> </poll> </flow> Transformers Transformers modify the message and pass it to the next message in the chain.secret}” /> <flow name=”updateStatusFlow”> <http:inbound-endpoint host=”localhost” port=”80”/> <twitter:update-status status=”#[header:INBOUND:status]”/> </flow> The inbound-endpoint accepts HTTP POST requests to http://localhost:8080/service.wsdl” operation=”greetMe”/> </flow> The full list of transports is available in the Mule documentation. These connectors can be used anywhere in a flow to invoke a remote service. Sends a copy of the message to the supplied endpoint then passes the original message to the next processor in the chain. The following table describes some common endpoints supplied by Mule. JAX-RS support for publishing RESTful services. Read and write files.access. like Groovy or Rhino. Sends the message to the first endpoint that matches. Description Send and receive data over HTTP.FooService” wsdlLocation=”classpath:/wsdl/hello_world. DZone. Will collect related messages and create a message collection. XPath and XSLT support. Hot Tip Use MuleForge. Send email over SMTP. The following table contains commonly used routers.access. Hot Tip Use exchange patterns to define how a message is recieved by an endpoint. allowing you to define multiple connectors for the same transport. including XML marshalling.secret}” oauthToken=”${twitter.token}” oauthTokenSecret=”${twitter. We can now post a tweet to the inbound-endpoint with curl: curl –-data “status=go mule!” http://localhost first-successful splitter aggregator Polling Mule has a poll tag that allows data from a remote service to be received periodically. transformation and filtering. Read and write files over FTP or SFTP. XML support. A cloud connector usually has a ‘config’ element where service credentials are set and then one or more elements that invoke service methods. Cloud Connectors Cloud connectors enable easy access to . The POST data is then sent to the SOAP service defined by the CXF jaxws-client. The full list of available modules is available in the official Mule documentation. Will split the current message into parts using an expression or just split elements of a List. Endpoint http://[host]:[port]:[path]?[query] ajax://[channel] file://[path] ftp://[user]@[host]:[port]/[path] jms://[type]:[destination]?[options] smtp://[user]@[host]:[port] imap://[user]@[host]:[port]/[folder] jdbc://[sql query] vm://[path] MODULES Modules extend Mule’s functionality by providing namespace support for a certain set of message processors. Sends the message to all endpoints in the expression evaluated with the given evaluator. Each message received by the router is sent to alternating endpoints.consumer. Full support for JMS topics and queues. for asynchronous endpoints use the one-way exchange pattern.mulesoft. The following demonstrates how the Twitter cloud connector can be used to post a tweet: curl –-data “status=go mule!” http://localhost <twitter:config name=”twitter” format=”JSON” consumerKey=”${twitter. Endpoints can be generically referenced using an endpoint URI as well as having specific XML configuration elements.consumer. Support for JSR-223 compliant scripting language. Router all choice recipient-list round-robin wire-tap Description Sends the message to each endpoint. Bridging REST to SOAP The following demonstrates how the CXF module can be used to bridge a RESTful service to a SOAP service. Pub / Sub to browser apps using CometD. A connector is referenced by its name. In this case. For endpoints that generate a response(synchronous) use the to locate community-written extensions. Receive email via IMAP. Send and receive data from a SQL database. The following table contains some of the modules provided by Mule. SOAP support via Apache CXF. Module JSON CXF Jersey Scripting XML Description JSON support. Routers Routers implement the Enterprise Integration patterns (EIP) and determine how messages are directed in a flow.refcard.

model. Encrypts and decrypts message payloads. or-filter. Components are configured by either identifying the class or providing a reference to a Spring bean for dependency injection. The following table contains commonly used filters.mule.4 Mule 3: Simplifying SOA The following table contains commonly used transformers.resolvers. Specifies the class of a custom filter that implements the”> <component> <spring-object bean=”myService”/> </component> </flow> custom-filter and-filter. Callable includes a single method. Will automatically find the best transformer for a specified type. Components Components allow business logic to be executed in a flow. DZone. AbstractEntryPointResolver. Helps test message flows (in the test namespace). Logic filters that work with other filters. JMS for instance. not-filter Using Filters with XPath The following example demonstrates how the xpath-filter can be used to only pass certain XML documents. Name xpath payload map-payload Description Query the message payload using XPath Use the message’s payload for evaluation. A Java class that implements org. Name message-propertiestransformer byte-array-to-stringtransformer xml:jaxb-xml-to-objecttransformer auto-transformer xml:xslt_transformer json:object-to-jsontransformer gzip-compresstransformer encrypt-transformer Description Adds and removes properties from a message.filter. Many basic type transformers are included.mule.Callable interface. onCall.resolvers.api. In cases like this.Filter interface. Resolves the method using the specified message property. Hot Tip Filters Try to avoid implementing Callable to keep your component code decoupled from Mule’s API. Transforms a message using the given stylesheet. like payload. to the script context to aid in evaluation. Use Groovy to evaluate an expression. to implement that provides direct access to the MuleMessage when the method is invoked. Component <log-component> <echo-component> <test:component> Description Logs messages. In this case. allows transformers to convert message payloads to and from JMS messages autormatically.mule. Mule provides the following utility components. optionally specifying their .lifecycle. Return the given header for a specific scope. In addition to custom components. AbstractEntryPointResolver. EntryPointResolver or extends org. Description Passes messages using any of the expressions languages supported by Mule. Inc. Resolver method-entry-point-resolver property-entry-point-resolver custom-entry-point-resolver EXPRESSIONS Mule provides a rich expression language to evaluate data at runtime using the message currently being processed. Name expression-filter regex-filter payload-type-filter Hot Tip Endpoints often include their own transformers.routing. you can implement the org. Compresses and uncompress message payloads using gzip. Passes messages only of the given type.MyService”/> <flow name=”test”> <http:inbound-endpoint host=”foo. properties and muleContext. as demonstrated below. Evaluates the message payload as a JavaBean.api.api. A Java class that implements org. The following table contains a list of available resolvers.model. only order XML documents containing a certain ZIP code are allowed to pass. The following snippet shows how a class called MyService can be configured as a component using a class and via dependencyinjection via Spring. Entry point resolvers are used for this purpose. Description Resolves the method using the specified name.EntryPointResolver or extends org.acmesoft. Mule provides certain variables. Sometimes. Perform a regular expression evaluation against a message payload.mule. Filters selectively pass messages to the next processor in the chain. It’s often necessary.mule. Transforms message payloads to and from JSON. <flow name=”Filter messages using the XPath filter”> <vm:inbound-endpoint path=”input”/> <mulexml:xpath-filter pattern=”/order/zipCode” expectedValue=”11209”/> <vm:outbound-endpoint path=”output”/> </flow> Mule will use the type of the payload of the message being processed to determine what method to invoke. Decides what messages to pass by applying the supplied regular expression to the message payload.dzone.mule. <bean class=”com. you will want access to the MuleMessage or MuleContext when processing a message.model.api. Transforms JAXB objects explicitly. Evaluators The following are commonly used expression evaluators. Returns and passes along.model. Any Java object or script can be used as a component. The use of entry point resolvers allows you to use POJO’s as components. to explicitly specify the method to invoke. however.service. decoupling your code from Mule. | regex bean groovy header:[scope] www.

toLowerCase().mule. Parameter Sending Messages to a DLQ Messages that can’t be delivered. Name @Transformer This class can be used as a message source in a flow to generate a timestamp every minute. introduced in Mule 3. Can be filtered by name. ExceptionMessage. Injects a Map of outbound headers that can be used to add headers to the outgoing message. Injects a Map of outbound attachments that can be used to add attachments to the message. Injects any inbound attachments at runtime. the default-exceptionstrategy will route messaging failures (for example. ANNOTATIONS This class can be used a message source in a flow to generate a timestamp every minute. <flow> <vm:inbound-endpoint path=”input”/> <jms:outbound-endpoint queue=”#[header:INBOUND:destination-queue]”/> </flow> @ContainsTransformerMethods public class LowercaseTransformer { @Transformer public String toLowercase(String string) { return string. } } This example accepts a message off the given VM queue. The following table contains a list of commonly used annotations. Indicates the annotated class contains transformation methods. Can be filtered by name and used to inject individual headers. FunctionalTestCase. org.getTime(). public class HeartbeatMessageSource { @Schedule(interval = 60000) public long pulse() { return new Date(). FUNCTIONAL TESTING You can use the Mule 3 annotation support to quickly implement transformers and components. Injects any inbound headers at runtime. The following example will send any errors that occur in the flow to the “dlq” VM queue. configured at the end of the flow.message. which gives you access to the Exception that was thrown along with the payload of the message.tck. } } Annotation support. which you can extend to simplify setting up a TestCase.dzone.api. The following class demonstrates how the @Schedule annotation can be used to periodically generate data. If the param type is different from the payload type. The default-exception-strategy. | www. Injects the payload into a method. Implementing a Component with Annotations Components can also be implemented with annotations. Schedules a method for periodic execution. Mule will attempt to transform it. Mule provides a helper class. The outbound-endpoint uses the header evaluator to dynamically route the message to the queue defined by an inbound message property called “destination-queue”. allows you to route the exception to another endpoint for handling. @Inbound Attachments Parameter (component or transformer) Parameter (component or transformer) Hot Tip @Outbound Attachments Exceptions routed by the default-exceptionstrategy are instances of org. <flow> <vm:inbound-endpoint path=”input”/> <vm:outbound-endpoint path=”#[header:INBOUND:destination-queue]”/> <default-exception-strategy> <vm:outbound-endpoint path=”dlq”/> </default-exception-strategy> </flow> @Payload Parameter (component or transformer) @InboundHeaders Parameter (component or transformer) @OutboundHeaders Parameter (component or transformer) Building upon the previous example. Implementing a Transformer with Annotations Here’s an example of a transformer that lowercases a message’s payload.mule. @ContainsTransformerMethods Class Exceptions thrown during message processing are handled by exception strategies. HANDLING ERRORS Type Method Description Indicates the method can be used as a transformer. . further simplifies Mule configuration by reducing or eliminating the XML needed to configure components and transformers. Functional testing is an important part of testing Mule applications. for instance if an exception is thown during their processing. @Schedule @Lookup Method Field. when the destination-queue inbound header is null) to the VM queue named “dlq”. Looks up the annotation field or parameter for dependency injection from the Mule registry. Inc.5 Mule 3: Simplifying SOA Routing Messages Dynamically The following illustrates how a message can be dynamically routed to a JMS queue passed on a message header. it can be sent to a Dead Letter Queue (DLQ).

Copyright © 2011 DZone. Comply. Colla etc. b></ Amazon EC2: ther stanstandard software and uage with whe Industry dard .nt team Perfo opme ed resu tion d Builds sitory Build to devel Repo Stage adverse unintend Integra bandwidth. architects and decision makers.g. Reg L or XHT will help L VS <a>< and XHT simplify all XHTM b></ ML. Whi pag Brow individual operating system s because le it . Suite 100 Cary. cloud Useful Open computing platforms also facilitate the gradual growth curves Page Source Stru Tools faced by web applications. assertNull(client. You’ll pick up techniques for testing.xml”. MuleClient client = new MuleClient(muleContext). } public void testMessageIsFiltered() throws Exception { String xml = “<order><zipCode>11210</zipCode></order>”. 5000)). Consult the full documentation on the MuleSoft website. stored in a retrieval system. memory. photocopying. DZone offers something for everyone.request(“vm://output”. Earl to be. No part of this publication may be reproduced. null). bandwidth. xml. use target enviro ated s (i. but. a solu .0399 919. #82 Get More Refcardz! Visit refcardz.dispatch(“vm://input”. und ardless you prov you ML physical r othe L erstand of Virtualization allows aare actu piece of hardware idebe to HTML much a solid of the ing has ally simp r web cod foundati utilized by multiple operating systems. ■ ■ ■ About Cloud Computing Usage Scenarios Underlying Concepts Cost Aldon Chan ge. Du By ContiPatterns an ABOUT CLOUD COMPUTING dz. e chang Vis it ation Having the capability to support one time events. without prior written permission of the publisher. Ant nt nmen a par ctic in geme t enviro e a single based on hes som incurred cost whether such resources were consumedto thenot.e. Inc. b></ ed insid bec heavily based on very little L more Amazon’s cloud computing ose the curr you cho platform isome a></ imp e b> is mor ent stan to writ not lega each othe that will industry standard software and virtualization technology.0300 $7. in any form or by means INTEG OUS RATION space n e Work riptio itory a Desc These companies have Privat deployed webmanage applications are in long trol repos to n-con lop softw ing and Deve a versio that adapt and scale to large user bases. BPM orchestration and even a touch of Groovy scripting. 140 Preston Executive Dr. applications (e. assertNotNull(client. it’s Temp n Build ually. with an ts etimes . Some platforms rams writ large scale RDBMS deployments. allocated exclusively to expecte tely som that job used Every d.. He also co-authored Mule in Action with David Dossot in 2009. tutorials. chang prope Depe into differe itting er necessa pared to efi te builds e comm late Verifi remo associat to be ben befor com are not Cloud computing asRun known etoday has changed this. several cloud computing platforms support data HTM tier technologies that L and the precedent set by Relational exceed XHT HTML Database Systems (RDBMS): Map Reduce. mechanical. temp s. null). ortant. ive data pt. It dives into core concepts like sending.g.n elem CPU) to be mov memory. Google and es Sponsorship Opportunities sales@dzone. Manage s and mor Build tice Prac Build ■ ■ ■ ■ ■ ■ Cloud Computing active Repo are within units This Refcard will introduce to you to clouddcomputing. but t. d deploEAR) each lar pro pattern tterns Pay only what you consume in tagge or cies reposit particu tions that e ed via each t nden WAR anti-pa For es lain al Depe ge (e. NC 27513 888. including news. rm a The various resources consumed by webperiodically.” says PC Magazine. This allows resources function job adm been arou ing. Server-s the ima alt attribute ribes whe output likew ge is describe re the ima mechan from CLOUD COMPUTING PLATFORMS AND ide languag t-side ise unavaila ge file ism.. the demands and technology used on such servers has changed substantially in recent years. The late a lack of stan up with clev y competi n text should ng stan st web in dar er wor not be dar kar standar cr HTM L BAS Continuous Delivery CSS3 NoSQL Android Application Development DZone. getPayloadAsString()). HTM essentia came is proc lly plai supp L files assigned essor an operating system in the same wayain on all hosting as elements ABOUT THE AUTHOR RECOMMENDED BOOK John D’Emic is a software developer and author.678. They Privat contin lts whe appear effects.95 Refcardz Feedback Welcome refcardz@dzone. the e HTM e apparen dards HTM r. is used ML are the prog etc. it gives you a close look at Mule’s standard components and how to roll out custom ones. or otherwise. INC ■ Getting Started with Browse our collection of over 100 Free Cheat Sheets Upcoming Refcardz Core HTML By An dy Ha rris Ge t Mo re Re fca ref ca E: INC LUD gration NTS ous Inte Change CO NTE Continu at Every ns About Software i-patter Build and Ant Patterns Control ment Version e.request(“vm://output”.blogspot. ser man y HTML anded common e (HTML had very far mor has done or XHT ufac web dev its extensio . blogs.dispatch(“vm://input”. so by Commit better understand these softwar chang Level can e code ding Task what it is a cloud computingaplatform can offer your web trol ut line Policy nize sourc es as of buil NTINU Orga Code e witho it chang cess ion con e name sourc T CO applications. and x” the are solu t duc Web application deployment untillibrari yearsenvironmen similar packa Minim be exp nden a few target ago was text) to “fi ns to pro all rity all depe used CI can ticular con le that alize y i-patter they tend es.. s cloud e Work knowledgeable in a mainline Privat that utilize lop on Deve code lines a system sitory of work to isolat rdz ! on: grati s s Inte -Patternvall nuou d Anti Paul M. Mule in Action covers Mule fundamentals and best practices.e. or proces in the end bad pra enting Creat cy Mana nt targe es rties are rily nden implem approac ed with the cial. with an softw riente loping ine task-o e Deve Mainl es you emphasis oncodelines providers. Data Tier Technologies t to you brough Platform Management and more. layed cannot be (and freq need ned lang r visual eng nologies if but as for overlap uen it has ine. rnate can be emergin es and use UNDERLYING CONCEPTS and XHT PHP text that e tags found.g.. (e. xml. ce pre-in blem with ymen (i. } public void testMessageNotFiltered() throws Exception { String xml = “<order><zipCode>11209</zipCode></order>”.com Version 1. receiving. but can toInteg late fi Centr Binar most phone services: plans with alloted resources. especially with the entrance of service providers like Amazon. CONCLUSION This Refcard is just a glimpse into what you can do with Mule 3. Tags standard a very loos g Ajax HTML ML as is disp can tech ely-defi thei ization.. 15000). load balancers and clusters) are all but abstracted away by relying on a cloud computing platform’s technology. e. MuleClient client = new MuleClient(muleContext).. The full code and test cases for the examples used in this Refcard are available on GitHub: https://github. source code and more. The web pag s alte Nested es like was onc use HTML ble. com ref car Web applications have always been deployed on servers connected to what is now deemed the ‘cloud’. support as the grap foundation The src of all hical and Java ten attribute and the also recein JavaScri user interfac web develop desc as the e in clien ment.g. all tern. ed to CSS has exp e time.) All are e than ML shar limit elopers turers add As a user of Amazon’s EC2 cloud computing platform. HTML ent instances.. ineffect ) Build eve t. However. You can read about what he’s up to in his blog: johndemic. performance tuning.. this as as they the pat builds Build gration Send of the soon ” cycl such ration ion with ors as Integ entat ous Inte tional use and test concepts docum oper Continu conven “build include the rate devel to the Gene CI to While efers ion of the not s on expand Vis it Ge t Mo re ww w. commo on nd for ality has ler than they Fortuna irably. CPU) areIntegration on from CI server basis tallied a per-unit e ous e Build rm an ack produc Privat Continu Refcard feedb on (starting from zero) by Perfomajor cloud computing platforms. Redu Autom ory. “DZone is a developer’s CONTENTS INCLUDE: ■ ■ ■ by. making them rn les to ize merg Patte it all fi to minim space Comm many aspects related tomultiple computing. All rights reserved. feature articles. or transmitted. (e.dzone. He has used Mule extensively since 2006 and is the “despot” of the MongoDB transport. routing and transforming data. client. ® #6 Cloud 4Computing By Daniel Rubio also minimizes the need to make design changes to support CON TEN TS one time events.0 . Structur Elem al Elem ents ICS In addition. web service APIs. client.3 million software developers. r Re fca rd z! DZone communities deliver over 6 million pages each month to more than 3.6 Mule 3: Simplifying SOA Functionally Testing a Flow public class XPathFilterFunctionalTestCase extends FunctionalTestCase { @Override protected String getConfigResources() { return “xpath-filter-config. } } Hot Tip The test-component can be used to simulate remote services during functional testing. cture Key ■ ■ ■ HTML Automated growth & scalable technologies vs XHT ■ ■ HTML Basics LUD E: Valid ML ents and Large scale growth scenarios involving specialized equipment more. you are result anybody es cert ed man ed layout n. It is a comprehensive tutorial that starts with a quick ESB overview and then gets Mule to work. so <a>< tly are) nest become virtualization HTM a> is s has fine. cheat sheets. Tags l. Inc. and subm it the pro ject’s vers are from with uniqu ABOU softw (CI) is um the build evel Comm build a pro minim Label Task-L ies to gration ed to activit blem the bare ion ate all cies to t ous Inte committ USAGE SCENARIOS to a pro Autom configurat nden ymen Build depe al tion deplo t Continu ry change ive manu Label d tool nmen the same stalle . ated occur term based autom e.