Release notes and changelog

« Back to documentation home

5.4.5 — 07 Oct 2019

Fixes

  • gRPC mapping files will now be written with the correct status code of 0 to represent a successful response status. gRPC mapping files with status code 200 will continue to be interpreted as status code 0 to preserve backwards compatibility.

5.4.4 — 09 Sep 2019

Changes

  • The HTTPS client used for making outbound HTTPS connections now trusts all server certificates by default. This means that it is no longer necessary to specify a javax.net.ssl.trustStore when connecting to HTTPS servers that are not already trusted by the system during recording or proxying.

Fixes

  • Using the javax.net.ssl.keyStore system property will now completely override the HTTPS client key store used for making outbound HTTPS connections for mutual authentication scenarios during recording or proxying.

5.4.0 — 16 Aug 2019

Features

  • Added JMS REST API to count the number of requests made that match the given criteria using POST /api/jms/requests/count and reset the count using DELETE /api/jms/requests
  • See the OpenAPI documentation or import the Postman workspace for more information.

Fixes

  • Fixed usage of {{ anyNumber }} to match numbers within JSON string fields

5.3.2 — 07 Aug 2019

Fixes

  • Fixed a memory leak in the user interface

5.3.1 — 05 Aug 2019

Features

  • New operating system specific release with bundled JRE:
    • Any operating system with no bundled JRE: trafficparrot-no-jre-5.3.1.zip
    • 64-bit Linux with bundled JRE: trafficparrot-linux-x64-jre-5.3.1.zip
    • 64-bit Mac with bundled JRE: trafficparrot-mac-x64-jre-5.3.1.zip
    • 64-bit Windows with bundled JRE: trafficparrot-windows-x64-jre-5.3.1.zip
    • 32-bit Windows with bundled JRE: trafficparrot-windows-x86-32-jre-5.3.1.zip
  • New state management REST API for global state:
    • Create or update state using PUT /api/state/global/{name}
    • Get state using GET /api/state/global/{name}
    • Reset all state using DELETE /api/state
    • See the OpenAPI documentation or import the Postman workspace for more information on the API usage
    • {{ manageState 'example' 'set' 1234 }} to set a variable in a response template
    • {{ manageState 'example' 'get' }} to get a variable in a response template

5.2.0 — 19 Jul 2019

