@tkohegyi tkohegyi released this Aug 8, 2018 · 2 commits to master since this release

Assets 4

This V1.6 release of Wilma is focusing on documentation, code quality and on example usages.

  • Several example plugins are developed. These plug-ins can be found as sources under "wilma-extras" folder:
    • Plugin: Look-And-Say - see details here: https://en.wikipedia.org/wiki/Look-and-say_sequence nothing special, just to show that Wilma is able to provide an independent web service. Issue: #78. See details here.
    • Plugin: ShortCircuit - in case a request has happened before, and the answer is known, Wilma uses the previously recorded answer (so stub it), otherwise act as proxy and record the answer - next time can be used. So technically this is a cache plugin. Issue: #71. See more details here.
    • Plugin: Replicator - an example that shows how to send the original request (meanwhile normally proxying it) to another target too -> later the 2 request and response can be compared. Good for comparing the behavior of 2 different (maybe just in version) component that receives the same request. Good to deliver a request to both a legacy and a new service. Issue: #79. See more details here.
    • Plugin: Bulkhead - An example implementation of using Wilma as a Bulkhead. What is Bulkhead? Bulkhead takes its name from a principle of ship design where walls or barriers separate the ship into watertight compartments so that, if the hull is breached, the failure is limited to a specific compartment and prevents (or delays) the ship from sinking. The "water" in this analogy is heavy request load saturating the system entry points (a component entry points) or the failure of a dependent service. In cloud application architecture or microservices architecture, using bulkheads between components/microservices of the system means protecting specific components/microservices from heavy lead/when it is replaced, etc.. Issue: #72. See more details here.
    • Plugin: Random Error Generator - The Random Error Generator's job is to touch the responses randomly and instead of letting the original response arriving, cause: E404, E500s and request timeouts. The idea is very close to Chaos Monkey of Netflix - just not for instances, but for services. Issue: #70. See more details here.
    • Plugin: Circuit Breaker - If you are familiar with microservices, then you know what "Circuit Breaker" means. This plugin is an example implementation. Issue: #60. See more details here.
    • Plugin: Reverse Proxy - An example impleentation of Reverse Proxy functionality by using Wilma. Issue: #73. See more details here.
  • Further improvements:
    • Brand new Postman collection is available to give example on majority of Wilma API calls, and for example plugins (only works when the plugin is loaded properly).
    • Visibility of active interceptors is added to the UI - However it is easy to get information about the active interceptors via API and/or by checking the source of the stub configuration, it would be a little bit better to see them listed on UI too. Issue: #74 - implemented.
    • Using all built-in condition classes with their short names - In the past, it was possibble to use several built-in condition classes only by using their full class name. With this enhancement, using their short class name is enough. See more details at issues #95.
    • Further code quality enhancements - see issue: #9, #97.
    • Gradle build was upgraded to version 4.9, SonarQube to 7.2.1
    • This release is supposed to be the latest release using Oracle Java 8.

As usual, the release is available as docker images too.

Oct 6, 2017
#60 - update for bmp-proxy - to get access to request in response
info from the response
Jul 18, 2017
Ticket: #72 - Bulkhead example (#82)
* initial conditionchecker/externalservice - base of bulkhead

* initial bulkhead was added

* first compilable version

* just minor doc updates

* reviewed, can be tested

* nitial enhancement of travis yml in order to cover wilma-extras too

* finalizing travis config file

* tested, fixed, it is working
Assets 4

This V1.5 release of Wilma is focusing on brand new features you would love for sure. See related tickets: #65, #77, #78.

In Details:

  • A new feature was added to Wilma: by implementing ExternalWilmaService interface, it is possible to communicate with your external plugins directly by using HTTP/REST calls. The list of available such external plugin services are available here: http://wilma_host:wilma_port/config/public/services - see further details here and here.
  • Java Service API is extended with the possibility of configuring Wilma stub via method calls, and without using any XML-s. See more details here. The Java Service API version is: 1.5.177.
  • HTTPS connection enhancement - Some clients identified those expect that the CONNECT requests are not closed in case of a HTTPS call. By default Wilma closes those requests, but by setting the proxy.connect.keepalive property to true, such requests will not be closed. One of the known clients those might need this feature is: .NET Web Application.
  • New Example, a special plug-in for Wilma: Look-and-Say Service - A new example plugin was created to show the extensibility feature of Wilma. Read more about this example plug-in here.
  • New Example: Short Circuit - an example solution on how to implement a Short Circuit with Wilma. What is Short Circuit? A proxy that records request/responses, puts them into an internal cache, and if a request arrives that was previously requested, then answer will be responded by Wilma ( = use response from the cache). The cache content can be listed, saved to a folder, and an old cache can be loaded as well. See details here.
  • Additional built-in Condition Checkers added to check request method (check if the request was a GET, POST, PUT, DELETE, HEAD or OPTIONS method). See details here.
  • Wilma configuration and remote monitoring is enhanced by allowing to overwrite the internal RMI port by specifying the "com.sun.management.jmxremote.rmi.port" system property.
Assets 4

This V1.4.137 release of Wilma is focusing on a brand new feature: real-time message substitution, meaning that the request or response message that would go through the proxy/stub can be altered, even replaced completely. The addressed issue is #67. See details on how to do the real-time message substitution here.

