Pushy v0.15.0 - New features and bug fixes
This is a major release that includes several new features and, importantly, a few breaking API changes. Please see the v0.15.0 milestone for a complete list of changes.
New features and bug fixes
- Mock servers can once again bind to an OS-selected port and now return the bound port when the server starts up
- Simplified authentication-related exceptions
- Authentication tokens are now shared between connections to reduce the frequency of token changes
- Fixed a bug where connections could stay open after receiving a
GOAWAY
frame from the APNs server - Fixed an issue where channels may not have been cleaned up as expected after an exception
- Fixed various packaging issues
- Enabled TLS hostname verification
- HTTP status codes are now included in responses from the APNs server
- Rejection reasons inresponses from the APNs server are now
Optional
instead of@Nullable
- Literal and localized alert content may now co-exist in the same notification payload
- Added support for new payload fields (
relevance-score
andinterruption-level
) introduced in iOS 15 - Added JPMS automatic module names to all project artifacts
- Updated to Netty 4.1.67/netty-tcnative 2.0.41
Breaking changes
Some new features, fixes, and general maintenance have led to breaking API changes that Pushy users may need to address in their own code. In particular:
- Starting a mock server now returns a
CompletableFuture<Integer>
instead ofCompletableFuture<Void>
- Creating a new
AuthenticationToken
from a signing key no longer throws checked exceptions - The
PushNotificationResponse
interface now includes agetStatusCode
method - Rejection reasons inresponses from the APNs server are now
Optional
instead of@Nullable
- Behavior of setters for alert content in payload builders has changed; literal and localized content may now co-exist in the same payload