Releases: jchambers/pushy
v0.9.2 - Let's all pretend v0.9.1 never happened
This release is what v0.9.1 was supposed to be, but v0.9.1 was accidentally built from the wrong branch. With apologies for the error, v0.9.2 rectifies the situation.
v0.9.1 - Bug fixes and minor improvements
This release focuses on bug fixes and minor improvements. Most visibly, we've rolled back the back-pressure mechanism introduced in #383. For a complete list of changes, please see the v0.9.1 milestone.
v0.9 - Token authentication
This release adds support for token authentication, a new upstream feature announced at WWDC 2016.
In the past, clients would authenticate to the server by providing a TLS certificate at connection time, and could send notifications only to the topics named in the client certificate. In practice, this generally meant that one client could only send notifications to a single app. With token authentication, a single client can send notifications to any topic (app) for which it has a valid signing key. This version of Pushy supports both TLS-based authentication and token authentication (though clients can only use one authentication strategy at a time).
For a complete list of changes, please see the v0.9 milestone.
v0.8.2 - More payload content, newer dependencies
This release includes a number of small improvements. Notably:
ApnsPayloadBuilder
will now always represent alerts as dictionaries by default; if you're sending notifications to an app that depends on alerts represented as strings, you'll want to callApnsPayloadBuilder#setPreferStringRepresentationForAlerts(boolean)
.- Added payload fields to support Safari push notifications (
action
andurl-args
). - Added the
thread-id
payload field - Added configurable high/low water marks and added
ClientBusyException
For a complete list of changes, please see the v0.8.2 milestone.
v0.8.1 - New content features for iOS 10
This release includes new content features for iOS 10. Specifically:
- Added support for the
apns-collapse-id
header, which allows notifications to supersede or be superseded by other notifications with the same ID - Added support for the
mutable-content
payload field, which allows the receiving device to modify a notification before presenting it - Added support for subtitles (literal and localized) in payloads
Please note that these new features are not yet officially documented by Apple; our implementation is based on presentations from WWDC and testing, and the implementation may change as new information becomes available.
We also updated to the latest versions of Netty and netty-tcnative.
For a complete list of changes, please see the v0.8.1 milestone.
v0.8 - Metrics listeners and new patterns
This is a fairly large new release of Pushy that makes some breaking API changes. The most important ones:
- Instead of constructing
ApnsClient
instances directly, we now use a builder pattern. To construct a newApnsClient
, use theApnsClientBuilder
class. ApnsClient
is no longer a generic class; instead, theApnsClient#sendNotification
method is generic, so clients can now handle a wider variety of push notification types.- We've removed support for custom flush thresholds, which turned out to be a little too complex for the benefit they were providing (and we expect an upstream implementation of the same feature shortly).
We've also included lots of non-breaking changes, too!
- We've publicized our own metrics listener that reports metrics using the Dropwizard Metrics library.
- We've publicized our mock APNs server to facilitate integration testing and benchmarking.
- We've added benchmarks using JMH.
- Upstream server errors are now treated as temporary write failures instead of permanent notification rejections.
For a complete list of changes, please see the v0.8 milestone.
v0.7.3 - Bug fixes
This release fixes a handful of small bugs and includes some small under-the-hood improvements. The most important changes are:
- Updated to the latest version of Netty, which includes an upstream fix for a low-frequency buffer leak
- When using a proxy, let the proxy handle name resolution
For a complete list of changes, please see the v0.7.3 milestone.
v0.7.2 - Additional payload construction fixes
This release fixes a bug that could cause payload generation to hang when trimming messages longer than the maximum payload length. For complete details, please see the v0.7.2 milestone.
v0.7.1 - Flush-after-idle-time fixes
This is a bug-fix release that fixes a handful of issues where the "flush after idle time" was pretty flatly just not working right. For the gory details, please see the v0.7.1 milestone.
v0.7 - Performance enhancements
This release focuses on performance enhancements. The big ones are:
- Optimized construction of push notification payloads in cases when the message body needed to be trimmed to fit within the maximum payload size (see #267).
- Batched expensive system calls to increase efficiency when sending notifications (see #278). See the
ApnsClient#setFlushThresholds(int, long)
documentation for additional details.
For a complete list of changes, please see the v0.7 milestone.