MockServer v5.11.0 Release Notes
Release Date: 2020-07-08 // almost 4 years ago-
โ Added
- โ added basic support to proxy binary requests that are not HTTP
- ๐ฒ dynamic maximum log events and maximum expectations based on available memory
- โ added ability to switch between BouncyCastle and vanillar JDK for key and certificate generation
- โ added support for TLS over SOCKS4 or SOCKS5
- request matching and expectations using OpenAPI or Swagger specification
- create expectation using OpenAPI or Swagger specification with automatic example responses
- verifications of requests or request sequences using OpenAPI or Swagger specification
- ๐ clear log, clear expectations, retrieve logs and retrieve requests using OpenAPI or Swagger specification
- json schema matchers for method, path, headers, query string parameters and cookies
- path variables matched by nottable string, regex or json schema (as per query string parameters)
- ๐ support for optional query parameters, header and cookies
- ๐ support for nullable keyword in JSON Schemas (part of Open API specification not JSON Schema specification)
- matching xml bodies against JSON Schema matchers
- matching parameter bodies against JSON Schema matchers
- ๐ support to match path parameters, query parameters and header either by sub set or by matching key
- ๐ป grouping of log events in UI to simplify analysis of expectation matches / non matches for a request
- โ added extra log messages to indicate progress for large json expectation initializers
- โ added log messages for invalid control plane request to make control plane errors clearer in the UI
- โ added support for easily mapping jar and config into the docker container
- โ added support for easily mapping jar and config into the helm chart
๐ Changed
- โฌ๏ธ reduced time range of CA certificates to increase likelihood they will be accepted by strict systems (i.e. VMWare vCenter Server)
- ๐ improved error message when exception loading or reading certificates or keys (i.e. file not found)
- โก๏ธ certificate and private key are saved to directoryToSaveDynamicSSLCertificate when preventCertificateDynamicUpdate is enabled
- โก๏ธ returns created expectations from /mockserver/expectation so that it is possible to view the id for new (or updated) expectations
- โ added ability to inherit @MockServerSettings for Junit5 tests
- ๐ switched to distroless container base for security and size
- โ added explicit gc suggestion after reset and clear
- โฌ๏ธ upgraded docker container to Java 11 to ensure JVM honours container memory constraints (i.e. inside kubernetes)
- ๐ improved parsing of invalid content-type header parameters by handling error gracefully and outputting a clear error message
- ๐ improved performance through multiple minor tweaks around handling of expectations
- โ added version to log output to improve resolution of github issues with logs attached
- ๐ improved logic around proxies to make HTTP CONNECT, SOCKS4 and SOCKS5 more reliable and faster
- โฌ๏ธ reduced object creation (and therefore GCs) for log especially during request matching
- ๐ print logs timestamp with milliseconds
- โฌ๏ธ reduced expiry of certification to one year to avoid errors from modern systems that don't like long lived certificates (such as Chrome or VMWare)
- 0๏ธโฃ defaulted charset for XML and JSON to UTF8 as per rfc3470 and rfc8259
- ๐ version matching logic for client now only matches on major and minor version and not bug fix version
- ๐ improved handling of body matching for control plane to clearly separate control plane and data plan matching
- ๐ป simplified and improved stability for UI by moving all data processing into back-end and other simplifications
๐ Fixed
- ๐ fixed but with environment variable configuration for long, integer and integer list values
- โ removed call to ReflectionToStringBuilder.setDefaultStyle to avoid impacting toString globally for JVM
- ๐ fixed destination port and ip in Socks5CommandResponse which prevented SOCKS5 proxied connections
- ๐ fixed Subject Alternative Names with wildcards or other valid DNS name formats not supported by certain versions of the JDK (<= 1.8)
- ๐ fixed json body responses by returning blank or null fields, objects and arrays
- ๐ fixed generics for withCallbackClass to allow ExpectationResponseCallback to be specified as a Class (not only a string)