Long time no see! After a while (longer than anticipated, sorry about that), we cut off Tyrus 1.9 release. Not much changed in the code since last release, but we were able to squeeze in some stability updates and performance improvements. I’ll highlight some of the features or fixes in next paragraphs:
Petr worked on new feature tracked as TYRUS-289 – Debug mode. Now you can enable more verbose logging on server, which would start logging data like handshake request and response, application and endpoint configuration and information about sessions and even messages, if you want. This could be useful for answering questions like “Why I cannot access my websocket endpoint?!” and so on.
Ondřej spent some time playing with debugger and found out few code paths, which were improved. Namely instantiating default (stateless) encoders and decoders per endpoint, which will save some memory and unnecessary calls to message localization code.
Another topic worth mentioning is that we fixed (again) client runtime on Android, so if you are looking (or already using) Tyrus client on Dalvik/Art, you should be able to update to 1.9.
Complete list of resolved JIRA tickets is below. As always, if you have any feedback, please use our mailing list email@example.com or create a new bug or enhancement request at https://java.net/jira/browse/TYRUS/. You can also use stackoverflow – in that case, please use tag “tyrus“.
Complete list of changes
- [TYRUS-285] – Improve broadcast by sending from multiple (configurable) threads.
- [TYRUS-289] – DEBUG mode (client/server)
- [TYRUS-307] – Revise ignored tests
- [TYRUS-342] – Tyrus throw CancellationException
- [TYRUS-355] – HTTP Redirect – Location header cannot be a relative address
- [TYRUS-361] – JVM does not exits if shared transport is enabled
- [TYRUS-365] – Broadcast messages are not included in the monitoring statistics
- [TYRUS-366] – master branch not buildable with JDK 1.6
- [TYRUS-368] – Instantiate default encoders and decoders once per endpoint
- [TYRUS-369] – Format localized messages when necessary
- [TYRUS-370] – Masking key is generated on server side
- [TYRUS-371]– Introduce an option for using custom masking key generator.
- [TYRUS-375] – Buffer overflow during HTTP Response size parsing (jdk client container)
- [TYRUS-376] – Investigate how/whether is ScheduledExecutorService terminated when session is closed (related to heart beat feature)
- [TYRUS-379] – Autobahn testcases 7.3.4 & 7.3.5 fail in close stage
- [TYRUS-380] – setContextClassLoader throws “access denied” exception in JNLP client app
- [TYRUS-381] – exception message error
- [TYRUS-382] – onError parameter exception is wrapped in InvocationTargetException when an exception is thrown from programmatic endpoint (onOpen or onClose)
- [TYRUS-383] – session.getRequestParameterMap does not contain query parameters when running on Grizzly standalone server
- [TYRUS-385] – Session idle timeout concurrency issues
- [TYRUS-386] – Dalvik class loader rejects TyrusEnpointWrapper
- [TYRUS-387] – Unable to use Tyrus in android appllication