Table of Contents

Copyright

Brief Table of Contents

Table of Contents

Foreword

Preface

Acknowledgments

About this Book

About the Authors

About the Cover Illustration

1. Core Mule

Chapter 1. Discovering Mule

1.1. Enterprise Integration Patterns and service-oriented architecture

1.2. The Mule project

1.3. Competition

1.4. Mule: a quick tutorial

1.4.1. Installing Mule Studio

1.4.2. Designing the flow

1.5. Running, testing, and deploying the application

1.5.1. Running the application

1.5.2. Testing the flow

1.5.3. Working with the XML configuration

1.5.4. Deploying to the Mule standalone server

1.6. Summary

Chapter 2. Processing messages with Mule

2.1. Going with the flow

2.1.1. The response phase

2.1.2. Subflows

2.1.3. Private flows

2.2. Interacting with messages

2.2.1. Message sources

2.2.2. Message processors

2.2.3. Message exchange patterns

2.2.4. Endpoint URIs

2.3. Exploring the Mule message

2.3.1. Message properties

2.3.2. Understanding property scopes

2.3.3. Using message attachments

2.4. Speaking the Mule Expression Language

2.4.1. Using expressions

2.5. Summary

Chapter 3. Working with connectors

3.1. Understanding connectors

3.1.1. Configuring connectors with XML

3.1.2. Configuring connectors with Mule Studio

3.2. Using the file transport

3.3. Using the HTTP transport

3.3.1. Sending and receiving data using HTTP

3.3.2. Using web services with Mule

3.4. Using the JMS transport

3.4.1. Sending JMS messages with the JMS outbound endpoint

3.4.2. Receiving JMS messages with the JMS inbound endpoint

3.4.3. Using selector filters on JMS endpoints

3.4.4. Using JMS synchronously

3.5. Using email

3.5.1. Receiving email with the IMAP transport

3.5.2. Sending mail using the SMTP transport

3.6. Using the FTP transport

3.6.1. Receiving files with inbound FTP endpoints

3.6.2. Sending files with outbound FTP endpoints

3.7. Using databases

3.7.1. Using a JDBC inbound endpoint to perform queries

3.7.2. Using a JDBC outbound endpoint to perform insertions

3.7.3. NoSQL with MongoDB

3.8. Using the VM transport

3.8.1. Introducing reliability with the VM transport

3.9. Using the Twitter cloud connector

3.9.1. Twitter

3.10. Summary

Chapter 4. Transforming data with Mule

4.1. Working with transformers

4.2. Configuring transformers

4.3. Using core transformers

4.3.1. Dealing with bytes

4.3.2. Compressing data

4.3.3. Modifying properties, flow variables, and session variables

4.3.4. Transforming with expressions

4.3.5. Enriching messages

4.3.6. Automagic transformation

4.4. Using XML transformers

4.4.1. XPath and Mule

4.4.2. Transforming format with XSL

4.4.3. XML object marshaling

4.5. Transforming JSON with Mule

4.5.1. Querying JSON with MEL

4.5.2. JSON object marshaling with Mule

4.6. Scripting transformers

4.7. Summary

Chapter 5. Routing data with Mule

5.1. Deciding how to route a message

5.1.1. Using the choice router

5.2. Using filters

5.2.1. Filtering by payload type and header

5.2.2. Filtering text and XML

5.2.3. Filtering with expressions

5.2.4. Logical filtering

5.2.5. Ensuring atomic delivery with the idempotent filter

5.2.6. Using the message filter

5.3. Routing to multiple recipients

5.3.1. Dispatching messages with the all router

5.3.2. Scatter/gather IO with the all router

5.3.3. Going async with the async processor

5.4. Routing and processing groups of messages

5.4.1. Splitting up messages

5.4.2. Aggregating messages

5.4.3. Routing collections

5.5. Guaranteed routing

5.5.1. Resiliency for unreliable transports

5.5.2. Defining failure expressions

5.6. Summary

Chapter 6. Working with components and patterns

6.1. Using Mule components

6.1.1. Executing business logic

6.1.2. Resolving the entry point

6.1.3. Configuring the component

6.1.4. Annotating components

6.1.5. Handling workload with a pool

6.1.6. Scripting components

6.1.7. Component lifecycle

6.2. Simplifying configuration with configuration patterns

6.2.1. Using the simple service pattern

6.2.2. Using the bridge

6.2.3. Using the validator

6.2.4. Using the HTTP proxy

6.2.5. Using the WS proxy

6.2.6. Reusing common configuration elements

6.3. Summary

2. Running Mule

Chapter 7. Integration architecture with Mule

7.1. Structuring integration applications

7.1.1. Guerrilla SOA with hub and spoke

