Skip to content
This repository was archived by the owner on May 30, 2024. It is now read-only.

Commit e162768

Browse files
prepare 5.0.3 release (#202)
1 parent de94df7 commit e162768

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ This is a major rewrite that introduces a cleaner API design, adds new features,
6868
- The Redis integration is no longer built into the main SDK library. See: https://github.com/launchdarkly/java-server-sdk-redis
6969
- The deprecated New Relic integration has been removed.
7070

71+
## [4.14.1] - 2020-08-04
72+
### Fixed:
73+
- Deserializing `LDUser` from JSON using Gson resulted in an object that had nulls in some fields where nulls were not expected, which could cause null pointer exceptions later. While there was no defined behavior for deserializing users in the 4.x SDK (it is supported in 5.0 and above), it was simple to fix. Results of deserializing with any other JSON framework are undefined. ([#199](https://github.com/launchdarkly/java-server-sdk/issues/199))
74+
7175
## [4.14.0] - 2020-05-13
7276
### Added:
7377
- `EventSender` interface and `EventsConfigurationBuilder.eventSender()` allow you to specify a custom implementation of how event data is sent. This is mainly to facilitate testing, but could also be used to store and forward event data.

build.gradle

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,11 @@ shadowJar {
169169
exclude(dependency('org.slf4j:.*:.*'))
170170
}
171171

172+
// Kotlin metadata for shaded classes should not be included - it confuses IDEs
173+
exclude '**/*.kotlin_metadata'
174+
exclude '**/*.kotlin_module'
175+
exclude '**/*.kotlin_builtins'
176+
172177
// doFirst causes the following steps to be run during Gradle's execution phase rather than the
173178
// configuration phase; this is necessary because they access the build products
174179
doFirst {
@@ -193,6 +198,10 @@ task shadowJarAll(type: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJ
193198
configurations = [project.configurations.runtimeClasspath]
194199
exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA')
195200

201+
exclude '**/*.kotlin_metadata'
202+
exclude '**/*.kotlin_module'
203+
exclude '**/*.kotlin_builtins'
204+
196205
// doFirst causes the following steps to be run during Gradle's execution phase rather than the
197206
// configuration phase; this is necessary because they access the build products
198207
doFirst {
@@ -315,7 +324,7 @@ def replaceUnshadedClasses(jarTask) {
315324
} getFiles()
316325
}
317326
def jarPath = jarTask.archiveFile.asFile.get().toPath()
318-
FileSystems.newFileSystem(jarPath, null).withCloseable { fs ->
327+
FileSystems.newFileSystem(jarPath, (ClassLoader)null).withCloseable { fs ->
319328
protectedClassFiles.forEach { classFile ->
320329
def classSubpath = classFile.path.substring(classFile.path.indexOf("com/launchdarkly"))
321330
Files.copy(classFile.toPath(), fs.getPath(classSubpath), StandardCopyOption.REPLACE_EXISTING)
@@ -580,8 +589,13 @@ signing {
580589
sign publishing.publications.shadow
581590
}
582591

583-
tasks.withType(Sign) {
584-
onlyIf { !"1".equals(project.findProperty("LD_SKIP_SIGNING")) } // so we can build jars for testing in CI
592+
tasks.withType(Sign) { t ->
593+
onlyIf { !shouldSkipSigning() } // so we can build jars for testing in CI
594+
}
595+
596+
def shouldSkipSigning() {
597+
return "1".equals(project.findProperty("LD_SKIP_SIGNING")) ||
598+
"1".equals(System.getenv("LD_SKIP_SIGNING"))
585599
}
586600

587601
// This task is used by the logic in ./packaging-test to get copies of all the direct and transitive

0 commit comments

Comments
 (0)