Further improvements:

  • The name generation of the logged messages was changed. It is possible to add a prefix of every Wilma instance. You may set it by specifying a new Wilma property: wilma.instance.prefix. If it is empty, nothing changes, but when there is a value, that value will be added to the front of the logged messages. Also it is possible to add a custom postfix to the name, by using interceptors. See more details on this feature here
  • The content structure of the logged messages was changed a bit, as the headers can be altered, now it explicitly shows what headers were removed and what headers were added/changed
  • Buggy custom (plugged-in) interceptors may cause exceptions in Wilma resulting in dropping the specific request/response. Now it is fixed: Exception caused by the bad interceptor is logged, but no message lost
  • It is now possible to configure the Wilma -> Wilma Message Search ActiveMQ communication properties (hostname and port) that opens the possibility of having numerous Wilma instance working with a single Wilma Message Search. Also it is possible to have Wilma instance and Wilma Message Search on different (virtual) machines

Service API is extended to handle the new Response Volatility settings (status/on/off). (Java: V1.4.137, .NET: V1.4.5853.30788)
In case you upgrade, Wilma jars and the wilma.conf.properties file should be updated.

As usual, the release is available as docker images too.

Assets 4

This V1.3.111 release of Wilma is focusing on the new .NET service library and more support to use Wilma in microservice environment.

  • A new library is created to support Wilma users in .NET environment. From now on you may use Wilma and configure it easily even if you use .NET environment (C# language). See details here. The addressed issue is #58.
  • To make Wilma more usable in microservice environment, an important architecture change was applied. There is a message marker part in Wilma, that is responsible to generate ID for every request and response pairs, and this ID is used to pair the messages, to identify the message when a stub response is generated by the internal web application, and when the messages are saved onto disk. This part was moved from Wilma code base to the proxy code base. With this change, the message marking become more reliable, and the performance limit (as there was a max of 9999 message per second) eliminated (including the related property values). A new property is added "message.marking" that is off in the default configuration file. In case you would like to get Wilma-Message-ID information added to the header (rare situation), turn it on. The addressed issue is #64.
  • Service API is extended to handle the new Message Marking (status/on/off) property. (Java: V1.3.100, .NET: V1.3.5806.30725)

In case you upgrade, Wilma jars and the wilma.conf.properties file should be updated.

@tkohegyi tkohegyi released this Oct 9, 2015 · 192 commits to master since this release

Assets 4

This V1.2.83 release of Wilma is focusing on stability.

  • Travis CI is now in use, you may see build results always here: https://travis-ci.org/epam/Wilma
  • The release is available as Docker images too, from Docker Hub. See details: https://github.com/epam/Wilma/wiki/Docker-image-of-Wilma (see #61)
  • Further stability improvements implemented within Wilma (around ActiveMQ memory and DLQ handling) ensuring Wilma stability even in extreme load circumstances (see #62)
  • Bugfix to handle image/svg+xml content types correctly and improve JSON file pretty printing (see #63)
  • About 8 Mbyte smaller Wilma jar size reached by huge code optimization in proxy part (big amount of unused codes and libs were removed) (see #59, #14)

@tkohegyi tkohegyi released this Aug 11, 2015 · 212 commits to master since this release

Assets 4

With this release a new wilma-service-api library was released, and the stability and the reliability of the Wilma application was increased. See details below.

  • Internal self-defense mechanism was further enhanced (see #55)
  • wilma-service-api library become available in JCenter (see #46). This offers the possibility of using a library in you own application/component, and configure the running Wilma instance(s) from your code. For further details on the available wilma-servica-api calls, visit this page
  • A new version of browsermob-proxy-for-wilma module was released (1.1.32), and in use in this Wilma release (see #38)
  • Functional test engine was upgraded to Gepard 4.0 (see more info on Gepard here and its release on Github here)

NOTE: This release is available from Docker Hub too, see details here.

@tkohegyi tkohegyi released this Jun 10, 2015 · 280 commits to master since this release

Assets 4

With this release the stability and the reliability of the Wilma application was increased:

  • Internal self-defense mechanism was reviewed and enhanced, Wilma easily can handle high traffic for long term.
  • Extra information on problematic request/response pairs going through the Wilma proxy was added to the application log, in order to identify the captured messages.

In case you upgrade it from the previous version, it is possible to replace the jar(s) only - jars can be found in the released zip files.

@tkohegyi tkohegyi released this May 13, 2015 · 292 commits to master since this release

Assets 4

This release has no feature changes, just the libraries were upgraded and from now on both Java 1.7 and 1.8 can be used.
In case of 1.8, the memory usage is a bit more aggressive than in case of 1.7, so it is suggested to monitor the heap usage and allocate the appropriate heap size accordingly.

In case you upgrade from the previous version, it is possible just replace the jar(s), but be aware, that a new property is added to wilma.conf.properties, and without it, Wilma cannot start:

# The maximum value of displayed messages.
message.log.UI.maxsize=500

This new property controls the length of the message list presented on Wilma / Message Logs UI, to avoid listing several thousand messages when Wilma deals with high traffic.