7.1.2. Mule as the enterprise service bus

7.1.3. Mule as a mediation layer

7.2. Mule implementation patterns

7.2.1. Using a canonical data model

7.2.2. Reliability patterns with asynchronous messaging

7.2.3. Proxying SOAP requests with CXF

7.3. Summary

Chapter 8. Deploying Mule

8.1. Deploying standalone Mule applications

8.1.1. Packaging a standalone Mule app

8.1.2. Deploying applications to Mule

8.1.3. Configuring logs

8.1.4. Inter-application communication with Mule

8.1.5. Embedding web applications in Mule

8.2. Deploying Mule to a web container

8.3. Deploying applications to CloudHub

8.4. Embedding Mule into an existing application

8.5. Deploying Mule for high availability

8.5.1. High availability via fault tolerance

8.6. Summary

Chapter 9. Exception handling and transaction management with Mule

9.1. Dealing with errors

9.1.1. Using reconnection strategies

9.1.2. Creating reconnection strategies

9.1.3. Handling exceptions

9.1.4. Using exception strategies

9.2. Using transactions with Mule

9.2.1. Single-resource transaction

9.2.2. Transactions against multiple resources

9.2.3. Transaction demarcation

9.3. Summary

Chapter 10. Securing Mule

10.1. Spring Security 3.0 and Mule

10.1.1. User security with an in-memory user service

10.1.2. User security with LDAP

10.1.3. Securing endpoints with security filters

10.2. Securing HTTP using SSL

10.2.1. Setting up an HTTPS server

10.2.2. Setting up an HTTPS client

10.3. Securing SOAP with Mule

10.4. Message encryption with Mule

10.4.1. Using password-based payload encryption

10.4.2. Decrypting message payloads with PGP

10.5. Summary

Chapter 11. Tuning Mule

11.1. Staged event-driven architecture

11.1.1. Roll your own SEDA

11.2. Understanding thread pools and processing strategies

11.2.1. Processing strategies and synchronicity

11.2.2. Transport peculiarities

11.2.3. Tuning thread pools

11.2.4. Tuning processing strategies

11.3. Identifying performance bottlenecks

11.3.1. Profiler-based investigation

11.3.2. Performance guidelines

11.4. Summary

3. Traveling further with Mule

Chapter 12. Developing with Mule

12.1. Understanding the Mule context

12.1.1. Accessing the Mule context

12.1.2. Using the Mule context

12.2. Connecting to Mule

12.2.1. Reaching a local Mule application

12.2.2. Reaching a remote Mule application

12.2.3. Reaching out with transports

12.3. Using the Mule API

12.3.1. Being lifecycle aware

12.3.2. Intercepting messages

12.3.3. Listening to notifications

12.3.4. Configuring Mule data persistence

12.4. Testing with Mule

12.4.1. Functional testing

12.4.2. Behavior stubbing

12.4.3. Load testing

12.5. Debugging with Mule

12.5.1. Logging messages

12.5.2. Step debugging a Mule application

12.6. Summary

Chapter 13. Writing custom cloud connectors and processors

13.1. Simplifying Mule development with the DevKit

13.2. Introduction to authoring cloud connectors

13.2.1. Rendering extensions configurable

13.2.2. Managing connections

13.2.3. Creating message processors

13.2.4. Creating intercepting message processors

13.2.5. Creating simple REST consumers

13.2.6. Creating transformers

13.2.7. Creating message sources

13.2.8. Integrating Mule extensions with Mule Studio

13.3. Creating a REST connector

13.4. Summary

Chapter 14. Augmenting Mule with orthogonal technologies

14.1. Augmenting Mule flows with business process management

14.2. Complex event processing

14.2.1. Using CEP to monitor event-driven systems

14.2.2. Sentiment analysis using Esper and Twitter

14.3. Using a rules engine with Mule

14.3.1. Using Drools for selective message enrichment

14.3.2. Message routing with Drools

14.4. Polling and scheduling

14.4.1. Using the poll message processor

14.4.2. Scheduling with the Quartz transport

14.5. Summary

Appendix A. Mule Expression Language

A.1. MEL quick reference

A.1.1. Context objects

A.1.2. Context variables

A.1.3. Context functions

A.1.4. Imported classes

A.2. Customizing MEL

Appendix B. Component and transformer annotations quick reference

Appendix C. Mule Enterprise Edition

High-availability clustering

Mule Management Console

Additional and enhanced transports

DataMapper

Anypoint Enterprise Security

Anypoint Service Registry

Hardened code line

Support and services

Appendix D. A sample Mule application

D.1. The Mule application configuration

D.2. ProductImportFunctionalTestCase

Index

List of Figures

List of Tables

List of Listings

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset