Make the move to Mule 3 followup Q&A


A week ago, we hosted a webinar on making the move to Mule 3.1. The goal was to introduce the new capabilities in Mule 3 and demonstrate the benefit they offer when working with Mule. More importantly we gave valuable tips on how to migrate your applications from Mule 2 to Mule 3. If you missed the webinar, the slides and an archived recording are available on the MuleSoft website.

Some of capabilities we highlighted include:

  • Orchestration and patterns
  • Mule Cloud Connect
  • Easier deployment and application management
  • Changes in handling and message property scoping

The energy on the webinar was amazing. You fired questions at us faster than we could answer. From the sound of it, there is a lot of excitement around what is new in Mule 3 and we scratched a few itches for everyone. There was also a lot of excitement around the upcoming beta of Mule Studio.

We unfortunately were not able to get to everyone’s questions. As promised, here are a few answers to some of the questions we may have missed. If you still have questions, the Mule developers and others are available on the forums to answer them or, if you are a MuleSoft customer, our world class support engineers are available to help.

Q:  Are these patterns used to support publish/subscribe?
A: Mule has strong support for publish/subscribe, but there are no specific configuration patterns as of yet.  You can construct custom patterns using the mule-catalog-archetype module.

Q:  can Mule 3.1 transform XSD to COPYBOOK ?
A: Yes, Mule can. If you are looking for specific COPYBOOK support, I suggest looking at the transformers available in the Legs4Mule module.

Q:  I have a question about choice: Can choice component see inside message and then decide which service to call? In your example it looked at input in url and “checked text” directly. What if I need to analyze a message before I choose a service?
A: Choice can switch on the value of any Mule expression, which gives you the ability to examine the message payload, message properties, message attachments, etc.  If necessary, you can also enrich the message before using choice.  In other words, you can harness the full power of Mule in evaluating the data which determines which choice is taken.

Q:  Which is the best way to create a mule configuration. Using Mule IDE? (Is that open source)
A: Currently, Mule IDE (which is a free download) is the most flexible tool for constructing a Mule configuration.  But Mule Studio, which is even more powerful, is not far away and will also be available to the community.

Q:  Has connector configuration changed significantly in Mule 3?
A:  Some transports have changed (see the Migration Guide), but the basic connector configuration is unchanged.

Q:  Can a flow have a separate log file?
A: Currently, log file are per-Mule instance.  Per-application log files will appear in an upcoming release.  We do not anticipate per-flow log files but would consider it if significant demand arises.

Q:  Given message property scoping changes in Mule 3.x, I am assuming that interfaces developed in Mule 2.2.1 won’t run on Mule 3.x as it is and needs to be changed / migrated for newer version, correct?
A: Services which expect that message properties received on an inbound message will be automatically propagated to the corresponding outbound message will need to be changed to propagate them manually.  Likewise, expressions which use properties on the inbound s\cope will need to be changed to specify (for example) header:INBOUND:foo.

Q:  How is Spring Security Integrated in Mule 3 ?
A: The use of Spring Security hasn’t change in Mule 3, but we have updated to the most recent version.

Q:  In content enricher, can we use a WSDL and create the new message payload based on that ?
A: Content enrichers don’t, in general, create new payloads.  As in Mule 2, that’s what transformers are for.

Q:  Can you catch specific service exceptions and let other go to the flow exception handler?
A:  You can code a component to catch and handle specific exceptions, while letting the rest be handled by the flow’s exception strategy.

Q:  Is there an example of polling
A:  There are several examples on the blog. Here is one using AMQP.

Q:  Is the Mule config still static or can we modify it during runtime?
A:  You can create dynamic endpoints, which allow messages to be sent to a URL generated per message at runtime.

Q:  i want to call several external web services exposes in others servers, is possible to take response from one , prepare request and call another ?
A: Flows make that easy.  Simply specify the services in order in a flow, and the response from one service will become the request to the next.  If it needs to change somwhat, put a transformer in between the two.

Q:  Other than flexibility, does migrating form services to flows provides any performance benefits?
A: There is no performance difference between services and flows. For a deeper comparison, see this article comparing services and flows.

Q:  Can we deploy Mule 2 applications to the Mule 3 enterprise server?
A:  Mule 2 applications may need to be modified to work in Mule 3.  As discussed, the two biggest issues are message exchange patterns and message property scopes.  See the migration guide for details.

Q:  How well can mule be integrated with EJBs?
A:  Mule contains an EJB transport specifically for this purpose.

We'd love to hear your opinion on this post