Features

  • WireMock 2.10.1 compatible REST API is now mounted on /api/http/* on the Traffic Parrot UI/API port (default 8080) for example POST /api/http/requests/count can be used to count requests
  • Added gRPC REST API to count the number of requests made that match the given criteria using POST /api/grpc/requests/count and reset the count using DELETE /api/grpc/requests
  • See the OpenAPI documentation or import the Postman workspace for more information.

Fixes

  • Fix scenarios dropdown UI on Windows browsers

Changes

  • Rename "request body" to "request message payload" in the gRPC UI

5.1.1 — 15 Jul 2019

Fixes

  • Fixed support gRPC status details. We now support using both the status key and proto key header conventions.
  • Fixed support for well known gRPC error details types

Changes

  • Additional logging when a gRPC request fails to match any mappings
  • Specify text representation of month in license logs to make it more clear when the start date is

5.1.0 — 08 Jul 2019

Features

  • gRPC improvements
    • Import gRPC proto files using the import button on the gRPC Add/Edit page
    • Convert OpenAPI files to gRPC proto files with openapi2proto using the import button on the gRPC Add/Edit page
    • Use the trafficparrot.virtualservice.grpc.openapi2proto.plugin.location property to configure the openapi2proto binary location, which can be either AUTO_DETECT (which searches the system environment path, go/bin directory and Traffic Parrot plugins directory) or a specific location
  • Configure HTTP proxy mappings on the HTTP Add/Edit page to allow routing some calls to the virtual service and some calls to real services
  • Added support for database queries in responses
    • New {{ databaseQuery }} helper
    • Configure JDBC connections in the database-connections.json file
    • Provide the JDBC driver JAR files for your database in the lib/external folder
  • Added support for default value when using {{ select }} to look up values in CSV files
  • Added support for the IBM®MQ Message ID as Correlation ID pattern

Fixes

  • When a property is missing from trafficparrot.properties we now report which key is missing in the logs
  • PDF files can now be correctly recorded and replayed as HTTP multipart/related attachments

Changes

  • Removed equal to matcher from gRPC edit mapping form (equal to JSON always makes more sense to use than equal to)
  • New toggle trafficparrot.virtualservice.grpc.message.field.naming to choose whether to define gRPC mappings using CAMEL_CASE field names or using the ORIGINAL field name case used in the proto files
  • Binary (non plain text) HTTP responses are now recorded in .bin files

5.0.3 — 17 Jun 2019

Fixes

  • Added support for google.protobuf.Any fields when working with gRPC skeletons. For more details on how this field is serialized see here.

5.0.2 — 14 Jun 2019

Fixes

  • Correct links to latest documentation pages

5.0.1 — 12 Jun 2019

Changes

  • Added a new property trafficparrot.openapi.import.mode that acts as a toggle for the different ways Traffic Parrot supports for importing OpenAPI files. The default MATCHING_RESPONSE_CODE will use the response status in request matchers convention and SKELETON will template the mapping with the request and response structure.

5.0.0 — 10 Jun 2019

Features

  • New HTTP skeletons feature:
    • OpenAPI specifications are used to generate a list of HTTP skeletons that can be used to help design HTTP mappings in the Traffic Parrot user interface
    • Place OpenAPI specifications in the openapi configuration directory to populate the dropdown menu or use the upload button on the HTTP Add/Edit page next to the dropdown
    • This replaces the old scenarios.js dropdown, which has been removed (see changes section below for migration instructions)
  • Maven plugin improvements:
    • New trafficparrot:check-environment goal to run in the pre-clean phase to check nothing is preventing a successful start of Traffic Parrot
    • Check that there is not an existing Traffic Parrot instance running
    • Check for locked files or directories that are unable to be cleaned on Windows (typically this is because a file is open in a text editor or command prompt)
    • Improved speed when cacheDownload is enabled by also caching the extracted zip file
    • Accept either file:/// or file:// syntax when specifying file URLs
    • Remember to upgrade your plugin version to 5.0.0

Fixes

  • The randomInteger and randomDouble helpers now return a number type instead of a string, so that they can be combined with other helpers that require a number. For example when combined with the stringFormat helper: {{stringFormat '%02d:%02d' (randomInteger 0 59) (randomInteger 0 59)}}

Changes

  • The scenarios.js HTTP dropdown has been removed.
    • We recommend migrating to an OpenAPI specification file which can be used to produce a similar dropdown via the new HTTP skeletons functionality
    • Please email support@trafficparrot.com with your scenarios.js file and we will translate it to an OpenAPI file for you
    • Removed unused property trafficparrot.gui.scenarios.resource.name
  • Improved reporting of port clashes and how to change ports in trafficparrot.properties

4.7.2 — 13 May 2019

Features

  • gRPC improvements
    • Support specifying a status details object in exception responses
    • Support for matching by simple key: value request headers. The property trafficparrot.virtualservice.grpc.exclude.request.headers.from.matching=content-type,user-agent,grpc-accept-encoding can be used to choose which headers are considered for matching during replay.
    • New properties for performance tuning:
      • trafficparrot.virtualservice.grpc.server.replay.proto.cache.populate.on.startup will populate the proto cache when starting up
      • trafficparrot.virtualservice.grpc.server.warmup.on.startup will warm up the JVM to improve gRPC performance when starting up
      • trafficparrot.virtualservice.mapping.cache.milliseconds will cache mapping files for both gRPC and HTTP for the specified duration
      • trafficparrot.virtualservice.mapping.cache.populate.on.startup will populate the mapping file cache for both gRPC and HTTP when starting up
      • New constant NUMBER_OF_PROCESSORS can be used in the existing trafficparrot.virtualservice.grpc.server.boss.threads and trafficparrot.virtualservice.grpc.server.worker.threads properties
    • Use proto cache settings when loading gRPC skeletons
  • Amazon SQS virtualization improvements:
    • Added support for the PurgeQueue command
    • Added a user interface to view outstanding messages and receipt handles

Fixes

  • gRPC performance improved by approximately 80%
  • Trim extra empty lines from jvm.args file to avoid a start issue
  • Amazon SQS ReceiveMessage now correctly only peeks a message rather than deleting it; deleting is done via the receipt handle to DeleteMessage

Changes

  • Amazon SQS virtualization changes:
    • Support is now enabled via the trafficparrot.virtualservice.amazon.sqs.enabled=true property instead of the trafficparrot.http.responsetransformers property
    • The virtual service is now hosted under the URL path /aws/sqs instead of directly under the root path
  • Removed unused property trafficparrot.virtualservice.inMemoryFileSystemBackedStubMappings

4.6.1 — 07 May 2019

Fixes

  • Search %PATH% and %JAVA_HOME% on Windows as possible locations to find a Java installation. This is in addition to checking the standard registry entries that are populated when using the official Java installer. The standard registry entries take precedence over other locations.

4.6.0 — 19 Apr 2019

Features

  • Added support for mapping priority to distinguish between many matching mappings. The default priority is 5 and 1 is the highest.

4.5.4 — 16 Apr 2019

Features

  • New tray icon is displayed when running in a non-headless environment (e.g. on your laptop)
  • New jvm.args file allows setting JVM arguments for the main Traffic Parrot process (e.g. to tune memory options)
  • New configuration property trafficparrot.virtualservice.http.no.mapping.found.code to allow changing the no mappping found HTTP response code
  • New start.exe and stop.exe launchers for Windows users
  • Support JMS connections to an external Azure AMQP Service Bus broker in jms-connections.json
  • Support Amazon SQS queue simulation and verification over the SQS HTTP REST APIs via the com.trafficparrot.virtualservice.extensions.responsetransformer.AmazonSQSTransformer which can be enabled via the trafficparrot.http.responsetransformers property
  • Additional diagnostic information is printed when starting up and shutting down
  • Maven and Gradle plugin improvements:
    • Allow specifying a trafficparrot.properties file location in the propertiesFile plugin property; this file is combined with the default properties file and any plugin overrides
    • Store a copy of the traffic files root in the build directory so that mappings imported dynamically e.g. from OpenAPI specifications do not pollute the source traffic files root
    • Print the startup and shutdown logs inline to make the build output easier to navigate
    • Remember to upgrade your plugin version to 4.5.4

Fixes

  • The default gRPC ports have changed to trafficparrot.virtualservice.grpc.tls.port=5551 and trafficparrot.virtualservice.grpc.non.tls.port=5552 so that they no longer overlap with the typical Windows ephemeral port range

Changes

  • When starting and stopping, the console output is appended to the tp.out file
  • When running in the background, only file appenders in trafficparrotserver.log4j.properties are used; any console appenders are switched off
  • When running in the foreground, both file and console appenders are used

4.4.2 — 24 Mar 2019

Fixes

  • New trafficparrot.properties properties to help with gRPC server performance tuning:
    • Configure how long to cache the proto files during replay using the trafficparrot.virtualservice.grpc.server.replay.proto.cache.milliseconds property.

      A value of 0 means do not cache at all.

    • Configure the number of boss and worker threads of the gRPC server using the trafficparrot.virtualservice.grpc.server.boss.threads and trafficparrot.virtualservice.grpc.server.worker.threads properties.

      The special value DOUBLE_NUMBER_OF_PROCESSORS means use double the number of processors.

4.4.1 — 08 Mar 2019

Fixes

  • Added gRPC message skeleton support for:
    • Self referential types e.g. google.protobuf.Struct
    • Messages that use the oneof feature

4.4.0 — 25 Jan 2019

Features

Fixes

  • Adding a new JMS mapping now correctly saves the properties

Changes

  • Always use DeliveryMode.PERSISTENT when sending JMS messages
  • The Maven/Gradle plugin properties printLogs and deleteAfterStop are now also respected if Traffic Parrot fails to start up
  • The jms-mappings, ibm-mq-mappings and file-mappings directories will be created on start up if they do not exist

4.3.x — 15 Jan 2019

Features

  • Support for importing a ZIP file of HTTP mappings
  • More verbose logging when there are port binding issues
  • More verbose logging of start up configuration
  • Pretty print JSON responses when importing Swagger/OpenAPI

Fixes

  • Take into account basePath when importing Swagger/OpenAPI

Changes

  • Consider only the name of the mapping file when setting the HTTP mapping name, not the entire path

4.2.x — 23 Sep 2018

Features

  • Added support for gRPC StatusRuntimeException
  • New page to download HTTP mappings
  • New Gradle plugin for teams that prefer to use Gradle over Maven
  • New examples added including Gradle examples
  • New Postman workspace file that you can import to demonstrate some of the common Traffic Parrot management APIs
  • Import mappings using Swagger/OpenAPI definitions using the Maven or Gradle plugin
  • Better diagnostic logging if Traffic Parrot fails to start up due to e.g. an existing port already in use
  • New {{randomInteger min max}} helper to generate random numbers in a range

Fixes

  • Fix various unclosed file handles
  • Stopping Traffic Parrot now properly waits for gRPC proxy server shutdown
  • Cache busting strategy implemented to cope with browsers that like to e.g. cache JavaScript files forever
  • The data directory is now considered to be under the trafficparrot.virtualservice.trafficFilesRootUrl

4.1.x — 07 Sep 2018

Features

  • New matchesJson matcher
  • Import mappings using Swagger/OpenAPI definitions
  • Record multiple HTTP URLs at the same time
  • Enable redirect handling during HTTP recording using property trafficparrot.virtualservice.enableRedirectHandling=true
  • Initial support for Java 9 and 10 in the start scripts

Changes

  • HTTP mappings are now sorted by last modified date in the UI

Fixes

  • Improve file extension detection for recorded HTTP body files
  • Windows start script now correctly passes on system properties

4.0.x — 09 Jul 2018

Features

  • Support for mocking and virtualizing gRPC APIs and services
  • Visual XML editor
  • Extended support for SOAP - matching on request body SOAP values
  • New matchesXml matcher
  • HTTP(S) stateful scenarios available via the Web UI
  • Signing SOAP messages
  • Duplicate mapping button for HTTP

Changes

  • Traffic Parrot 4.x now requires Java 8 (Java 7 is supported by 3.13.x)
  • gRPC support requires a 64bit JVM
  • Virtual service runs in the same process at the Web UI
  • These properties have been removed:
    • trafficparrot.gui.virtualservice.classpath
    • trafficparrot.virtualservice.jvm.Xmx
    • trafficparrot.virtualservice.virtualServerLog4jPropertiesFilename

Fixes

  • Configuration files now have Windows style line endings

3.13.x — 23 Apr 2018

Features

  • Support native IBM®MQ ReplyToQMgr during recording
  • Importing RAML v0.8 into HTTP mappings
  • The Maven plugin has a new cacheDownload property which can be used to choose whether to cache the download in the java.io.tmpdir or not
  • New HTTP Management API that can be used to remotely start/stop the record/replay of IBM®MQ, JMS and File Message protocols

3.12.x — 12 Feb 2018

Features

  • Recording and replaying native IBM®MQ RFH headers with message format MQFMT_RF_HEADER_1 or MQFMT_RF_HEADER_2
  • Support MQFMT_NONE MQ message format
  • Recording and replaying native IBM®MQ responses using dynamic MQ model queues
  • Support native IBM®MQ ReplyToQ during record and replay
  • Support configuring the IBM®MQ MQCSP authentication mode

Fixes

  • When you connect to a wrong IBM MQ channel or with wrong IBM MQ username/password you do not see it in the logs
  • Spaces in the path to the Traffic Parrot installation directory are now supported

3.11.x — 26 Jan 2018

Features

  • Recording and editing JMS Properties
  • During File mocking, request files are now deleted after processing
  • More user friendly (easier to read and follow) logs for JMS and File stubbing

Fixes

  • Windows start script start.cmd now works even if system32 directory is not on the %PATH%
  • The dynamic HTTPS Proxy does not spin up so many threads any more and does not consume so much RAM
  • Better error messages in failure scenarios when using several Handlebars
  • More rigid stopping

Changes

  • Default selection on replay page is now based on the type of mappings that are present (e.g. Queue will be ticked if there are any Queue mappings)

3.10.x — 10 Dec 2017

Features

  • Support for virtualizing services that read and write files (currently in beta)
  • Support JMS byte messages (any bytes message, with special support for java.io.Serializable objects)
  • Upgraded WireMock to 2.10.1
  • New handlebar helpers xPath, xPathList, jsonPath, jsonPathList, regex, equal, ifEven, size
  • JMS is not in beta any more
  • IBM®MQ native MQ support is not in alpha any more
  • New Maven plugin for replaying HTTP/JMS/MQ traffic during integration tests

Fixes

  • Fixed missing pages in community edition
  • Fixed links on help page

Changes

  • Do not escape characters < > " ' ` & if they are produced by handlebars helpers
  • Handlebars each helper now only iterates over iterable arguments
  • Recorded cookies format has changed
  • com.trafficparrot.sdk.jms.Equal moved to com.trafficparrot.sdk.handlebars.Equal
  • com.trafficparrot.sdk.jms.MissingHelper moved to com.trafficparrot.sdk.handlebars.MissingHelper

3.9.x — 11 Nov 2017

Features

Earlier versions

Available on request.

Old version warning!

This documentation is for an old version of Traffic Parrot. There is a more recent Traffic Parrot version available for download at trafficparrot.com

Browse documentation for recent version