MULE-14571
Mule Runtime 4.1.0 Release Notes
Jan 19, 2018
Mule 4.1 is the second Early Access Program release, not only incorporating feedback from the program’s participants, but also adding lots of new features, performance improvements and bug fixes.
Mule Runtime 4.1.0 includes the following enhancements, changes, and fixes.
New Features and Enhancements
Core Runtime
-
Lots of performance improvements and enhancements of the new reactive engine
-
Enhancements in the Tooling API to better support Studio and Flow Designer
-
Dynamic evaluator component to support dynamic expressions
-
Library upgrades: now we use Log4j 2.10 and CXF 3.2.1
-
Transparent capacity overload handling on all message sources, even those released in 4.0
SDK
-
Support for defining custom capacity overload strategies.
-
Support for emitting notifications
-
Support for inbound/outbound correlation ids
-
Support for Cluster Aware message sources
-
Support for new automatic triggers like "On updated Salesforce Object" or "On new or updated file".
-
Improved support for Routers
-
Support for connectivity testing in SOAP connectors
-
Many bug fixes
This release is supported on Anypoint Private Cloud Edition 1.6.1 and later.
API Gateway Features and Enhancements
In this version, the focus is resilience, security, and troubleshooting ease.
-
Logs were enriched to enable an easier tracing of errors. In particular, in this release, a mechanism is implemented to allow for viewing the whole trip of a request as it goes through all applied policies to a resource, by specifying on the log4j configuration the package
org.mule.runtime.core.internal.policy
to trace level. Note: Trace level is not currently supported in CloudHub. -
SSL verification for Runtime: API Platform communications is now enabled by default. This means that self-signed certificates, revoked or expired ones belonging to a connected proxy and/or Private Cloud system, will not be accepted. To disable this feature, specify
anypoint.platform.enable_ssl_validation=false
. -
NTLM proxy is now supported, and the proxy basic authentication mechanism is fixed. Note: Deployed applications that need to go through a proxy must use another mechanism. This mechanism applies exclusively to the Runtime - API Platform communication.
-
Gatekeeper default mode is now “Flexible”, which is a tradeoff between blocking security and disaster recovery mitigation.
-
Introducing a new policy: Spike Control. This policy replaces the former Throttling policy. The policy will be used to smooth network traffic.
-
Developer experience improved when creating a custom policy: Clearer and more compact way to develop a custom policy than in v4.0.0.
-
This version includes support for Analytics processing through Anypoint Runtime Manager (which is an existing feature not enabled in v4.0.0). This allows for setting third-party systems such as Splunk to consume Analytics info.
Known Limitations and Workarounds
Issue | Description |
---|---|
Services are not being injected when using FakeMuleServer |
|
MULE-14561 |
Expressions containing a opening bracket are not considered as a expression |
MULE-14560 |
Not understandable exception is thrown when a transformation fails over a String with '%d' |
MULE-14559 |
Socket leaked in CLOSE_WAIT after HTTP client dies |
MULE-14557 |
When a Service/CoreExtension start fails, not started objects are tried to stop |
MULE-14555 |
When hot deploying an invalid domain configuration, DeploymentService is answering corrupt MuleApplications |
MULE-14553 |
TypeWrapper should not load class until needed |
MULE-14550 |
@Export annotation does not work for enums |
MULE-14535 |
Mule swallows HTTP exception |
MULE-14532 |
Evaluate possible use of EmitterProcessor in processing strategy to simplify |
MULE-14528 |
Log4JMDCAdaptor introduces significant contention |
EE-5894 |
Scheduler unavailable when running batch job |
Fixed Issues
Issue | Description |
---|---|
MULE-14525 |
Scheduler unavailable error |
MULE-14520 |
HTTP: CaseInsensitiveMultiMap loses case insensitiveness after making it immutable |
MULE-14512 |
StackOverflow when compiling an extension with recursive structures |
MULE-14511 |
Python and Ruby are shown as scripting languages |
MULE-14508 |
Immutable transformations are chained in MultiMap |
MULE-14493 |
Spring config module is exporting internal classes |
MULE-14477 |
Nested flows/subflows not being initialized when executing tests on MUnit |
MULE-14476 |
Add @NoImplement to ext-api interfaces |
MULE-14474 |
Add the information about metadata category at the parameter model level |
MULE-14473 |
When a thread pool is exhausted no error is logged |
MULE-14470 |
Avoid pattern matching for every notification fired |
MULE-14469 |
Implicit connection factory cannot find internal parameter group |
MULE-14468 |
NPE When deserializing ArtifactDeclaration config without ref-name |
MULE-14463 |
Fix ObjectStore schema generation |
MULE-14437 |
Exported packages are not communicated when loading an extension with the AST Loader |
MULE-14435 |
Policies: HTTP Requester status code validator doesn’t log processor location |
MULE-14431 |
Transformers should use IO pool if they may read or write a stream |
MULE-14430 |
When policies are applied they are shown as applications |
MULE-14428 |
EmbeddedController does not handle spaces in paths |
MULE-14427 |
Compilation should not fail for Scopes and Routers Object output |
MULE-14424 |
Extension packager does not takes the user defined artifact json properly |
MULE-14421 |
After domain full redeployment failure, all dependent applications are removed. |
MULE-14408 |
MVEL error in chained calls where two or more objects of the chain possess the same method signature |
MULE-14407 |
Not repeated names validations should apply to global elements only |
MULE-14396 |
Reducing max concurrency with proactor processing strategy should not block cpu light threads. |
MULE-14393 |
Notification exception kills a running mule app |
MULE-14387 |
Extension documenter fails on document on elements that make usage of @Alias |
MULE-14386 |
Soap Connect extensions not comunicating HTTP Stereotype in http config paraemter |
MULE-14384 |
GroupCorrelation move to a new package broke backward |
MULE-14381 |
Process empty files In File Connector should be optional |
MULE-14375 |
FunctionalTestCase#getConfigFile should always support / slash |
MULE-14361 |
For each executes first processor even that an execution failed |
MULE-14359 |
When policy does not contain a try element, notifications are not sent in order |
MULE-14357 |
ClassCastException in FileConnector restart |
MULE-14356 |
Policy context is sharing SecurityManager with App’s |
MULE-14345 |
Logging message or payload resolves to the same value |
MULE-14336 |
Connectors are trying to stablish connection when mocking them on MUnit |
MULE-14335 |
ObjectStore connector does not work properly with lazy init |
MULE-14332 |
Serializable classes do not define serialVersionUID |
MULE-14328 |
Invalid API defined on mule-metadata-model because of missing mule-module-maven-plugin |
MULE-14320 |
MessageProcessor post-invoke notification missing when an error occurs |
MULE-14310 |
Empty configuration name causes extension to fail |
MULE-14309 |
Domain is not being disposed with its own classloader. |
MULE-14308 |
@Parameter as operation attribute not working for routers |
MULE-14305 |
Source errors do not contain app location info when logged |
MULE-14303 |
Choice executes start before initialise when inside a router route |
MULE-14302 |
SDK implemented functions fail to receive TypedValue wrapped elements. |
MULE-14301 |
Scope/Routes error callback called twice |
MULE-14298 |
Overriding _muleComponentInitialStateManager doesn’t work |
MULE-14296 |
Double exception received to error handler when there is an Internal Server Error |
MULE-14294 |
NPE when setting a payload, using on-error-continue in an operation policy |
MULE-14287 |
MEL caching strategy is inconsistent when the variable accesor is set |
MULE-14285 |
Post interceptors and notifications are not fired when an error occurs in a sub-flow referenced using a flow-ref. |
MULE-14269 |
XML SchemaValidatorOperation equals |
MULE-14268 |
XML Extensions do not properly set DataType on binded variables |
MULE-14267 |
Parser sets rootContainerName for non Component children of prototype objects |
MULE-14264 |
Fix HttpRequestProxyConfigTestCase |
MULE-14263 |
Plugin bean factories are being loaded with the application classloader. |
MULE-14262 |
Fix NPE in CXF module. |
MULE-14259 |
Classloader issue when working with VM and application patch deployment |
MULE-14204 |
Error count of flow statistics not tracked |
MULE-14202 |
Tooling services doesn’t work if operation contains a List as parameter with reference support |
MULE-14198 |
flow-ref is missing target attribute |
MULE-14194 |
HTTP connector fails to close streaming content connection from HEAD request |
MULE-14193 |
Wrong ArtifactType in SpringXmlConfigurationBuilder |
MULE-14179 |
HTTP connector does not dispose listeners, causing a memory leak |
MULE-14176 |
When melDefault property is set to true, dw: prefix in expressions is ignored |
MULE-14174 |
Classcast Exception when CompositeProcessorChainRouter references SubFlow |
MULE-14171 |
SDK loses the Map DataType generics |
MULE-14168 |
Scatter-gather serialization error |
MULE-14166 |
Smart connectors are not feeding datatype when using Java types to DW |
MULE-14162 |
Variables added in the chain are missing the datatype for DW usage |
MULE-14160 |
HTTP Connector does not route OAuth tokens request through proxy. |
MULE-14159 |
NetSuite connector for Mule 4 does not work under Windows |
MULE-14158 |
Error on HTTP path throws NP |
MULE-14156 |
XML macro expansion fails to detect rootest element for some scenarios |
MULE-14154 |
mule-module-maven-plugin crashes with some invalid .class files present in META-INF |
MULE-14152 |
Poll Doesn’t wait for the execution to finish until it sends the next event |
MULE-14145 |
TopLevel parameters not parsed when used as reference |
MULE-14143 |
Scheduler logs in mule_ee.log when SchedulerMessageSource is stopped/started |
MULE-14142 |
Parser error doesn’t point to the line with the error |
MULE-14136 |
Optimize BindingContext creation |
MULE-14134 |
For TopLevelObjectStore, DSLSyntax information doesn’t match the TypeDslAnnotation information |
MULE-14131 |
No parser found for compatibility component if declared in domain |
MULE-14122 |
Pointing to modules parent 1.1.0-SNAPSHOT still generates minMuleVersion 4.0.0 |
MULE-14116 |
SDK Sources doesn’t reconnect |
MULE-14115 |
In Db Module, CLOB implementation is JDBC version dependent. |
MULE-14112 |
Iterators are not converted into repeatable iterators when using StreamingUtils |
MULE-14103 |
processingStrategy not applied to sub-flow |
MULE-14093 |
Sources don’t support maps as parameters |
MULE-14091 |
Connector’s documentation doesn’t document Type’s parameters descriptions |
MULE-14078 |
Review graceful shutdown with <async/> scope |
MULE-14075 |
Failure to resolve DataSense when using JMS with a JNDI connection factory |
MULE-14071 |
Extensions archetype doesn’t handle special characters in extension name |
MULE-14063 |
Exceptions thrown from an error handler are not processed |
MULE-14062 |
Exclusive Optionals validations doesn’t consider Tooling Execution |
MULE-14056 |
Log File being created even for muted apps |
MULE-14055 |
Problem with using cache component |
MULE-14054 |
It should be possible to enable http messages logging per app |
MULE-14048 |
Don’t reuse cursors on reconnection |
MULE-14035 |
Automatic retry on remote Closed exception does not respect RFC 7320 |
MULE-14029 |
ValueProviderService should not start the source when resolving values |
MULE-14008 |
Soap Service NPE if the config is not configured properly. |
MULE-14006 |
java.lang.OutOfMemoryError: Metaspace |
MULE-14005 |
Core extensions disposed before flows finish |
MULE-13995 |
ClassCastException logged when http request is finished after the http server is disposed |
MULE-13994 |
Registry object is not accesible from DW script |
MULE-13967 |
DataWeave Java written functions doesn’t work correctly with non-java types |
MULE-13962 |
Different XML writer loaded depending on test execution order |
MULE-13933 |
MVEL functions with object instantiations doesn’t work well in heavy load. |
MULE-13741 |
Application itself showing up as application library on deployment |
MULE-13732 |
GraphTransformerResolver is not handling correctly concurrency access |
MULE-13248 |
Conflict between spring-module and any other plugin that contains spring |
MULE-13070 |
Enrichers are applied in wrong order |
MULE-12798 |
Allow parameter groups repeat Display Name |
MULE-10724 |
custom-transformer attributes get mixed up |
MULE-10304 |
Application redeployment fails to undeploy old application |
MULE-4223 |
Fix Mule Runtime script start in Solaris 10 |
EE-5880 |
Crypto module exports internal classes |
EE-5864 |
Regression on GW scenario between 4.0 and 4.1 |
EE-5860 |
Race condition in tests due to static polling node thread |
EE-5858 |
FailOver not working with more than 2 nodes. |
EE-5819 |
When executing a Dataweave transformation with a "set-variable" inside a sub-flow, the sub-flow creation fails |
EE-5813 |
Race condition between event completion and async outbound endpoints in compatibility transports |
EE-5794 |
Compatibility: File outbound endpoint is not writing content when used with HTTP polling inbound endpoint. |
EE-5787 |
Compatibility JMS topic URIs are not compliant with spec |
EE-5762 |
BitronixTransactionManager can’t be referenced from Spring beans. |
EE-5737 |
Deploying apps with same GAV may FAIL using parallel deployment |
EE-5700 |
Bitronix does not clean ActiveMQ ended transaction contexts in case of failure/recovery |
EE-5637 |
OutOfMemoryError: Metaspace |
EE-5853 |
Fix amc_setup.bat script to install agent in Windows |
EE-5790 |
License validations fails twice when invalid |
AGW-1909 |
Analytics violation is not populated when agent consumes the events |
AGW-1908 |
Basic Auth and oAuth policies cannot be applied at the same time. |
AGW-1885 |
Backoff - No INFO log on current step |
AGW-1874 |
OAuth Interceptor IO Exceptions are not being back-offed |
AGW-1855 |
Error applying internal policy when using parallel deployment |
AGW-1785 |
When broken template jar is downloaded policy is never applied |
AGW-1777 |
Proxy authentication for Platform Client not working |
AGW-1744 |
Analytics through agent is not reducing queue size |
AGW-1735 |
When there’s an error polling for Apis, log doesn’t show the response status code |
AGW-1718 |
Change BadTokenResponse for OpenID |
MULE-14510 |
Allows custom schedulers to use a |
MULE-14478 |
Make ParameterGroupObjectBuilder#fieldsCache shared |
MULE-14465 |
Make the SDK Validate extension’s exported packages |
MULE-14410 |
mule extensions maven plugin must generate one extension model per run |
MULE-14409 |
Introduce PollingSource |
MULE-14389 |
Expose the DSL TypeCatalog using tooling client |
MULE-14374 |
Update mave-revapi-extension to support mule-api-annotations |
MULE-14326 |
Improve notifications serialization |
MULE-14288 |
SDK sources need to be cluster aware |
MULE-14272 |
[Model] Allow operations to not have a target |
MULE-14189 |
Add the capability of attaching multiple icons in an extension |
MULE-14183 |
Remove patching scenarios |
MULE-14173 |
Add a splash information about the thread configurations calculated by Mule 4 |
MULE-14167 |
Listener threads should have the name of the app |
MULE-14141 |
Support ConnectivityTesting on Domains |
MULE-14137 |
Implement Partial fetching in Multilevel DataSense |
MULE-14121 |
Provide embedded container API to deploy Domains |
MULE-14108 |
If a temporary application resource couldn’t be deleted a warning message should be displayed |
MULE-14042 |
Add the concept of class parameter to the extension model |
MULE-14038 |
Support static custom types |
MULE-13928 |
CorrelationId should be propagated from flow to other flows or systems via connector operations |
MULE-13927 |
CorrelationId is not propagated from connector sources to Flow |
MULE-13836 |
SDK Router to be void |
MULE-13117 |
Support env vars as placeholders |
MULE-12759 |
Compilation warnings should be logged with the corresponding level |
MULE-11659 |
Add tool to ensure that Mule API is backward compatible on each release |
MULE-11256 |
Create POLICY artifact type |
MULE-10607 |
HttpListener: add method to find the status of the listener |
MULE-10597 |
mule-extensions-maven-plugin shouldn’t require to run clean goal |
MULE-10137 |
Allow AnnotationBasedDescriber to work with AST trees |
MULE-10121 |
Provide a MessageBuilder API in scripting components to improve usability |
MULE-14527 |
Optimize ProactorProcessingStrategy to avoid scheduling Transformers to IO if payload is small |
MULE-14082 |
Add CRL feature to Mule 4 Runtime |
EE-5878 |
Improve performance of http requester address ring |
EE-5865 |
Add |
EE-5816 |
Need to validate Hostname resolution and error reporting in Mule HTTP module |
EE-5774 |
Support evaluation of dynamic DW scripts |
EE-5578 |
It should be possible to define error-handler in a case by case basis without duplicating code. |
EE-5790 |
License validations fails twice when invalid |
EE-5765 |
Upgrade Tanuki wrapper script to the most recent version |
AGW-1877 |
When a policy is applied, show on the logs its corresponding version. |
AGW-1875 |
Platform Client operations which fail due to 401 should return UnauthorizedException |
AGW-1824 |
Enable SSL Cert Validation by default for Platform Client. |
AGW-1819 |
Change default level of Gatekeeper to flexible. |
AGW-1778 |
Enable NTLM Proxy Authentication for Platform Client |
AGW-1648 |
For on prem, Analytics on Mule 4 should add environment Name information to each event. |
AGW-1457 |
When accumulating analytics events locally, it should be possible to place an upper limit on the database size. |
AGW-1239 |
Authentication caches should have an expiration time |
AGW-1198 |
Conciliate existing stored contracts at undeploy/redeploy |
AGW-906 |
Add additional DEBUG or INFO logging to pointcut matching |
Compatibility Testing Notes
Mule was tested on the following software:
Software | Version |
---|---|
JDK |
JDK 1.8.0 (Recommended JDK 1.8.0_151/52) |
OS |
MacOS 10.11.x, HP-UX 11i V3, AIX 7.2, Windows 2016 Server, Windows 10, Solaris 11.3, RHEL 7, Ubuntu Server 16.04 |
Databases |
Oracle 11g, Oracle 12c, MySQL 5.5+, DB2 10, PostgreSQL 9, Derby 10, Microsoft SQL Server 2014 |
The unified Mule Runtime 4.1.0 and API Gateway is compatible with APIkit 1.1.0.
This version of Mule runtime is bundled with the Runtime Manager Agent plugin version 2.1.0.