- Fix taking over HTTP headers (specifically the
retry-after
field) when receiving an HTTP response with response codes >= 400. - Fix potential NPE occurring with empty response body.
- Technology type support for error and crashes
- Fix sending of session number in web request tracer tag to honor the data collection level. The session number will only be sent with data collection level 'User Behavior'.
- Add OpenKit.createSession overload without IP address parameter.
The IP address is determined in this case on the server side.
- On OpenKitBuilder creation device ID is parsed from the given string. Non-numeric device IDs are hashed to a corresponding numeric value. Internally a numeric type is used for the device ID.
- Fix wrong value for Content-Length HTTP header that was added when sending beacon data.
- Only one binary is built with Java 6 compatibility
Otherwise the jcenter sync does not work
- Java 11 Support
- Deployment to JFrog Bintray, which makes it easier for users to retrieve the package
- Application ID and Device ID are correctly encoded for special characters The encoding is a percent-encoding based on RFC 3986 with additional encoding of underscore characters.
- Set file encoding to UTF-8 in gradle build
- Fixed problem with infinite time sync requests
This problem occurred mainly in AppMon settings.
- Device ID can be specified as String in addition to long
This allows to send UUIDs or other specifiers - Standalone web request tagging
A WebRequestTracer can also be obtained from a Session
- Server overload prevention
Additional HTTP 429 response code handling
- Fix wrong Session start time
- Fix wrong SimpleDatePattern, which does not work with Java 6
- Fix wrong device ID in web requests
This has only an impact, ifDataCollectionLevel.PERFORMANCE
was used
- OpenKit internal version handling
- Extend OpenKit objects from java.io.Closeable to add try-with-resources statement compatibility
The following objects are affected- OpenKit
- Session
- RootAction/Action
- WebRequestTracer
- Build support on Jenkins CI server
- coveralls.io Coverage integration
- Server overload prevention
- GDPR compliance
- BeaconSender's thread name is now correct
- Enhanced
null
checks in public interface implementation
No exception are thrown, if nulls are passed via public interfaces - OpenKit internal threads are daemon threads
- Further actions on already left/closed OpenKit objects are no longer possible
Calling the methods is still allowed, but nothing is reported to the backend - HTTPClient checks response type from server when parsing
- Thread IDs are no longer reported as 64-bit integer, but as 32-bit integer
Only positive integers are used, since the sign bit is always 0. - Enhanced state transition in internal state engine
- WebRequestTracer's start time is initialized in constructor
- Advanced URL validation when tracing web requests
The URL must have the form
<scheme>://<any character>[<any character>]*
Where scheme must be as defined in RFC 3986 - InetAddress validation for IPv6 mixed mode addresses
- Major logging improvements (more and better messages)
- Unit tests in protocol package
- Enhanced BeaconCache documentation
- Various typos fixed
- Testing improvements (method names, wrong assertions)