Release notes and changelog

« Back to documentation home

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