- Rename
Jose4jJwtFactorytoJOSE4jJwtFactory - Move
HelidonJwtFactoryandJOSE4jJwtFactoryinto separate artifacts,dev.blanke.webpush:webpush-jwt-helidonanddev.blanke.webpush:webpush-jwt-jose4j, respectively- Move implementations into
nl.martijndwars.webpush.jwt.{helidon,jose4j}package to avoid split packages
- Move implementations into
- Use
ServiceLoaderto discover defaultJwtFactoryimplementation- Modularize library by adding
module-info.javafiles to all artifacts - Add
META-INF/services/nl.martijndwars.webpush.jwt.JwtFactoryto discoverJwtFactoryimplementations when the module path is not used
- Modularize library by adding
- Update
org.bouncycastle:bcprov-jdk18onto version 1.76 fixing CVE-2023-33201
- Target Java 17
- No longer separate synchronous and asynchronous
PushServiceimplementations - Use
java.net.http.HttpClientfor defaultPushServiceinstead of an external dependency - Introduce
JwtFactoryadapter interface to remove hard dependency on JOSE4j - Separate CLI and library modules
- Target Java 8 instead of Java 7.
- Added an asynchronous version
PushAsyncServiceof thePushServicethat performs non-blocking HTTP calls. Usesasync-http-clientunder the hood.
- Improvement: Add support for urgency & topic (contributed by jamie@checkin.tech).
- Maintenance: Upgrade com.beust:jcommander to 1.78.
- Maintenance: Upgrade org.bitbucket.b_c:jose4j to 0.7.0.
- Bugfix: Only verify the VAPID key pair if the keys are actually present (fixes #73).
- Improvement: Add test configurations for GCM-only to the selenium test suite.
- Use aes128gcm as the default encoding (#75).
- Remove BouncyCastle JAR from source and let Gradle put together the class path for the CLI.
- Support aes128gcm content encoding (#72)
- Use
PushService.send(Notification, Encoding)or the analogoussendAsyncwithEncoding.AES128GCM.
- Use
- Remove Guava dependency (#69)