Library upgrades in Mule ESB 3.6

February 3 2015

6 comments 0
motif

If you have read the ESB 3.6 release notes then you already know what I’m about to say, but just to recap, here we go…

A lot of effort was put in 3.6 to upgrade our libraries stack. Even though we try to stay innovative, it doesn’t make sense to reinvent the wheel all the time, so we use a lot of third-party libraries. However, keeping those up-to-date while maintaining our strict backwards compatibility policy is something that’s really difficult to do. As a result, we haven’t always managed to keep up.

For 3.6, we decided it was time to catch up! So, here’s a comprehensive list of the upgrades on our libraries stack, and some tips on how to handle migration.

Jersey

Jersey was upgraded from version 1.6 to 2.11, which implements jax-rs 2.0. Applications using the jersey module will need upgrading. For further reference see Jersey’s migration guide visiting this link.

Groovy

Groovy was upgraded to version 2.3.7-indy. If this produces any compatibility issues with an existing script you should either update your script (recommended) or go back to a prior version by replacing the groovy jar at MULE_HOME/lib/opt

Jython

Jython 2.7.3b3 is now part of the distribution. You no longer need to install the scripting pack or include it on your app. If this produces any compatibility issues with an existing script you should either update your application/installation (recommended) or replace/delete the jar at MULE_HOME/lib/opt

Javascript Support

Rhino 1.7R4 is now part of the distribution. You no longer need to install the scripting pack or include it on your app. If this produces any compatibility issues with an existing script you should either update your application/installation (recommended) or replace/delete the rhino and js-engine jars at MULE_HOME/lib/opt

Apache Commons

Apache commons libraries were upgraded as follows:

  • commons-beanutils: from version 1.8.0 to 1.9.2
  • commons-codec: from version 1.3 to 1.9
  • commons-exec: from version 1.1 to 1.2
  • commons-net: from version 2.0 to 2.2

JSON Validation

The dependency org.kitchen-eel:json-schema-validator was removed and replaced with com.github.fge:json-schema-validator:2.2.5. If you still need to use that dependency, you can safely add it back to your application/runtime.

Kryo (EE users only)

Kryo was upgraded from version 2.22 to 3.0.0 (shaded). kryo-serializers was also upgraded from version 0.26 to 0.27.

Java annotations API

javax.annotation:javax.annotation-api was upgraded to version 1.2. We’re now importing this dependency directly while before we did it through the geronimo-specs project.

No longer in the distribution

The following were removed from the distribution since they’re no longer necessary:

  • geronimo-j2ee-management_1.0_spec-1.1.jar
  • jaxb-api-2.1.jar
  • jaxws-api-2.2.1.jar
  • jsr250-api-1.0.jar
  • jsr181-api-1.0-MR1.jar
  • saaj-api-1.3.jar
  • saaj-impl-1.3.jar

Other minor upgrades

  • Guava has been upgraded to version 18.0
  • xmlunit has been upgraded to version 1.5
  • jackson-databind: from version 2.1.1 to 2.4.3
  • joda-time: from version 1.6 to 2.5
  • saxon: from version 9.1.0.8 to 9.6.0.1-HE
  • woodstox-core-asl: from version 4.1.4 to 4.4.1
  • stax2-api: from version 3.1.1 to 3.1.4
  • XStream was upgraded from version 1.4.2 to 1.4.7

That’s all, folks

That’s it. Hope this quick guide is useful. For a more conprehensive description please visit the 3.6 Release notes ».

Thanks for reading!

We'd love to hear your opinion on this post

6 Responses to “Library upgrades in Mule ESB 3.6”

  1. Yay for updates 🙂

    Any plan to upgrade to commons-lang3? Lots of good new stuff there too.

    Agree(0)Disagree(0)Comment
    • Hello David,

      Yes, we have it on the radar. The thing with that particular one is that commons 3 changed package name and we can’t remove the current version for backwards compatibility reason. So, if we add it there would be 2 version of everything, the one with the current package and the one in the v3 package, which would create an odd experience for developers.

      We have it on our backlog to figure that one out and upgrade at some point. Hopefully sooner than later.

      Agree(0)Disagree(0)Comment
  2. Any plan for Spring 3.2.13? The version (3.2.10) comes with Mule 3.6 has known vulnerabilities.

    http://docs.spring.io/spring/docs/3.2.x/changelog.txt

    Thanks.

    Agree(0)Disagree(0)Comment
    • Hello Gary,

      The plan is going to spring 4 directly. We’re still working on the timeframe

      Agree(0)Disagree(0)Comment
  3. Hey how about commons-net 3.x? Any plans to bump it up?
    Thanks

    Agree(0)Disagree(0)Comment
    • Hello Fer,

      Our desire is to update every single library (actually, there’s another big set of upgrades coming for 3.7). However, we can’t just do it all at once because of backwards compatibility reasons. That particular library would have an impact on the FTP transport. For 3.7 that one is staying as it is, but we will take another look to it on the following releases.

      Agree(0)Disagree(0)Comment