Changelog

What’s new

New features, changes and fixes in version 1.0.5, the current download.

Download 1.0.5 · 57 MB JAR · SHA-256 checksum

1.0.5

Current download

Released

New

  • Repeat and untilA Kafka or protocol plugin response can be sent several times with repeat (1 to 10,000, or an expression), or again and again with until until its condition renders something other than empty, false or 0. Each copy waits for its own delay. Running loops appear in the header, where Stop ends them.
  • Test (respect delays)Beside Test (skip delays) in the template editor, it sends the example request and waits for the response delays, as live traffic would.
  • Fill to matchIn the Example request heading, it fills the example with values the Match request accepts, checks the result and names any condition it could not meet.
  • Refresh a variable mid-exchange{{name:refresh}} resolves a variable again where it stands, and later references show the new value. A repeated response that uses it renders each copy again.
  • Sequences in Runtime dataEach sequence counter with its next value, updated live, and a reset for one counter or all of them. /__admin/sequences lists them, and DELETE resets them.
  • Runtime data that never expiresnever is a retention choice in the Runtime data header and under Settings → Data limits. Clear all in the Runtime data list clears every map and object group and resets the sequences.
  • HTTP and HTTPS endpointsAdd HTTP ports beside the main one under fantasticmock.protocols.instances with protocol: http, plain or with tls: true, so HTTP and HTTPS answer at the same time. Every endpoint answers every HTTP template. The certificate comes from a Spring Boot SSL bundle or from the main listener.
  • HAR import and exportTraffic logs exports the listed or checked HTTP logs as a HAR 1.2 file. A HAR file saved by a browser or an HTTP tool is imported as proxied traffic tagged har-import, ready for template generation.
  • FML filesFantastic Mock Logs files carry traffic logs of every protocol as they were recorded, with their times, modes, templates and tags. Export the listed or checked logs, and import them on another server. Imported logs are tagged fml-import.
  • Message tabA traffic log shows every field of a request or response in one Message tab with folding sections, beside Details, Raw log JSON and, where the protocol has one, the Raw message. Switch off Protocol fields in one tab in the preferences for one tab per field.
  • Raw messagesA protocol plugin whose messages have a raw text form can keep an example request’s raw message and its fields in step, preview the raw message a response makes, and log the text it sent.
  • Templates from logs of deleted templatesA log whose template was deleted counts as unmatched: its heading strikes the template through and offers Create template, and Generate takes it too.
  • Pinned searchesThe pin button beside the search field turns the current search into a named chip that keeps narrowing the list. A chip can be switched off and on again without removing it. Templates and traffic logs keep their own chips, and your browser remembers them.
  • Tags in tablesBuilt-in table columns can show their values as tags. Click a tag to filter by it, or right-click it to Filter, Filter out or Change color, with your recent colors at hand. Tag colors & visibility also takes tags of your own.
  • Column fallbacks and profilesA JSON field column can fall back to another field (a || b), take a name of your own and show its values as tags. Named column profiles keep several table layouts.
  • Export browser settingsBrowser settings in the preferences saves the theme, layout, table columns and profiles, tag colors and pinned searches to a file, and imports them in another browser.
  • Field sections viewA template editor view that shows the Fields controls for one block at a time. It is the default view, and New keeps the view you use.
  • Function pluginsWrite template functions in Java and call them as {{name(args)}}; the editor completes their names. A function call can also be an argument of another call, such as {{put("latch", "1", total(1, 665))}}.
  • More for Java pluginsPlugins can use runtime data, loaded dataset rows and Prometheus meters through PluginServices. Variable generators can declare their own parameters, and the editor shows a field for each.
  • Protocol plugin wizardNew in the Plugins tab asks a few questions and downloads a protocol plugin bundle with code that compiles, ready to build.
  • Runtime chartsThe runtime menu in the header shows the work in flight and the TPS for each protocol, and the callback TPS. Its charts can cover the last 1, 5 or 15 minutes.

Changed

  • Upstreams replace target URLsSettings → Routing lists the default upstream and the ones you add with Add. Each opens an editor for its matchers, replacements and custom fields (previously custom headers).
  • Test (skip delays)The template editor’s Test button is now Test (skip delays) and answers at once.
  • Match requestLists its Matching conditions under their own heading, apart from the routing fields.
  • Log toolbarAn open log’s toolbar shows the route, status, duration and sizes, its place such as Response 2 of 3, and 4 in chain, which filters the whole exchange. The matched template has a filter button beside it, and Retry sits with the view controls. Details adds the received URL, size, delay and callback timings.
  • Request and response panesThey fold like an accordion and show side by side, stacked or as tabs.
  • Not recordingSwitching recording off stops the traffic list at once, also under heavy load.
  • Plugin compile errors at startupA Java plugin source that does not compile is skipped with a warning in the log, together with the sources that need it, and the other plugins load. A reload is still all or nothing.
  • Protocol APIAdds ProtocolResponseStream, which carries repeated and looped responses to plugins that write responses themselves, and ProtocolRawMessages for plugins whose messages have a raw text form. A response writer can report the text it sent. The protocol API version is still 5; compile against the 1.0.5 protocol API JAR.

Fixed

  • Runtime data sizesWith hundreds of megabytes of runtime data, the header charts no longer go blank while the Runtime data tab is open. A long value stored several times now counts once in each collection.
  • Delayed protocol responses under loadDelayed responses of protocol plugins were written one at a time on a shared timer, so under heavy load they fell behind and the in-flight count kept growing. Each session now writes its own, in order.
  • Header chartsThe charts keep their history when an update fails, stop updating several times a second after a busy spell, and no longer change width as their values change.
  • Plugin callbacks in metricsCallbacks sent by protocol plugins are now counted in the Prometheus metrics.