Spring is upgraded to 5.3.33.
Mule Runtime Engine 4.5.0 Release Notes
Mule runtime engine (Mule) is a lightweight integration engine that runs Mule applications and supports domains and policies.
This version of Mule provides important enhancements and fixes. Deploy all your new and existing applications to the latest version to benefit from the improvements.
April 2024
Patch release version: 4.5.4
This patch update addresses the following Mule issues:
Issue Resolution | ID |
---|---|
W-15260752 |
|
Template parser validation is now improved. |
W-15141905 |
Hazelcast is upgraded to 5.2.5. |
W-15159760 |
|
W-14802693 |
Performance is now improved for certain For Each scenarios. |
W-14678431 |
An extra message field is no longer added in the logs when logging the message variable. |
W-14457630 |
Extension model parsing no longer fails for extensions with dependencies declared as provided. |
W-14646484 |
MUnit no longer fails with apps using Anypoint Connector for DotNet (DotNet Connector). |
W-14747448 |
License installation no longer fails with |
W-14542349 |
Legacy properties builder no longer reevaluates from root resolver placeholders. |
W-14616618 |
HTTP Redirect no longer works on Mule runtime 4.x on HTTP Post. |
W-14619216 |
Race condition no longer results in |
W-14543363 |
The GraalJS library is upgraded to 22.3.3. |
W-13961780 |
There is no DataWeave update for this version.
For guidance with the patching process, see Apply Patch Updates.
January 2024
Patch release version: 4.5.3
This patch update addresses the following Mule issues:
Issue Resolution | ID |
---|---|
An issue with explicit socket connection timeout for socket creation was fixed. |
W-14555248 |
Using |
W-14479183 |
Using Salesforce Marketing Cloud connector no longer causes a memory leak. |
W-14391247 |
XML SDK no longer fails to replace a complex parameter with a property value. |
W-13681772 |
GroovyResourceReleaser is now enabled for each JDK. The incorrect cleaning method was removed. |
W-14350781 |
|
W-14261144 |
The |
W-14161865 |
DataWeave 2.5.2 is bundled with the Mule 4.5.3 release. This patch release addresses the following DataWeave issues:
Issue Resolution | ID |
---|---|
An issue with |
W-14471869 |
For guidance with the patching process, see Apply Patch Updates.
November 2023
Patch 4.5.2
The November patch update 4.5.2 addresses a regression in the previous November patch update, 4.5.1, and includes the fixes in the patch.
Patch release version: 4.5.2
This patch update addresses the following Mule issues:
Issue Resolution | ID |
---|---|
This patch update reverts the fix. |
W-13681772 |
For guidance with the patching process, see Apply Patch Updates.
Patch 4.5.1
Patch release version: 4.5.1
This patch update addresses the following Mule issues:
Issue Resolution | ID |
---|---|
The org.json.json library is upgraded to 20231013. |
W-14347983 |
The org.apache.santuario.xmlsec library is upgraded to 2.3.4. |
W-14347988 |
The org.bouncycastle.bcprov-jdk15on library is upgraded to 1.74. |
W-14351263 |
The Error Handler with attribute |
W-13881167 |
The error |
W-13969259 |
Mule runtime no longer fails to start in Linux if the path contains spaces. |
W-14321178 |
The |
W-14067135 |
|
W-13038823 |
XML SDK no longer fails to replace a complex parameter with a property value. |
W-13681772 |
DataWeave 2.5.1 is bundled with the Mule 4.5.1 release. This patch release addresses the following DataWeave issues:
Issue Resolution | ID |
---|---|
Temporary files are now closed for inputs bigger than 1.5 MB. |
W-13868202 |
The cached function coercion now works correctly for a second time when an argument is constant. |
W-13763138 |
The DataWeave |
W-14086694 |
Reading Avro schema with an array of |
W-14252745 |
Inconsistent XML encoding detection no longer occurs between indexed and in-memory parsers. |
W-13805995 |
For guidance with the patching process, see Apply Patch Updates.
October 3, 2023
What’s New
The 4.5.0 version of Mule runtime introduces the following enhancements:
New release channels:
-
Starting with Mule 4.5, MuleSoft introduces two new release channels, Edge and Long-term Support (LTS). Both release channels are available in all our deployment models: Anypoint Runtime Fabric, CloudHub, CloudHub 2.0, and Hybrid Standalone. Consider the following factors to determine the approach that best suits your requirements ahead of the Mule 4.4 End of Standard Support.
Memory management:
-
The Mule runtime has a centralized memory service that controls the memory allocation for different components such as HTTP and DataWeave.
API Gateway improvements:
-
Enhancements on policy ordering and editing to optimize the synchronization between API Manager and the API Gateway.
General improvements:
-
toString
is now implemented in properties objects to help with troubleshooting. (W-12081340) -
MVEL resource releaser logs are now improved. (W-12513080)
-
Trace/debug logging is now added to
registry-bootstrap
for troubleshooting. (W-12117737) -
The name of the resource is now added when there is a failure in
PropertiesUtils#discoverProperties
. (W-11336085) -
To waive expression required parameters on design time is now allowed when the value is a property. (W-12226023)
-
The log "HTTP response stream was closed before being read but response streams must always be consumed" now throws
LOGGER.error
. (W-12173136) -
Declaration enrichers are now optimized to improve extension load time. (W-12102817)
-
FileUtils#unzip performance is now improved. (MULE-19894)
-
Extension models are loaded in parallel when deploying applications. (W-12073186)
-
The extension model loading performance is now improved. (MULE-19706)
-
The message on Duplicate Key error for Value Provider on Build is now improved. (W-11803219)
-
Design time validations are now introduced to check the existence of the file referenced by parse-template. (MULE-19813)
-
A build validation is now added to check that
FirstSuccessful
has at least 2 routes. (MULE-19244) -
A build validation is now added to check that referenced DataWeave files exist. (EE-8091)
-
Kryo Serializer is now added for commonly used Java classes. (W-13059082)
-
Kryo Serializer is now added for ReentrantReadWriteLock. (W-13066966)
-
Kryo Serializer is now added for Map.Entry. (W-13059266)
-
Kryo Serializer is now added for unmodifiable and synchronized collections. (W-13055604)
-
Kryo Serializer is now added for ArrayList classes. (W-13021182)
-
Kryo Serializer is now added for GregorianCalendar. (W-13013723)
-
Kryo Serializer is now added for Atomic classes. (W-13007667)
-
The resolution of properties is now refactored. (W-12138147)
-
Where possible, we changed noninclusive terms in our codebase to align with our company value of Equity. (W-11894128)
-
DeploymentService must attempt to use the serializedAst if present. (MULE-20062)
-
Reflective equals/hashcode in MetadataType is no longer used. (W-12622215)
-
Internal
sun
classes are no longer used. (W-12621856) -
Trigger, private, and active flow metrics are now introduced to enable the usage-based pricing initiative. (W-11493854)
-
The
messagesDispatched
metric is now added to statistics. (W-11954914) -
Supported Java version concept in SDK is now added. (W-13497626)
-
BODY
as a parameter placement in @OAuthParameter is now supported. (W-13544791) -
SDK no longer processes fields from enums. (W-13759844)
-
Polling Source notifications are now improved. (W-11492717)
-
A library folder for Java 8-specific libraries is now added. (W-12761115)
-
New cluster-specific exceptions are now created to wrap Hazelcast exceptions. (W-14077819)
-
Internal Telemetry enhancements are now added.
Feature Flagging Mechanism:
-
Mule 4.5 incorporates new feature flags, which enables you to disable certain features that change core functionality in Mule to avoid backward compatibility issues. See Feature Flagging for a detailed description of each feature flag and configuration instructions.
DataWeave Features
The 2.5.0 version of DataWeave introduces the following new features and enhancements:
Support for backward compatibility with previous 2.x versions of DataWeave:
-
Compatibility flags retain previous DataWeave behavior at the Mule application level. For details, see DataWeave System Properties.
-
Syntax of an earlier version of DataWeave is supported through the
%dw
directive (such as%dw 2.4
).Setting the directive to an earlier version of DataWeave avoids any syntax-breaking changes when the DataWeave runtime engine runs the script. This script-level setting enables you to retain earlier behavior in some scripts while using the latest behavior in others. DataWeave syntax did not change between DataWeave versions 2.1 through 2.4. See discussion of
%dw
in DataWeave Header.
Extended format support:
-
ProtoBuf format support is available. See Protobuf Format.
-
cXML
support in the XML format is available for reading and creating doctype directives (DTDs). See XML Format.
Extended type support:
-
Loading type definitions from Java classes, JSON schemas, and XML schemas, and using the definitions in DataWeave scripts is supported. See Selecting Types.
-
Creating new DataWeave types from existing types is supported. See Reuse Types.
-
Specifying type parameters (similar to generics in other programming languages) of a function at the call site is supported. For details and examples, see Type Parameters and Work with Functions and Lambdas in DataWeave.
-
Introducing a Metadata Assignment Operator (
<~
) which enables you to set the metadata of any value without using theas
operator. See Metadata Assignment Operator.
Memory management:
-
DataWeave now uses a centralized memory service provided by the Mule runtime when executing in that context.
DataWeave module features:
-
The Dtd module (
dw::xml::Dtd
) is new. -
The toString function adds the
locale
parameter. -
The Core annotation
@UntrustedCode()
changes to@UntrustedCode(privileges: Array<String>)
. -
The concatWith function is new.
-
The version function is new.
Fixed Issues
The release addresses the following Mule issues and incorporates all patch updates from the 4.4.0 Mule release through September 2023:
Issue Resolution | ID |
---|---|
Application name and flow name now appear inside the cache scope thread. |
W-11818064 |
Deadlock in batch now works properly when a step fails because of max errors. |
W-11702225 |
SubTypeMappings no longer define the same mapping twice. |
W-11294196 |
|
W-11019412 |
An event no longer gets stuck when using a Foreach scope with a map payload. If the app has |
W-12207110 |
JDBC/JMS driver-specific cleanup is now performed if the driver is declared as a |
W-12204790 |
Startup script now gives higher priority to |
W-12082402 |
Classloader leak no longer occurs in MVEL optimizers. |
W-11785664 |
Variable propagation no longer fails with nested error handlers. |
W-11861131 |
All Javax libraries are replaced with the Jakarta equivalent. |
W-13588773 |
jsoup is upgraded to 1.15.3. |
W-11750619 |
SLF4J is upgraded to 2.0. |
W-13104897 |
Byte Buddy is upgraded to 1.14.0. |
W-12305504 |
LMAX disruptor is upgraded to 3.4.3. |
W-13312374 |
FastUtil is upgraded to 8.5.11. |
W-13312374 |
ram-parser-2 is upgraded to 1.0.44-10. |
W-13031307 |
commons-lang3 is upgraded to 3.12.0. |
W-12041669 |
Log4j is upgraded to 2.20.0. |
W-13792545 |
Reactor Core is upgraded to 3.4.22. |
W-11786499 |
org.json:json is upgraded to 20230227. |
W-13019304 |
Commons IO is upgraded to 2.13.0. |
W-13748743 |
Bouncy Castle is upgraded to 1.74. |
W-13844863 |
Hazelcast is upgraded to 5.2.4. |
W-14080816 |
Maven is upgraded to 3.9.4. |
W-13665263 |
jsr305 is removed from the distribution. |
W-13588824 |
com.sun.xml.bind.jaxb-core is removed from the distribution. |
W-13517798 |
CGLib is removed from the distribution. |
W-10815440 |
Groovy is removed from the distribution. |
W-12525966 |
geronimo-j2ee-connector_1.5_spec is removed from the distribution. |
W-13097247 |
This release adds the |
MULE-19967 |
DataWeave 2.5.0 is bundled with the Mule 4.5.0 release. This release addresses the following DataWeave issues:
Issue Resolution | ID |
---|---|
The |
W-10648848 |
The |
W-12036895 |
Memory usage is now improved when using |
W-12245438 |
DataWeave now loads the Java class methods in deterministic order. Setting the property |
W-13028728 |
Typed parameters validation now works properly when using generics. |
W-10671626 |
Support is now added for negative |
W-10989197 |
The |
W-11327185 |
The literal type checking over escaped |
W-11333111 |
The |
W-11343563 |
The intersection of |
W-11611304 |
Unnecessary materialization in pattern matching no longer occurs. |
W-11698394 |
Trailing zeroes after the decimal point are now removed by default for JSON, YAML, CSV, and DataWeave formats. Setting |
W-11750379 |
The |
W-12227568 |
The |
W-12475183 |
The |
W-13635914 |
The |
W-11811398 |
The exception handling at |
W-12558946 |
The support for BOM marker on |
W-12704857 |
The |
W-12622236 |
A new set of functions is added to coerce a |
W-12552422 |
The |
W-12513180 |
The YAML module support for multiple documents is now improved. |
W-12103386 |
The Java module support now avoids unnecessary input stream consumption. |
W-12005692 |
The inferred type on |
W-11404344 |
Pattern matching is now improved when dealing with |
W-11590136 |
Ranges now support numbers without integer limitations. |
W-11210592 |
Parsing of directives including comments now works correctly. |
W-11132728 |
Type checking phase now works correctly over annotations. |
W-11032792 |
DataWeave now ignores BOM marker on binary files. |
W-10650435 |
The YAML module support of empty |
DW-1093 |
Adding schema to |
DW-746 |
The function |
DW-882 |
Tail recursive function recognition now works correctly when using the |
DW-866 |
Coercion for |
DW-851 |
Data format resolver now works correctly to avoid unnecessary error messages. |
SE-18503 |
Warning messages are now improved when coercing |
DW-845 |
Bundled Components
-
Dataweave version 2.5.0
-
Runtime Manager Agent plugin version 2.5.0
Upgrade
If you are upgrading to this version of Mule from an earlier Mule 4.x version, see Mule Upgrades and Patch Updates.
To ensure optimal performance with this version of Mule and avoid unexpected issues, update the following modules and extensions to their latest version at the time of this release:
Module or Extension | Version |
---|---|
APIkit for Mule 4 |
1.10.1 |
APIkit for OData |
2.2.0 |
APIkit for OData 4 |
1.3.4 |
APIkit for SOAP |
1.4.0 |
APIkit for GraphQL |
1.0.0 |
Spring module |
1.3.9 |
MUnit plugin |
2.3.18 |
Considerations for Mule Extensions Developers
If you update the version of your parent pom.xml
file to 1.4.0 or later when you build a Mule extension, ensure that the dependencies in your pom.xml
file do not override dependencies defined in the parent pom.xml
file, and declare only the dependencies you need. If you need to declare a dependency that is already declared in the parent pom.xml
file, do not specify a version so it uses the version from the parent pom.xml
file.